这是一篇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} $
实验结果
看实验效果感觉还可以。就是建模比较复杂,期待源码。