前言
本文是推薦系統(tǒng)系列的第三篇了,主要來講一下 LFM 算法贤笆,與之前一樣蝇棉,注重原理方面,不會在算術(shù)上多做糾結(jié)芥永,以方便快速理解該算法
什么是 LFM篡殷?
一種基于矩陣分解的用來預(yù)測用戶對物品興趣度的推薦算法
這里大概只是我自己的理解,其具體定義埋涧,還真沒找到板辽。。棘催。
LFM 原理
在談LFM前劲弦,我們先來看下這么一種大白話推薦方法:
- 假設(shè)我們知道用戶A對于帶有 喜劇,動漫標(biāo)簽的電影感興趣程度分別是 0.8 和 0.9
- 現(xiàn)在我們有一部電影 《熊出沒》醇坝,其對應(yīng)標(biāo)簽 喜劇邑跪,動漫 的符合程度分別是 0.85 和 0.95
- 那么我們就可以推測 用戶A 對 《熊出沒》的喜歡程度是
R = 0.8 * 0.85 + 0.9 * 0.95 = 1.535
這種根據(jù) 用戶 和 物品 之間對應(yīng)的分類權(quán)重來衡量 用戶 對 物品 喜歡程度的方式就是 LFM 的原型
上面這種方式推薦方式有個(gè)問題就在于,如何給用戶打上合適的標(biāo)簽?zāi)兀坑秩绾谓o 物品 分好合適的類呢画畅?我們知道砸琅,這種任務(wù)是很難的。轴踱。症脂。至于為什么難,請自行腦補(bǔ)淫僻。诱篷。。哈哈雳灵,也正是因?yàn)榉诸惖睦щy棕所,所以才有了我們的 LFM 算法,我們完全可以從 用戶 對 物品 產(chǎn)生的行為细办,來實(shí)現(xiàn)對 物品 和 用戶的 自動分類橙凳;
-
我們收集到的數(shù)據(jù)蕾殴,一般都是 用戶 對 物品的 打分笑撞;
user item1 item2 item3 A 2 3 0 B 3 4 1 C 0 3 5 現(xiàn)在我們假設(shè)有 K 個(gè)分類,然后就可以讓 LFM 幫我們把 用戶 和 物品 進(jìn)行自動分到這 K 個(gè)類中
-
那么怎么分呢钓觉?
我們以 用戶A 和 item1 為例茴肥,從數(shù)據(jù)上我們知道 用戶A 對 item1 的打分是 2
假設(shè) 用戶A 對分類的喜歡程度為
假設(shè) item1 對分類的符合程度為
那么我們就可以推測 用戶A 對 item1 的打分 ps
真實(shí)打分 2 和 我們預(yù)測的打分 ps 越接近,我們則認(rèn)為我們的分類越可靠ok荡灾!上面應(yīng)該還是很好看懂的瓤狐。。批幌。我們可以將上面的公式泛化一下就可以得到 用戶u 對于 物品w 的打分的預(yù)測公式:
其中:
: 用戶u 對于 物品w 的預(yù)測打分
:用戶u 喜歡 分類
的程度
:物品w 對分類
的符合程度
:分類數(shù)目
這里我們假設(shè) 用戶u 對于 物品w 的真實(shí)打分為
,那么衡量 真實(shí)打分 和 預(yù)測打分 的差距就可以用他們的 平方和的大小础锐,即可得下面公式
當(dāng)然為了模型得泛化能力,可能需要再加一些正則化的尾巴荧缘。皆警。。為了加快計(jì)算截粗,可能還需要將公式做一些向量化處理信姓。。绸罗。等等一些機(jī)器學(xué)習(xí)方面通用規(guī)則就不一一提了意推,這里主要還是講解 LFM 的原理為主。最后就是一個(gè)
梯度下降法
求解的問題了,將上面的公式作為我們的目標(biāo)函數(shù)珊蟀,通過梯度下降法就可以求出 用戶對每個(gè)分類的喜好程度 以及 物品對于分類的符合程度菊值,即公式中的和
,這也就是說,LFM 最后就是 給每個(gè)用戶 和 物品 都進(jìn)行了分類腻窒,盡管這個(gè)分類你并不知道他叫什么略步。。定页。趟薄。這也正是 隱語義的 含義了。
ok典徊,原理方面就說到這里了杭煎,文中公式主要是為了理解而寫的,很多地方不是很標(biāo)準(zhǔn)卒落,更不能作為算法的實(shí)現(xiàn)來用羡铲,如果你想要標(biāo)準(zhǔn)的公式,相信隨便搜一搜就可以找到了儡毕!
LFM的優(yōu)劣勢
- 從 LFM 的原型上就知道也切,該算法具有比較好的理論基礎(chǔ)。這種做法很符合我們的思維方式
- 非常節(jié)省空間腰湾,比較我們前面講到的協(xié)同過濾算法,在用戶 和 物品 數(shù)量都很大的情況下雷恃,LFM 無疑是可以節(jié)省大量空間的。
- 計(jì)算復(fù)雜度上略高于 協(xié)同過濾费坊,但是還是在一個(gè)量級
- LFM 不適合做實(shí)時(shí)推薦算法倒槐,因?yàn)樗荒茴A(yù)測 用戶對物品的打分,如果單一的LFM推薦附井,無疑將要多所有物品進(jìn)行一次打分才能得出哪些物品需要推薦讨越,想當(dāng)然的我們就知道,這個(gè)肯定不是一個(gè)短時(shí)間能做到的任務(wù)永毅,而相對的把跨, 用 LFM 來做推薦系統(tǒng)的精排部分倒是挺合適的。
- 不具備較好的解釋性沼死,雖然看起來是分類了着逐,但是其實(shí)這些分類是什么,還是很難說的漫雕。不過就我實(shí)際來看滨嘱,其分類很多時(shí)候還是具有不錯(cuò)的解釋性的。反正你一眼大概也能看出浸间,每個(gè)分類的屬性太雨,但是確實(shí)會有一些很難解釋明白
ok,就到這里啦魁蒜,還是比較簡單的一種推薦算法囊扳,嗯吩翻,應(yīng)該說,原理比較簡單的算法锥咸。狭瞎。。