[0042] 为了进一步理解本发明,下面结合具体实施方式对本发明提供的一种考虑重复购买行为的会话推荐方法进行具体描述,但本发明并不限于此,该领域技术人员在本发明核心指导思想下做出的非本质改进和调整,仍然属于本发明的保护范围。
[0043] 会话(session)指一段时间内的用户交互的物品序列,会话推荐任务是指基于当前会话中的物品序列,预测用户在当前会话中下一个感兴趣的物品。用户的当前会话可以表示为ST={x1,x2,…,xτ,…,xt},其中,xτ代表第τ个物品。预测用户在当前会话中下一个感兴趣的物品用数学语言可以表示为P(xt+1|ST),其中,P(xt+1|ST)表示基于用户的当前会话ST,用户下一个交互物品xt+1的概率。将用户行为序列划分成会话更符合用户行为规律,一般来讲,用户在一个会话中会有特定的目的。会话和会话之间会有一个较长时间间隔(time gap),如,淘宝将时间间隔设置为三十分钟。现在越来越多的方法,在基于会话推荐时,会同时将用户过去一段时间内的交互行为作为信息补充考虑进来,用于捕捉用户的长期兴趣,l l来提升推荐的准确度。此时,推荐物品的概率变成P(xt+1|ST,p),其中p表示用户的长期兴趣。
[0044] 传统的推荐方法主要包括三种。一种是一般的推荐系统,从用户和物品之间的历史交互数据中挖掘出用户和物品的静态关联,包括,协同过滤和矩阵分解等方法。这类方法将用户‑物品的交互关系输入到网络中,忽略了用户兴趣的动态变化。第二种是基于物品序列,推荐用户下一个交互的物品,叫做序列推荐方法。会话推荐方法就属于一种序列推荐方法,会话是指一段时间内的用户交互序列。最后一种方法是将前两种方法结合起来,同时对用户的静态的长期兴趣和动态的当前兴趣进行建模,然后再推荐用户下一个交互的物品。本方法在对用户兴趣建模时,同样是采取第三种方法。但是本方法最大的不同点是考虑到用户的重复消费行为。用户在在线平台上会有固定的习惯。比如,在电商平台上,用户经常会重复购买固定的商品;在音乐平台上,用户会经常重复听同一首歌曲。Ren等人提出了重复网络(RepeatNet)来解决重复消费推荐问题,但是该论文提出的解法和问题定义不符。重复网络在介绍(introduction)中提出用户存在重复消费行为,所以在推荐物品时应考虑到用户这一消费规律。但是在方法(method)中,推荐重复的物品是在当前会话中的物品序列中推荐,而用户在短时间内,也就是在一个会话内部重复购买相同的物品的可能性很低。并且该方法没有考虑到用户的长期兴趣,用户长期兴趣是偏向于静态的。如果用户在当前会话中的短期兴趣和用户的长期兴趣重复度很高,那么发生重复购买行为的概率较大。所以在模型中,判断推荐模式是重复模式还是探索模式,应该同时考虑用户的长期兴趣和用户的短期兴趣。其中,重复模式是指推荐用户历史购买过的物品,探索模式是指推荐用户从未购买过的商品。关于重复行为这个场景的论文或者方法不多,但是工业界已经有相关的应用。如,“淘宝”APP在订单页面会有“常购好货”的功能展示,从该用户历史购买商品中推荐用户当下还有可能购买的商品。
[0045] 一种考虑重复购买行为的会话推荐方法的向前传播(forward propagation)部分主要由四个部分组成,如图2所示。第一部分是根据用户当前交互会话序列,得到用户短期、长期兴趣表征和辅助行为(购买)表征。第二部分是根据用户短期和长期兴趣表征,选择重复模式或探索模式。第三部分是在重复模式下,根据用户的短期、长期兴趣表征和辅助行为(购买)表征,在用户历史购买的物品序列中进行推荐。第四部分是在探索模式下,根据用户的短期和长期兴趣表征,对不在用户历史购买的物品序列中的物品进行推荐。
[0046] 如图1所示,按照本发明的一个实施例,本方法包括如下步骤:
[0047] S100,根据用户当前交互会话序列中的辅助行为(auxiliary behavior)序列,得到用户辅助行为(购买)表征。用户当前交互的会话可以表示为ST={x1,x2,…,xτ,…,xt},其中,xτ代表第τ个物品,T表示当前会话的时间段下标,且ST的向量表征为{x1,x2,…,xτ,…,xt},其中 d是物品向量表征的长度。ST表示当前会话中所有交互的物品序列,其中,购买行为序列为 且 AT的向量表征为 购买行为序列的表征对于重复模式下的物品推荐至关重要,因为用户在短时间内,也就是在一个会话内,进行重复消费的可能性较低。通常,在推荐系统中,把交互序列中的交互类型叫做目标类型(target type),把购买行为类型叫做辅助类型(auxiliary type)。采用平均池(mean‑pooling)对购买行为序列进行表征,如下:
[0048]
[0049] 其中,AT是当前会话中的购买行为序列, 是购买行为序列AT中购买的物品, 是a物品 的向量表示,|AT|表示序列AT的个数,p是购买行为序列表征。
[0050] S200,根据用户当前交互会话序列,得到用户短期兴趣表征。本方法采用门控循环单元网络(GRU)对用户当前交互序列进行表征:
[0051] zτ=σ(Wxz·xτ+Whz·hτ‑1)
[0052] rτ=σ(Wxr·xτ+Whr·hτ‑1)
[0053]
[0054]
[0055] 其中,rτ是重置门(reset gate),zτ为更新门(update gate),这两个门控向量决定了哪些信息能作为门控循环单元的输出。 是当前记忆内容。xτ是当前层的节点输入。和 分别是控制更新门zτ和重置门rτ的参数。
和 是控制前记忆内容 的参数。⊙是元素级别的矩阵相乘,σ是
sigmoid函数。GRU的输入序列为ST={x1,x2,…,xτ,…,xt}。最后,当前会话序列表征为用户短期兴趣(short‑term interest)表征为前会话序列表征
[0056] S300,更新用户长期兴趣(long‑term interest)表征pl。用户当前会话所在时间为T,用户历史所有会话表征仍然采用门控循环单元网络(GRU)结构得到,此时用户历史会话表征序列为 用户长期兴趣的序列性不强,因此采用平均池(mean‑l
pooling)获得用户较为稳定的长期兴趣表征p:
[0057]
[0058] 其中,ZT‑1为时间T之前的用户历史会话表征列表,zτ为第τ个用户历史会话表征,|lZT‑1|表示序列ZT‑1的个数。p是用户的长期兴趣表征。
[0059] S400,根据用户的短期和长期兴趣表征,在重复推荐模式和探索推荐模式中选择。l
在本方法中,基于用户的当前会话ST和用户长期兴趣p ,用户下一个交互物品xt+1的概率Pl l l l l
(xt+1|ST,p)可以进一步分解为:P(xt+1|ST,p)=P(r|ST,p)P(xt+1|r,ST,p)+P(e|ST,p)Pl
(xt+1|e,ST,p)
[0060] 其中,r和e分别代表重复模式(repeat mode)和探索模式(explore mode)。P(r|l l lST,p)和P(e|ST,p)代表基于当前序列ST和用户长期兴趣p,计算重复模式和探索模式的概l l
率。P(xt11|r,ST,p)和P(xt+1|e,ST,p)分别代表在重复模式和探索模式下,推荐物品xt11的概率。该方法常见于自然语言处理(NLP)中的复制机制(copy mechanism)。判断推荐模式采l l
用重复模式还是探索模式也就是计算概率P(r|ST,p)和P(e|ST,p):
[0061]s l
[0062] 其中, 是模型权重参数,p 和p分别是用户动态的短期兴趣表征和静态的长期兴趣表征。 表示向量连接操作,softmax是softmax函数,在本方法是一个二分类方法。从公式中可以看出,选择重复模式(repeat mode)和探索模式(explore mode)是一个二分类问题,且是一个软分类(soft classification)问题。
[0063] S500,在重复模式下,根据用户的短期、长期兴趣表征和辅助行为(购买)表征,在用户历史购买的物品序列中进行推荐。令用户历史消费序列为BT‑1={x1,x2,…,xl},用户历史消费序列BT‑1的向量表征为 其中上标a表示购买行为(auxiliary l
behavior)。那么,在重复模式下,用户历史购买的物品的推荐概率P(xτ|r,ST,p)是:
[0064]
[0065]
[0066]
[0067] 其中, 是用户历史消费序列中第τ个物品xτ的向量表征,且Wrs,Wrl, 和s l a是模型参数,共同决定了第τ个物品xτ的重要程度,V代表物品集合。p 、p和p分别为用户短期、长期兴趣表征以及当前会话中的辅助(消费)行为表征。从公式中可以看出,历史购买的物品和当前购买物品越相似,推荐该物品的概率越低。
[0068] S600,在探索模式下,根据用户的短期兴趣表征和用户长期兴趣,对不在用户历史l购买的物品序列中的物品进行推荐,物品推荐概率计算公式P(xτ|e,ST,p)为:
[0069]
[0070]
[0071] 其中,xτ为物品集合V‑BT‑1中的物品xτ的向量表征。ps和pl分别为用户短期和长期l兴趣表征。对于xτ∈BT‑1的物品, 也就是推荐概率P(xτ|e,ST,p)=0。
[0072] S700,构建损失函数,训练模型参数。采用对数似然损失函数:
[0073]l
[0074] 其中, 是训练集中所有的会话序列。P(xτ|ST,p)是上文中提到的概率,表示基于l用户的当前会话ST和用户长期兴趣p,预测用户下一个交互物品xτ的概率,xτ是会话序列中真实交互的物品。我们采用Adam优化器更新模型参数。
[0075] 上述对实施例的描述是为方便于本技术领域的普通技术人员能理解和应用本发明。熟悉本领域技术的人员显然可以容易地对上述实施例做出各种修改,并把在此说明的一般原理应用到其他实施例中而不必经过创造性的劳动。因此,本发明不限于上述实施例,本领域技术人员根据本发明的揭示,对于本发明做出的改进和修改都应该在本发明的保护范围之内。