牛耀强,孟昱煜,牛全福
(1.兰州交通大学 电子与信息工程学院,兰州 730070; 2.兰州理工大学 土木工程学院,兰州 730050)
随着社交网络技术的快速发展和广泛使用,移动端设备日益普及,在线问答系统如知乎等也得到了快速发展,已成为人们日常生活中不可缺少的一部分。在知识问答系统中存在大量的数据信息,如问题信息、答案信息、用户信息等。同时,在用户与知识问答系统交互的过程中,会产生大量的行为数据,如用户搜索过的问题、用户查看过的文本、用户评论过的文章、用户赞同的文章、用户的收藏文章、用户评论过的文章以及用户关注的作者等。这些异质数据中蕴含着丰富的价值,对实体建模和信息挖掘有着重要的影响。但随着问答系统中异质数据的不断增多,用户画像和精准推荐已经愈发具有挑战性。
传统的文本推荐方法主要分为协同过滤[1-2]、基于内容的推荐[3]和混合型的推荐[4-5]。随着网络的飞速发展,交互的应用遍布所有角落,用户和文本之间的交互关系显得十分的稀疏,传统的推荐算法很难得到较好的应用[6-7]。近年来,随着深度学习在计算机视觉和自然语言处理等领域取得的进展,逐渐展现出其对数据特征进行挖掘和提取的优势。而特征提取正是推荐系统中的重要环节,特征学习的好坏关乎推荐系统的成败,因此,业界逐渐开始研究深度学习领域。文献[8]提出了一种多视角深度神经网络模型,模型通过分析用户的浏览记录和搜索记录提取用户的特征,从而丰富用户的特征表示,然后通过用户和项目两种信息实体的语义匹配来实现用户的项目推荐。文献[9]研究了标签感知的个性化推荐问题,分别利用用户的所有标签和项目的所有标签学习得到用户和项目的隐表示,通过计算用户隐表示和项目隐表示的相似度来产生推荐。对于微博文本推荐,文献[10]提出了一种基于注意力的卷积神经网络(Convolutional Neural Network,CNN)模型,将标签推荐看作一个多分类问题,其模型包括一个全局通道和一个局部注意力通道,用CNN作为特征提取的方法来获取微博的特征。文献[11]研究如何利用评论信息来进行文本推荐的问题,提出一个基于注意力的CNN模型,该模型由一个用户网络和一个项目网络组成,各网络分别采用CNN从用户的评论信息和项目的评论信息中学习用户和项目的特征表示。目前由于循环神经网络(Recurrent Neural Network,RNN)在处理序列问题的优势,被广泛地应用到文本推荐任务中。文献[12]提出一种基于注意力的长短时记忆(Long-Short Term Memory,LSTM)模型进行微博标签推荐,该模型将注意力机制与RNN结合,其优势是既能抓住文本的序列特征,同时又能从微博中识别出最具有信息量的词。文献[13]提出基于注意力的记忆网络来进行微博的提示推荐,考虑到微博文本长度通常较短,且存在词稀疏和词同义等问题,仅仅使用语言模型(如词嵌入模型)获得的推荐效果通常非常有限,因此,利用学习用户的历史微博记录得出的特征来建模用户的兴趣,提升了推荐的准确性。这些推荐方法研究的重点从单一因素转向充分利用大量异质数据和关系网络,主要对用户的长期兴趣作出建议,而一些关于文本的心理学和社会学表明,用户在特定时期的需求往往受到其当时所处状态的影响。例如,当用户在现实生活中遇到不同的问题时,他们在知识问答系统中关注的话题也会发生变化。
为满足用户的这种需求,文献[14]提出了短期推荐的重要性。在歌曲推荐领域,文献[15]从移动设备上收集用户的短期信息,构建一个将用户短期信息和歌曲内容相结合的概率模型,用于满足用户的短期需求。文献[16-17]使用类似word2vec[18-19]的方法嵌入歌曲,进行短期文本推荐。文献[20]考虑了用户在临时会话中花费在项目上的总时间。用户与项目交互的时间越长,用户的偏好就越强。他们使用2个带注意机制的门控循环单元(Gated Recurrent Unit,GRU),从用户行为数据模拟用户总体偏好和主要目的,然后整合2个向量的结果,计算其与候选向量的相似性,得出推荐结果。文献[21]提出一种分层RNN模型,该模型利用用户的历史信息来建模用户的个人偏好变化,为用户提供个性化的短期推荐。这些研究在短期推荐方面取得了一定的进展,但大部分模型使用同质数据得到用户的特征表示,且使用词袋模型作为推荐模型的输入,这种方法丢失了句子的序列信息,对用户特征提取并不完整,在训练过程中维数灾难和训练复杂度过高的缺点仍然明显。
本文通过融合文本数据(知乎话题文本、答案文本和用户信息文本)和关系网络这2种异质数据,提出基于异质注意力的循环神经网络模型。使用句子级的分布记忆模型(PV-DM)[22]和TransR[23]将文本和关系嵌入到维度相同的高维向量作为模型的输入,以降低训练的复杂度。受机器翻译[24]的启发,将编码器-解码器框架引入模型中,在编码阶段,将用户在短期内的兴趣引入推荐模型中,经注意力层与解码器相连接,使解码器能动态地选择并线性组合编码器输入序列的不同部分,以建模用户在短期内的偏好。
RNN[25]的网络结构如图1所示。
图1 RNN结构Fig.1 RNN structure
给定一个输入序列x=(x1,x2,…,xT),RNN通过迭代公式:
ht=σ(Uxt+Wht-1+bh)
(1)
yt=Vht+bo
(2)
计算t时刻隐层向量序列h=(h1,h2,…,hT)和输出向量序列y=(y1,y2,…,yT)。其中,U为输入层到隐层的权重矩阵,W为隐层之间的权重矩阵,bh为隐层偏置向量,σ为隐层激活函数,常用的为Sigmoid函数,V为隐层到输出层的权重矩阵,bo为输出层偏置向量。
RNN在模型化序列问题时具有优势,然而随着隐藏层的增加,普通循环神经网络模型也会带来梯度消散的问题。因此,文献[26]提出了一种循环神经网络的变体,即长短时记忆模型(LSTM)。LSTM单元会以不受控制的方式在每个单位步长内重写自己的记忆,而且 LSTM 有专门的学习机制能够在保持先前状态的同时,记忆当前输入数据的特征。LSTM 神经网络模型包含输入门、遗忘门和输出门3个门。GRU神经网络是LSTM的变体,相比于 LSTM,GRU只有重置门和更新门。LSTM单元和GRU单元对比如图2所示。
图2 LSTM 单元与 GRU 单元对比Fig.2 Comparison of LSTM unit and GRU unit
与LSTM相比,GRU神经网络的参数更少,不容易产生过拟合,且在训练过程中需要的迭代次数更少,收敛时间更短。GRU的计算步骤如下:
1)计算重置门rt与更新门zt,计算公式如下:
rt=σ(Wxrxt+Whrht-1)
(3)
zt=σ(Wxzxt+Whzht-1)
(4)
其中,xt为t时刻输入层的输入,ht-1为t-1时刻GRU单元的输出,W是连接权重矩阵,σ为Sigmoid激活函数。
(5)
3)计算GRU单元状态及输出ht,计算公式如下:
(6)
传统RNN存在的不足是它仅能够利用正向序列中当前时刻之前的内容。而在文本情感分析中,从反向序列而来的当前时刻之后的内容对人物情感的判断也具有十分重要的作用。因此,如果同时训练2个GRU神经网络,一个采用正向序列学习,另一个采用反向序列学习,将正向和反向的最后一个状态对应的向量连接后得到的向量作为最后的结果,这样来自于序列过去和未来的互补信息就可以整合到一起用于推理人物情感。双向RNN[27]用2个独立的隐层分别从正向和反向2个方向来处理数据,以达到上述目的。本文使用的双向GRU神经网络模型结构如图3所示,可以从正向和反向2个方向来处理文本信息。
图3 双向GRU神经网络结构Fig.3 Structure of bidirectional GRU neural network
在线问答平台包含大量的实体,这些实体相互连接形成一个巨大的关系网络,如作者和文本、文本和读者用户以及作者和读者用户之间的关系。另外,在阅读的过程中,用户会通过关注作者、评论文本或者标记他们喜欢的文本来生成大量的交互式数据。传统的嵌入方法很难从关系数据中提取到较多的有用信息。受知识图谱的启发,本文使用TransR方法对关系网络中的实体和关系进行向量化。对于关系嵌入,一般方法是通过将关系视为从头实体到尾实体的转换来构建实体和关系嵌入,即这些模型简单地将实体和关系放在同一语义空间中,然而在现实生活中,由于各个实体所处关系的不同,这种方法显然并不合理。TransR将实体和关系映射到多个不同实体空间和关系空间,并在相应的关系空间中进行转换,如图4所示。
图4 TransR方法示意图Fig.4 Schematic diagram of TransR method
实体的投影向量为:
hr=hMr,tr=tMr
(7)
得分函数为:
(8)
通过最小化上面的得分函数,可以得到网络中实体和关系的向量表示,为提高嵌入的泛化能力,需要对嵌入实体、嵌入关系和映射矩阵大小进行限制,其中,‖h‖2≤1,‖r‖2≤1,‖t‖2≤1,‖hMr‖2≤1,‖tMr‖2≤1。
在知识问答系统中,有许多文本描述数据,如问题描述文本、答案内容文本和用户信息文本等,这些数据对实体建模有着重要的影响。类似于word2vec,PV-DM通过对句向量和词向量的平均或连接来预测上下文中下一个单词的概率,在本文实验中,使用串联的方法来组合这两个向量。如图5所示,每个段落都映射到一个唯一的向量,由矩阵D中的一列表示,每个单词也映射到一个唯一的向量,由矩阵W中的一列表示。具体来说,假设语料库中共有N个句子和M个词,每一段映射到p维度,每个单词映射到q维度,那么模型总共有M×p+N×q个参数(不含Softmax参数)。用数学语言描述,即给出了一系列训练单词w1,w2,…,wt和一个段落di,词向量模型的目标是使平均对数概率最大化:
图5 句向量模型示意图Fig.5 Schematic diagram of sentence vector model
(9)
预测任务通常由一个多分类器执行,如Softmax,因此,有:
(10)
每一个yi是每个输出词i的非标准化对数概率,计算公式为:
y=b+Uh(wt-k,…,wt+k,di;W,D)
(11)
其中,U和b是Softmax参数,h由W中提取的词向量与D中提取的段落向量串联或平均构成。与词向量模型相比,PV-DM通过将段落信息映射到附加的矩阵D中作为段落信息的标记,来表示当前段落在上下文中的主要信息。
在短期文本推荐任务中,使用双向GRU作为RNN的基本单元来获取序列中的信息,并引入编码器-解码器框架。如图6所示,在编码阶段,将用户在短期内的行为引入推荐模型中。使用上一节提到的方法分别将用户在短期内查看的话题信息、答案文本信息、文本的作者信息和关系网络嵌入到高维向量中,然后通过首尾相连的方法拼接成同一个向量,作为编码器的输入(input1)。在编码器和解码器之间引入注意力机制,使解码器能动态地选择并线性组合编码器输入序列的不同部分,来建模用户在短期内的偏好。注意力计算公式如下:
图6 短期文本推荐模型架构Fig.6 Architecture of short-term text recommendation model
αtj=s(ht,hj)=vTσ(Aht+Bhj)
(12)
(13)
其中,ht表示最终时刻的隐藏层状态,hj表示ht前一项隐藏层状态,A和B分别是ht和hj的传递矩阵,σ表示激活函数,这里选择Sigmoid函数,用来计算最终隐藏层状态ht和前一层hj之间的相似性,也即注意力权重αtj的值,表示任意时刻的输入序列较当前输入序列的相对重要性,用来确定在提出建议时当前输入序列应强调或忽略,ct表示短期序列的注意力得分。
通过带有注意力机制的编码器为不同时刻的输入分配自适应权值,来表示用户在当前会话的主要目的。在解码器阶段,将编码器的注意力输出ct、候选项和当前用户的表示作为输入(图6中的input2表示候选项和当前用户的表示)。候选项是当前用户长期已读文本、已读文本的作者信息和关系数据的拼接向量。然后通过双向GRU层和前馈网络层,计算每个候选项的得分。最后通过Softmax层将得分标准化。模型损失函数采用交叉熵损失函数,公式如下:
(14)
其中,q是预测候选项位置分布,p是实际分布。
模型在双向GRU层正向和反向各设置128个隐藏单元。在每个隐藏层后加入50%的dropout层,提高了模型的鲁棒性和泛化能力。在解码阶段,将用户短期内阅读的100个候选文本序列作为输入,然后通过双向GRU层和分别含有512个和256个隐藏单元的前馈层处理,模型使用Adam[29]进行优化。
本文数据集来源于知乎,知乎是中国最大的知识问答系统之一,在这个平台上可以获得大量的完整数据。本文使用的数据来自于CCIR2018 竞赛,数据包括部分用户信息、用户读一个文本/答案之前的已读序列、未读序列以及所有的文本信息。在实验中,使用100 000个记录作为训练集,20 000个记录作为测试集。在本文数据集中共使用5种实体和14种关系类型,如表1和图7所示。
表1 数据集中的实体和关系类型Table 1 Entities and relationships types in the dataset
图7 实体和关系类型示意图Fig.7 Schematic diagram of entities and relationships types
将本文提出的模型分别与2种传统的推荐方法和1种神经网络模型进行比较。
TF-IDF:TF-IDF是一种统计方法,用来评估某个字词对于一个语料库或一个文件集中的其中一份文件的重要程度。词的重要性随着字词在文件中出现的次数成正比。本文将每个文本表示成TF-IDF向量的形式,通过计算目标向量与序列的得分进行推荐,计算方式如下:
(15)
ItemKNN:ItemKNN[29]是一种常用的协同过滤算法。文本间的相似性通过用户查看文本序列的频率来衡量。
MEM:文献[17]提出的模型。首先通过使用用户查看文本记录和相应的元数据(包括用户信息、答案信息等)来学习文本的嵌入,然后根据嵌入的结果推断并模拟用户对文本内容的全局和上下文偏好;最后根据目标用户的偏好推荐合适的文本内容,满足用户的短期要求。
在本文实验中,为了评价模型的推荐效果,使用召回率(Recall)和均值平均精度 (mean Average Precision,mAP)作为推荐结果的评估指标。
Recall:在评价推荐算法时,召回率是常用的评价指标,其表示推荐列表中用户喜欢的文本与用户真正喜欢的文本之间的比率。
mAP:召回率只是衡量用户喜欢的项目有没有被推荐,而与推荐的顺序并无关系,在Top-N推荐中,推荐列表的顺序也是极其重要的。在文本推荐任务中,使用mAP作为实验的指标之一,计算公式如下:
(16)
(17)
其中,Ωu表示推荐列表中用户喜欢的文本是否在用户真正喜欢的文本中,若是,则取1,否则取0;再累计相加,pui表示i文本在推荐列表中的位置,puj 本文提出的基于异质注意力卷积神经网络模型分别将文本数据和关系网络嵌入到100维的向量中,然后通过拼接的方法得到共200维的输入向量。模型训练时初始学习速率设置为0.001,最小批处理大小为256。该模型是在Keras的GeForce GTX 1080Ti GPU上定义和训练的。 4.5.1 模型结果对比 将本文所提模型与选择的其他模型的结果进行比较,实验结果如图8所示。 图8 各模型在数据集上的结果Fig.8 Results of each model on the dataset 无论从召回率或是MAP来排序,本文提出的基于异质注意力的循环神经网络模型都优于其他模型。如表2所示,在Top-15推荐中,与TF-IDF和ItemKNN相比,在召回率方面,本文模型比TF-IDF提高了30.03%,比ItemKNN提高了18.31%;在更加注重推荐排序的mAP方面,本文模型比TF-IDF提高了37.78%,比ItemKNN提高了27.66%。这表明仅仅计算文本的相似度对用户长期偏好的建模是不足的,还应考虑用户的短期兴趣。相比于传统模型,神经网络模型MEM取得了一定的效果,而本文模型在召回率和mAP各方面都优于MEM,尤其是在更加注重推荐排序的mAP方面,在Top-15推荐方面,本文模型比MEM提高了13.95%,说明了本文模型优异的性能。由此证明,本文使用多源异质数据作为推荐模型的输入和通过注意力机制将用户的短期兴趣引入推荐模型来满足用户的短期需求,大幅提高了推荐的准确性。 表2 在Top-15中各模型的实验结果Table 2 Experimental results of each model in Top-15 4.5.2 模型设计分析 为验证本文模型推荐准确性的提升,将模型输入数据的多样性和通过注意力机制把用户的短期兴趣引入推荐模型的设计,同时做了以下实验:1)在模型的基础上只使用文本信息作为模型的输入;2)在模型的基础上只使用关系网络作为模型的输入;3)在输入数据不变的前提下,推荐模型只使用解码器部分,即将用户的短期兴趣不单独引入模型中。实验结果如图9所示。 图9 模型设计分析结果Fig.9 Results of model design analysis 从图 9可以得出,使用基于异质注意力的循环神经网络的设计可以有效提升实验效果,这也说明将文本信息和关系网络嵌入到高维向量,并使用注意力机制将用户的短期兴趣引入到推荐模型,设计更有效的建模用户的偏好,能够得到更准确的用户个性化推荐效果。 4.5.3 嵌入维数对推荐结果的影响 本文研究特征嵌入维数对模型性能的影响。在本文模型中,使用文本数据和关系网络这2种异质数据,本文实验将一种数据嵌入0~300的维度,另一种数据保持100维不变,实验结果如图10所示。 图10 嵌入维数对推荐结果的影响Fig.10 Influence of embedding dimension numbers on recommendation results 随着特征嵌入维数增加,模型的性能慢慢提高并逐渐趋于稳定,当嵌入维数小于100时,嵌入维度对模型性能有较大影响;当嵌入维度大于100时,模型性能趋于稳定;当设置嵌入维度为0时,也即删除这种输入数据,模型性能大幅降低,表明这2种数据对模型性能都是极其重要的。 本文提出基于异质注意力循环神经网络的短期文本推荐模型,将融合多源异质数据作为模型的输入,增强模型对用户兴趣的理解能力,运用编码器-解码器框架,在编码器阶段,将用户的短期兴趣引入到推荐模型中,并使用注意力机制与解码器相连接,通过双向GRU神经网络对用户的短期兴趣进行建模。实验结果表明,与通用模型和神经网络模型相比,本文模型性能取得了较大的提升,证明了模型的有效性。下一步考虑将深度学习与文本推荐相结合,以取得更好的推荐效果。4.4 参数设置
4.5 实验结果
5 结束语