用戶行爲數據
很多事情用戶無法表述自己喜歡什麼,所以需要推薦算法挖掘用戶行爲數據,從用戶行爲中推測用戶興趣,從而給用戶推薦他們感興趣的物品。啤酒與紙尿布的故事就不講了,相信大家也都聽說過。用戶行爲數據在網站上最簡單的存在形式就是日誌。這些日誌記錄了用戶的各種行爲,如在電子商務網站中這些行爲主要包括網頁瀏覽、購買、點擊、評分和評論等。
用戶行爲在個性化推薦系統中一般分兩種——顯性反饋行爲(explicit feedback)和隱性反饋行爲(implicit feedback)。顯性反饋行爲如喜歡或者不喜歡,評分等等,隱性反饋行爲如網頁瀏覽等,數據量更大但是不明確。
按照反饋的明確性分,用戶行爲數據可以分爲顯性反饋和隱性反饋,但按照反饋的方向分,又可以分爲正反饋和負反饋。正反饋指用戶的行爲傾向於指用戶喜歡該物品,而負反饋指用戶的行爲傾向於指用戶不喜歡該物品。
用戶行爲的表示方式
可以將用戶行爲表示爲以下六部分,即產生行爲的用戶和行爲的對象、行爲的種類、產生行爲的上下文、行爲的內容和權重。
- use id
產生行爲的用戶的唯一標識 - item id
產生行爲的對象的唯一標識 - behavior type
行爲的種類(比如是購買還是瀏覽) - context
產生行爲的上下文,包括時間和地點等 - behavior weight
行爲的權重(如果是觀看視頻的行爲,那麼這個權重可以是觀看時長;如果是打分行爲, 這個權重可以是分數) - behavior content
行爲的內容(如果是評論行爲,那麼就是評論的文本;如果是打標籤的行爲,就是標籤)
不同的數據集包含不同的行爲,如
- 無上下文信息的隱性反饋數據集
- 無上下文信息的顯性反饋數據集
- 有上下文信息的隱性反饋數據集
- 有上下文信息的顯性反饋數據集
用戶行爲分析
很多數據都是符合長尾分佈的,用戶行爲數據也符合這種分佈。
長尾分佈在雙對數曲線上應該呈直線。不管是物品的流行度還是用戶的活躍度,都近似於長尾分佈,特別是物品流行度的雙對數曲線,非常接近直線。一般認爲,新用戶傾向於瀏覽熱門的物品,因爲他們對網站還不熟悉,只能點擊首頁的熱門物品,而老用戶會逐漸開始瀏覽冷門的物品。
基於用戶行爲數據設計的推薦算法一般稱爲協同過濾算法,如基於鄰域的方法、隱語義模型、基於圖的隨機遊走算法。最廣泛使用的還是基於鄰域的方法。而基於鄰域主要包括基於用戶的協同過濾算法和基於物品的協同過濾算法。
下一篇,我們將以MovieLens作爲數據集開始對上面提到的所有算法進行講解和實驗,敬請期待!