考虑用户意图和时间间隔的会话型深度学习推荐系统

2021-03-16 13:55刘浩翰李建伏
计算机应用与软件 2021年3期
关键词:解码器编码器间隔

刘浩翰 吕 鑫 李建伏

(中国民航大学计算机科学与技术学院 天津 300300)

0 引 言

在Web应用中,会话是指一个终端用户与服务器端进行通信的过程。会话中记录了用户的浏览点击行为,该行为包含了用户的兴趣偏好。基于会话的推荐系统的目的是根据会话中所包含的用户的点击序列记录挖掘用户的兴趣偏好,为用户推荐其下一步可能感兴趣的物品。现有的基于会话的推荐系统主要分为以下两大类:

第一类是基于传统方法的会话推荐系统,其基本思路是基于马尔可夫链建模用户的序列行为。如Shani等[1]提出了一种基于马尔可夫决策过程的会话推荐系统。Zimdars等[2]在马尔可夫链的基础上,提出利用概率决策树模型提取序列模式。Chen等[3]将播放列表作为马尔可夫链,提出利用潜在马尔可夫嵌入来学习歌曲的表示,用来解决音乐播放列表推荐问题。虽然理论上基于马尔可夫链的方法可以很好地建模用户的序列行为,但是当组成序列的物品集和产生序列的用户集足够大时,马尔可夫链所需的状态空间会非常大,且状态空间将迅速变得难以控制。此外,由于马尔可夫链建模时默认下一状态的概率分布只与当前状态有关,使其无法很好地解决用户行为间的长期依赖关系。

第二类是基于深度学习的会话型推荐系统。伴随着RNN在自然语言处理、语音识别和图像理解等领域中的成功应用,RNN因其处理序列数据的能力而得到了人们的关注。Hidasi等[4]首次将RNN成功应用在了基于会话的推荐系统中。Tan等[5]通过数据增强技术和特权信息方法改进了Hidasi等的工作。Zhang等[6]也提出利用RNN建模用户的序列点击行为。虽然以上研究都表明RNN能很好地对用户的序列行为进行建模,但是会话记录不同于一般的行为序列,除了包括用户的序列行为之外,其还有两个重要的特征:第一个特征是用户行为之间有时间间隔,并且行为之间的时间间隔对用户行为之间的联系有非常重要的影响[7];第二个特征是用户行为序列中往往包含很多无目的点击行为[8],这些无关的点击行为产生的噪声数据模糊了用户的主要意图,从而影响到推荐结果的质量。

针对会话数据的以上两个特征,人们分别开展了相关研究。

(1) 针对行为间的时间间隔问题,Sheil等[8]提出了Time-LSTM模型,其在标准的LSTM[9]中加入了类似于LSTM中门结构的两个时间门T1和T2,用来单独处理用户点击序列的时间间隔信息。Liu等[10]将用户的行为分为多种类型,利用RNN和log双线性模型分别建模用户多种行为之间的长期依赖关系和短期情景信息。通过将log双线性中的特定位置转移矩阵替换为时间特定的转移矩阵,用来捕获时差信息在用户行为历史中的影响,从而得到了一个时间感知的循环log双线性模型。Zhou等[11]提出了用户微动作及其持续时间对用户行为的影响。

(2) 在用户意图方面,主要是利用注意力机制来消除用户无目的点击行为对捕获用户当前主要意图的影响。深度学习的注意力机制借鉴了人类视觉的注意力机制,其任务就是从众多信息中找到对目标贡献最高的关键信息。Li等[12]通过一个混合的编码器同时建模用户的序列行为特征和用户意图。Liu等[13]提出利用用户1至t时刻的隐状态的均值、目标项目的向量表示、t时刻的隐状态来计算注意力机制的权重系数。最后根据权重计算用户最终的隐状态。

针对会话序列的两个特征,人们已经分别开展了相关研究,但是还没有出现能同时考虑两个特征的相关研究。本文同时考虑了时间间隔和用户主要意图的影响,提出一个新的基于会话的推荐系统(Time-Aware Attentive Session-based Recommendation,TASR)。TASR为编码器-解码器结构。其中,编码器融合了现有的Time-LSTM和注意力机制,利用Time-LSTM建模时间间隔对用户行为的影响,采用注意力机制捕获用户的主要意图。最后两者的输出被拼接起来作为一个统一的会话表示,解码器根据该表示进行推荐。

1 基本概念

1.1 问题描述

1.2 Time-LSTM

Time-LSTM一共有三个变种,依次为:只有一个时间门的Time-LSTM1以及有两个时间门的Time-LSTM2和Time-LSTM3。与Time-LSTM1相比后两种提高了算法的效果。Time-LSTM2和Time-LSTM3的时间门结构相同,但是Time-LSTM3在不影响算法效果的前提下,采取耦合输入和遗忘门的方式减少了模型的参数。所以本文采用第三个变种。除非特别说明,下文中的Time-LSTM均指其第三个变种。Time-LSTM模型是在标准LSTM的基础上提出的。在LSTM中,每个细胞Cm包含了输入门im、遗忘门fm、输出门om。这些门机制采用了一定的策略来控制旧信息的丢弃与新信息的更新。即在当前细胞中,遗忘门控制旧信息的遗忘程度;输入门控制新信息的接受程度;输出门控制了当前时刻下,细胞状态的值有多少是可输出的。

Time-LSTM借鉴LSTM的门机制,在LSTM的基础上增加两个时间门T1和T2,以实现时间间隔对用户当前行为和长期行为的影响的建模。其中T1根据当前行为与上一次行为之间的时间间隔的大小动态地计算当前用户行为对接下来推荐的影响,如式(1)所示。时间门T2用来计算时间间隔对用户行为的长期影响,如式(2)所示。

σc(xmWxc+hm-1Whc+bc)

(1)

cm=(1-im)⊙cm-1+im⊙T2m⊙

σc(xmWxc+hm-1Whc+bc)

(2)

im=σi(xmWxi+hm-1Whi+wci⊙cm-1+bi)

(3)

(4)

(5)

T1m=σ1(xmWx1+σΔt(ΔtmWt1)+b1)

(6)

s.t.Wt1≤0

T2m=σ2(xmWx2+σΔt(ΔtmWt2)+b2)

(7)

式中:Δtm是时间间隔;σΔt、σ1和σ2是Sigmoid激活函数。可以看出,当Δtm变小时,时间门T1m的值变大,放大了xm对当前预测的影响,即更能体现时间间隔对当前行为的影响;当Δtm变大,则T1m变小,xm的影响变小进而Cm-1的影响变大,即在不确定短期影响的时候,就增加长期的影响。由式(2)可以看出,T2m首先存储Δtm的影响,然后将其传递到Cm,Cm+1,…的更新当中,以便计算时间间隔对用户以后行为的长期影响。

1.3 编码器-解码器结构

编码器-解码器结构最初在机器翻译领域使用,由Cho等[14]提出。随着编码器-解码器结构在各领域的应用,它已发展为深度学习中用来解决序列到序列问题的通用模型,例如Ren等[15]以及Shang等[16]的应用。序列到序列问题为给定序列X,通过已知模型来获得目标序列Y的问题。在基于会话的推荐问题中,序列X指输入的用户点击序列;序列Y为用户接下来可能点击的物品排序列表。

编码器将给定变长序列X编码为一个固定长度的中间向量。然后解码器利用该中间向量和已知的目标序列Y,使产生目标序列的概率最大化即损失函数最小化,来学习到从序列X到目标序列Y的映射关系。

但是,编码器-解码器结构存在一定的问题。Bahdanau等[17]指出该结构的中间向量不能很好地表示出较长序列的全部特征。其次,当前输入的序列项会在一定程度上覆盖以往输入序列项的信息,继而造成一定程度的信息丢失。随着输入序列长度的增加,该现象将会越来越严重。而注意力机制可以有效地解决该问题。

1.4 注意力机制

注意力机制可以解决在用户当前会话中动态计算用户当前主要意图的问题,以及编码器-解码器结构中的信息丢失问题。RNN中应用注意力机制[12]的流程如下:给定RNN各时刻的隐状态h1,h2,…,ht,在计算t+1时刻的输出时,注意力机制不仅考虑了ht对t+1时刻输出的影响,而且考虑了前面1~t之间各时刻的影响。每个时刻对t+1时刻输出的影响程度由注意力权重系数决定:

(8)

(9)

式中:hi(1≤i≤t)为各时刻的隐状态;αi为注意力权重系数;f(ht,hi)为计算各时刻隐状态相似度的函数,一般为计算两部分向量的点积或两部分Cosine相似性;c为各隐状态的加权和向量。

2 TASR模型设计

2.1 模型结构

TASR的基本思路是利用Time-LSTM建模时间间隔对用户行为的影响和注意力机制捕获用户的主要意图。TASR采用编码器和解码器结构。其中编码器由两部分组成,一部分是用户序列行为编码器层,用Time-LSTM来编码用户的序列行为;另一部分为用户意图编码器层,利用LSTM和注意力机制来编码用户意图。最后,解码器将两部分结合起来,从而实现预测。模型的整体框架结构如图1所示。

图1 TASR模型整体结构

2.2 输入层

2.3 混合编码器层

(1) 序列行为编码器层:序列行为编码器层采用Time-LSTM编码用户的序列行为。该编码层的输出为Time-LSTM最后一个隐状态表示hs。

(2) 用户意图编码器层:用户意图编码器层由LSTM和注意力层组成。模型通过LSTM来获得物品级别的用户序列行为表示,借用Li等[12]的思想,通过注意力层来学习用户的主要意图。计算式为:

ej=vTtanh(A1ht+A2hj)

(10)

(11)

(12)

式中:v、A1和A2为参数矩阵;ht表示由LSTM生成的用户最后一次点击的隐状态表示;hj表示由LSTM生成的用户以往点击的隐状态表示。式(10)计算出每个隐状态对[ht,hj]之间的相似度ej,式(11)根据这些相似度计算出注意力机制的权重系数αj。最终,根据该系数用式(12)计算出用户意图作为编码器层的输出。

(3) 特征的拼接:通过将用户序列行为编码器的输出hs与用户主要意图编码器的输出hatt拼接起来,得到当前会话的一种混合的动态表示l=[hs,hatt]。解码器将根据该表示进行解码。拼接后的向量l既包含了用户的序列行为特征,也可以体现出用户意图。

2.4 解码器层

解码器层由全连接层和Softmax层组成,该层利用[hs,hatt]得到一个物品推荐列表。列表中的物品根据其接下来可能被用户点击的概率大小,按照从大到小的顺序排列。

2.5 损失函数

TASR模型在训练时采用的损失函数是交叉熵损失函数,计算式为:

(13)

式中:q表示模型预测结果的概率分布;p表示真实的分布。模型的参数采用AdaGrads算法[18]进行优化,该方法是随机梯度下降算法的一个变种。

3 实 验

3.1 数据集及数据预处理

(1) Movielens:针对Movielens数据集,本文提取元组(user_id,movie_id,rate,timestamp)。每个元组表示某个用户user_id在时刻timestamp给电影movie_id打出了评分rate。由于timestamp精确到天,即某个用户可能在同一天里对多个电影打出了评分。为了方便计算时间间隔,本文只保留了第一个。Movielens将用户对每部电影的评分(0.5~5.0)离散化为从0到9共10个等级。

(2) LastFM:针对LastFM数据集,本文提取元组(user_id,song_id,timestamp)。每个元组表示某个用户user_id在时刻timestamp点击了音乐song_id。由于LastFM数据集本身不包括用户的评分,因此在实验中认为该数据集上每个用户对每首音乐的评分都相同。

以上两个数据集所包括的用户数、物品数、用户物品交互数的统计数据如表1所示。针对每个数据集,本文随机选取其中的80%作为训练集,余下的20%作为测试集。

表1 数据集统计表

3.2 模型设置与实验环境

针对TASR模型,物品的表示采取独热编码,限制个数为5 000,将超出范围的物品从用户点击序列中去除;初始学习率为0.01;将长度超过50的序列截断为50;隐藏层编码长度设定为128;mini-batch的大小固定为10;模型迭代次数为30。

实验环境:操作系统是Ubuntu 16.4;模型框架由基于Theano的Lasagne实现;编程语言是Python2.7。

3.3 评估指标

为了评价模型的效果,实验采用了两个评价指标召回率和平均倒数排名:

(1) 召回率(Recall):把每一个需要预测的目标物品(真实值)都与其他随机的100个物品混合在一起。然后将这101个物品按照本文提出的模型进行排序,选取排名前十的物品生成推荐列表。计算式为:

(14)

式中:nhit为推荐列表中出现目标物品的次数;ntestcase为总的测试次数。

(2) 平均倒数排名(MRR)是推荐列表中目标物品的排名倒数的均值。它可以体现目标物品在推荐列表中的排名。当目标物品在推荐列表中的排名超过10时,其值将设置为0。计算式为:

(15)

式中:|Q|是推荐的次数;ranki是对于第i次推荐时,推荐列表中第一个在真实值结果中的物品的排名。

3.4 实验对比方法与分析

实验从两个角度展开:其一将TASR与现有的其他推荐方法进行了详细对比;其二在不同编码特征、不同会话长度的条件下,讨论了TASR在同时考虑时间间隔和用户意图时的优势。具体对比方法如下:

(1) LSTM。一种基于LSTM的推荐方法。该方法在利用LSTM进行推荐时仅考虑了用户的点击序列,没有时间间隔信息。

(2) Time-LSTM。指Sheil等[8]提出的Time-LSTM模型。此时考虑用户点击序列的同时,也考虑了时间间隔信息。

(3) Att-LSTM_T。指利用LSTM和注意力机制进行推荐的方法。在推荐时考虑用户点击序列、时间间隔和用户意图。但是,时间间隔信息拼接在用户点击序列后由LSTM来计算,且同时采用注意力机制计算用户意图。

(4) Att-LSTM。指利用LSTM和注意力机制进行推荐的方法。在推荐时仅考虑用户点击序列和用户主要意图,没有时间间隔信息。

(5) NARM。指Li等[12]提出的通过一个混合的编码器同时建模用户的序列行为特征和主要意图的推荐方法。但是,该方法没有考虑用户时间间隔。

3.4.1TASR与其他算法对比

TASR与当前四种不同方法在两个数据集上的实验结果如表2所示。因为实验环境的硬件条件限制,表2中NARM的实验结果来自Ren等[19]的实验。

表2 五种不同方法在两个数据集上的实验结果对比

续表2

在与其他算法对比时,TASR、Time-LSTM和Att-LSTM_T的隐状态编码长度设为128。LSTM的隐状态编码长度设为512。所有算法训练时都将序列最大长度限制为50,mini-batch固定为10,迭代次数设置为30。

由表2可以得到如下结论:

(1) 在LastFM和Movielens两个数据集上,TASR在Recall@10和MRR@10这两个指标上的实验结果都是最好的。其中在LastFM数据集上,TASR比没有考虑用户时间间隔的NARM的Recall@10高出了0.18左右、比MRR@10高出了0.12左右;并且TASR比没有考虑用户意图的Time-LSTM在两个数据集的两个评价指标上都有提高,基本提高0.03以上。这说明本文提出的同时考虑时间间隔和用户意图的必要性。

(2) 在Movielens数据集中,采用Time-LSTM作为用户序列行为编码器即TASR,比采用LSTM作为用户序列行为编码器的Att-LSTM_T在MRR@10上提高了0.11左右。这说明序列行为编码器中,不同的时间间隔计算方式产生的效果也不同。

3.4.2编码长度以及会话长度对TASR的影响

(1) 不同隐状态编码长度的实验效果对比。不同的隐状态编码长度在LastFM数据集上的实验结果见表3。可以看出,TASR在隐状态编码长度为64及128时都取得了最好的实验结果。

表3 LastFM数据集上不同隐状态编码长度的实验结果对比

Time-LSTM以及Att-LSTM方法在编码为64时比编码128时实验结果相差0.03~0.06。而TASR在这两种编码条件下的实验结果相差仅在0.004左右。这说明相对于Time-LSTM和Att-LSTM,TASR受编码长度的影响较小。

(2) 不同会话长度下模型的效果对比。本节对比了在LastFM和Movielens数据集上、不同序列长度下TASR、Time-LSTM、LSTM三种算法,实验结果如图2和图3所示。

图2 LastFM数据集上不同序列长度的对比实验

图3 Movielens数据集上不同序列长度的对比实验

通过图2和图3可以得到以下结论:

(1) TASR在较短(长度为10以内)以及较长(长度为25以上)的用户行为序列条件下都取得了最好的实验结果。说明TASR在较短及较长的用户行为序列中都可以捕捉到用户意图。由于LSTM没有考虑时间间隔和用户意图,所以其在两个数据集下的实验结果都不太好。

(2) 以图3为例,当用户序列行为长度在10~20时,考虑了用户意图的TASR的预测效果比没有考虑用户意图的Time-LSTM的预测效果提高了13%左右。而当用户序列行为的长度超过25时,TASR比Time-LSTM的预测效果仅提高了5%左右,模型的优势减弱。本文分析认为:随着用户序列行为长度的增加,用户无意图行为可能越来越多。用户意图更发散,则用户的意图不能被很好地捕捉。所以当用户的序列行为长度超过一定限度时,模型的优势开始不明显。

(3) 对比图2和图3可知,TASR在Movielens数据集上的实验结果比其在LastFM上的结果要好一些。本文认为其原因在于,一方面LastFM数据集中用户的点击序列整体比Movielens中长;另一方面在模型的计算中,Movielens考虑了用户评价而LastFM没有考虑。

4 结 语

本文提出一个基于深度学习的网络模型。该模型在建模用户序列行为时,能同时考虑到用户动作间的时间间隔和用户意图对用户行为的影响。TASR利用Time-LSTM建模时间间隔对用户行为的影响和注意力机制捕获用户的主要意图,在提高用户行为预测的效果中起到了重要的作用。

猜你喜欢
解码器编码器间隔
基于ResNet18特征编码器的水稻病虫害图像描述生成
WV3650M/WH3650M 绝对值旋转编码器
WDGP36J / WDGA36J编码器Wachendorff自动化有限公司
基于Beaglebone Black 的绝对式编码器接口电路设计*
基于Android环境下的数据包校验技术分析
浅谈SCOPUS解码器IRD—2600系列常用操作及故障处理
做一个二进制解码器
间隔,是为了找到更好的自己
因人而异调整播放设置
上楼梯的学问