基于评论文本的动态生成对抗网络推荐算法
2020-12-18杨丹,张鹰
杨 丹,张 鹰
(西华师范大学 计算机学院,四川 南充 637000)
0 引言
近年来,深度学习在人工智能领域已取得了很大的成功,也促使众多深度神经网络模型的出现.生成对抗网络[1]成为了深度学习一个新的研究热点,该模型在计算机视觉[2]、自然语言处理[3,4]等各项任务中已经有了广泛的研究.随着云计算、大数据、物联网和人工智能等技术的快速发展,随着互联网领域中各种各样的智能电子商务应用的信息过载问题,推荐系统近年来变得越来越重要.基于生成对抗网络的推荐算法研究可以更好地从多源异构数据中缓解数据稀疏性问题.
本课题强调了对用户偏好以及项目状态的时间演化背后的潜在特征进行建模,加入时间模型并利用评论文本真实数据集,提出了一种新颖的框架,即利用生成对抗网络中的生成模型和判别模型通过博弈学习产生精准的数据输出,有效处理和分析用户和项目的动态特征,缓解数据的稀疏性,提升推荐性能.
本文从以下三个方面阐释了所提算法的优势:1)提出了一种新颖的推荐模型,采用对抗训练策略来提高推荐质量.通过在生成对抗网络中生成模型基于评论来预测用户或项目的评分,而判别模型则将预测评分和实际评分区分开来,通过这两个模型的对抗训练得到更加精确的值.2)将时间效应信息创新性地加入到目标模型,通过对抗性框架中的生成模型和判别模型博弈学习,使推荐算法的性能既可以实现在时间上的长期有效性,又可以大大提升推荐结果的精准度.3)通过选用三种不同的真实数据集上进行实验,以评估提出方法的有效性.实验表明,在精确度(Precision)和召回率(Recall)两个不同的指标方面,所提算法均优于基线算法.
1 相关工作
推荐系统一般用于信息系统中缓解信息过载问题,用户在信息化时代所面对的信息过载问题主要是由大量简单的且可利用的信息或广告的影响[5].一般推荐问题可以描述为利用用户数据及其偏好来预测未来可能的喜好和兴趣的问题.推荐系统的核心是推荐算法,利用用户与项目间的交互信息,根据用户的历史行为信息、用户间相似性关系和项目特征等来帮助用户发现可能感兴趣的项目[6].传统的推荐包括基于内容的方法、基于协同过滤的方法和混合推荐三种类型[7].然而,绝大多数传统的推荐系统都将推荐过程看成是一个静态的过程,并按照固定的策略进行推荐,没有考虑到用户偏好和项目周期的时间效应[6,8],从而推荐一些类似的信息给用户,这些推荐内容可能会使用户感到无聊,没有达到个性化推荐的效果.随着推荐系统的个性化服务的发展,越来越多的推荐方法可以在与用户的交互过程中不断改进策略,随着时间的推移,用户兴趣的动态性变化也可以得到及时处理,体现优越的推荐性能.
生成对抗网络(GAN,Generative Adversarial Networks )于2014年引入深度学习领域,掀起了又一股深度学习技术的热潮,并证明了其在深度生成建模中的有效性[1,9].GAN是一类神经网络架构,所建立的学习框架旨在生成真实数据,该方法涉及训练两个具有冲突的目标神经模型,即发生器和判别器,迫使彼此改进生成高度逼真的数据样本[10,11].GAN实际上就是生成模型和判别模型之间的一个模仿游戏.其中,生成模型目的是尽量去模仿、建模和学习真实数据的分布规律;而判别模型则是要判别自己所得到的一个输入数据,究竟是来自于真实的数据分布还是来自于一个生成模型.通过这两个内部模型之间不断的竞争,从而提高两个模型的生成能力和判别能力.Radford等人[12]把CNN进行一定程度的改进并提出了DCGAN,其算法将有监督学习的CNN和无监督学习的GAN结合起来,为GAN的训练提供了很好的网络结构同时极大提升了GAN训练的稳定性以及生成结果质量. Jun Wang 等人[13]提出的IRGAN将GAN用在信息检索(Information Retrieval)领域,通过GAN的思想将生成检索模型和判别检索模型统一起来,对于生成器采用了基于策略梯度的强化学习来训练,在Web搜索、物品推荐、问答等场景中得到了更显著的效果.Dong-Kyu 等人[14]提出的一种新颖的基于生成对抗神经网络的协同过滤技术(CFGAN),通过一系列方法解决了传统IRGAN存在的问题,同时针对协同过滤进行优化,可以获得更高的推荐系统准确性.然而,这些方法都不能精确地挖掘出与时间推荐相关的用户和项目随时间变化的潜在特征,因此把时间效应信息融于到生成对抗网络中再用于推荐算法中是本文研究的主要重点内容.
2 所提框架
此次设计的动态生成式推荐模型如图1所示.
图1 推荐框架
在图1中,设计的动态生成式推荐模型可以分为两个步骤:步骤1为用户和项目的评分偏好生成,其中包括了时间模型、生成模型以及判别模型.步骤2为评分预测.详细介绍如下:
时间模型:通过对用户偏好和项目周期的时间效应进行分析,构建一个可以通用于预测用户偏好和项目周期性变化趋势的时间模型.具体公式如下:
(1)
其中Tc是指当前时间,即用户u进行推荐的时间;Tr是指评论时间,即用户u对项目i进行评论的时间;bt为时间偏差.
这里假设有M个用户U={u1,u2,…,uM},有N个项目N={v1,v2,…,vN},令R∈RM×N表示隐式反馈矩阵,其中当用户i和项目j发生交互时,Rij=1,否则为0.因此生成网络与对抗网络之间的对抗训练可以有以下描述.
生成模型:将自动编码器神经网络作为生成网络,高维特征向量将被映射到一个低层特征空间的隐藏层中,降维过程可以看作是用户嵌入特征的提取.其计算可以表示为:
hu=σ(Wi×g(Ru)+bi)
(2)
其中Ru为用户特征向量,σ(·)激活函数,{Wi,g(·)}为dropout函数,bi为偏置向量.这里添加dropout函数是因为数据集的稀疏性,为了避免训练过程中过拟合.
然后使用输出层从隐藏层中恢复原始用户特征向量,特征向量的缺失值填充在输出层中,可以描述为:
(3)
判别模型:判别模型旨在根据用户评分偏好和项目得分偏好与实际评分区分开来,以训练出更加精准的值.可以描述为:
(4)
推荐任务是一个预测问题,因此将不完整的用户历史记录作为生成网络的输入,再根据两个不同的损失函数进行进一步优化,可以描述为:
在判别网络训练中,可以描述:
(5)
然后再将JD附加到生成函数的损失函数中,以影响模型的训练.生成网络的损失函数如下所示:
(6)
其中W∈{0,1}M×N是一个非负权重矩阵.在训练开始之前,会随机初始化两个网络的参数,在对抗训练过程中,用等式(5)(6)交替训练生成网络和判别网络.
前N个推荐任务需要根据模型的预测评分给出推荐列表.最终预测评分的目标函数可以描述为:
(7)
(8)
3 实验结果与分析
3.1 数据集
针对推荐系统中用户和项目交互的稀疏性,并且大多数基于评分的推荐算法仍遭受着数据稀疏性的困扰.为了更好地评估模型性能,在三个公开的真实的亚马逊数据集上进行了实验.数据集的具体信息统计如表1所示:
表1 数据集统计
此实验选取80%的数据集作为训练集,10%的数据集作为验证集,10%的数据集作为测试集.通过词袋模型将用户的评论或项目收到的评论映射到向量矩阵进行实验中的特征提取.
3.2 评价指标
选用了两种评价指标来评估我们设计的模型的性能好坏,包括精确度Precision(P@k)和召回率Recall(P@k),从不同的角度来评估性能.公式如下所示:
(9)
(10)
其中Ck,j表示用户i的前k个推荐列表,TI是用户i在测试集中采用的项目.
3.3 实验结果
3.3.1 实验设置
对比三种基线算法与本文提出的方法进行比较,分别为LFM[15]、IRGAN[15]和没有加入时间权重矩阵Wt的基于评论文本的生成对抗网络推荐算法.其中LFM近年来推荐领域中最经典的算法之一,IRGAN在将GAN首次运用在信息检索领域最成熟的算法之一,通过对比这些经典的算法更能体现出此算法的优越性.
3.3.2 实验结果
表2显示了三种数据集分别在几种方法中进行比较的性能.
表2 数据集在Precision和Recall上的性能比较
表2可得出基于评论文本的动态生成对抗网络推荐算法(TGAN)在三种数据集上性能均优于其他基线算法,并且数据集稀疏性也与推荐性能有关,稀疏度越高其推荐效果越好.
4 结论和展望
在本文中,提出了一种结合生成对抗网络用于推荐任务的新颖方法,该方法可用于稀疏数据的真实推荐场景.推荐框架中包含一个生成网络和判别网络,并通过对抗策略来训练该模型,并创新性地加入了基于时间效应的时间模型,使推荐算法更具有长期有效性和精确性.并且还在三个真实数据集上进行了实验,与先进的算法进行比较,在每组实验中所提方法的性能均有所改善.
在未来的研究中,考虑将一些丰富的辅助信息,如用户配置文件、产品品牌信息或产品图片结合在该模型中,构建出更加稳定有效的推荐系统,为用户提供更好的个性化需求.