貝葉斯個性化推薦

Key Point1:

能夠使用貝葉斯做推薦排序的假設有兩個:

1.?用戶U對商品I_iI_j的偏好和其他用戶無關(即用戶間的獨立性)

2. 用戶U對商品I_iI_j的偏好和該用戶喜歡的其他商品無關(即商品間的獨立性)

這兩種關系滿足完全性、反對稱性和傳遞性:

完整性:\forall i,j \in I: i \neq j \Rightarrow i >_u j\; \cup\;  j>_u i

反對稱性:\forall i,j \in I: i >_u j\; \cap\;  j>_u i \Rightarrow i=j

傳遞性:\forall i,j,k \in I: i >_u j\; \cap\;  j>_u k \Rightarrow i>_uk

Key Point2:

類似LFM(隱語義模型),BPR將用戶U和物品I的排序矩陣X分解成用戶矩陣W(\vert U \vert \times k )和物品矩陣H(\vert I \vert \times k),滿足\bar   {X}  =W \times H^T,k為矩陣\bar   X的秩

BPR針對每個用戶感興趣的商品進行排序,因此對于任意一個用戶u和商品i,期望如下:

\overline{x}_{ui} = w_u \bullet h_i = \sum\limits_{f=1}^kw_{uf}h_{if}

BPR最終目標:

找到最合適的W和H,使得\bar   X最接近X,看似類似funkSVD,但推導過程不盡相同

求解過程

優化目標:P( \theta \vert >_u )根據貝葉斯公式有:P(\theta|>_u) = \frac{P(>_u|\theta)P(\theta)}{P(>_u)}

根據用戶物品排序和其他用戶無關的假設,有:

P(\theta|>_u) \propto P(>_u|\theta)P(\theta)

很顯然問題轉化成了分別求解和數據集無關的P(\theta)以及 和數據集有關的P(>_u \vert \theta)

P(>_u \vert \theta)的求解過程:

根據用戶對i和j喜好的獨立性,將后者轉化成和樣本(u,i,j)有關的公式:

\prod_{u \in U}P(>_u|\theta) = \prod_{(u,i,j) \in (U \times I \times I)}P(i >_u j|\theta)^{\delta((u,i,j) \in D)}(1-P(i >_u j|\theta))^{\delta((u,j,i) \not\in D) }

其中\delta (x)\in [0,1],根據完整性和反對稱性的性質,上式可以化簡成:

\prod_{u \in U}P(>_u|\theta) = \prod_{(u,i,j) \in D}P(i >_u j|\theta)①,

其中,P(i >_u j|\theta) = \sigma(\overline{x}_{uij}(\theta))\sigma (x)為sigmoid函數,一是為了方便計算,二是sigmoid函數完美的滿足了完整性、反對稱性和傳遞性

至此,我們還需要知道的是\overline{x}_{uij}(\theta)如何求得,這個式子需要滿足i>_uj\overline{x}_{uij}(\theta)>0j>_ui\overline{x}_{uij}(\theta)<0,最直觀的方式就是表示成下式:

\overline{x}_{uij} = \overline{x}_{ui} - \overline{x}_{uj}\overline{x}_{ui},\overline{x}_{uj}\overline X(u,i)和\overline X(u,j)的值,將此式帶入①中,得到:

\prod_{u \in U}P(>_u|\theta) = \prod_{(u,i,j) \in D} \sigma(\overline{x}_{ui} - \overline{x}_{uj})

P(\theta)的求解過程:

也使用貝葉斯定理的假設:即P(\theta)服從正態分布:P(\theta) \sim N(0, \lambda_{\theta}I)

還是根據①式,顯然需要取對數后再計算,而對于正態分布來說,其對數和\vert \vert \theta \vert \vert^2成正比:

lnP(\theta) = \lambda||\theta||^2

綜合P(\theta),P(>_u \vert \theta)的求解過程:

ln\;P(\theta|>_u) \propto ln\;P(>_u|\theta)P(\theta)  = \sum\limits_{(u,i,j) \in D}ln\sigma(\overline{x}_{ui} - \overline{x}_{uj}) +\frac{1}{2}  \lambda||\theta||^2\;

用梯度上升法求解,對上式求相對于\theta的偏導:

\frac{\partial ln\;P(\theta|>_u)}{\partial \theta} \propto \sum\limits_{(u,i,j) \in D} \frac{1}{1+e^{\overline{x}_{ui} - \overline{x}_{uj}}}\frac{\partial (\overline{x}_{ui} - \overline{x}_{uj})}{\partial \theta} + \lambda \theta,其中:

\overline{x}_{ui} - \overline{x}_{uj} = \sum\limits_{f=1}^kw_{uf}h_{if} - \sum\limits_{f=1}^kw_{uf}h_{jf}

\theta轉化為具體的參數就是w_{uf},h_{if},h_{jf}(這里對理解很關鍵,也是不同于LFM的地方)!

\frac{\partial (\overline{x}_{ui} - \overline{x}_{uj})}{\partial \theta} = \begin{cases} (h_{if}-h_{jf})& {if\; \theta = w_{uf}}\\ w_{uf}& {if\;\theta = h_{if}} \\ -w_{uf}& {if\;\theta = h_{jf}}\end{cases}

總結:

????BPR是基于矩陣分解的一種排序算法,但是和funkSVD之類的算法比,它不是做全局的評分優化,而是針對每一個用戶自己的商品喜好分貝做排序優化。因此在迭代優化的思路上完全不同。同時對于訓練集的要求也是不一樣的,funkSVD只需要用戶物品對應評分數據二元組做訓練集,而BPR則需要用戶對商品的喜好排序三元組做訓練集。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,345評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,494評論 3 416
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,283評論 0 374
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,953評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,714評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,186評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,255評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,410評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,940評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,776評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,976評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,518評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,210評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,642評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,878評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,654評論 3 391
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,958評論 2 373

推薦閱讀更多精彩內容