本文从两个方面,即long- and short-term为用户的偏好建模。

(1)long-term: 传统的MF,用户表达p,物品表达q

(2)short-term: 又分为两个方面(为这部分设置了额外的物品表达m):individual level 和union level

       1)individual level: 通过用户最近访问过的n个物品的表达m够成的矩阵E,利用attention model构建一个新的表达e(向量)。

       2)union level:利用residual network (ResNet)得到多层相联系的表达,如from p^1 to p^2 to p^l, 其中l表示层数(Eq.4),本文认为最后一层的表达即为union level.

注意:这里用户利用ResNet不仅为用户设置了多层表达,即p^1,p^2,....也为物品矩阵E设置了多层表达,E^1,E^2,...相应的也就有了最近物品的多层表达m^1,m^2,...所以这里涉及了怎么把多层表达aggregate成最终表达的问题。解法如下:

E^l={m1^l,m2^l,...} -> e^l;

{e^1,e^2,...e^l} -> e_c (Eq.6: 意思是将所有E^l中的m_i^l加权求和,这样再同目标物品m_j相乘时,相当于在m_i * m_j前加个权重,这也是所谓的individula level)

ResNet(e_c) -> h_L (最后一层输出,union level)

最后,y_ui = p_u * q_i + e_c * m_i + h_L * m_i

=》这里值得学习的是:在求attention model中的weights时,不仅可以通过外部乘以一个向量(guided by a user representation)的形式,还可以直接把这个user representation同要乘的向量concatenate到一起,放到activate function当中,最后再乘以某个向量,如Eq(5)下面的那个。

 



留言

登录 请先登陆, 再留言!