個性化文獻--《Item-Based Top-N Recommendation Algorithms》

1。介紹了主要影響item-based的性能的兩個方面。

(1)item之間的相似度計算的

將用戶作爲每個item的維度,用cosine計算相似度。

利用條件概率(conditional probability)來計算相似度,這樣能偶區分有不同歷史記錄的用戶以及,頻繁和非頻繁的被購買的item。

計算購買了item i後的用戶後續購買item j的概率。公式如下

image

其中Freq(i)是在整個集合中購買過i的用戶的次數,Freq(ij )是集合中同時購買item i和j的用戶數量。從上面的公式可以看出,最終的相似度矩陣式一個非對稱矩陣。如果Freq(i)比較少,則購買次數比較多的item j將又有更高的條件概率。因此,對公式進行了如下修正:

image

image 取值0~1。當image =1的時候,整個相似度矩陣是一個對稱矩陣。

上述公式沒有區分不同用戶購買的item不同的情況,繼續對公式進行修正:

image

首先對每個user購買的記錄進行歸一化,與公式2採取item i,item j共現的方式不同,分子變成image ,表示第j列item的歸一化後的權重的和。

進行推薦的代碼如下:

image

輸入爲item的相似度作爲模型M,item*item,當前user,爲item*1,推薦個數N。算法首先根據相似度矩陣和用戶向量相乘得出一個大小爲item*1的向量x,在x中,用戶沒有購買過的item的值也是非0的了。所以,第一個for循環將x中用戶已經購買的item的權重設爲0,第二個for循環選擇top N個item進行推薦。

該算法有一定的缺陷,當item與相鄰的item的購買頻率不是特別高的時候,比如都被購買了1次,那麼這兩個之間的相似度會很大的,造成推薦的失敗。解決辦法簡單,相似度矩陣M在輸入之前先進行歸一化,然後再進行推薦。

(2)如何組織item來對item進行推薦。

將item-based的推薦擴展到高階模型,對用戶進行推薦的時候,首先決定於用戶相似的item集合,然後根據選出的item集合進行推薦。

上述方法在計算兩個item之間的相似度的時候,沒有考慮一個用戶購買的其他的item,並且在兩個item的聯合分佈(joint distribution)與每個item的分佈不一致的時候,不能找到最優推薦。

新方法在構建模型的時候,不僅僅計算K個最相近的item,也計算l個最相近的item集合。推薦的時候,不僅僅合併K個最近鄰居的item,也合併l個item集合。

在相似度計算的時候分別計算image ,每個矩陣的維度分別是m*m,m*m**2(**相當於平方),具體算法如下,看的不是很懂,

image

核心是image ,放到程序中得出1,2,2,3,3,3,4,4,4,4,5,5,5,5,5的序列,不知道用意何在?

後續的推薦算法如下:

image

不明白的地方還是上面的地方。在此記錄下,待後續在解答。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章