融合项目嵌入表征与注意力机制的推荐算法

2020-04-24 03:07都奕冰孙静宇
计算机工程与设计 2020年3期
关键词:日志注意力准确率

都奕冰,孙静宇

(1.太原理工大学 信息与计算机学院,山西 太原 030024; 2.太原理工大学 软件学院,山西 太原 030024)

0 引 言

用户行为在个性化推荐系统中一般分为两种:显性反馈行为(explicit feedback)和隐性反馈行为(implicit feedback)。显性反馈行为包括用户明确表示对物品的喜好行为,其主要方式为评分、评级等。和显性反馈行为相对应的是隐形反馈行为,隐性反馈行为是指那些不能明确反应用户喜好的行为。相比显性反馈,隐性反馈虽然不明确,但是数据量更大。传统推荐方法大多基于显性反馈行为,大致可以分为:基于内容的推荐、协同过滤以及混合推荐。传统推荐方法依赖于用户评分信息,无法学到隐性反馈数据的深层特征。

最具代表性的隐性反馈行为就是页面浏览行为,用户与购物网站交互过程中,在一段时间内浏览项目的点击序列称为用户行为日志。本文针对用户行为日志的序列信息,使用深度学习方法挖掘用户兴趣偏好,并融入项目嵌入表征,为序列化推荐算法提供了一种新的思路。

1 相关工作

近年来,深度学习在计算机的多个研究领域都取得了较好的进展,这也为推荐系统的发展带了一种新的可能。与传统推荐方法相比,深度学习可以更好地提取用户行为数据中的兴趣特征以及行为特征,并得到这些特征表示。同时,深度学习可以将不同特征映射为统一的向量表征,从而可以解决数据稀疏的问题。因此基于深度学习的推荐系统已经成为了推荐系统领域的重要研究方法。在此研究中,学者通常将用户的显性反馈与隐性反馈[6-8](例如用户收听音乐[9]、浏览新闻[10]、购物车等记录)作为输入,通过不同的模型学习产生项目推荐结果。Paul Covington等[11]提出了一种基于深度学习的推荐系统并应用于YouTube平台,对视频及用户行为作出反馈,并平衡新老视频的综合推荐。LI X P等[12]提出了一种基于贝叶斯生成模型的协同变分自编码器(CVAE),从内容和评级中学习项目和用户之间的隐性关系。

随着电商平台数据的逐步丰富,如何将更多更有意义的用户行为数据与深度学习方法相结合,从而挖掘用户行为的隐性反馈受到了越来越多学者的关注。Okura S等[13]根据用户浏览新闻历史进行推荐,方法在Yahoo数据集中表现良好。Chen X等[14]研究了个性化视频推荐问题,根据视频图像和用户时间同步评论挖掘用户偏好,实验结果在各种评价标准中都优于其它方法。上述文献中大多采用one-hot[15]或TF-IDF[16]进行标注。但是,项目与项目之间是相互影响的,项目的顺序具有用户行为意义,这些方法忽略了项目与项目的位置信息以及项目与项目之间的相互关系。Greenstein-Messica A等[17]比较了多种词向量嵌入方法,成功的捕捉到了语义和语法规律,将这些方法应用在电子商务的推荐中,发现向量表征可以作为各种推荐系统中的特征并得到良好的推荐结果。此外,这些推荐算法通常根据用户行为日志的最后一次交互记录进行推荐,导致之前大量有价值的交互记录被忽略。无法充分利用用户购物过程中的用户行为序列信息,但是这些动态的信息往往能够很好反应出用户的购物倾向。在实时推荐系统中,系统应基于当前的浏览历史和用户兴趣给出推荐结果,并学习用户与网站的交互信息,对用户购买的项目进行预测。

针对这些问题,本文从项目表征优化与用户停留时间间隔权重的角度,挖掘了用户的行为信息,充分利用了用户的隐性反馈作为模型的输入,同时为了提高用户序列化信息的训练效果,引入了GRU网络模型,通过捕获用户行为的方式提高推荐精度。

2 融合用户行为信息的推荐模型框架设计

本文采用如图1给出的推荐模型框架。以Bi-GRU网络为模型基础,从项目的嵌入表征与用户停留时间两个角度建模用户行为信息。具体可概括为:①输入层:模型输入为用户行为日志中用户点击的项目序列的向量表征。表征向量通过构建哈夫曼树,以项目出现次数为权重计算概率而生成;②隐藏层:隐藏层由GRU网络与注意力机制构建。将用户浏览项目时的停留时间作为注意力机制的权重深化用户的兴趣程度,并通过GRU网络双向捕获序列中项目的相关信息;③输出层:模型经过softmax归一化输出推荐项目的概率分布,给出最优的推荐项目。

图1 融合项目嵌入表征与注意力机制的推荐模型

2.1 项目嵌入表示

传统的项目表征是将不同项目以one-hot编码的方式转化为一串由0、1构成的数字序列,该序列不具备任何含义,显然这种表征方法存在缺陷,它既不能很好体现相似项目间的相关信息也无法表示相邻项目间的相关信息。因此参考自然语言处理当中对字符进行向量化的方法,将word2vec的向量表征方法引入了推荐系统。word2vec是一种词嵌入方法,它通过学习文本序列信息,将词的语义信息用向量的方式表征。本模型的输入部分将词嵌入方法应用于项目建模,使项目表征包含其内在特征,深化用户浏览项目的相关性,使关联度高的项目在向量空间中距离更近。Skip-Gram和CBOW(continuous bag-of-words)是word2vec的两种主要训练模式,Skip-Gram通过当前词,预测序列的上下文的词语,CBOW则是通过上下文相关的词语预测中心词。根据数据特点,本文通过哈夫曼树构建CBOW模型,一方面有效降低计算量,另一方面用树形结构代替了隐藏层到输出softmax层。哈夫曼树的叶子节点为数据项目信息,通过训练哈夫曼树路径权重,得到树中所有节点的项目嵌入表征。具体训练过程如图2所示。

图2 项目嵌入表征训练过程

项目序列在CBOW模型下的训练函数

(1)

式中:Session(i) 表示中心项目i的临近项目。将用户行为日志中出现的项目集合记为:Sessioni={x1,…,xn} 每一个项目xi出现概率相互独立。模型中哈夫曼树存在一条从根节点到项目xi所在节点的路径,路径上的每一个非叶子结点进行一次二分类并将其分类结果连乘。最终这条路径上的分类过程可表示为

(2)

(3)

经过softmax归一化,得到项目集合为Session(i) 时下一个项目恰为第i个项目的概率,将式(2)代入对数似然函数(1)最终表示为

(4)

(5)

(6)

变量Xi的梯度表示为

(7)

每次对Xi进行更新的公式为

(8)

综上通过式(5)~式(8)可以训练得到项目嵌入表征。

2.2 融合停留时间的注意力机制

用户在浏览过程中对不同项目的停留时间可以视为衡量用户对该项目喜爱程度的重要指标,直观上,用户在某项目上停留的时间越长,对该项目也就越感兴趣。故停留时间序列可以作为点击序列的补充信息,与点击序列共同作用进行推荐。参考Dallmann A等[18]提出了一种DT-GRU模型,将停留时间序列作为第一个模型的输入,将输出和点击序列链接作为第二个模型的输入,实验结果表明将驻留时间集成到模型中可以提高基于用户行为日志的推荐性能。本文对以上模型进一步优化,考虑到时间信息直接与项目信息作为输入过于直接,不能很好地表现出不同时间间隔的重要意义,故做出了如下改进。用注意力机制建模时间序列与点击序列间的依赖关系,使推荐算法能够根据时间跟踪用户偏好,理解用户的行为。具体是将项目时间间隔作为注意力机制的权重,与隐藏层输出共同作为隐藏层的最终结果。这种方法可以人为的从大量数据中筛选出一部分有价值的信息,让网络把目光聚焦于这些数据上,从而忽略其它信息。筛选的过程体现在项目概率的取值上,概率越大,网络越聚焦与对应的项目上,本文将时间序列作为注意力概率,从而体现点击序列中每个项目的重要程度。

(9)

(10)

(11)

2.3 GRU网络

利用RNN对变长序列数据进行建模,RNN不仅会学习当前时刻的信息,也会依赖之前的序列信息。由于其网络模型结构解决了信息保存的问题,所以循环神经网络对处理时间序列问题有独特的优势

Ot=g(VSt)

(12)

St=f(UXt+WSt-1)

(13)

V是输出层的权重矩阵,g是激活函数。U是输入X的权重矩阵,W是上一次St-1的值作为这一次的输入的权重矩阵,f是激活函数。RNN的输出Ot是序列上下一个元素的概率分布,给出其当前状态St。 具体结构如图3所示。

图3 GRU网络

将改进的RNN——GRU(gated recurrent unit),引入序列化建模的推荐系统中并加以改进。GRU对RNN单元进行了更精细的建模,目的是解决逐渐出现的梯度消失问题。GRU的门控单元用来学习何时以及如何更新单元的隐藏状态。GRU充分考虑了样本时序前后的关联关系,比传统神经网络更适用于序列化信息的在线推荐,在预测方面具有其它算法不可比拟的优势,并且收敛速度快、精度高、稳定性好

zt=σ(Wz·[ht-1,Xt])

(14)

rt=σ(Wr·[ht-1,Xt])

(15)

(16)

(17)

Sm,n=GRU(Sm,n-1),n=1,…,N-1

(18)

Rm,n=g(Sm,n),n=1,…,N-1

(19)

3 实 验

3.1 数据集

为了评估本文提出的项目嵌入表征与以时间作为注意力机制权重对序列化推荐算法的有效性,进行了以下实验。实验使用RecSys Challenge2015公开数据集,该数据集共包含某电商网站9 249 729条用户行为日志、33 003 944个点击行为数据、52 739个项目信息。其中点击序列构成了用户行为日志,一些用户行为日志中用户最终购买了项目。每次点击事件都包含了以下4个字段:session ID、点击时间、项目ID、类别,具体的数据形式与对应含义见表1。

参考B. Hidasi, A等[19]的数据清洗经验,结合本文的用户行为特征,对原始数据进行了以下处理。由于原始数据存在大量异常数据,会导致挖掘结果的偏差,在数据清洗阶段,由于神经网络并没有学习过在测试集中而不在训练集中的点击序列,我们筛选掉了这些数据。预处理后的数据剩下了多少个用户行为日志,多少次点击和多少个项,其中的60%作为训练集,验证集和测试集分别占20%。

表1 数据集字段

3.2 评价标准

推荐算法的评价标准通常用推荐项目的准确性来表示。在实验中,需要验证在数据集上的推荐准确性,即推荐结果与用户真实购买项目之间的差距。用户的实际点击项应该出现在推荐结果的前几项。所以推荐正确率我们使用召回率(Recall,R)和倒数排序法(mean reciprocal rank,MRR)对结果进行评估。定义如下

(20)

TP为真实预测数量,FN为错误预测数量,N=TP+FN。R为真实预测在前N个预测项目中所占比例,即样本中的正例有多少被预测正确

(21)

3.3 项目嵌入表示的验证

本实验在GRU模型的基础上,对提出的项目嵌入表征方法进行验证。对比实验为one-hot编码。实验结果见表2,结果选取Softmax输出的前20个预测项计算了模型的推荐准确率。

表2 项目嵌入表示对推荐准确率的影响

从实验结果可以看出,项目嵌入表征对于推荐系统的推荐准确率有积极影响。项目嵌入表征与随机表征相比,通过用户点击项目序列训练的项目表征可以很好地包含相邻浏览项目的相关性,在复杂度下,使推荐效果有了提升。而one-hot编码在一定程度上具备随机性,因此实验结果与随机表征差距不大。从数据角度分析,当训练数据具备较好的序列性与相关性时,实验效果好,当训练数据相关度不高时,提升效果不明显。故进行了扩展实验。

3.4 项目嵌入表示验证扩展实验

分析不同的用户行为日志所训练的项目嵌入表征对推荐精度的影响。用户行为日志的长度与推荐准确性有关联。随着长度的增加,用户表现出的偏好准确性也会增加,所以使用不同用户行为日志长度的推荐准确率进行对比。从数据集中人工选取10组测试用例,每组测试用例的用户行为日志数目为60个,测试集中点击项目序列的平均长度为0-15。使用GRU网络进行训练并进行预测。序列长度对嵌入方式的影响如图4所示,当项目序列的长度小于5时,两种方法的准确率都较低且差别不大,随着序列长度的增加,两种编码方式的准确率都稳步增加。同时,随着序列长度增加,使用项目嵌入表征方法的推荐准确率高于传统one-hot编码,实验结果表明当序列过短时,项目序列有较大的随机性,影响了挖掘用户兴趣的准确率,分类的错误率较高;随着序列长度的增加,模型可以挖掘出更多的信息,较长的用户行为日志可以反映出更多的用户兴趣偏好。

图4 序列长度对嵌入方式的影响

3.5 以停留时间为注意力权重的有效性验证

为了体现用户浏览项目的停留时间对推荐准确率的影响,同时将2.2提出的DT-GRU与本文提出的融合停留时间的注意力机制进行比较。根据实验3.4结果从测试集中删除长度小于5的用户行为日志,将剩下的数据作为模型的样本数据。

表3中,DT-GRU和ATT-GRU明显优于GRU神经网络,实验表现出用户兴趣程度与浏览项目停留时间的直接联系,用户对项目的关注度越大应具有更高的推荐度。同时,本文所提出的ATT-GRU其推荐准确率较DT-GRU效果提高,融合停留时间的注意力机制弥补了仅仅将停留时间和项目序列简单连接的不足,使模型充分根据停留时间分配不同的注意力,获取更深层次的用户偏好。

3.6 模型推荐精度对比

本实验中,比较了本文提出的推荐模型和一些常见的推荐模型的准确率,包括POP、KNN、BPR,并用Recall和MRR对推荐结果进行评价。

表3 停留时间对推荐准确率的影响

(1)POP。统计训练集中每个项目的浏览次数并将其作为流行指标,将用户行为日志中最受欢迎的项目推荐给用户。

(2)KNN。将用户行为日志中相似的k个项目进行推荐, 相似性用特征空间中两个向量的余弦相似度来计算。计算公式为

(22)

(3)BPR。基于贝叶斯理论的一种矩阵分解方法。推荐用户行为日志中每个item特征向量之和的平均向量。

表4显示了各个算法在数据集上的准确性,实验结果显示GRU模型较传统方法的推荐准确度得到了提升。其它模型未考虑到浏览序列前后时序上的联系,不能对项目进行序列上的预测,GRU在时序数据分析中表现出更强的适应性,因此在推荐算法领域表现良好。同时,基于项目表征与用户停留时间优化的GRU模型表现出了较好的性能。项目嵌入表征可以深度挖掘项目的内在联系,从而减小了one-hot编码的随机性;停留时间优化的注意力机制,通过停留时间权重使网络快速获取重点关注项目,得到注意力焦点,提取用户行为中相应重要特征,从而减小了冗余数据对推荐结果的影响,因此ATT-GRU的实验结果要好于GRU。

表4 本文方法与POP/ KNN/ BPR性能对比

以上实验结果表明了本文提出的项目表征优化与注意力机制优化的GRU模型对于序列化推荐有积极的意义。

4 结束语

本文根据用户行为日志中项目的相关性与浏览时间体现的兴趣偏好,提出了一种融合项目嵌入表征与注意力机制的推荐算法。该推荐模型通过引入适合处理序列化信息的GRU模型挖掘用户行为,将词嵌入方法引入项目建模加强项目的相关性,充分利用停留时间优化注意力机制,快速捕获重点项目提升推荐准确率。实验结果表明,使用项目嵌入表征优化,并考虑用户行为的停留时间,可以有效提高基于用户行为日志推荐模型的性能,与POP、KNN、BPR模型相比均有所提升,分别提高了0.419、0.194和0.1048。

但由于本文数据集的局限性,并考虑到用户信息的多样性,将多种信息分别特征提取融合进行推荐具有潜在的研究价值。未来工作中考虑将多个互补的网络模块组合在一起构建混合模型,并且进行多源数据融合推荐。

猜你喜欢
日志注意力准确率
让注意力“飞”回来
一名老党员的工作日志
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
2015—2017 年宁夏各天气预报参考产品质量检验分析
扶贫日志
雅皮的心情日志
高速公路车牌识别标识站准确率验证法
游学日志
“扬眼”APP:让注意力“变现”