[0027] 为了进一步理解本发明,下面结合具体实施方式对本发明提供的一种基于物品图网络中路径表征的会话推荐方法进行具体描述,但本发明并不限于此,该领域技术人员在本发明核心指导思想下做出的非本质改进和调整,仍然属于本发明的保护范围。
[0028] 首先,需要对用到的变量和公式给出相关定义。
[0029] 定义1.V:物品集合,且V={v1,v2,…,v|V|},|V|代表物品集合中物品的数量。
[0030] 定义2.s:当前会话,会话是当前时间段里的所有交互物品集合s={v1,v2,…,v|s|},|s|代表会话中物品的数量。
[0031] 定义3.S:系统中的会话集合,S={s1,s2,…,s|S|},|S|代表会话集合中会话的数量。
[0032] 定义4.T:基于所有用户会话中交互的物品集合构建的物品图T。
[0033] 定义4.Bn‑hop(j):物品图T中物品vj的距离为n的邻居集合,距离为n表示物品之间间隔n个边。
[0034] 定义5. 物品vj的向量表征。
[0035] 定义6.p:当前会话的向量表征,也代表着用户当前兴趣向量表征。
[0036] 结合以上变量定义,将最终的问题定义为:给定用户的当前会话s,会话推荐方法对用户的兴趣进行建模,来推荐用户在下一步最可能感兴趣的物品,物品是物品集合V的子集。
[0037] 为此,本发明提出了一种基于物品图网络中路径表征的会话推荐方法,如图2所示,方法的向前传播(forward propagation)部分主要由四个部分组成。第一部分是基于所有会话集合构建物品图。第二部分是根据当前会话和物品图网络,对当前会话进行扩充,得到扩充之后的会话路径。第三部分是采用分层门控循环单元网络对扩充之后的会话路径进行表征,得到用户兴趣表征。最后,根据用户兴趣表征,推荐物品。
[0038] 如图1所示,按照本发明的一个实施例,本方法包括如下步骤:
[0039] S100,基于所有会话集合构建物品图T=(V,E)。V是平台中物品的集合,E是边,表示物品和物品之间的转移关系。物品图中的边来源于会话,对于任意一个会话s={v1,v2,…,v|s|},(vj‑1,vj)表示一个用户点击物品vj‑1之后点击物品vj,将(vj‑1,vj)作为为图网络T的有向边。且图的边数值属性为边(vj‑1,vj)出现的次数。将出现次数少于ε的边过滤掉,在本实验中令ε=4。最后,本发明采用离线文件存储每个节点所有时间下在图网络T中的1‑hop和2‑hop邻居节点。也就是,对于任意一个物品vj,存储所有时间下的B1‑hop(j)邻居集合和B2‑hop(j)邻居集合。本方法中只考虑节点的1‑hop和2‑hop邻居节点,此时可以在算法复杂度和算法精度之间达到平衡。
[0040] S200,根据当前会话和物品图网络,对当前会话进行扩充,得到扩充之后的会话路径。当前会话为s={v1,v2,…,v|s|},如果仅仅利用当前会话信息对匿名用户兴趣进行表征,数据较为稀疏。因此,采用图网络T对当前会话进行扩充,将当前会话s={v1,v2,…,v|s|}映射到图网络中的路径,挖掘该路径是否存在捷径。这里的捷径指会话{v1,v2,…,v|s|}中任意两个不相邻物品之间是否存在距离为1或者2的路径。具体做法根据当前会话的时间t,读取出当前会话中任一物品vj的上一时刻的B1‑hop(j)邻居集合和B2‑hop(j)邻居集合,查看会话中的其他物品是否在B1‑hop(j)或者B2‑hop(j)内,且确保捷径连接的两个物品在会话中不相邻。若当前会话s={v1,v2,…,v|s|}中存在两个物品vi和vj之间存在捷径,那么在vi和vj之间添加一条边。在后续兴趣表征过程中,不对捷径中的距离为1和距离为2的路径不做区分,都统一认作为捷径,表示点击物品vi之后可能点击物品vj。如图3所示,当前会话为s={v1,v2,v3,v4,v5,v6},用图网络T对其进行扩充。在图网络中存在v1→v4这样的路径,因此,节点v4是节点v1的1‑hop邻居;在图网络中存在v1→v7→v3这样的路径,因此节点v3是节点v1的2‑hop邻居。在当前会话中的v1和v4之间增加边,以及同时在v1和v3之间增加边。
[0041] S300,采用分层门控循环单元网络对扩充之后的会话路径进行表征,得到用户兴趣表征。扩充之后的会话路径仍是有序的,且会话中的一个物品的数据输入来源有两种,一种是原始会话中的上一个物品,一个是捷径中的上一个物品。因此,传统的门控循环单元网络(Gated Recurrent Unit)不再适用,本方法采用分层门控循环单元网络(Hierarchical Gated Recurrent Unit)对扩充之后的会话路径进行表征。当前会话{v1,v2,…,v|s|}对应向量表征为{x1,x2,…,x|s|},采用分层门控循环单元网络获得用户兴趣表征的具体公式如下:
[0042] gτ=σ(Wxg·xτ+Whg·hτ‑1+Wcg·hcut_idx(τ))
[0043]
[0044]
[0045]
[0046]
[0047]
[0048] 其中,gτ是决定原始会话上一层的信息和捷径上一层的信息输入下一层的门控单元。Wxg、Whg和Wcg是控制门控单元gτ的参数。 是融合了原始会话上一层的信息hτ‑1和捷径上一层的信息hcut_idx(τ)的上文信息,cut_idx(τ)表示xτ的最近捷径的下标,xτ的捷径可能会出现多个,只取距离最近的捷径。rτ是重置门(reset gate),zτ为更新门(update gate),这两个门控向量决定了哪些信息能作为门控循环单元的输出。 是当前记忆内容。xτ是当前层的节点输入。Wxz、Whz、Wxr和Whr分别是控制更新门zτ和重置门rτ的参数。Wxh和Whh是控制当前记忆内容 的参数。⊙是元素级别的矩阵相乘,σ是sigmoid函数,tanh是tanh激活函数。门控循环单元网络GRU的输入序列为{v1,v2,…,v|s|},门控循环单元网络输出为h|s|,也就是用户兴趣表征为p=h|s|。
[0049] S400,根据用户兴趣表征,推荐物品。将物品vj的向量xj乘以用户兴趣向量p,再应用softmax函数计算出物品vj的分数:
[0050]
[0051] 其中,p代表用户的兴趣向量,代表物品vj成为下一个交互物品的可能性。同时根据 的对数似然函数值,计算损失函数:
[0052]
[0053] 其中,yj代表vj的one‑hot编码, 函数用梯度下降法来最优化。
[0054] 上述对实施例的描述是为方便于本技术领域的普通技术人员能理解和应用本发明。熟悉本领域技术的人员显然可以容易地对上述实施例做出各种修改,并把在此说明的一般原理应用到其他实施例中而不必经过创造性的劳动。因此,本发明不限于上述实施例,本领域技术人员根据本发明的揭示,对于本发明做出的改进和修改都应该在本发明的保护范围之内。