计算机系统应用  2021, Vol. 30 Issue (6): 220-225   PDF    
基于注意力机制的深度学习推荐算法
申晋祥, 鲍美英     
山西大同大学 计算机与网络工程学院, 大同 037009
摘要:针对目前基于评论文本的推荐算法存在文本特征和隐含信息提取能力不足的问题, 提出一种基于注意力机制的深度学习推荐算法. 通过分别构建用户和项目的评论文本表示, 利用双向门控循环单元提取文本的上下文依赖关系以获得文本特征表示, 引入注意力机制, 更准确的获取用户兴趣偏好和项目属性特征. 将生成的用户和项目评论数据的两组隐含特征分别输入全连接层处理, 再合并到同一个向量空间进行评分预测, 得到推荐结果. 在Yelp和Amazon两个公开数据集中进行实验, 结果表明所提出的算法与其他算法相比, 具有更好的推荐性能.
关键词: 深度学习    双向门控循环单元    注意力机制    特征提取    推荐算法    
Deep Learning Recommendation Algorithm Based on Attention Mechanism
SHEN Jin-Xiang, BAO Mei-Ying     
College of Computer and Network Engineering, Shanxi Datong University, Datong 037009, China
Foundation item: National Natural Science Foundation of China (11971277); Education Scientific Research Project of Shanxi Province during Thirteenth Five-Year Plan (GH-18045); Scientific Research Fund of Shanxi Datong University (2017K7)
Abstract: This study proposes a deep learning recommendation algorithm based on attention mechanism to solve the problem that the current recommendation algorithms based on comment texts have insufficient extraction of text features and implicit information. The comment text representations of users and items are constructed, and the context dependency of texts is extracted by bidirectional gated recurrent units for text feature representations. Moreover, the attention mechanism is introduced to obtain the interest preference of users and the attribute features of items more accurately. The two sets of hidden features of the generated user and item comment data are respectively input into the fully connected layer and then merge into the same vector space for rating prediction. As a result, the recommendation results are obtained. Experiments on two public data sets, Yelp and Amazon, show that the proposed algorithm has better recommendation performance than other algorithms.
Key words: deep learning     bidirectional gated recurrent unit     attention mechanism     feature extraction     recommendation algorithm    

1 引言

随着大数据、云计算以及互联网技术的快速发展, 各种网络应用使得网络数据爆炸式增长, 面对海量蕴含丰富价值的数据如何能够快速获得自己所感兴趣的信息变得越来越不容易. 推荐系统能够从大规模数据中分析提取出用户兴趣偏好的所需信息, 为用户提供个性化推荐, 是目前广泛认可的有效解决“信息过载”问题的一种策略.

虽然推荐系统已被广泛应用, 但仍存在很多问题, 如数据稀疏、冷启动、推荐多样性等问题. 充分利用用户评论文本, 对评论文本进行深度挖掘可以有效的提高推荐性能. 针对目前推荐系统对评论文本内容潜在特征和隐含信息提取能力不足导致的推荐精度下降问题, 利用深度学习对评论文本挖掘和提取的优势, 并融入注意力机制. 提出一种基于注意力机制的深度学习推荐算法以提高推荐系统的推荐精度.

2 相关研究

为解决传统推荐算法存在的评分数据稀疏问题, 基于评论文本的推荐算法相继出现, 利用从评论文本中提取的特征信息来提高项目的预测评分.

目前大多数基于评论文本的推荐算法[1,2]都是基于词袋模型, 不能对评论文本的上下文以及单词顺序特征进行很好的提取. 应用深度学习技术的推荐算法[3-7]通过卷积神经网络结合评论文本词序以及文本上下文信息, 能够很好的提取评论文本的潜在语义表示进行推荐, 有效的提高了推荐性能. 在此基础上进一步引入注意力机制, 可以加强重点部分信息的关注度并投入更多注意力资源, 从而获取更多需要重点关注内容的特征信息. 基于注意力机制的相关研究[8-12]通过对评论文本不同方式的建模, 进一步提高文本处理效率.

基于以上研究, 提出一种基于注意力机制的深度学习推荐算法(Attention-based Deep Learning User and Item, ADLUI), 主要贡献如下:

(1)分别构建用户和项目的评论文本表示, 利用双向门控循环单元捕获文本中的词序信息, 提取文本的上下文依赖关系以获得文本特征表示, 将其输入到全连接层获取最终评论文本特征表示以进行预测评分.

(2)在分别构建的用户和项目评论文本的双向门控循环单元中引入注意力机制, 识别文本特征表示中不同特征的重要性, 更准确的获取用户兴趣偏好和项目属性特征.

(3)在Yelp和Amazon两个真实数据集中进行实验, 结果表明所提出的算法与其他先进算法相比, 具有更好的推荐性能.

3 基于注意力机制的深度学习推荐模型

评论文本中, 一些单词和句子所表达的语义特征对用户的偏好和项目的特性侧重会有所不同, 因此所提模型对用户和项目评论文本分别建模, 采用双向门控循环单元分别生成用户和项目特征表示, 引入注意力机制有选择的对重要特征表示部分进行提取, 最后将两个部分生成的评论文本特征表示再合并到同一个向量空间完成深度部分预测评分. ADLUI推荐模型结构如图1所示, 接下来对推荐模型进行详细介绍.

图 1 ADLUI推荐模型结构

3.1 门控循环单元和注意力机制 3.1.1 门控循环单元

门控循环单元(Gated Recurrent Unit, GRU)能够捕捉时间序列中时间步距较大的依赖关系, 同时有效解决梯度消失问题. GRU模型有两个门: 更新门(Zt)和重置门(rt). 当前新状态 ${\tilde h_t}$ 之间的线性内插值利用上一状态ht−1与新序列信息计算, 权重矩阵相乘, 重置门结果rtht−1进行哈达玛积⊙, 然后把两部分信息相加通过tanh激活函数将结果缩小至(−1, 1). 计算 ${\tilde h_t}$ 如式(1)所示.

${\tilde h_t} = \tanh \left( {\mathop W\nolimits_h \mathop w\nolimits_t + \mathop U\nolimits_h \left( {\mathop r\nolimits_t \odot \mathop h\nolimits_{t - 1} } \right) + \mathop b\nolimits_h } \right)$ (1)

网络最后计算ht向量, ht将保留当前单元信息并传递到下一个单元中. 计算如式(2)所示.

$\mathop h\nolimits_t = \left( {1 - \mathop {\textit{z}}\nolimits_t } \right) \odot \mathop h\nolimits_{t - 1} + \mathop {\textit{z}}\nolimits_t \odot {\tilde h_t}$ (2)

基于GRU对评论文本建模, 将文本中句子的每个单词 $w_k^j$ 都映射为 $w_k^j \in {R^d}$ , GRU把输入序列 $w_k^j \in {R^d}$ 映射到一组隐藏状态 $h_q^j$ , 按GRU公式计算.

3.1.2 注意力机制

注意力机制可以有效突出评论文本重点, 提取对句子重要的用户或项目特定单词. 通过注意力机制根据隐藏状态sk, …, sp提取上下文向量ck, 并结合当前隐藏状态hk. 先前状态sj的注意力分数ak可由式(3)计算得出.

$\mathop a\nolimits_k = softmax \left( {\mathop f\nolimits_{\rm att} \left( {\mathop h\nolimits_k ,\mathop s\nolimits_j } \right)} \right)$ (3)

上下文向量ck利用ak加权计算如式(4)所示.

$\mathop c\nolimits_k = \sum\limits_{j = 1} {\mathop a\nolimits_{kj} \mathop s\nolimits_j } $ (4)
3.2 模型实现过程 3.2.1 词嵌入矩阵

利用Word2Vec中的Skip-gram算法训练词嵌入矩阵, 假定评论文本由q个句子{s1, s2,…, sq}组成, 其中第k个句子sk包含lk个单词, { ${w_{{k_1}}},{w_{{k_2}}}, \cdots ,{w_{{k_{{l_k}}}}}$ }, 则单词级嵌入矩阵wkj可表示为wkj={ ${w_{{k_1}}},{w_{{k_2}}}, \cdots ,{w_{{k_{{l_k}}}}}$ }.

3.2.2 序列数据编码方法

双向门控循环单元(Bidirectional Gated Recurrent Unit, Bi-GRU)前向和后向处理序列数据全面考虑了评论文本的上下文信息来捕获文本语义特征. 前向隐藏状态如式(5)所示, 后向隐藏状态如式(6)所示.

$\overrightarrow {{h_t}} = \overrightarrow {Bi {\text{-}} GRU} ({w_t},\overrightarrow {{h_{t - 1}}} )$ (5)
$\overleftarrow {{h_t}} = \overleftarrow {Bi {\text{-}} GRU} ({w_t},\overleftarrow {{h_{t + 1}}} )$ (6)

假定序列向量[w1;w2;…;wJ], 则前向GRU读取序列从w1wJ, 后向GRU读取序列是从wJw1.

3.2.3 引入注意力机制

评论文本中每个单词在其所在的句子中具有不同的重要性, 引入注意力机制的目的就是有效提取句子中的重要单词. 假定某用户(user)所发表的评论文本中第k个句子 $H_k^u = (h_{{k_1}}^u,h_{{k_2}}^u, \cdots ,h_{{k_q}}^u)$ , 其中 $h_{kj}^u$ 表示句子 $H_k^u$ 中第j个单词的隐藏状态, 假定每个单向GRU的隐藏单元为p, $H_k^u \in {R^{2p \times q}}$ , 分别将每个用户(user)和每个项目(item)映射为连续的实数值向量 $u \in {R^{{d_u}}}$ $I \in {R^{{d_I}}}$ , 其中du表示用户嵌入的维度, dI表示项目嵌入的维度. 则句子的注意力可由式(7)表示.

$a_{kj}^u = softmax \left( {w_w^u\tanh \left( {W_{wh}^uH_k^u + W_{wu}^uu + b_w^u} \right)} \right)$ (7)

式中, $w_w^u \in {R^{1 \times {d_a}}}$ , da为可任意设置的一个超参数, $W_{wu}^u \in $ $ {R^{{d_a} \times 2p}}$ $W_{wh}^u \in {R^{{d_a} \times 2p}}$ 为权重矩阵, $a_{kj}^u$ 为1×q向量, $a_{kj}^u$ 各个维度均可表示相对应位置词的注意力多少. 因此, 通过用户评论文本中词级隐藏状态的加权和组成获得基于用户评论文本的表示如式(8)所示.

$s_k^u = \sum\limits_{j = 1}^{{l_k}} {a_{kj}^uh_{kj}^u} $ (8)

类似基于用户评论文本的过程同理可得基于项目评论文本的表示.

3.2.4 全连接层处理

将用户和项目的评论文本的特征表示分别输入全连接层(Fully Connected layer, FC)处理, 基于注意力机制的用户和项目语义向量分别用rurI表示, 如式(9)和式(10)所示.

${r_u} = ReLU\left( {W_{fc}^u{d^u} + b_{fc}^u} \right)$ (9)
${r_I} = ReLU\left( {W_{fc}^I{d^I} + b_{fc}^I} \right)$ (10)

最后将潜在的表示(ru,rI)映射到同一个向量空间并通过内积预测评分, 如式(11)所示.

${\hat r_{u,I}} = \mathop {{r_u}}\nolimits^{\rm{T}} {r_I}$ (11)
4 实验与结果分析 4.1 实验数据集

实验使用两个不同域的公开数据集Yelp ( https://www.kaggle.com/c/yelp-recsys-2013/data)和Amazon( http://jmcauley.ucsd.edu/data/amazon)对比不同算法的性能, 原始数据集中有百万级的商品评论信息且没有进行类别筛选和数据整理, 先进行数据预处理, 将评论记录少于5条的用户以及被评论记录少于5条的商品筛除, 数据集中的评分值是1至5之间的整数, 然后对数据集类别进行筛选. 预处理后的Yelp和Amazon数据集统计信息如表1表2所示.

表 1 Yelp数据集统计信息

实验中将数据集80%作为训练集, 10%作为验证集, 10%作为测试集, 进行5次交叉实验取平均结果作为最终结果.

表 2 Amazon数据集统计信息

4.2 实验评估指标

实验采用均方根误差(RMSE)和归一化折损累计增益(Normalized Discounted Cumulative Gain, NDCG)作为评估各推荐算法性能的评价指标. 均方根误差如式(12)所示.

$RMSE = \sqrt {\frac{{\displaystyle\sum\nolimits_{j = 1}^N {\mathop {\left( {\mathop P\nolimits_j - \mathop R\nolimits_j } \right)}\nolimits^2 } }}{N}} $ (12)

式中, N表示实验测试项目数, Pj表示预测评分, Rj表示实际评分, RMSE值越小说明性能越好.

NDCG考虑结果集中项目的位置相关性, 如式(13).

$NDCG@M = \frac{1}{Z}\sum\limits_{j = 1}^M {\frac{{{2^{re{l_j}}} - 1}}{{{{\log }_2}(j + 1)}}} $ (13)

式中, relj表示处于位置j的推荐结果的相关性, Z表示归一化因子.

4.3 推荐模型参数分析

ADLUI推荐模型参数包含Epoch、词嵌入维度dW和注意力维度dA, 深入分析参数设置对模型的影响. 在训练数据中Epoch产生的结果如图2所示.

图 2 训练数据中Epoch产生的结果

从训练中可以看出, 刚开始RMSE值相对较大, 那是因为参数更新的数量小还不能确定最优参数值, 随着训练继续, Epoch的增大,RMSE值逐步减小. 从两个数据集的RMSE值变化情况可看出, Amazon的RMSE值波动变化比Yelp大, 原因是Amazon数据集的数据量大且数据多样性, 导致训练误差大, Epoch值的变化使RMSE有明显波动. 当Epoch值取13到17时实验结果最优. 为了避免Epoch值过大而发生数据过拟合现象以导致推荐性能下降, 在验证数据中再次分析Epoch的取值, 验证数据中Epoch产生的结果如图3所示, Epoch取值15结果最优.

图 3 验证数据中Epoch产生的结果

词嵌入维度dW和注意力维度dA通过数据集进行实验, 观察不同数据集中RMSE值的最优结果. 词嵌入维度dW实验结果如图4所示, dW取值200结果最优.

图 4 词嵌入维度dW实验结果

注意力维度dA实验结果如图5所示, dA取值100结果最优.

4.4 各算法比较分析

所提ADLUI推荐模型与现有模型TopicMF[1]、CDL[4]、ConvMF[5]、DeepCoNN[6]、ACoNN[8]进行比较. 在Yelp和Amazon数据集中, 各模型RMSE值的比较结果如表3所示, 各模型NDCG的比较结果如表4所示.

图 5 注意力维度dA实验结果

表 3 各模型RMSE值的比较结果

表 4 各模型NDCG值的比较结果

通过实验结果验证了各模型的性能, TopicMF基于主题模型考虑不到评论文本上下文及词序特征, 性能表现最差. CDL模型是将深度学习中的堆栈自编码器与矩阵分解模型结合的一个分层贝叶斯模型. 结合评论文本建模采用自编码学习项目的特征表示, 性能优于TopicMF. ConvMF是将CNN与概率矩阵分解相结合, 利用CNN提取评论文本潜在特征. 相对于CDL更进一步, 基于CNN考虑词序和评论文本上下文信息进行获取潜在语义表示. DeepCoNN是采用两个并行的CNN分别提取用户行为特征和评论文本中的项目属性信息, 模型的最后一层应用分解机捕获交互信息完成评分预测. 性能优于ConvMF. ACoNN是对DeepCoNN模型的改进, 在DeepCoNN模型中加入一层基于注意力机制的权值更新层实现对评论文本的进一步优化, 加强网络对重点内容的关注有效提高推荐的准确性. 本文所提算法ADLUI分别构建用户和项目的评论文本表示, 利用Bi-GRU捕获文本中的词序信息, 提取文本的上下文依赖关系以获得文本特征表示, 引入注意力机制, 识别文本特征表示中不同特征的重要性, 将生成的用户和项目评论数据的两组隐含特征分别输入全连接层处理获取最终特征表示, 然后再合并到同一个向量空间以进行预测评分, 有效结合用户和项目信息, 与其他的算法相比较具有更优的推荐性能. 在Yelp和Amazon两个数据集中, NDCG@10结果较其他最好算法提高了1.95%和1.58%, 实验结果表明, ADLUI算法有效提高推荐性能.

5 结论

提出一种基于注意力机制的深度学习推荐算法, 充分利用评论文本信息, 挖掘用户潜在的兴趣偏好和项目属性特征, 实验结果表明, 所提算法能够有效提高推荐的精度, 为用户提供更加准确和优质的推荐项目. 下一步将考虑用户兴趣偏好会随时间而变化对推荐算法完善进行研究.

参考文献
[1]
Bao Y, Fang H, Zhang J. TopicMF: Simultaneously exploiting ratings and reviews for recommendation. Proceedings of the 28th AAAI Conference on Artificial Intelligence. Québec City, QC, Canada. 2014. 2–8.
[2]
Cheng ZY, Ding Y, Zhu L, et al. Aspect-aware latent factor model: Rating prediction with ratings and reviews. Proceedings of the 2018 World Wide Web Conference. Lyon, France. 2018. 639–648.
[3]
Elkahky AM, Song Y, He XD. A multi-view deep learning approach for cross domain user modeling in recommendation systems. Proceedings of the 24th International Conference on World Wide Web. Florence, Italy. 2015. 278–288.
[4]
Wang H, Wang NY, Yeung DY. Collaborative deep learning for recommender systems. Proceedings of the 21th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. Sydney, Austrilia. 2015. 1235–1244.
[5]
Kim D, Park C, Oh J, et al. Convolutional matrix factorization for document context-aware recommendation. Proceedings of the 10th ACM Conference on Recommender Systems. Boston, MA, USA. 2016. 233–240.
[6]
Zheng L Noroozi V, Yu PS. Joint deep modeling of users and items using reviews for recommendation. Proceedings of the Tenth ACM International Conference on Web Search and Data Mining. Cambridge, UK. 2017. 425–434.
[7]
Costa F, Ouyang SX, Dolog P, et al. Automatic generation of natural language explanations. Proceedings of the 23rd International Conference on Intelligent User Interfaces Companion. Tokyo, Japan. 2018. 57–56.
[8]
黄文明, 卫万成, 张健, 等. 基于注意力机制与评论文本深度模型的推荐方法. 计算机工程, 2019, 45(9): 176-182.
[9]
Wu L, Ge Y, Liu Q, et al. Explainable social contextual image recommendation with hierarchical attention. arXiv preprint arXiv: 1806.00723, 2018.
[10]
颜梦香, 姬东鸿, 任亚峰. 基于层次注意力机制神经网络模型的虚假评论识别. 计算机应用, 2019, 39(7): 1925-1930. DOI:10.11772/j.issn.1001-9081.2018112340
[11]
邢长征, 赵宏宝, 张全贵, 等. 融合评论文本层级注意力和外积的推荐方法. 计算机科学与探索, 2020, 14(6): 947-957. DOI:10.3778/j.issn.1673-9418.1906067
[12]
胡玉琦, 李婧, 常艳鹏, 等. 引入注意力机制的BiGRU-CNN情感分类模型. 小型微型计算机系统, 2020, 41(8): 1602-1607. DOI:10.3969/j.issn.1000-1220.2020.08.006