[0024] 为了进一步理解本发明,下面结合具体实施方式对本发明提供的一种基于多兴趣短期优先模型的会话推荐方法进行具体描述,但本发明并不限于此,该领域技术人员在本发明核心指导思想下做出的非本质改进和调整,仍然属于本发明的保护范围。
[0025] 会话(session)指一段时间内用户交互的物品序列,一般通过用户行为之间的时间间隔进行划分。比如,超过三十分钟的间隔就认为是当前会话结束,下一个会话开始。会话推荐方法(session‑based recommendation)是指基于当前会话中的物品序列,推荐用户下一个感兴趣的物品,会话推荐方法可以有效地捕捉用户动态变化的兴趣。用户在一个会话中会有特定的一些目的,而传统的会话推荐方法认为用户在一个会话内只有一个目的或者兴趣。这样的假设和实际情况不符,用户往往在一个时间段内会有多个兴趣,比如,在某店铺中同时浏览了羽绒服和裤子。此时,用一个向量来表示用户的兴趣就不够准确。所以,本方法从用户会话中的物品序列中抽取出用户多兴趣表征,本方法是一种基于多兴趣的会话推荐方法。
[0026] Liu等人在2018年提出短期注意优先模型(STAMP)。在该篇论文中,作者认为用户短期/当前兴趣和用户长期兴趣同样重要。这里,当前兴趣采用用户最后点击的物品(last‑click)表征来表示。而用户的长期兴趣即当前会话表征,该方法采用基于最后点击物品的注意力机制(short‑term attention)来从会话中抽取用户长期兴趣。最后,作者结合用户的短期兴趣和用户的长期兴趣来进行物品推荐。实验证明,最后点击的物品(last‑click)对推荐准确度的提升效果明显。但是该方法没有考虑到用户在一个会话中会存在多个兴趣,直接用最后一个点击的物品来表示用户的短期兴趣,使得用户的短期兴趣和长期兴趣主要表示一种兴趣,和事实场景不符,极大地降低了推荐的准确度。在单兴趣推荐场景中,用户最后点击物品(last‑click)可以直接用序列最后一个物品表示,那么在多兴趣场景中,会话中不同兴趣的最后点击物品应该如何得到,这是本方法的重点和创新点。
[0027] 本方法的问题定义为基于当前会话中的物品序列,预测用户在当前会话中下一个感兴趣的物品。用户的当前会话可以表示为ST={x1,x2,…,xτ,…,xt},其中,xτ代表用户交互的第τ个物品。此时,推荐下一个感兴趣物品的概率为P(xt11∣ST)。且ST的向量表征为{x1,x2,…,xτ,…,xt},其中 d是物品向量表征的长度。另外,会话序列中的物品具有时间先后性,物品的时间属性特征为st={1,2,…,τ,…,t}。一种基于多兴趣短期优先模型的会话推荐方法的向前传播(forward propagation)部分主要由三个部分组成,如图2所示。第一部分是根据用户会话序列,得到用户多兴趣表征。第二部分是抽取不同兴趣空间下,最后一个点击的物品。第三部分是根据用户多兴趣表征和不同兴趣空间下最后一个点击物品,推荐用户下一个点击的物品。
[0028] 如图1所示,按照本发明的一个实施例,本方法包括如下步骤:
[0029] S100,根据用户会话序列,得到用户多兴趣表征。用户当前交互的会话可以表示为ST={x1,x2,…,xτ,…,xt},其中,xτ代表用户交互的第τ个物品,T表示当前会话的时间段下标,且ST的向量表征为{x1,x2,…,xτ,…,xt},其中 d是物品向量表征的长度。采用胶囊网络从物品序列中抽取出用户多兴趣,伪代码为:
[0030]
[0031]
[0032] 其中, 为会话中第i个物品向量表征, 是第j个兴趣的映射矩阵。用户兴趣的个数参数为M,本方法中M取值为3。通过兴趣相关的映射向量(interest‑specific projection),可以从物品向量xi中抽取出不同兴趣空间下的向量表征
方法是胶囊网络中的动态路由部分,输入参数 是第i个物品向量表
征xi映射到第j个兴趣空间的向量表征,输入参数r是动态路由算法的迭代次数,本实验中迭代次数r设置为3。 方法的输出参数vj代表用户多兴趣向量表征。bij是第i
个物品向量表征到第j个兴趣的连接系数,cij是参数bij归一化后的连接参数,表示第i个物品是第j个兴趣的可能性,且对于一个物品xi,不同兴趣的可能性和为1,也就是∑jcij=1。
squash是胶囊网络中常用的squash向量激活函数,公式为
[0033] S200,抽取不同兴趣空间下,最后一个点击的物品。会话中的物品为ST={x1,x2,…,xτ,…,xt},且物品的时间属性特征为st={1,2,…,τ,…,t}。对于任一个兴趣空间下,用户最后点击物品(last‑click)的下标为:
[0034] idx=argmaxi(δ(ci≥∈)·sti)
[0035] 其中,不同兴趣空间下的计算公式相同,所以省略了兴趣下标j。δ(ci≥∈)表示如果ci≥∈,那么δ=1,否则δ=0。∈是一个阈值参数,为了过滤掉和该兴趣不太相关的物品,本实验中设置∈=0.2。sti表示第i个物品的时间,越早发生的交互行为,时间特征sti越小。argmaxi()函数是获得值δ(ci≥∈)·sti最大的物品的下标。从公式中可以看出,δ(ci≥∈)的作用是得到和当前兴趣兴趣相关的物品候选集,sti是从候选集中找出最近发生的物品,也就是最后点击物品。因此,该方法巧妙地得到了任一兴趣空间下,用户最后点击物品的下标idx,也就得到最后一个点击的物品向量表征h=xidx。
[0036] S300,根据用户多兴趣表征和不同兴趣空间下最后一个点击物品,推荐用户下一个点击的物品。将候选物品集合中的任一物品xτ的向量表征xτ映射到多空间下,然后和不同空间的用户长期兴趣vj和短信兴趣hj进行匹配,计算点击概率
[0037] uj|τ=Wjxτ
[0038]
[0039] 其中, 是第j个兴趣的映射矩阵,和胶囊网络中的兴趣映射矩阵参数为同一个参数。σ是sigmoid函数。 代表物品xτ成为下一个交互物品的可能性。符号<>表示三个向量相乘,也就是 且 同时根据 的对数似然函数值,计算损失函数:
[0040]
[0041] 其中,yτ代表xτ的one‑hot编码, 函数用梯度下降法来最优化。|V|表示物品候选集V的大小。
[0042] 上述对实施例的描述是为方便于本技术领域的普通技术人员能理解和应用本发明。熟悉本领域技术的人员显然可以容易地对上述实施例做出各种修改,并把在此说明的一般原理应用到其他实施例中而不必经过创造性的劳动。因此,本发明不限于上述实施例,本领域技术人员根据本发明的揭示,对于本发明做出的改进和修改都应该在本发明的保护范围之内。