徐志远

推荐算法工程师的学习日常

0%

Content-aware Neural Hashing for Cold-start Recommendation

这是一篇sigir2020推荐系统的文章。

论文背景:

通过学习item的hashcode表示来进行冷启动。基于协同过滤和内容的推荐系统是很主流的方法。

协同过滤的缺点:

对于未见过的item,标准的协同过滤不能学习有效表示。所以基于内容的推荐系统可以补充标准协同过滤的方法。

基于内容的推荐系统的缺点

基于内容(content-aware)hashcode表示个生成和标准item的生成不同,是不必要的并且会限制其泛化性能。

NeuHash-CF


NeuHash-CF有两个encoder来生成item和user的hashcode, 它们连接在变分自编码模型中. 所有的item code都统一生成,不管是否曾经见过。

Variational AutoEncoder

$ p(u) = \prod_{i \in I_u} p(R_{u,i}) $

$ p(i) = p(c_i) + \prod_{u \in U_i } {p(R_{u,i})} $

$ p(c_i) = \prod_{w\in W_{c_i} } p(w) $

$ logp(R_{u,i}) = log \Sigma_{z_i,z_u \in \{ -1,1 \}^m }p(R_{u,i}|z_i,z_u)p(z_i)p(z_u) $

$ logp(c_i) = log \Sigma_{z_i \in \{ -1,1\}^m } p(c_i |z_i)p(z_i) $

上面的公式把content-based推荐和cf推荐进行联合建模。后续的hashcode采样和em优化详细可以看文章。

Encoder Function

item encoding:
$ l_1 = ReLU(W_1(c_i \odot w_{imp} ) + b_1) $

$ l_2 = ReLU(W_2l_1 + b_2) $

item采样概率: $ q_{\phi}(c_i) = \sigma_{(W_3l_3+b_3)} $

user和item类似的情况。

Decoder Function

User-item rating decoding
Item content decoding
Noise infusion for robustness

Combined loss function

$ L = L_{rating} + \alpha L_{content} $

实验结果



看实验效果感觉还可以。就是建模比较复杂,期待源码。