推薦系統(tǒng)實(shí)踐-利用用戶行為數(shù)據(jù)(下)

此文是根據(jù)《推薦系統(tǒng)實(shí)踐》部分整理而來(lái)。

PART 1 隱語(yǔ)義模型

隱語(yǔ)義模型核心思想是:通過(guò)隱含特征聯(lián)系用戶興趣和物品。

舉一個(gè)例子來(lái)理解這個(gè)模型。用戶A的喜歡偵探小說(shuō)、科普?qǐng)D書以及一些計(jì)算機(jī)技術(shù)書,用戶B喜歡數(shù)學(xué)和機(jī)器學(xué)習(xí)的書。那么如何推薦呢?

  • 對(duì)于UserCF,首先找到和他們看了同樣書的用戶,然后推薦那些用戶喜歡的其他的書。
  • 對(duì)于ItemCF,需要給他們推薦和他們已經(jīng)看過(guò)的書相似的書。
    還有一種方法,可以對(duì)書和物品的興趣進(jìn)行分類,對(duì)于某個(gè)用戶,首先得到他的興趣分類,然后從分類中挑選他可能喜歡的物品。這個(gè)基于興趣分類的方法大概需要解決三個(gè)問(wèn)題:
  • 如何給物品進(jìn)行分類?
  • 如何確定用戶對(duì)哪些類的物品感興趣,以及感興趣的程度?
  • 對(duì)于一個(gè)給定的類,選擇哪些屬于這個(gè)類的物品推薦給用戶,以及如何確定這些物品在一個(gè)類中的權(quán)重?

第一個(gè)問(wèn)題解決方法是:找編輯給物品分類。但是缺點(diǎn)有很多:

  • 編輯的意見(jiàn)不能代表用戶的意見(jiàn),有些物品的分類是模棱兩可的。
  • 編輯很難控制分類的粒度。
  • 編輯很難給一個(gè)物品多個(gè)分類。
  • 編輯很難給出多維度的分類。比如作者、譯者、出版社
  • 編輯很難決定一個(gè)物品在某一分類中的權(quán)重。

為了解決上面的問(wèn)題,隱含語(yǔ)義分析技術(shù)出現(xiàn)了,它采用基于用戶行為統(tǒng)計(jì)的自動(dòng)聚類,較好地解決了編輯的問(wèn)題:

  • 隱含語(yǔ)義分析的分類來(lái)自用戶的統(tǒng)計(jì),代表了用戶的看法。
  • 隱含語(yǔ)義分析技術(shù)允許我們指定最終有多少個(gè)分類,數(shù)字越大,粒度就越細(xì)。
  • 隱含語(yǔ)義分析技術(shù)給出的每個(gè)分類都不是同一個(gè)維度的,是基于用戶的共同興趣計(jì)算出來(lái)的。
  • 隱含語(yǔ)義分析技術(shù)通過(guò)統(tǒng)計(jì)用戶的行為決定物品在每個(gè)類中的權(quán)重。

隱含語(yǔ)義分析技術(shù)有很多著名的模型和方法:pLSA、LDA、隱含類別模型、隱含主題模型、矩陣分解。本文將以LFM為例介紹隱含語(yǔ)義分析技術(shù)在推薦系統(tǒng)中的應(yīng)用。

LFM通過(guò)如下的公式計(jì)算用戶u對(duì)物品i的興趣:


Paste_Image.png

Pu,k和Qi,k是模型的參數(shù),其中Pu,k度量了用戶u的興趣和第k個(gè)隱類的關(guān)系,而Qi,k度量了第k個(gè)隱類和物品i之間的關(guān)系。
要計(jì)算這兩個(gè)參數(shù),需要一個(gè)訓(xùn)練集,對(duì)于每個(gè)用戶u,訓(xùn)練集里都包含了用戶u喜歡的物品和不感興趣的物品,通過(guò)學(xué)習(xí)這個(gè)數(shù)據(jù)集,就可以獲得上面的模型參數(shù)。

推薦系統(tǒng)的用戶行為分為顯性反饋和隱性反饋。LFM在顯性反饋數(shù)據(jù)上解決評(píng)分預(yù)測(cè)問(wèn)題并達(dá)到了很好的精度,不過(guò)本文主要討論的是隱性反饋數(shù)據(jù)集,這種數(shù)據(jù)集的特點(diǎn)是只有正樣本,沒(méi)有負(fù)樣本。所以第一個(gè)問(wèn)題就是,如何給每個(gè)用戶生成負(fù)樣本。
Rong Pan對(duì)比了如下幾種方法:

  1. 對(duì)于一個(gè)用戶,用他所有沒(méi)有過(guò)的行為作為負(fù)樣本。
  2. 對(duì)于一個(gè)用戶,從他沒(méi)有過(guò)行為的物品中均勻采樣出一些物品作為負(fù)樣本。
  3. 對(duì)于一個(gè)用戶,從他沒(méi)有過(guò)行為的物品中采樣出一些物品作為負(fù)樣本,但采樣時(shí),保證每個(gè)用戶的正負(fù)樣本數(shù)目相當(dāng)。
  4. 對(duì)于一個(gè)用戶,從他沒(méi)有過(guò)行為的物品中采樣出一些物品作為負(fù)樣本,但采樣時(shí),偏重采樣不熱門的物品。

對(duì)于第1種方法,明顯缺點(diǎn)是負(fù)樣本太多,計(jì)算復(fù)雜度很高,精度也差。對(duì)于另外3種方法,Rong Pan在文章中表示第3種>第2種>第4種。
后來(lái)在一個(gè)比賽中,發(fā)現(xiàn)負(fù)樣本采樣時(shí)應(yīng)該遵循以下原則:

  • 對(duì)每個(gè)用戶,要保證正負(fù)樣本平衡。
  • 對(duì)每個(gè)用戶采樣負(fù)樣本時(shí),要選擇那些很熱門,而用戶沒(méi)有行為的物品。因?yàn)楹軣衢T而用戶沒(méi)有行為更加代表用戶對(duì)這個(gè)物品不感興趣,對(duì)于冷門的物品,可能用戶根本沒(méi)有發(fā)現(xiàn)。(后面具體實(shí)現(xiàn)方式就不貼了)

通過(guò)離線實(shí)驗(yàn)評(píng)測(cè)LFM的性能,在MovieLens數(shù)據(jù)集上用LFM計(jì)算出用戶興趣向量p和物品向量q,然后對(duì)于每個(gè)隱類找出權(quán)重最大的物品:


Paste_Image.png

如果將LFM的結(jié)果與ItemCF和UserCF算法的性能相比,可以發(fā)現(xiàn)LFM在所有的指標(biāo)上都優(yōu)于UserCF和ItemCF。當(dāng)數(shù)據(jù)非常稀疏時(shí),LFM的性能會(huì)明顯下降。

PART 2 LFM和基于鄰域方法的比較

LFM是一種基于機(jī)器學(xué)習(xí)的方法,具有比較好的理論基礎(chǔ)。這個(gè)方法和基于鄰域的方法相比,各有優(yōu)缺點(diǎn):

  • 理論基礎(chǔ)。LFM具有比較好的理論基礎(chǔ),它是一種學(xué)習(xí)方法,通過(guò)優(yōu)化一個(gè)設(shè)定的指標(biāo)建立最優(yōu)的模型。基于鄰域的方法更多是一種基于統(tǒng)計(jì)的方法,沒(méi)有學(xué)習(xí)過(guò)程。
  • 離線計(jì)算的空間復(fù)雜度?;卩徲虻姆椒ㄐ枰S護(hù)一張離線的相關(guān)表,如果用戶/物品很多,會(huì)占據(jù)很大的內(nèi)存,需要O(NN)的空間。而LFM在建模過(guò)程中,如果是F個(gè)隱類,那么它需要的存儲(chǔ)空間是O(F(M+N))),這在M和N很大時(shí)可以很好地節(jié)省離線計(jì)算的內(nèi)存。用戶數(shù)40萬(wàn)時(shí),UserCF大概需要30GB內(nèi)存,LFM只需要4GB內(nèi)存。
  • 離線計(jì)算的時(shí)間復(fù)雜度。假設(shè)有M個(gè)用戶,N個(gè)物品,K條用戶對(duì)物品的行為記錄,那么UserCF計(jì)算用戶相關(guān)表的時(shí)間復(fù)雜度是O(N(K/N)^2);ItemCF計(jì)算物品相關(guān)表的時(shí)間復(fù)雜度是O(M(K/M)^2);對(duì)于LFM,如果用F個(gè)隱類,迭代S次,那么它的計(jì)算復(fù)雜度是(KFS)。一般情況下,LFM的時(shí)間復(fù)雜度要稍微高于UserCF和ItemCF,這主要是因?yàn)樵撍惴ㄐ枰啻蔚???傮w上時(shí)間復(fù)雜度上沒(méi)有質(zhì)的差別。
  • 在線實(shí)時(shí)推薦。UserCF和ItemCF在線服務(wù)算法需要將相關(guān)表緩存在內(nèi)存中,然后可以在線進(jìn)行實(shí)時(shí)的預(yù)測(cè)。LFM的預(yù)測(cè)公式可以看到,LFM在給用戶生成推薦列表時(shí),需要計(jì)算用戶對(duì)所有物品的興趣權(quán)重,然后排名,返回權(quán)重最大的N個(gè)物品。那么,物品很多時(shí)時(shí)間復(fù)雜度就會(huì)很高。因此,LFM不太適合用于物品非常龐大的系統(tǒng),如果要用,我們也需要一個(gè)比較快的算法先給用戶計(jì)算一個(gè)比較小的候選列表。另一方面,LFM生成一個(gè)用戶推薦列表太慢,因此不能用于在線實(shí)時(shí)推薦。
  • 推薦解釋。ItemCF算法支持很好的推薦解釋,但是LFM無(wú)法提供這樣的解釋。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容