1. 程式人生 > >隱性反饋行為數據的協同過濾推薦算法

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

only 場景 sin blank 沈默 post strong inpu level

隱性反饋行為數據的協同過濾推薦算法 《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


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