一种考虑用户多兴趣以及社交影响的会话推荐方法

文档序号:25280621发布日期:2021-06-01 17:27阅读:125来源:国知局
一种考虑用户多兴趣以及社交影响的会话推荐方法

本发明属于互联网服务技术领域,尤其是涉及一种考虑用户多兴趣以及社交影响的会话推荐方法。



背景技术:

随着移动互联网时代的到来和发展,在线平台上积累了越来越多的用户行为数据。通常,用户通过搜索功能从平台中找到自己感兴趣的物品,但是,随着物品数量的增多,用户从海量物品中找到合适的物品变得越来越困难。因此,推荐系统变得非常重要,推荐系统从海量数据中找出用户最感兴趣的物品并推荐给用户,可以极大地提升用户的满意度和公司的商业价值。现在,甚至有很多在线商业平台弱化了搜索功能,而主要依赖推荐功能,极大地降低了用户使用门槛。例如,抖音、今日头条等。这些平台上的推荐系统通常面临以下两个挑战。

第一,用户的兴趣是动态变化的且多样的。例如,用户在一段时间内可能对体育物品和休闲服饰感兴趣,在另一段时间内对装饰物品和早餐类食品感兴趣。第二,用户经常会分享物品给在线平台上的好友,且用户的兴趣倾向会受到好友的影响。并且不同的好友对用户的社交影响是不同的,这里的不同体现在两点:第一点是好友对用户的影响程度不同,有些好友是比较信赖的,有些好友是比较生疏的。第二点是不同好友和目标用户的共同兴趣不同。例如,有些朋友是体育方面上有共同兴趣,有些朋友是音乐方面上有共同兴趣。本方法是一种考虑用户多兴趣以及社交影响的会话(session)推荐方法,同时解决以上两种挑战。

现存的推荐方法中,要么忽视用户的兴趣是多样的,要么忽视社交影响。例如,阿里的周国睿等人在基于深度兴趣演变网络进行点击率预测方法(dien)中考虑了用户的多兴趣。北大的宋卫平等人在基于动态图注意力机制进行会话社交推荐方法中考虑了朋友对用户的社交影响。本方法通过多兴趣抽取模块从用户当前会话中抽取出用户的多兴趣,且通过特定兴趣社交影响抽取模块计算朋友对用户多兴趣的影响。这里,会话指代一段时间内的用户交互的物品序列,一般通过用户行为之间的时间间隔进行划分。也有一些方法将一天或者几天或者一周内的交互行为作为一个会话。



技术实现要素:

本方法的问题定义为基于用户当前会话(session)中的物品序列和朋友上一个会话中的物品序列,预测用户对目标物品的点击率。这里,会话指代一段时间内的用户交互的物品序列,一般通过用户行为之间的时间间隔进行划分。也有一些方法将一天或者几天或者一周内的交互行为作为一个会话。任何一个会话可以表示为s={x1,x2,…,xτ,…,xt},其中,xτ代表用户交互的第τ个物品。会话的向量表征为{x1,x2,…,xτ,…,xt},其中d是物品向量表征的长度。目标用户u当前会话为st,第k个朋友的上一个会话表示为且目标用户的所有朋友的上一个会话表示为其中n(u)是目标用户u的朋友集合。此时,推荐目标物品xnew的概率为p(xnew∣st,sn(u))。

在线平台上的推荐系统通常面临以下两个挑战:第一,用户的兴趣是动态变化的且多样的。例如,用户在一段时间内可能对体育物品和休闲服饰感兴趣,在另一段时间内对装饰物品和早餐类食品感兴趣。第二,用户经常会分享物品给在线平台上的好友,且用户的兴趣倾向会受到好友的影响。并且不同的好友对用户的社交影响是不同的,这里的不同体现在两点:第一点是好友对用户的影响程度不同,有些好友是比较信赖的,有些好友是比较生疏的。第二点是不同好友的兴趣不同。例如,有些朋友是体育方面上有共同兴趣,有些朋友是音乐方面上有共同兴趣。为了解决以上两种挑战,本发明采用以下技术方案:

一种考虑用户多兴趣以及社交影响的会话推荐方法,包括以下步骤:

根据目标用户当前会话中的物品序列,得到用户当前多兴趣表征。用户当前交互的会话st可以表示为st={x1,x2,…,xτ,…,xt},其中,xτ代表用户交互的第τ个物品,t表示当前会话的时间段下标,且st的向量表征为{x1,x2,…,xτ,…,xt},其中d是物品向量表征的长度。采用胶囊网络从物品序列中抽取出用户多兴趣,伪代码为:

其中,为会话中第i个物品向量表征,是第j个兴趣的映射矩阵。用户兴趣的个数参数为m。通过兴趣相关的映射向量(interest-specificprojection),可以从物品向量xi中抽取出不同兴趣空间下的向量表征方法是胶囊网络中的动态路由部分,输入参数是第i个物品向量表征xi映射到第j个兴趣空间的向量表征,输入参数r是动态路由算法的迭代次数。方法的输出参数vj代表用户多兴趣向量表征。bij是第i个物品向量表征到第j个兴趣的连接系数,cij是参数bij归一化后的连接参数,表示第i个物品是第j个兴趣的可能性,且对于一个物品xi,不同兴趣的可能性和为1,也就是∑jcij=1。squash是胶囊网络中常用的squash向量激活函数,公式为

根据社交网络,得到目标用户朋友的主要兴趣表征。目标用户第k个朋友的上一个会话表示为同样,可以表示为向量表征为{x1,x2,…,xτ,…,xl},即会话中的物品个数。朋友的兴趣也具有多样性,在本方法中只关注朋友的主要兴趣,避免在信息传递时,引入过多的噪音(noise)。本方法采用注意力机制(attentionmechanism)抽取出朋友的主要兴趣(maininterest)表征。

ατ=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个兴趣的社交影响。为向量连接操作。其中,是模型需要训练的参数,而σ是sigmoid函数。对于不同的目标物品,模型关注用户的不同兴趣。

构建损失函数,训练模型参数。通过用户对目标物品的点击率预测值计算预测值和真实值y之间的误差,进而使用误差来更新模型参数。我们采用交叉熵损失函数来指导模型参数的更新过程:

其中,y∈{0,1}是真实值,代表用户是否点击了目标物品。σ是sigmoid函数。我们采用adam优化器更新模型参数。

本发明的有益技术效果如下:

(1)本发明结合目标用户的多兴趣和朋友对目标用户多兴趣的社交影响,进行更准确的推荐。

(2)本发明在计算朋友对目标用户的社交影响时,既考虑到好友的重要性,又考虑到好友之间的兴趣不同,进行更细致化的建模。

附图说明

图1为本发明一种考虑用户多兴趣以及社交影响的会话推荐方法的流程示意图;

图2为本发明一种考虑用户多兴趣以及社交影响的会话推荐方法的模型框架图。

具体实施方式

为了进一步理解本发明,下面结合具体实施方式对本发明提供的一种考虑用户多兴趣以及社交影响的会话推荐方法进行具体描述,但本发明并不限于此,该领域技术人员在本发明核心指导思想下做出的非本质改进和调整,仍然属于本发明的保护范围。

本方法的问题定义为基于用户当前会话(session)中的物品序列和朋友上一个会话中的物品序列,预测用户对目标物品的点击率。任何一个会话可以表示为s={x1,x2,…,xτ,…,xt},其中,xτ代表用户交互的第τ个物品。会话的向量表征为{x1,x2,…,xτ,…,xt},其中d是物品向量表征的长度。目标用户u当前会话为sst,第k个朋友的上一个会话表示为且目标用户的所有朋友的上一个会话表示为其中n(u)是目标用户u的朋友集合。此时,推荐目标物品xnew的概率为p(xnew∣s4,sn(u))。本方法采用的数据是kuaishou的短视频公开数据集合,包含用户的点击数据和未点击数据。其中,未点击数据代表平台展示短视频给用户,但是用户没有点击,即负样本。用户的点击数据为正样本。

一种考虑用户多兴趣以及社交影响的会话推荐方法的向前传播(forwardpropagation)部分主要由四个部分组成,如图2所示。第一部分是根据目标用户当前会话中的物品序列,得到用户当前多兴趣表征。第二部分是根据社交网络,得到目标用户朋友的主要兴趣表征。第三部分是计算朋友对目标用户的社交影响。第四部分是结合朋友对目标用户的社交影响和用户的多兴趣表征,预测用户对目标物品的点击率。

如图1所示,按照本发明的一个实施例,本方法包括如下步骤:

s100,根根目标用户当前会话中的物品序列,得到用户当前多兴趣表征。用户当前交互的会话st可以表示为st={x1,x2,…,xτ,…,xt},其中,xτ代表用户交互的第τ个物品,t表示当前会话的时间段下标,且st的向量表征为{x1,x2,…,xτ,…,xt},其中d是物品向量表征的长度。采用胶囊网络从物品序列中抽取出用户多兴趣,伪代码为:

其中,为会话中第i个物品向量表征,是第j个兴趣的映射矩阵。用户兴趣的个数参数为m,本方法中m取值为5。通过兴趣相关的映射向量(interest-specificprojection),可以从物品向量xi中抽取出不同兴趣空间下的向量表征方法是胶囊网络中的动态路由部分,输入参数是第i个物品向量表征xi映射到第j个兴趣空间的向量表征,输入参数r是动态路由算法的迭代次数,本实验中迭代次数r设置为2。方法的输出参数vj代表用户多兴趣向量表征。bij是第i个物品向量表征到第j个兴趣的连接系数,cij是参数bij归一化后的连接参数,表示第i个物品是第j个兴趣的可能性,且对于一个物品xi,不同兴趣的可能性和为1,也就是∑jcij=1。squash是胶囊网络中常用的squash向量激活函数,公式为

s200,根据社交网络,得到目标用户朋友的主要兴趣表征。目标用户第k个朋友的上一个会话表示为同样,可以表示为向量表征为{x1,x2,…,xτ,…,xl},即会话中的物品个数。朋友的兴趣也具有多样性,在本方法中只关注朋友的主要兴趣,避免在信息传递时,引入过多的噪音(noise)。本方法采用注意力机制(attentionmechanism)抽取出朋友的主要兴趣(maininterest)表征。

ατ=wασ(wggfk+wxxτ)

其中,xτ是会话中物品xτ的向量表征,表示会话中物品序列的长度。是模型训练参数,σ是sigmoid函数。ατ代表物品xτ的重要程度,最后得到的即是朋友fk的主要兴趣。本模块可以自适应地关注更重要的物品,从而得到朋友的主要兴趣。

s300,计算朋友对目标用户的社交影响。目标用户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对于目标用户的重要程度,朋友fkk重要程度取决于朋友fkk主要兴趣和目标用户中最匹配的兴趣之间的相似度。最终,朋友fkk对目标用户的不同兴趣的影响为votekj=max(akj)·attnkj,且所有朋友对目标用户的不同兴趣的社交影响即为fj。

s400,结合朋友对目标用户的社交影响和用户的多兴趣表征,预测用户对目标物品的点击率。

其中,vj为目标用户当前会话中抽取出的第j个兴趣表征,fj为朋友对目标用户第j个兴趣的社交影响。为向量连接操作。其中,是模型需要训练的参数,而σ是sigmoid函数。对于不同的目标物品,模型关注用户的不同兴趣。

s500,构建损失函数,训练模型参数。通过用户对目标物品的点击率预测值计算预测值和真实值y之间的误差,进而使用误差来更新模型参数。我们采用交叉熵损失函数来指导模型参数的更新过程:

其中,y∈{0,1}是真实值,代表用户是否点击了目标物品。σ是sigmoid函数。我们采用adam优化器更新模型参数。

上述对实施例的描述是为方便于本技术领域的普通技术人员能理解和应用本发明。熟悉本领域技术的人员显然可以容易地对上述实施例做出各种修改,并把在此说明的一般原理应用到其他实施例中而不必经过创造性的劳动。因此,本发明不限于上述实施例,本领域技术人员根据本发明的揭示,对于本发明做出的改进和修改都应该在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1