天天看點

Review: Model User Exposure in Recommender

簡介

對于解決implicit data recommendation的問題,最主要要難點是,user-item matrix隻有0-1的資訊,并且我們inference user preference的時候,我們必須要用到0的資訊。但是我們不知道數值為0的item到底是真的使用者不喜歡/不點選,還是這個item壓根就沒有被沒有被推薦給使用者。很多老的方法沒有考慮這點,單純的假設所有0的資訊代表物品被推薦了但是使用者不喜歡,或者目前很多已有的方法,downweight這些這些的資料的影響。

但是我們還是不知道不清楚這部分0的資訊。到底是使用者真的不喜歡使用者根本沒看見這些物品?

方法

作者從一個新的角度出發,在原有的MF基礎上增加了一層latent exposure v

variable來對物品有沒有被exposed to user模組化,來幫助更好地了解0這部分資訊的來源,例如:為什麼這些資料沒有被點選?到底是真不喜歡還是沒有被暴露給使用者?

原有的MF是由user-peferences和item-attribues兩個laten factors組成, 他們和Exposure latent variable來共影響user-item裡面最終的y值。下面重點介紹exposure model的部分。

當exposure variable a=0的時候,意味着目前的物品根本沒有暴露給, 是以這個物品在user-tem的matrix裡面的值一定是0, 因為user根本都沒見過這個物品。

當a=1的時候,意味着目前的物品已經被暴露給了使用者,那麼使用者如果喜歡的話,user-iem matrix所儲存的值為1,如果不喜歡的話,user-item matrix所儲存的值為0。

公式介紹

θ u ∼ N ( 0 , λ θ − 1 I K ) \theta_u \sim N(0, \lambda^{-1}_{\theta}I_K) θu​∼N(0,λθ−1​IK​)

β i ∼ N ( 0 , λ β − 1 I K ) \beta_i \sim N(0, \lambda^{-1}_{\beta}I_K) βi​∼N(0,λβ−1​IK​)

a u i ∼ B e r n o u l l i ( u u i ) a_{ui} \sim Bernoulli(u_{ui}) aui​∼Bernoulli(uui​)

y u i ∣ a u i = 1 ∼ N ( θ T β i , λ y − 1 ) y_{ui}|a_{ui} = 1 \sim N(\theta^{T}\beta_i, \lambda^{-1}_y) yui​∣aui​=1∼N(θTβi​,λy−1​)

y u i ∣ a u i = 0 ∼ σ 0 y_{ui}|a_{ui} = 0 \sim \sigma_0 yui​∣aui​=0∼σ0​

The joint probability of exposures and clicks for user u and item I

l o g p ( a u i , y u i ∣ u u i , θ u , β i , λ y − 1 ) = l o g B e r n o u l l i ( a u i ∣ u u i ) + a u i l o g N ( y u i ∣ θ u T β i , λ y − 1 ) + ( 1 − a u i ) l o g I [ y u i = 0 ] \begin{aligned} logp(a_{ui}, y_{ui}|u_{ui}, \theta_u, \beta_i, \lambda^{-1}_y) & = logBernoulli(a_{ui}|u_{ui}) + a_{ui}logN(y_{ui}|\theta^T_u \beta_i, \lambda^{-1}_y)\\ &+(1-a_{ui})logI[y_{ui}=0] \end{aligned} logp(aui​,yui​∣uui​,θu​,βi​,λy−1​)​=logBernoulli(aui​∣uui​)+aui​logN(yui​∣θuT​βi​,λy−1​)+(1−aui​)logI[yui​=0]​

最簡單的裂解:

當預測的使用者對物品的喜好程度高的時候,通過觀察 N ( y u i = 0 ∣ θ T β i , λ − 1 ) N(y_{ui}=0|\theta^T \beta_i, \lambda^{-1}) N(yui​=0∣θTβi​,λ−1)的值會很小,最終會降低a=1的可能。是以最後的joint probability l o g p ( a = 1 , y = 0 ) 會 很 小 logp(a=1, y=0)會很小 logp(a=1,y=0)會很小 (~log p(a=1|y=0)),意味着物品暴露給使用者的可能會很小,是以這部分0應該了解成item還沒有被暴露給使用者。

當y>0時, 使用者一定點選/喜歡這個物品,是以物品一定被暴露過給使用者。

當y=0時,這個時候 a u i a_{ui} aui​是隐藏變量。

延伸

作者發現,如果我們對latent exposure variable的prior做一些改動,改動後的模型會更好的幫助模型擷取0這部分的資訊。例如在餐館的推薦上或者是文檔推薦中,如果我們把位置資訊或者文檔topic的資訊加入進模型,會得到更好的效果。

甚者有兩篇基于這個理論,把social network的資訊加入到模型中能過更好地給出推薦資訊。如果有興趣可以讀下面這兩篇

小結

data 全部為implicit data 不包括任何的 explicit data

這裡用到的metric有:[email protected], [email protected], [email protected]

[1]Modeling User Exposure in Recommendation

[2]Collaborative Filtering with Social Exposure: A Modular Approach to Social Recommendation

[3]Modeling Users’ Exposure with Social Knowledge Influence and Consumption Influence for Recommendation

繼續閱讀