本文主要是基於《推薦系統實踐》這本書的讀書筆記,還沒有實踐這些算法。
LFM算法是屬於隱含語義模型的算法,不同於基於鄰域的推薦算法。
隱含語義模型有:LFM,LDA,Topic Model
這本書里介紹的LFM算法。書中內容介紹的很詳細,不過我也是看了一天才看明白的。
開始一直沒想明白,隱類的類別是咋來的,后來仔細讀才發現是一個設置的參數。
下面開始進入正文:
對於基於鄰域的機器學習算法來說,如果要給一個用戶推薦商品,那么有兩種方式。
一種是基於物品的,另一種是基於用戶的。
基於物品的是,從該用戶之前的購買商品中,推薦給他相似的商品。
基於用戶的是,找出於該用戶相似的用戶,然后推薦給他相似用戶購買的商品。
但是,推薦系統除了這兩種之外,還有其他的方式。例如如果知道該用戶的興趣分類,可以給他推薦該類別的商品。
為了實現這一功能,我們需要根據用戶的行為數據得到用戶對於不同分類的興趣,以及不同商品的類別歸屬。
先說類別歸屬:
對於一本書來說,獲取書的類別可以通過它在貨架上的類別,比如該一本書被歸類為計算機,或者數學。但是一本書也可能屬於多個類別,
比如《史記》可以歸為歷史,也可以歸為古典文學。至於《史記》屬於哪一類別多,應當根據用戶行為來判定更加合理。
也就是說大部分用戶讀《史記》,是把它作為史料來讀,還是古典文學來讀。(反正我也不看,覺得沒區別)。
一言以蔽之,根據用戶行為來划分每件商品的歸屬類別。該方式還有一個好處是,一個商品可以分別屬於不同類別,只是在各個類別中的權重不一樣。
再說用戶對於各個類別的喜愛程度:
用戶對於不同的類別的喜好程度也不同,該算法可以根據用戶的行為數據推測出用戶對不同的類別的喜好。
下面開始介紹算法的內容:
首先是數據的處理,由於使用的是隱性數據集,只有正樣本,例如用戶點擊了某件商品,沒有負樣本。
數據處理主要是選出數據集的負樣本。
負樣本的選取策略主要有以下要點:
(1)正負樣本要均衡,基本保證正負樣本的比例1:1
(2)負樣本需要選擇用戶沒有行為的熱門商品。
選取完成之后,計算用戶對於某件商品的喜愛程度,例如喜歡是1,不喜歡是0

用戶u對於商品i的喜愛程度等於,用戶u對於類別k的喜愛程度 乘以 商品i在類別k的比重

這是代價函數。
然后根據用戶行為數據使用隨機提督下降法訓練。
該模型的參數有:

