隱語義模型LFM(Latent Factor Model)

隱語義模型LFM(Latent Factor Model)是主題模型中的一種,跟其他主題模型一樣,LFM也需要定義若干“主題”,來表示箇中隱含的關係,這些“主題”是模糊而不是明確的,通過統計用戶行爲的方式聚類計算得出。在LFM的推薦例子中,“主題”就可以認爲代表item的分類,而分類的個數,需要事先定義。

更直觀地理解,假設我們定義隱因子的個數是30個,則在item候選集中,每一個item都會根據這30個分類去分配相關度(取值爲0~1),比如說這個item是“午夜兇鈴”,那麼會被分配到“驚悚”分類0.98,“劇情”分類0.62,“喜劇”分類0.005等等(當然這個只是隨便舉的例子,而且分類也並不會那麼不重疊),這表示的是物品與分類的關係得分,需要注意的是這裏每個分類的分數是獨立的,加起來不等於1。如果某個分類的值是1,則可以認爲這個物品就是爲這個分類而生的,就是這個分類的代名詞。

有了物品與“主題”的關係得分,那麼我們只需要再計算用於對於分類的偏好程度就可以用這兩者計算用戶對於某個item的偏好得分了。這種推薦的方式相當於是基於興趣愛好的推薦。除此之外,基於興趣推薦的方式可以通過找到有共同愛好的人(User-CF),或者用戶喜歡的item相近的其他item(Item-CF),基於物品標籤推薦(Tag-Based)等等多種方式,這裏不展開,下面重點講下公式原理。

loss=\sum_{(u,i)\epsilon D)}(p(u,i)-p^{LFM}(u,i))^{2}+\alpha \left | p_{u} \right |^{2}+\alpha \left | q_{i} \right |^{2}

上面就是LFM的損失函數,其中D爲user與item之間行爲的集合,p(u,i)爲行爲的label,舉個例子,有過點擊行爲的爲p(u,i)爲1,只有曝光沒有點擊行爲的爲0,p^{^{LFM}}(u,i)爲通過隱因子計算出來的得分,介乎0~1之間,通常情況下,p^{^{LFM}}(u,i)表示的是用隱因子計算出來的用戶與物品之間的cosine距離,公式如下:

cosine=\frac{vec_{uf}*vec_{fi}}{\sqrt{\left |vec_{uf} \right |*\left |vec_{fi} \right |}}

分子當中,每個f維的向量中,我們會初始化0~1之間的值,表示用戶(物品)對於某個分類的偏好程度(相關程度),0表示毫不相關,1表示完全相關,因此分子相乘後得到的是正數;分母計算後,由於模計算後都是正數,因此cosine距離,也就是用以表示的p^{^{LFM}}(u,i)也是一個正數。此外,我們回想cosine距離物理含義,表示的是兩個向量之間的餘弦夾角,夾角越小,代表兩者越接近,最大夾角是當兩個向量方向相反時候,也就是180°夾角,因此在0到π之間,cosine值也只會在0~1之間。回到損失函數,則其定義的是真實的label與計算出來的cosine距離用以衡量模型的擬合程度,最後加上兩個向量的正則項用以懲罰複雜度。

默認我們運用梯度下降法來迭代向量值,由於用戶向量p_{uf}與物品向量q_{if}是同理,因此下面只分析p_{uf}的求導。我們知道梯度下降的原理是自身減去自身求偏導,不停迭代下去知道滿足條件,則

p_{uf}=p_{uf}-\beta \frac{\partial loss}{\partial p_{uf}}

\frac{\partial loss}{\partial p_{uf}}=-2(p(u,i)-p^{LFM}(u,i))q_{if}+2\alpha p_{uf}

其中1式爲梯度下降迭代用戶向量,2式爲求偏導的過程,α爲正則項,β爲學習率

這樣,在經過若干次的迭代後,達到了某個停止迭代的條件,則最終的我們能夠獲得每個user對於每個分類的”相關係數“(user向量),以及每個item對於每個分類的”相關係數“(item向量),我們最後通過計算user向量與item向量之間的cosine距離,則會得到用戶與item之間的偏好分數,從而進行下一步的推薦動作。

按照經驗,我們在構造樣本訓練數據的時候,一般會按正負樣本1:1構造(經驗所談,保證樣本平衡性),另外負樣本要選取一些有充分曝光但是沒有過點擊行爲的物品,這樣可以避免選取了一些過於冷門導致根本不會有點擊行爲的商品。另外隨着負樣本/正樣本比例逐漸增大,準確率和召回率都在增大,但是覆蓋率卻逐漸降低。說明1:1的樣本比例有助於挖掘長尾興趣。另外,在隱因子數量選擇上,經驗上爲10到30,因具體數據而已。在十分稀疏的數據上,LFM效果會大幅下降甚至不如User-CF/Item-CF。

我們知道基礎的基於物品的協同過濾(Item-CF)和基於用戶的協同過濾(User CF)是一種傳統的基於鄰域的統計方法,有效地在海量的用戶和物品羣中發現近似的人羣或物品羣,LFM則是提出一種類似於基於興趣愛好的召回方法,是對User-CF和Item-CF的有效補充。他們之間的比較有如下幾點:

1.LFM有學習迭代的過程,有較好的理論基礎;而User-CF/Item-CF是基於統計的方法,沒有學習過程

2.LFM在空間複雜度上更小,假設用戶物品矩陣爲M*N,則空間複雜度只有O(F*(M+N));而User-CF需要O(M*M),Item-CF需要O(N*N),在M和N很大的時候,能有效節省空間。

3.LFM不適合在線預測,因爲其需要通過迭代得到的user向量和item向量計算用戶與物品之間的偏好得分,在線的動作加入後,如果重新迭代計算用戶向量和物品向量,則會消耗大量時間,不適合在線預測;而User-CF和Item-CF則因爲把預先計算的相關矩陣存在內存中,當用戶有新的行爲(例如點擊了某個物品),則可以實時獲取該物品所對應的相似物品來在線更新推薦列表。

4.LFM因爲其中的隱因子(分類)通常來講會含糊不清,因此不能有很好的解釋性;而User-CF和Item-CF由於是基於統計的方法,因此有相對較好的解釋性。

參考文獻:

推薦系統實踐,項亮 2012
慕課網 - BAT大牛親授 個性化推薦算法實戰
https://www.cnblogs.com/earendil/p/8194875.html

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