協同過濾演算法評測python 推薦重排演算法之MMR

2021-10-14 06:19:56 字數 2093 閱讀 7365

​ maximal marginal relevance (a.k.a mmr) 演算法目的是減少排序結果的冗餘,同時保證結果的相關性。最早應用於文字摘要提取和資訊檢索等領域。在推薦場景**現在,給使用者推薦相關商品的同時,保證推薦結果的多樣性,即排序結果存在著相關性與多樣性的權衡。

maximal marginal relevance公式

def mmr(itemscoredict, similaritymatrix, lambdaconstant=0.5, topn=20):

s, r = , list(itemscoredict.keys())

while len(r) > 0:

score = 0

selectone = none

for i in r:

firstpart = itemscoredict[i]

secondpart = 0

for j in s:

sim2 = similaritymatrix[i][j]

if sim2 > second_part:

secondpart = sim2

equationscore = lambdaconstant * firstpart - (1 - lambdaconstant) * secondpart

if equationscore > score:

score = equationscore

selectone = i

if selectone == none:

selectone = i

r.remove(selectone)

return (s, s[:topn])[topn > len(s)]

​ mmr演算法需要輸入推薦商品的相關分數及商品間相似度矩陣。簡單起見,採用item-based協同過濾演算法進行top-n商品推薦。利用協同過濾演算法矩陣分解的item factors作為商品的向量表徵,計算余弦相似度,並將相似度進行線性對映到[0,1]區間,得到商品相似度矩陣。使用者

​ 某使用者最近歷史瀏覽商品序列如下圖,分別為男式地表強溫廓形羽絨服透氣保暖元絨棉花被男式加厚保暖長款羽絨服男式地表強溫工裝羽絨服

使用者歷史瀏覽行為

​ 基於使用者瀏覽的四件商品進行top-10推薦,協同過濾推薦結果與協同過濾+mmr推薦結果如下兩圖,前者推薦結果相對單一,滿螢幕全是羽絨服。後者在推薦坑位有限的情況下,多樣性指標上明顯更優,除了羽絨服、羽絨被外,還有大衣、運動服、羽絨馬甲等商品。

協同過濾top-10推薦結果

mmr重排top-10推薦結果

推薦結果多樣性指標

​ 可以根據實際推薦場景,選擇合適的相似度計算方法和

值。

越小,推薦結果多樣性越高。

the use of mmr, diversity-based reranking for reordering documents and producing summaries

maximal marginal relevance to re-rank results in unsupervised keyphrase extraction

協同過濾演算法

3種形式的協同過濾 collaborative filtering 演算法 1 user based 相同 相似 使用者的喜好相同 2 item based 能夠引起使用者興趣的專案,必定與其之前評分高的專案相似 3 model based 先用歷史資料得到乙個模型,再用此模型進行 參考 這個位址是...

協同過濾演算法

1.表示使用者行為矩陣,即統計使用者購買某種商品型別的數量 public double getnumbycustomer customer customer return vectore 2.用余弦距離計算每個使用者與其它使用者的行為相似度 下面 是兩個使用者之間的相似度,進行遍歷就可以獲取全部相似...

協同過濾演算法

乙個人想看電影的時候常常會思考要看什麼電影呢。這個時候他可能會問周圍愛好的人求推薦。現在社會每天都會產生海量的資訊。面對這麼多資訊好多人都不知道什麼資訊是自己需要的。推薦系統正是起了這麼乙個作用。推薦系統的應用隨處可見。網路購物是乙個典型的例子,電子商務的運營商往往會根據使用者在 的行為推薦使用者可...