隱性反饋行爲數據的協同過濾推薦算法

隱性反饋行爲數據的協同過濾推薦算法
《Collaborative Filtering for Implicit Feedback Datasets》論文筆記

本文是我閱讀《CollaborativeFiltering for Implicit Feedback Datasets》論文的筆記,介紹的是對於隱性反饋行爲數據協同過濾算法,採取的是隱語義模型(LFM),求解方式是ALS。


顯性反饋行爲包括用戶明確表示對物品喜好的行爲

隱性反饋行爲指的是那些不能明確反應用戶喜好

的行爲。最具代表性的隱性反饋行爲就是頁面瀏覽行爲。



考慮隱性反饋的必要性:

很多應用場景,並沒有顯性反饋的存在。因爲大部分用戶是沉默的用戶,並不會明確給系統反饋“我對這個物品的偏好值是多少”。因此,推薦系統可以根據大量的隱性反饋來推斷用戶的偏好值。

However,explicit feedback is not always available.

Thus, recommenders can infer user preferences from the more abundant

implicit feedback, which indirectly reflect opinion through

observing userbehavior

 

隱性反饋的特性:

1 沒有負反饋。隱性反饋無法判斷是否不喜歡。而顯性反饋,明顯能區分是喜歡還是不喜歡。

2 先天性具有噪聲。用戶購買了某物品,並不代表他喜歡,也許是送禮,也許買了之後發現不喜歡。

3 顯性反饋數值代表偏好程度,隱性反饋數值代表置信度。隱性反饋的數值通常是動作的頻次,頻次越多,並不代表偏好值越大。比如一個用戶經常看某部連續劇,可能該用戶對該連續劇的喜好值一般,只是因爲每週都播,所以動作頻次很大,假如該用戶對某部電影超級喜歡,但可能就看過一次,因此動作頻次大並不反應偏好值大。從這個用戶經常看這部連續劇這個行爲,只能推斷出該用戶喜歡這連續劇有很大的置信度,但這個用戶對這個連續劇的偏好值是多少我們無法評估。

4 隱性行爲需要近似評估。

 

顯性反饋中,用rui表示偏好值。這裏,我們用rui表示隱性反饋的動作頻次。

We reserve special indexing letters for distinguishing

users fromitems: for users u, v, and for items i, j. The input

data associate users and items throughrui values, which we

henceforth call observations. For explicit feedback datasets,

those values would be ratings that indicate the preference

by user u of item i, where high values mean stronger preference.

For implicit feedback datasets, those values would

indicate observations for user actions. Forexample,ruican

indicate the number of times upurchased item ior thetime

u spent on webpage i.

 

偏好值的推斷


這表達的意思是,用戶u對物品i的隱性反饋動作超過一次,我們就認爲u喜歡i,動作頻次越多,這個假設的置信度就越高。如果沒有動作,則認爲u對i的偏好值爲0,當然因爲動作次數爲0,所以“u對i的偏好值爲0”這個假設的置信度就很低。因爲沒有動作,除了不喜歡和不感興趣之外,還有其他很多原因,比如u不知道i的存在。

 

置信度的衡量

cui = 1 + αrui

論文中提到α = 40效果比較好。

當然,置信度的衡量還有其他方式,總的來說,動作頻次越大,置信度就越高。

In general, as rui grows, we have a stronger indication

that the userindeed likes the item.

 

優化的目標函數:


這個跟顯性反饋的矩陣分解優化的目標函數類似,但有兩個不同點:

1 我們需要考慮置信度

2 優化的目標應該針對所有可能的u,i的鍵值對,而不只是可觀察到的數據。顯性反饋的矩陣分解優化時,對於missing data(未知評分),是不會當做訓練數據輸入到模型的,優化時針對已知評分數據優化。而這裏隱性反饋,是利用所有可能的u,i鍵值對,所以總的數據是m*n,其中m是用戶數量,n是物品數量。這裏沒有所謂的missing data,因爲假如u對i沒有任何動作,我們就認爲偏好值爲0,只不過置信度較低而已。

This is similar to matrix factorization techniques

which are popular for explicit feedback data, with two important

distinctions: (1)We need to account for the varying

confidence levels, (2) Optimization should account for all

possible u, i pairs, rather than only those corresponding to

observed data.

 

 

優化這個目標函數時,這裏還是跟顯性的ALS矩陣分解的做法一樣。

 

固定物品特徵,對用戶特徵求偏導數,令偏導數等於0,

更新用戶特徵



固定用戶特徵,對物品特徵求偏導數,令偏導數等於0,

更新物品特徵


這種做法叫做交替最小二乘法。

論文中,還介紹了一些可以加快上面矩陣計算速度的技巧,詳細可以參看論文。

 

 

《Collaborative Filteringfor Implicit Feedback Datasets》

《推薦系統實踐》

http://mahout.apache.org/users/recommender/intro-als-hadoop.html



本文作者:linger

本文鏈接:http://blog.csdn.net/lingerlanlan/article/details/46917601


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