«上一篇 下一篇»
  计算机工程  2022, Vol. 48 Issue (8): 283-291  DOI: 10.19678/j.issn.1000-3428.0062184
0

引用本文  

王燕, 范林, 赵妮妮. 利用门控网络构建用户动态兴趣的序列推荐模型[J]. 计算机工程, 2022, 48(8), 283-291. DOI: 10.19678/j.issn.1000-3428.0062184.
WANG Yan, FAN Lin, ZHAO Nini. Sequential Recommendation Model Using Gated Network to Construct User's Dynamic Interest[J]. Computer Engineering, 2022, 48(8), 283-291. DOI: 10.19678/j.issn.1000-3428.0062184.

基金项目

国家自然科学基金(61863025);甘肃省重点研发计划(18YF1GA060)

通信作者

范林(通信作者)

作者简介

王燕(1971—),女,教授,主研方向为数据挖掘、推荐系统;
赵妮妮,硕士研究生

文章历史

收稿日期:2021-07-26
修回日期:2021-09-12
利用门控网络构建用户动态兴趣的序列推荐模型
王燕 , 范林 , 赵妮妮     
兰州理工大学 计算机与通信学院, 兰州 730050
摘要:在推荐系统中,现有多数序列推荐方法将用户行为视为一个时间有序的序列进行用户兴趣建模,用户兴趣的动态变化导致模型难以从用户行为序列中捕捉准确的用户兴趣信息。针对该问题,同时考虑到项目间成对的共现模式应作为交互信息的补充,提出利用门控网络构建用户动态兴趣的序列推荐模型DCGN。使用门控线性单元捕获交互序列中的用户兴趣,利用带有注意力权重的门控循环网络学习用户的动态兴趣。在此基础上,对用户交互项目间的共现模式进行建模,与用户兴趣信息以及用户信息进行融合后输入深度神经网络,得到最终推荐结果。在ML100K、Amazon 5-Elect、Retailrocket 3个公开数据集上进行实验,使用精确率、归一化折损累积增益和命中率进行性能评估,结果表明,DCGN模型较NARM、GRU4Rec、NLR等主流序列推荐模型性能更优,其归一化折损增益和精确率在Retailrocket数据集上平均提升1.9%和1.22%,在Amazon 5-Elect数据集上平均提升0.82%和1.05%,在ML100K数据集上平均提升0.36%和0.31%。
关键词推荐算法    注意力机制    门控线性单元    项目共现模式    动态兴趣    
Sequential Recommendation Model Using Gated Network to Construct User's Dynamic Interest
WANG Yan , FAN Lin , ZHAO Nini     
College of Computer and Communication, Lanzhou University of Technology, Lanzhou 730050, China
Abstract: In recommendation systems, most existing sequence recommendation methods regard user behavior as a time-ordered sequence to model user interest.The dynamic change of user interest, however, makes it difficult for the model to capture accurate user interest information from the user behavior sequence.Aiming at solving this problem, and considering that the paired co-occurrence pattern between items should be used as a supplement to interaction information, a sequential recommendation model DCGN is proposed to construct user's dynamic interests by using gated network.A Gated Linear Unit(GLU) is used to capture user interests in interaction sequences, and a gated recurrent network with attention weights is used to learn the user's dynamic interests.In this way the co-occurrence pattern between user interaction items is modeled, and the user interest information and user information are integrated into the deep neural network to obtain the final recommendation result.Experiments are carried out on three public datasets, ML100K, Amazon 5-Elect, and Retailrocket, and the performance is evaluated in terms of the following three metrics: precision, Normalized Depreciation Cumulative Gain(NDCG) and hit rate.The results show that the DCGN model has better performance compared with the mainstream sequence recommendation models such as NARM, GRU4Rec, NLR, et al.Its NDCG and precision increase of 1.9% and 1.22% on Retailrocket dataset, 0.82% and 1.05% on Amazon 5-Elect dataset and 0.36% and 0.31% on ML100K dataset, in average.
Key words: recommendation algorithm    attention mechanism    Gated Linear Unit(GLU)    project co-occurrence mode    dynamic interest    

开放科学(资源服务)标志码(OSID):

0 概述

在互联网飞速发展和移动设备大量普及的背景下,信息量爆发式增长,但信息冗余致使用户无法从海量信息中准确、快速地筛选所需信息,从而导致用户体验不佳。推荐系统很好地解决了这一问题,并且在搜索引擎、电子商务、娱乐等许多网络应用中发挥着非常重要的作用,因此,推荐系统具有重要的实用价值及研究意义。

目前多数推荐系统模型可分为基于协同过滤(Collaborative Filtering,CF)的模型和混合推荐模型。传统基于协同过滤的推荐模型虽然取得了不错的效果,但其基础的线性结构极大地限制了模型的表达能力。神经网络能够通过改变激活函数、选择和组合隐藏层单元来以任意精度近似任何连续函数特性,这使得深度神经网络不但能处理复杂的用户交互模式,而且还可以很好地拟合用户的偏好。凭借神经网络强大的数据泛化能力,结构复杂的混合推荐模型所表现出的性能远优于传统推荐模型,因此,基于深度学习的混合推荐模型是本文的主要研究对象。用户历史行为序列中包含丰富的用户兴趣信息,精确地捕捉用户兴趣是提升推荐系统推荐准确的关键。

近期,研究者提出了多种对用户兴趣建模的方法。文献[1]提出一种基于贝叶斯图卷积神经网络的框架,用于对用户-物品交互的不确定性建模,以更好地描述用户和物品之间的关系,同时建模用户的偏好,但图模型的复杂度较高,提取用户兴趣偏好需要的计算量较大。文献[2]提出使用长短期记忆网络建模用户兴趣的方法LSTPM,将用户的交互记录看作是一个很长的序列进行用户长短期兴趣的建模,但该方法在用户交互序列很长时,随着模型的复杂度增加,提取的用户兴趣变得不再准确,且模型将提取到的用户兴趣看作同等重要,这显然不符合现实逻辑。受自然语言处理(Natural Language Processing,NLP)领域Transformer模型中注意力机制方法[3]的启发,研究者将注意力机制应用到推荐系统中,解决了许多模型将用户兴趣项看作同等重要的问题。文献[4]提出一种新的自适应分层注意力增强门控网络,为了获取可区分的细粒度特征,其引入注意力机制层来学习重要的语义信息特征以及这些特征之间的动态联系。文献[5]提出一种基于自注意力的协同神经网络模型,将用户相似度和物品相似度结合起来,利用注意力机制从用户购买历史中多方面计算物品的权重,进而捕捉用户兴趣信息。

尽管目前在捕捉用户兴趣信息方面已经有大量研究,但大多将用户历史行为视为按操作时间戳排序的操作序列,并未从特征层面捕捉用户兴趣,而从特征层面捕捉细粒度的用户兴趣可有效地提升推荐性能。同时,捕捉项目之间的成对关系对用户兴趣的建模同样重要,这种项目间成对的共现模式在推荐系统中很常见。此外,用户兴趣是动态变化的,如何建模用户的动态兴趣变化,也是需要解决的一个重要问题。

针对上述问题,本文提出一种利用门控网络构建用户动态兴趣的序列推荐模型DCGN。在用户的历史行为数据中捕捉用户兴趣,使用双层门控线性单元(Gated Linear Unit,GLU)从特征层面捕捉细粒度的兴趣信息,保留用户交互中重要的特征以及交互项目。使用GRU聚合学习到的用户兴趣信息,并通过注意力权重动态更新GRU的隐藏状态,捕获用户动态变化的兴趣偏好。在此基础上,利用双线性特征交叉方法对项目对之间的关系进行建模,通过多层全连接网络学习得到最终的输出结果。

1 相关工作 1.1 序列推荐模型

传统的协同过滤模型以静态的方式拟合用户与项目之间的交互模式,且其捕捉的用户兴趣对于用户而言是一种广义的模式,缺乏个性。不同于传统的协同过滤推荐模型,序列推荐模型的构建基于连续的用户-项目交互序列。用户-项目交互序列是一个动态变化的序列,且交互序列前后具有很强的关联性。序列推荐模型通过拟合用户与物品之间的交互模式捕捉用户的偏好,并利用用户交互序列中丰富的上下文信息描述用户的意图和消费趋势。

传统基于马尔科夫链的序列推荐模型[6]假设用户当前的交互项仅依赖于最近的几个交互项,但忽略了用户较早的交互项对当前交互项的影响。基于因子分解机的序列推荐模型[7]将用户与项目的交互分解为用户和项目的隐因子向量,通过参数分解对特征之间的高阶交互进行建模,但模型易受数据稀疏性的影响,使得推荐结果不够理想。深度学习技术的兴起,能够很好地解决传统序列推荐模型的不足,获得较大的性能提升。

1.2 基于深度学习的序列推荐模型

利用深度学习技术构建序列推荐模型通常先将用户交互的项目序列转换为低维稠密的嵌入向量进行表达,再使用加和、平均和取最大值的方法融合用户的历史交互信息,得到用户的兴趣表达,但模型将用户交互序列中的交互项视为同等重要,结果中只包含了用户部分重要的兴趣,且无法建模用户兴趣的变化。

一些研究者尝试利用更复杂的模型结构来构建用户兴趣并提高推荐性能。基于GRU的序列推荐[8]通过建模给定交互序列中的依赖来预测下一个可能的交互项,但其只使用了交互项信息,并未考虑到其他信息对结果的影响。文献[9]提出根据用户偏好自适应地选择项目中有吸引力的潜在特征,然后利用提取到的特征对用户兴趣进行建模。文献[10]基于RNN建模用户的交互序列,考虑用户行为的特征信息,然后使用注意力机制计算每个交互项的权重,得到用户的兴趣向量表示。文献[11]基于RNN建模用户交互序列中的微观行为,利用RNN对用户行为的特征信息建模,在用户微观行为、商品等多个层面得到兴趣向量。基于RNN构建的序列推荐模型存在无法有效建模行为序列中多个行为间关联的问题,对此,研究者将NLP领域的Transformer模型应用到推荐系统中。文献[12]将用户的行为序列划分为多个会话,发现每个会话区间内用户的兴趣往往是固定的,然后基于Transformer模型建模每个会话内用户的行为序列,再使用RNN聚合多个会话内的兴趣信息。为更好地捕捉用户兴趣,文献[13]尝试利用胶囊网络建模用户的行为序列,获得多个用户的兴趣向量,然后使用一个可控的多兴趣聚合模块平衡用户兴趣的多样性与准确性,这一模型的提出,也为序列推荐模型的研究提供了全新的思路。

针对现有序列推荐模型没有从特征层面充分考虑用户交互项之间的联系,以及用户兴趣动态变化和相似交互项连续出现的问题,本文提出利用门控网络构建用户动态兴趣的序列推荐模型DCGN。该模型基于门控网络提取用户兴趣,且通过注意力权重动态调整信息聚合函数,以获得用户的动态兴趣,同时,考虑项目间成对的联系信息,进一步提升推荐的准确率。

2 DCGN模型

本文提出的DCGN模型从用户交互序列中学习用户动态变化的兴趣表示,目标是从特征的层面提取用户的兴趣,同时通过挖掘项目对之间的联系提升模型效果。DCGN模型结构如图 1所示,具体步骤如下:

Download:
图 1 门控网络中用户动态兴趣构建流程 Fig. 1 Procedure of user's dynamic interest construction in gated network

1)将高维稀疏的用户交互序列、项目特征及用户特征作为模型的输入。

2)通过嵌入层将所有的特征映射到一个低维的空间中,得到低维稠密的嵌入向量。

3)将用户交互序列嵌入向量输入到一个双层的门控网络中,利用GLU[14]从用户交互的特征层面对用户兴趣进行建模,过滤输入序列中的项目特征并保留对用户重要的交互项目,即用户兴趣。

4)使用双线性特征交叉方法学习目标项目对之间的联系,捕捉2个项目之间的共现模式。

5)对门控网络提取到的用户兴趣进行聚合,此部分采用GRU循环门控网络,结合目标项向量与提取到的兴趣向量,使用注意力机制获得相应兴趣项的注意力权重,并利用该权重对GRU的隐状态进行更新,得到最终的用户动态兴趣表示。

6)通过堆叠多个全连接层得到最终的预测结果。

2.1 嵌入层

为了对序列推荐任务进行建模,对于每个用户$ i $的交互序列,按时间顺序表示为$ {\mathit{\boldsymbol{S}}}_{i}=\left\{{\mathit{\boldsymbol{s}}}_{i}\left(1\right), \right. $ $ \left.{\mathit{\boldsymbol{s}}}_{i}\left(2\right), \cdots , {\mathit{\boldsymbol{s}}}_{i}\left(t\right), \cdots , {\mathit{\boldsymbol{s}}}_{i}\left(l\right)\right\} $,其中:$ {\mathit{\boldsymbol{S}}}_{i}\in {\mathbb{R}}^{d\times f\times l} $$ l\in \mathbb{R} $为用户交互序列的长度;$ f\in \mathbb{R} $为交互项的特征数;$ {\mathit{\boldsymbol{s}}}_{i}\left(t\right)\in {\mathbb{R}}^{d\times f} $表示用户交互序列中第$ t $次购买/评价的项目。将该序列作为输入,解释为在用户-项目交互序列$ {\mathit{\boldsymbol{S}}}_{i} $中,给定$ l $个连续项目,预测其他$ N $个项目接下来将被交互的可能性。将交互序列输入到嵌入层转换为低维稠密的向量表示,用户第$ t $个交互项的嵌入向量如式(1)所示:

$ {\mathit{\boldsymbol{s}}}_{i}\left(t\right)=\left({\mathit{\boldsymbol{e}}}_{1}^{i}, {\mathit{\boldsymbol{e}}}_{2}^{i}, \cdots , {\mathit{\boldsymbol{e}}}_{f}^{i}\right) $ (1)

其中:$ {\mathit{\boldsymbol{e}}}_{f}^{i} $为交互项$ {s}_{i}\left(t\right) $中特征$ f $的嵌入向量。将用户$ i $的嵌入向量表示为$ {\mathit{\boldsymbol{u}}}_{i}\in {\mathbb{R}}^{d} $,项目$ j $的嵌入向量表示为$ {v}_{j}\in {\mathbb{R}}^{d} $$ d $为嵌入向量的维度。

2.2 门控网络

DAUPHIN等提出的门控线性单元(GLU)[14]在语言建模任务中控制信息传递,用于下一个单词的预测。GLU计算公式为:

$ {h}_{l}\left(x\right)=\left(\mathit{\boldsymbol{X}}\mathrm{*}\mathit{\boldsymbol{W}}+\mathit{\boldsymbol{b}}\right)\otimes \sigma \left(\mathit{\boldsymbol{X}}\mathrm{*}\mathit{\boldsymbol{W}}+\mathit{\boldsymbol{c}}\right) $ (2)

其中:$ \mathit{\boldsymbol{{\rm X}}} $为单词的嵌入向量;WV为卷积操作中的卷积核;$ \mathit{\boldsymbol{b}}\mathrm{、}\mathit{\boldsymbol{c}} $为偏置参数;$ \sigma $是sigmoid函数;$ \otimes $为矩阵之间的元素乘积;$ \mathrm{*} $为卷积操作。公式中的后半部分,即有激活函数的卷积$ \sigma \left(\mathit{\boldsymbol{X}}\mathrm{*}\mathit{\boldsymbol{W}}+\mathit{\boldsymbol{c}}\right) $,就是门控机制,其控制$ \left(\mathit{\boldsymbol{X}}\mathrm{*}\mathit{\boldsymbol{W}}+\mathit{\boldsymbol{b}}\right) $中可以传入下一层的信息。

将上述方法用于用户行为序列的兴趣提取,GLU网络结构如图 2所示。

Download:
图 2 GLU网络结构 Fig. 2 Network structure of GLU

由于卷积运算中卷积核的特性,导致只提取到一部分特征,数据中丰富的特征信息丢失,因此将卷积运算替换为向量的内积,在运算中保留特征信息。使用两层线性门控网络提取交互序列中的重要特征和与未来交互有关联的项目,即提取用户兴趣。先使用一层门控网络提取适合用户偏好的项目特征:

$ {\mathit{\boldsymbol{s}}}_{\mathit{\boldsymbol{i}}}^{\bf{\text{'}}}\left(t\right)={\mathit{\boldsymbol{s}}}_{i}\left(t\right)\otimes \sigma \left({\mathit{\boldsymbol{W}}}_{1}\cdot {\mathit{\boldsymbol{s}}}_{i}\left(t\right)+{\mathit{\boldsymbol{W}}}_{2}\cdot {\mathit{\boldsymbol{u}}}_{i}+\mathit{\boldsymbol{b}}\right) $ (3)

其中:$ {\mathit{\boldsymbol{W}}}_{1}, {\mathit{\boldsymbol{W}}}_{2}\in {\mathbb{R}}^{d\times d} $$ \mathit{\boldsymbol{b}}\in {\mathbb{R}}^{d} $为可学习的参数;$ \otimes $为向量的元素乘积;$ \sigma $是sigmoid函数;$ {\mathit{\boldsymbol{u}}}_{i} $为用户$ i $的向量表示。然后,采用不同于使用注意力机制模型的做法,使用上一层门控网络提取到的重要交互特征作为输入,选取交互序列中与预测未来的交互项更相关的项目,如式(4)所示:

$ {\mathit{\boldsymbol{s}}}_{i}^{″}\left(t\right)={\mathit{\boldsymbol{s}}}_{i}^{\text{'}}\left(t\right)\otimes \sigma \left({\mathit{\boldsymbol{W}}}_{3}^{\mathrm{T}}\cdot {\mathit{\boldsymbol{s}}}_{i}^{\text{'}}\left(t\right)+{\mathit{\boldsymbol{u}}}_{i}^{\mathrm{T}}\cdot {\mathit{\boldsymbol{W}}}_{4}\right) $ (4)

其中:$ {\mathit{\boldsymbol{W}}}_{3}\in {\mathbb{R}}^{d} $$ {\mathit{\boldsymbol{W}}}_{4}\in {\mathbb{R}}^{d\times f} $为可学习参数;$ f $为特征数量;$ {\mathit{\boldsymbol{s}}}_{i}^{″}\left(t\right)\in {\mathbb{R}}^{d\times f} $为门控网络最终提取出的用户兴趣,用户交互的主要特征和项目已被选择,无关的特征和项目被过滤。

2.3 注意力机制

从数学的角度来看,注意力机制只是对平均操作或加和操作进行改进,换成了加权平均或加权,这种加权方式对于模型的效果有明显提升作用。从注意力权重计算的一种形式上来看,其与全连接网络的结构颇为相似,但不同的是,注意力权重参数是位置无关的,权重是根据输入的前后信息进行计算的,一旦输入的前后信息发生变化,其权重也会相应地发生变化。这种根据输入的前后信息来计算权重的方式,能够更好地刻画输入序列中的重点信息,帮助模型对输入信息进行区分。计算注意力分数的公式如下:

$ {\mathit{\boldsymbol{g}}}_{t}^{i}=\mathrm{a}\mathrm{v}\mathrm{g}\left({\mathit{\boldsymbol{s}}}_{i}^{″}\left(t\right)\right) $ (5)
$ {\mathit{\boldsymbol{a}}}_{t}^{i}=\frac{\mathrm{e}\mathrm{x}\mathrm{p}\left({\mathit{\boldsymbol{g}}}_{t}^{i}\mathit{\boldsymbol{W}}{v}_{j}\right)}{\sum\limits_{p=1}^{l}\left({\mathit{\boldsymbol{g}}}_{p}^{i}\mathit{\boldsymbol{W}}{v}_{j}\right)} $ (6)

其中:$ {\mathit{\boldsymbol{g}}}_{t}^{i}\in {\mathbb{R}}^{d} $为通过平均池化运算后的用户兴趣向量;$ {\mathit{\boldsymbol{v}}}_{j} $为目标项目的向量;$ \mathit{\boldsymbol{W}}\in {\mathbb{R}}^{d\times d} $为可学习参数。

2.4 GRU动态兴趣聚合

上节通过两层门控线性网络得到用户兴趣的表示,本节使用GRU对提取到的用户兴趣进行聚合,结合注意力机制对用户的动态兴趣进行建模。注意力得分在GRU的每一步中都可以增强相关兴趣所起的作用,减弱无关兴趣对总体结果的影响,更好地建模用户对目标项的兴趣变化,如下式所示:

$ {\mathit{\boldsymbol{z}}}_{t}^{i}=\sigma \left({\mathit{\boldsymbol{W}}}_{\mathrm{z}}{\mathit{\boldsymbol{g}}}_{t}^{i}+{\mathit{\boldsymbol{P}}}_{\mathrm{z}}{\mathit{\boldsymbol{h}}}_{t-1}^{i}+{\mathit{\boldsymbol{b}}}_{\mathrm{z}}\right) $ (7)
$ {\mathit{\boldsymbol{r}}}_{t}^{i}=\sigma \left({\mathit{\boldsymbol{W}}}_{\mathrm{r}}{\mathit{\boldsymbol{g}}}_{t}^{i}+{\mathit{\boldsymbol{P}}}_{\mathrm{r}}{\mathit{\boldsymbol{h}}}_{t-1}^{i}+{\mathit{\boldsymbol{b}}}_{\mathrm{r}}\right) $ (8)
$ {\tilde{\mathit{\boldsymbol{h}}}}_{t}^{i}=\mathrm{t}\mathrm{a}\mathrm{n}\mathrm{h}\left({\mathit{\boldsymbol{W}}}_{\mathrm{h}}{\mathit{\boldsymbol{g}}}_{t}^{i}+{\mathit{\boldsymbol{P}}}_{\mathrm{h}}\left({\mathit{\boldsymbol{r}}}_{t}\odot {\mathit{\boldsymbol{h}}}_{t-1}^{i}\right)+{\mathit{\boldsymbol{b}}}_{\mathrm{h}}\right) $ (9)
$ {\mathit{\boldsymbol{h}}}_{t}^{i}=\left(1-{\mathit{\boldsymbol{z}}}_{t}^{i}\right)\odot {\mathit{\boldsymbol{h}}}_{t-1}^{i}+{\mathit{\boldsymbol{z}}}_{t}^{i}\odot {\tilde{\mathit{\boldsymbol{h}}}}_{t}^{i} $ (10)

其中:$ {\mathit{\boldsymbol{z}}}_{t}^{i}\in {\mathbb{R}}^{d\times d} $$ {\mathit{\boldsymbol{r}}}_{t}^{i}\in {\mathbb{R}}^{d\times d} $分别为重置门和更新门;$ {\mathit{\boldsymbol{W}}}_{\mathrm{z}}, {\mathit{\boldsymbol{P}}}_{\mathrm{z}} $$ {\mathit{\boldsymbol{W}}}_{\mathrm{r}}, {\mathit{\boldsymbol{P}}}_{\mathrm{r}} $$ {\mathit{\boldsymbol{W}}}_{\mathrm{h}}, {\mathit{\boldsymbol{P}}}_{\mathrm{h}} $为分别为重置门、更新门和输出门的可学习参数;$ \sigma \left(\cdot \right) $为sigmoid函数;$ \odot $为点乘运算。隐藏状态$ {\mathit{\boldsymbol{h}}}_{t}^{i} $只捕捉了用户兴趣之间的相互依赖关系,并不能有效地表示用户动态变化的兴趣。本文通过使用注意力分数来控制GRU隐藏状态的更新来解决这个问题,保留原始重置门$ {\mathit{\boldsymbol{z}}}_{t}^{i} $的信息。注意力分数越小,对隐藏状态的影响越小。使用注意力分数更新GRU隐藏状态的计算公式如下:

$ {\mathit{\boldsymbol{z}}}^{\text{'}}{}_{t}^{i}={\mathit{\boldsymbol{a}}}_{t}^{i}\cdot {\mathit{\boldsymbol{z}}}_{t}^{i} $ (11)
$ {\mathit{\boldsymbol{h}}}^{\text{'}}{}_{t}^{i}=\left(1-{\mathit{\boldsymbol{z}}}_{t}^{i}\right)\odot {\mathit{\boldsymbol{h}}}^{\text{'}}{}_{t-1}^{i}+{\mathit{\boldsymbol{z}}}^{\text{'}}{}_{t}^{i}\odot {\tilde{\mathit{\boldsymbol{h}}}}_{t}^{i} $ (12)

其中:$ {\mathit{\boldsymbol{z}}}^{\text{'}}{}_{t}^{i} $为注意力重置门;$ {\mathit{\boldsymbol{h}}}^{\text{'}}{}_{t}^{i} $为最终输出的隐藏状态。

2.5 项目特征交叉与模型预测

项目之间成对关系的学习[15]对于推荐系统十分重要,在序列推荐问题中,密切相关的项目有很大概率会在将来的项目交互序列中连续出现。

传统元素积的形式难以有效地对稀疏数据进行特征交叉建模,且模型的表达能力不强。为捕捉这种项目之间的共现模式,本文使用双线性交叉函数进行学习,其结构如图 3所示。

Download:
图 3 双线性特征交叉函数结构 Fig. 3 Structure of bilinear feature crossing function

双线性特征交叉函数如下所示:

$ {\mathit{\boldsymbol{p}}}_{j, q}={v}_{j}\cdot {\mathit{\boldsymbol{W}}}_{j, q}\odot {v}_{q} $ (13)

其中:$ {\mathit{\boldsymbol{W}}}_{j, q}\in {\mathbb{R}}^{d\times d} $为参数矩阵;$ \cdot $为内积运算;$ \odot $为哈达玛积;$ j, q\in \left(\mathrm{1, 2}, \cdots , m\right) $$ m $为目标项目数量。对项目$ j $与项目$ q $特征交叉结果$ {\mathit{\boldsymbol{p}}}_{j, q}\in {\mathbb{R}}^{d} $通过平均池化聚合为当前项目的向量表示$ {\mathit{\boldsymbol{p}}}_{j}=\mathrm{a}\mathrm{v}\mathrm{g}\left({\mathit{\boldsymbol{p}}}_{j, q}\right) $$ {\mathit{\boldsymbol{p}}}_{j}\in {\mathbb{R}}^{d} $。将$ {\mathit{\boldsymbol{x}}}_{i}=\mathrm{C}\mathrm{o}\mathrm{n}\mathrm{c}\mathrm{a}\mathrm{t}({\mathit{\boldsymbol{p}}}_{j}, {\mathit{\boldsymbol{h}}}^{\text{'}}{}_{t}^{i}, {\mathit{\boldsymbol{u}}}_{i}) $向量输入到MLP中,得到最终的预测结果:

$ {\mathit{\boldsymbol{a}}}^{\left(l\right)}=\sigma \left({\mathit{\boldsymbol{W}}}^{\left(l\right)}{\mathit{\boldsymbol{a}}}^{\left(l-1\right)}+{\mathit{\boldsymbol{b}}}^{\left(l\right)}\right) $ (14)

其中:$ {\mathit{\boldsymbol{a}}}^{\left(0\right)} $为网络的输入$ {\mathit{\boldsymbol{x}}}_{i} $$ l $为网络的深度;$ \delta $为ReLU激活函数;$ {\mathit{\boldsymbol{W}}}^{\left(l\right)} $$ {\mathit{\boldsymbol{b}}}^{\left(l\right)} $为可学习参数;$ {\mathit{\boldsymbol{a}}}^{\left(l\right)} $为第$ l $层的输出。将最后一层$ L $的输出输入到sigmoid函数中,得到最终的预测结果:

$ \widehat{\mathit{\boldsymbol{y}}}=\sigma \left({\mathit{\boldsymbol{W}}}^{(L+1)}{\mathit{\boldsymbol{a}}}^{\left(L\right)}+{\mathit{\boldsymbol{b}}}^{(L+1)}\right) $ (15)

其中:$ \sigma $为sigmoid函数;$ {\mathit{\boldsymbol{a}}}^{\left(L\right)} $为最后一层网络的输出;$ {\mathit{\boldsymbol{W}}}^{(L+1)}\mathrm{、}{\mathit{\boldsymbol{b}}}^{(L+1)} $为可学习的参数。通过最小化以下目标函数进行模型学习:

$ \mathrm{L}\mathrm{o}\mathrm{s}\mathrm{s}=-\frac{1}{N}\sum\limits_{i=1}^{N}\left({y}_{i}\mathrm{l}\mathrm{b}\left({\widehat{y}}_{i}\right)+\left(1-{y}_{i}\right)\mathrm{l}\mathrm{b}\left(1-{\widehat{y}}_{i}\right)\right) $ (16)

其中:$ {y}_{i} $为训练样本$ i $的真实值;$ {\widehat{y}}_{i} $为预测值;$ N $为训练样本的数量。

3 实验 3.1 实验数据集

采用电影评分数据集ML100K[16]、亚马逊电子商务数据集Amazon ecommerce dataset[17]和电子商务网站行为数据集Retailrocket[18]这3个数据集进行建模。Retailrocket数据集由一家个性化电子商务公司发布,包含6个月的用户浏览记录;ML100k数据集包含用户编号、电影编号、电影评分、时间戳及电影的相关信息,且该数据集已经过清洗;亚马逊电子商务数据集包含多种类型(如CD销售数据、图书销售数据等)的数据,此处采用电子产品类的数据集Amazon 5-Elect,其中包含多个字段。本文实验仅使用商品编号、用户编号、产品评分和Unix格式时间戳字段。每个用户编号、商品编号都是唯一的,对每个用户交互的商品编号,根据数据字段中的时间戳进行排序,得到用户对应的交互序列。为了消除噪声数据对模型结果的影响,过滤掉出现次数少于5次的项目,然后删除数据集上少于2项的所有交互项,将评分大于4的设置为1,小于4的设置为0。数据集中的数据属性及数据特征如表 1所示,所使用3个公开数据集的数据统计结果如表 2所示。

下载CSV 表 1 Amazon 5-Elect数据集数据属性 Table 1 Data properties of Amazon 5-Elect dataset
下载CSV 表 2 实验数据集统计 Table 2 Statistics of the datasets in experiments
3.2 评价指标

本文使用精确率$ \mathrm{P}\mathrm{r}\mathrm{e}\mathrm{c}\mathrm{i}\mathrm{s}\mathrm{i}\mathrm{o}\mathrm{n}@K $、归一化折损累积增益NDCG@K和命中率HR@K,其中,K为推荐列表的长度,实验分别设置K=5,10来评估模型性能。

精确率表示模型预测为正的样本中有多少是真正的正样本,计算公式为:

$ \mathrm{P}\mathrm{r}\mathrm{e}\mathrm{c}\mathrm{i}\mathrm{s}\mathrm{i}\mathrm{o}\mathrm{n}@K=\frac{{T}_{\mathrm{P}}}{{T}_{\mathrm{P}}+{F}_{\mathrm{P}}} $ (17)

HR@K指标衡量的是推荐结果的召回率,反映推荐模型的准确性,计算公式为:

$ \mathrm{H}\mathrm{R}@k=\frac{\mathrm{H}\mathrm{i}\mathrm{t}\mathrm{s}@k}{\left|\mathrm{G}\mathrm{T}\right|} $ (18)

NDCG@K用于评价排序的准确性,即评价推荐系统所给出的推荐列表的好坏。该指标关注的是预测到的项目是否放在推荐列表中更靠前的位置,即强调推荐系统的“顺序性”,计算公式为:

$ \mathrm{N}\mathrm{D}\mathrm{C}\mathrm{G}@k=\frac{1}{k}\sum\limits_{i}^{k}\frac{{2}^{r\left(i\right)}-1}{\mathrm{l}\mathrm{b}\left(i+1\right)} $ (19)

在式(19)中,$ r\left(i\right) $为推荐列表中项目$ i $的相关性分数,如式(20)所示:

$ r\left(i\right)=\left\{\begin{array}{l}0, {p}_{i}\notin G\\ 1, {p}_{i}\in G\end{array}\right. $ (20)

其中:$ p $为推荐列表;$ G $为实验测试集;$ {p}_{i} $表示推荐列表中的第$ i $个项目。

3.3 对比模型及实验设置

为了评估本文模型性能,选取以下序列推荐模型,在数据集ML100k、Amazon 5-Elect和Retailrocket上分别进行对比验证:

1)NARM[19]:该模型通过RNN最后一步的输出来捕捉用户的序列行为,根据RNN中每一步的输出,通过注意力机制来捕捉用户的主要兴趣偏好。

2)GRU4Rec[20]:该模型首次利用RNN从用户的会话序列中获取用户交互序列中的顺序依赖关系,相较于混合结构的序列模型,单一RNN的结构比较简单。

3)STAMP[21]:该模型是基于注意力机制捕捉用户兴趣偏好的序列推荐模型,解决了传统的RNN结构不能很好拟合用户兴趣的问题。

4)NLR[22]:该模型将序列推荐看作一项认知任务,根据离散数学的理论设计了具有逻辑推理能力的网络用于推荐任务。

5)SASRec[23]:采用自注意力机制对用户的历史行为信息进行建模,提取更有价值的信息,同时通过注意机制可以基于相对较少的用户交互进行预测。

6)Caser[24]:采用卷积神经网络捕获用户行为序列,再利用全连接层将拼接的序列特征与用户偏好映射到用户在当前时间与每个物品交互的可能性。

7)AFM[25]:通过注意力机制自动学习每个二阶交叉特征的重要性,过滤无用的交叉特征,提升模型的稳定性。

在此次实验中,学习率调整范围为[0.000 1,0.001,0.005,0.01,0.1],嵌入向量以及隐层维度调整范围为[8, 16, 32, 64, 128],在ML100k数据集上进行参数调整。模型训练数据的批大小设置为100,模型参数采用服从N(0,0.1)高斯分布的随机数进行初始化。

3.4 实验结果比较

在ML100K、Amazon 5-Elect和Retailrocket数据集上,所有对比模型的NDCG和Precision@K评估指标分别如图 4~图 6所示。在Amazon 5-Elect和Retailrocket数据集上,所有对比模型的HR@K评估指标如图 7所示。

Download:
图 4 ML100K数据集上不同模型的NDCG@K和Precision@K对比 Fig. 4 Comparison of NDCG@K and Precision@K by different models on ML100K dataset
Download:
图 5 Amazon 5-Elect数据集上不同模型的NDCG@K和Precision@K对比 Fig. 5 Comparison of NDCG@K and Precision@K by different models on Amazon 5-Elect dataset
Download:
图 6 Retailrocket数据集上不同模型的NDCG@K和Precision@K对比 Fig. 6 Comparison of NDCG@K and Precision@K by different models on Retailrocket dataset
Download:
图 7 数据集Amazon 5-Elect和Retailrocket上不同模型的HR@K对比 Fig. 7 Comparison of HR@K by different models on Amazon 5-Elect and Retailrocket datasets

通过实验对比可以得出以下结论:

1)在3个数据上,NARM模型的效果始终优于GRU4rec模型,而两者都是基于RNN的推荐模型,可见注意力机制的运用有效地提升了模型性能。

2)实验结果中AFM模型的性能总体较差,表明融入注意力机制的简单模型性能有限,模型性能还与模型的复杂程度有关。

3)实验中STAMP模型的效果次于NARM模型,两者都融入了注意力机制,表明基于RNN的模型相比基于MLP的模型的效果更佳,在推荐系统中仅仅考虑用户交互序列的特征交叉是不够的,还需要考虑用户交互行为前后的关系以捕获用户的顺序行为。

4)SASRec模型的效果始终优于Caser、GRU4Rec、STAMP、NARM模型,说明叠加多个自注意力机制层能够学习更复杂的特征转换,可有效提高模型性能,相较于传统基于CNN、RNN的模型具有明显优势。

5)DCGN比SASRec和NLR模型具有更好的效果,可见利用门控网络和注意力机制从用户交互序列中学习用户动态兴趣有效地提升了推荐效果,采用传统结构的DCGN模型相较于采用复杂结构的NLR模型表现更好,表明模型复杂的结构不是提升推荐性能的关键。

3.5 模型消融实验

在ML100K、Amazon 5-Elect和Retailrocket这3个数据集上进行消融实验,验证有无注意力机制对模型的影响,以及用户兴趣聚合部分使用GRU和双向GRU给模型带来的差异。实验结果如图 8所示,其中:No-Attention代表无注意力机制;Bi-GRU表示双向GRU。

Download:
图 8 在3个数据集上模型消融结果对比 Fig. 8 Comparison of model ablation results on three datasets

根据上述实验结果可以看出:

1)在无注意力机制时模型的效果下降明显,这表明使用注意力机制可有效地捕获用户兴趣的动态变化,在不使用注意力机制进行GRU更新门的更新时,GRU只能学习到用户静态的兴趣表示,进而模型的效果有所下降。

2)在使用双向GRU后,并未给模型效果带来明显的提升,这是因为双向GRU较单向GRU更复杂,参数量的增多导致模型拟合不够充分。

3)通过对比在3个数据集上的NDCG@K性能指标可以看出,模型在使用注意力机制后效果更好。同时,为降低模型的训练难度,本文并未采用双向GRU。

3.6 参数对模型的影响

学习率和隐藏层的维度对实验结果产生一定的影响,尤其是隐藏层维度(即嵌入向量的维度)限制了模型的表达能力,理论上嵌入向量的维度越大,所蕴含的信息越多,模型的效果越好。但实验结果表明,较高的维度会导致模型效果有所下降。在ML100K数据集上的实验结果如图 9所示。

Download:
图 9 学习率及隐藏层维度对模型性能的影响 Fig. 9 The influence of learning rate and hidden layer dimension on model performance

由实验结果可知:当隐藏层的维度较大时,模型的效果出现下降,在本文所选隐藏层的维度中,维度为64时效果最好;当隐藏层的维度下降时,在ML100K数据集上,模型效果下降最为明显;当模型隐藏层的维度较大时,训练所需要的参数增多,模型训练所需的计算资源增多,训练周期变长,模型的过拟合风险增大。

4 结束语

在序列推荐问题中,现有多数方法只使用了用户交互序列中的物品信息,而忽略了相似物品会在交互序列中相继出现这一重要特征,并且用户兴趣是动态变化的。针对以上问题,本文提出一种利用门控线性网络构建用户动态兴趣的推荐模型DCGN。基于门控线性网络细粒度建模用户的兴趣表示,使用注意力机制动态构建用户的兴趣表示。通过双线性特征交叉方法对项目之间的共现模式进行建模,从而使模型的泛化能力得到显著提升。后续将针对用户的长期兴趣和短期兴趣分别进行建模,以明确用户的长短期兴趣对于推荐效果的影响。此外,用户的长短期兴趣对于推荐用户未来交互项目的影响是不同的,因此,还将对两者的差异进行研究。

参考文献
[1]
SUN J N, GUO W, ZHANG D C, et al. A framework for recommending accurate and diverse items using Bayesian graph convolutional neural networks[C]//Proceedings of the 26th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining. New York, USA: ACM Press, 2020: 2030-2039.
[2]
SUN K, QIAN T Y, CHEN T, et al. Where to go next: modeling long- and short-term user preferences for point-of-interest recommendation[C]//Proceedings of the 34th AAAI Conference on Artificial Intelligence. Palo Alto, USA: AAAI Press, 2020: 214-221.
[3]
VASWANI A, SHAZEER N, PARMAR N, et al. Attention is all you need[EB/OL]. [2021-06-11]. https://arxiv.org/abs/1706.03762.
[4]
LIU D H, WU J, LI J, et al. Adaptive hierarchical attention-enhanced gated network integrating reviews for item recommendation[J]. IEEE Transactions on Knowledge and Data Engineering, 2022, 34(5): 2076-2090.
[5]
MA S C, ZHU J H. Self-attention based collaborative neural network for recommendation[M]//BIAGIONI E S, ZHENG Y, CHENG S Y. Wireless algorithms, systems, and applications. Berlin, Germany: Springer, 2019: 235-246.
[6]
CHENG C, YANG H Q, LYU M R, et al. Where you like to go next: successive point-of-interest recommendation[C]//Proceedings of the 23rd International Joint Conference on Artificial Intelligence. Washington D. C., USA: IEEE Press, 2013: 2605-2611.
[7]
PASRICHA R, McAULEY J. Translation-based factorization machines for sequential recommendation[C]//Proceedings of the 12th ACM Conference on Recommender Systems. New York, USA: ACM Press, 2018: 63-71.
[8]
LIU L, ZHANG P. A novel recommendation algorithm with knowledge graph[J]. Journal of Physics: Conference Series, 2021, 1812(1): 1-10.
[9]
MA C, KANG P, LIU X. Hierarchical gating networks for sequential recommendation[C]//Proceedings of the 25th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining. NewYork, USA: ACM Press, 2019: 825-833.
[10]
NI Y B, OU D, LIU S C, et al. Perceive your users in depth: learning universal user representations from multiple E-commerce tasks[C]//Proceedings of the 24th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining. New York, USA: ACM Press, 2018: 596-605.
[11]
GU Y L, DING Z Y, WANG S Q, et al. Hierarchical user profiling for E-commerce recommender systems[C]//Proceedings of the 13th International Conference on Web Search and Data Mining. Washington D. C., USA: IEEE Press, 2020: 223-231.
[12]
FENG Y F, LÜ F Y, SHEN W C, et al. Deep session interest network for click-through rate prediction[EB/OL]. [2021-06-11]. https://arxiv.org/abs/1905.06482.
[13]
CEN Y K, ZHANG J W, ZOU X, et al. Controllable multi-interest framework for recommendation[C]//Proceedings of the 26th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining. New York, USA: ACM Press, 2020: 2942-2951.
[14]
DAUPHIN Y N, FAN A, AULI M, et al. Language modeling with gated convolutional networks[EB/OL]. [2021-06-11]. https://arxiv.org/abs/1612.08083.
[15]
NING X, DESROSIERS C, KARYPIS G. A comprehensive survey of neighborhood-based recommendation methods[M]//RICCI F, ROKACH L, SHAPIRA B. Recommender systems handbook. Berlin, Germany: Springer, 2015: 37-76.
[16]
HARPER F M, KONSTAN J A. The MovieLens datasets: history and context[J]. ACM Transactions on Interactive Intelligent Systems, 2016, 5(4): 19.
[17]
Amazon ecommerce dataset[EB/OL]. [2021-06-11]. http://jmcauley.ucsd.edu/data/amazon/links.html.
[18]
Retailrocket[EB/OL]. [2021-06-11]. http://www.kaggle.com/retailrocket/ecommerce-dataset.
[19]
LI J, REN P J, CHEN Z M, et al. Neural attentive session-based recommendation[C]//Proceedings of 2017 ACM Conference on Information and Knowledge Management. New York, USA: ACM Press, 2017: 1419-1428.
[20]
HIDASI B, KARATZOGLOU A, BALTRUNAS L, et al. Session-based recommendations with recurrent neural networks[EB/OL]. [2021-06-11]. https://arxiv.org/abs/1511.06939.
[21]
LIU Q, ZENG Y F, MOKHOSI R, et al. STAMP: short-term attention/memory priority model for session-based recommendation[C]//Proceedings of the 24th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining. New York, USA: ACM Press, 2018: 1831-1839.
[22]
CHEN H X, SHI S Y, LI Y Q, et al. Neural collaborative reasoning[EB/OL]. [2021-06-11]. https://arxiv.org/abs/2005.08129.
[23]
KANG W C, MCAULEY J. Self-attentive sequential recommendation[C]//Proceedings of IEEE International Conference on Data Mining. Washington D. C., USA: IEEE Press, 2018: 197-206.
[24]
TANG J X, WANG K. Personalized top-N sequential recommendation via convolutional sequence embedding[C]//Proceedings of the 11th ACM International Conference on Web Search and Data Mining. New York, USA: ACM Press, 2018: 565-573.
[25]
XIAO J, YE H, HE X N, et al. Attentional factorization machines: learning the weight of feature interactions via attention networks[C]//Proceedings of the 26th International Joint Conference on Artificial Intelligence. Melbourne, Australia: [s.n.], 2017: 1-10.