1.一种考虑用户多兴趣以及社交影响的会话推荐方法,其特征在于:根据目标用户当前会话中的物品序列,得到用户当前多兴趣表征;用户当前交互的会话ST表示为ST={x1,x2,…,xτ,…,xt},其中,xτ代表用户交互的第τ个物品,T表示当前会话的时间段下标,且ST的向量表征为{x1,x2,…,xτ,…,xt},其中 d是物品向量表征的长度;采用胶囊网络从物品序列中抽取出用户多兴趣,第一步是从会话ST中的物品向量xi中抽取出不同兴趣空间下的向量表征 这里, 是第j个兴趣的映射矩阵,用户兴趣的个数参数为M;第二步是迭代r次以下过程,r是动态路由算法的迭代次数,得到用户多兴趣向量表征vj:
cij=exp(bij)/∑jexp(bij)vj=squash(sj)
其中, 是第i个物品向量表征xi映射到第j个兴趣空间的向量表;bij是第i个物品向量表征到第j个兴趣的连接系数,bij初始化为0,cij是系数bij归一化后的连接系数,表示第i个物品是第j个兴趣的可能性,且对于一个物品xi,不同兴趣的可能性和为1,也就是∑jcij=
1;sj将第j个兴趣空间下的 汇聚,并经过squash向量激活函数得到用户多兴趣向量表征vj;squash是胶囊网络中常用的squash向量激活函数,公式为根据社交网络,得到目标用户朋友的主要兴趣表征;目标用户第k个朋友的上一个会话表示为 同样, 表示为 向量表征为{x1,x2,…,xτ,…,xl},即会话 中的物品个数;本方法采用注意力机制抽取出朋友的主要兴趣表征,公式如下:
ατ=Wασ(Wggfk+Wxxτ)其中,xτ是会话 中物品xτ的向量表征, 表示会话 中物品序列的长度, 通过对会话 中物品向量求平均,得到用户的兴趣表征; 和 是模型训练参数,σ是sigmoid函数;ατ代表物品xτ的重要程度,最后得到的 即是朋友fk的主要兴趣; 相对于 进一步地给更重要的物品赋予更大的权重,从而得到朋友的主要兴趣;
计算朋友对目标用户的社交影响;目标用户u的朋友集合为N(u),在计算朋友对目标用户的社交影响时,既要考虑不同朋友的重要度,又要考虑不同朋友对目标用户的不同兴趣的影响;朋友集合N(u)对目标用户的兴趣vj的影响fj通过以下方法计算得到:votekj=maxj(akj)·attnkj其中, 是目标用户的第k个朋友fk的主要兴趣表征,vj是目标用户的第j个兴趣;akj表示第k个朋友fk的主要兴趣和目标用户的第j个兴趣的相似度; 是朋友的主要的单一兴趣,对目标用户的不同兴趣的社交影响应该差异化,因此用softmax函数对目标用户不同兴趣之间的相似度进行归一化,得到朋友fk对目标用户第j个兴趣的影响attnkj;此时,∑jattnkj=1,朋友fk对目标用户不同兴趣的影响之间具有竞争关系;并且进一步通过温度系+
数τ进行调节,当τ→0 ,朋友fk只对目标用户的一个兴趣产生影响;而当τ→∞,朋友fk只对目标用户的不同兴趣的作用趋于一致;attnkj没有考虑朋友的重要性,导致目标用户的所有朋友都对目标用户起很大作用,和事实不符;因此,用max(akj)来体现朋友fk对于目标用户的重要程度,朋友fk重要程度取决于朋友fk主要兴趣和目标用户中最匹配的兴趣之间的相似度;最终,朋友fk对目标用户的不同兴趣的影响为votekj=max(akj)·attnkj,且所有朋友对目标用户的不同兴趣的社交影响即为fj;
结合朋友对目标用户的社交影响和用户的多兴趣表征,预测用户对目标物品的点击率其中,vj为目标用户当前会话中抽取出的第j个兴趣表征,fj为朋友对目标用户第j个兴趣的社交影响, 为向量连接操作,将vj和fj进行向量连接,得到融合了社交影响的用户多兴趣表征pj;其中, 和 是模型需要训练的参数,而σ是sigmoid函数;xnew是目标物品的向量表征;Attention(pj,xnew)表示目标物品和用户不同兴趣的相关系数,将用户不同兴趣表征和相关系数相乘,得到用户相对于目标物品的向量表征vu;
构建损失函数,训练模型参数;通过用户对目标物品的点击率预测值 计算预测值 和真实值y之间的误差,进而使用误差来更新模型参数;我们采用交叉熵损失函数来指导模型参数的更新过程:
其中,y∈{0,1}是真实值,代表用户是否点击了目标物品;σ是sigmoid函数;我们采用Adam优化器更新模型参数。