1.引言
回顾推荐系统的发展,离不开模型、数据、训练方式三个维度的创新。模型层面,基于内容的推荐系统到协同过滤的矩阵分解,以及神经网络带来的序列化建模,使得用户表征和商品表征刻画越来越精细;数据层面,长短期行为的切分,基于session的推荐[1],跨场景行为的引入,数据的丰富和建模为用户兴趣的挖掘提供更多的可能;训练方式上,分布式训练框架,在线学习,高维稀疏特征处理,优化器设计,从而支撑商业化推荐系统。然而,性能提升的同时,我们也看到推荐系统的可解释性逐渐变成黑盒。用户的兴趣偏好如何表征,兴趣如何演变,不同时间点的历史行为由哪种因素主导,这一系列的问题都对现代化推荐系统的解释提出了挑战。
2.可解释推荐
可解释性推荐一直以来都是推荐系统的核心问题。传统的基于内容的推荐系统,我们可以从用户维度与商品维度的匹配来解释推荐结果;基于商品的协同过滤,我们可以将用户的每条历史行为作为锚点来召回相似的商品。但针对一个完全深度化的网络模型,我们很难得知用户为何会喜欢给定的商品,具体哪些维度起到主导因素。
近些年来,对抗学习的发展对数据的生成过程、模型的鲁棒性带来了新的思考。Conditional GAN[4]可以在给定的条件下,训练模型生成任务;SeqGAN[2]将生成任务从图像领域聚焦到文本领域,实现离散空间的数据生成过程;而IRGAN[3]则首次提出将推荐系统的生成范式和判别范式统一到一个对抗学习框架下。
我们可以看到判别器的引入能够为模型的设计带来充分的灵活性,一个值得思考的问题是:“对抗学习的框架以及判别器的引入能否为推荐系统可解释性提供一种可能?”
3.多判别器模型
图1. 多判别器序列推荐框架
按照这个思路,我们提出了一个基于多判别器的对抗学习框架MFGAN,针对序列推荐模型,改善模型的推荐结果和可解释性。如图1所示,整个框架主要分为两个部分:
1)生成器G:一个基于transformer[5]结构的序列推荐模型,给定用户的历史行为序列,预测用户下一时刻的行为;
2)多判别器{D_1,D_2,…,D_m}:不同于经典对抗网络的单生成器单判别器框架,我们尝试引入多个判别器模块,从不同的信息维度来判别生成的用户交互序列是否合理。
举一个简单的例子,考虑一个电影推荐系统,我们的生成器基于用户历史观影行为,来预测用户下一时刻偏好的电影ID。对应的,判别器可以分别从电影流派、上映热度、主创阵容等维度分别判断生成的影视作品在这些维度上和用户历史行为的一致性,从而解释用户在观影行为上的偏好,到底是影视类别主导的观影习惯,还是影视热度等因素。
引入判别器后的解耦框架,能够为推荐系统带来很多优势:
1)首先,生成范式的推荐模型往往面临商品候选集丰富,采用极大似然优化受到数据稀疏和样本选择偏误的影响,而判别器则能够提供额外的监督信号,改善模型的训练过程;
2)其次,增强模型的灵活性,将生成任务和判别任务解耦,信息维度的扩展转变为判别器的增加,每增加一个维度的信息,对应的引入相应的判别器模块即可,生成器能够更加专注数据的生成任务,排除无用信息和数据噪音的干扰;
3)在特征维度稀疏的情况下,以及模型应用阶段,可能会遇到大量特征无法使用的情况,解耦后的生成器能够在预测的时候不依赖这些特征的输入,起到较好的泛化效果;
4)多判别器的框架为推荐系统的可解释性提供可能,这种可解释性可以细粒度到解释用户不同时间点的行为,以及我们关注的交互维度和商品属性。
具体的,每个模块的网络设计及训练框架如下:
3.1生成模块
生成器的模型结构,主要是参考目前最新的transformer[5]结构。事实上,生成器的设计并不局限于具体的网络结构,经典的平均池化、LSTM都可以用到生成器中。我们用G_θ表示生成器,网络参数为θ,网络结构主要由embedding表征、multi-head self-attention模块、网络输出三部分组成:
1)embedding表征主要负责将离散输入转换成连续向量,包括商品的ID embedding E和位置信息embedding P,最终生成器的网络输入为E_G=E+P;
2)multi-head self-attention模块,负责在不同的位置以及特征空间进行信息的抽象和汇总,以及借助非线性层来增加网络的表达能力。具体的,multi-head self-attention模块的实现如下:
其中,F^l是l层的网络输入,第0层的话,对应F^l=E_G。h表示head的数量,每个head对应一个特征空间,从不同的特征转化空间来聚合信息。attention函数采用放缩内积,计算公式如下:
其中,需要注意的是,在序列生成过程中,我们一般只考虑单向信息,self-attention过程中会mask掉后续位置的信息,防止未来信息的泄漏。此外,multi-head self-attention并不具备非线性的能力,我们会在self-attention之后引入bottleneck结构的非线性层来增加网络的表达能力,计算如下:
3)网络输出层,在生成器的最后一层,我们以最后一个位置压缩的信息作为用户表征,用户对候选商品的打分借助内积方式进行计算,因此整个商品池上的用户偏好分布为:
其中,M_G是商品ID对应的embedding矩阵。
3.2判别模块
判别器的设计,网络结构同样参考transformer。但像前面提到的,我们采用了多判别器框架,每个判别器负责一个信息维度上的判别任务。具体的,我们有m个判别器D_Φ = { D_(ϕ_1 ),D_(ϕ_2 ),…,D_(ϕ_m ) },每个判别器对应网络参数ϕ_j。判别器不共享参数,独立工作,网络结构包括embedding表征、multi-head self-attention模块、网络输出三个部分:
1)embedding表征主要负责将不同维度的信息转换为连续向量。对于离散特征,我们直接one-hot后进行embedding;对于连续特征,我们先进行离散化再embedding。判别器ϕ_j对应的特征embedding为C_j,位置信息embedding为P(与生成器共享参数),最终网络输入为E_D^j=C^j+P;
2)multi-head self-attention模块,网络结构基本与生成器相同,具体实现的过程,我们发现一层self-attention结构,对于判别器就是足够的,判别任务相对简单,网络复杂度也相对可控。不同的是,判别器可以引入双向的监督信息,分别从前向和后向角度判别生成器生成的序列在对应信息维度上的合理性。一层self-attention实现如下:
3)网络输出层,每个判别器是一个二分类任务,我们将self-attention最后一个位置的输出,经过前向神经网络和sigmoid激活函数,最终输出模型的预测值:
事实上,我们有m个判别器,最后得到一组判别器的预测分数{ y ̂_1,y ̂_2,,…,y ̂_m},分别从不同信息维度判别生成器生成推荐商品的合理性。
3.3对抗学习
由于生成器生成推荐商品是一个离散过程,整个模型的优化在对抗学习的框架下需要引入policy gradient进行求解。在t时刻:
1)状态s为用户之前的历史行为i_(1:t-1)={i_1,i_2,…,i_(t-1)};
2)动作a为下一时刻推荐的商品,动作的输出由策略π即生成器模型G_( θ)来决定;
3)奖励r为采用动作后获得的反馈,我们借助多判别器D_Φ的输出作为奖励r,来评价生成器生成推荐商品的合理性;
我们定义奖励期望函数Q(s,a)为判别器输出的加权函数:
其中,λ作为模型超参数,调整不同判别器之间的权重。默认情况下λ=0,我们采用平均权重,综合考虑每个维度上的监督信号。训练过程整理在算法1.,判别器的监督信号借助policy gradient回传给生成器,生成器和判别器在预训练后,采用交叉训练的方式,在每一轮迭代过程中提升彼此的性能。
算法1. 多判别器序列推荐模型训练框架
4.实验结果
最后,我们通过实验结果,来说明模型的效果,实验数据集分别采用Movielens-1M、YAHOO Music、STEAM GAME,我们主要设计三类实验:
1)对比多判别器推荐模型和近几年推荐系统相关工作的推荐效果,验证判别器的引入能够改善模型训练过程,提供极大似然估计以外的监督信息;
2)验证该框架下不同组件的有效性,尤其是判别器的设计;
3)说明多判别器框架对于模型可解释性的可行性;
4.1实验结果对比
模型对比上,一方面对比经典的非序列模型如PopRec、BPR、FM、IGRAN,另一方面对比近几年提出的序列模型如FPMC、GRU、GRUF、SASRec[6]。评价指标采用NDCG、HIT Rate和MRR。从表1.中,我们可以看到序列模型能够更加有效的压缩用户历史信息,刻画用户表征,进而提升推荐效果。尤其是在Movielens和Yahoo Music数据集上,序列模型提升在15个点左右。MFGAN是在SOTA模型SASRec的基础上引入多判别器模块,借助额外的监督信息,我们看到在三个数据集上均有2到3个点位的提升。
表1. 模型性能对比
4.2判别器组件分析
图2.中给出了不同数据集所用到的信息维度,每个信息维度对应一个判别器。图中的评价指标采用NDCG@10。红色表示当采用全部信息维度时模型取得的性能,¬表示删除对应的信息维度的推荐效果。从实验结果中,我们能够观察到每个数据集上不同信息维度的重要性排名,像是MovieLens,知识图谱的引入能够显著改善推荐结果,Music数据集和Game数据集则分别是Artist和Popularity维度。
图2. 不同数据集判别器信息维度对于推荐结果的影响
4.3可解释性分析
像我们前面一直提到的,多判别器框架为模型的可解释性提供可能,我们分别以Movielens影视数据和Yahoo Music音乐数据集来分析。图3和图4分别给出了样本中用户的历史交互行为,以及不同信息维度判别器的打分,我们用红色标注在每个时间点上所主导的信息特征。以图3为例,用户的头两次观影行为(Star War: episode VI和E.T. the Extra-Terrestrial)由popularity因素所主导,第三次行为由category主导,观看电影JURASSIC PARK,后续的第六次和第七次行为回归Star War系列和E.T.系列,主导因素为category。整个行为序列跟判别器的信号反馈直观看下来是比较合理的,我们能够推进一步断该用户可能是一个星战迷或者动作电影迷。类似地,图4中用户的听歌记录中,第一、四、七次行为的曲目来自同一个歌手,对应的判别器给出的信号也是artist。从这样的用例分析中,我们能够发现判别器的判别信号能够作为模型可解释性的一个代理,帮助我们理解用户的行为和转移规律。
图3. MovieLens数据集用例分析
图4. Music数据集用例分析
5.总结
本文的工作主要是提出一个多判别器的序列推荐框架,将生成推荐任务和信息维度的判别解耦开,无论是生成推荐任务还是信息维度的扩充,都能够在一个相对灵活的框架下进行,以及判别器结构的引入也提供了推荐系统深度模型可解释性的不同思路。整个工作后续还可以有更多的发散性,无论是应用领域扩展next-basket推荐还是理论研究上分析对抗框架下的信息交互方式,都是很有意义的方向。
6.参考文献
[1] Hidasi, Balázs, et al. "Session-based recommendations with recurrent neural networks." arXiv preprint arXiv:1511.06939 (2015).
[2] Yu, Lantao, et al. "Seqgan: Sequence generative adversarial nets with policy gradient." Thirty-first AAAI conference on artificial intelligence. 2017.
[3] Wang, Jun, et al. "Irgan: A minimax game for unifying generative and discriminative information retrieval models." Proceedings of the 40th International ACM SIGIR conference on Research and Development in Information Retrieval. 2017.
[4] Mirza, Mehdi, and Simon Osindero. "Conditional generative adversarial nets." arXiv preprint arXiv:1411.1784 (2014).
[5] Vaswani, Ashish, et al. "Attention is all you need." Advances in neural information processing systems. 2017.
[6] Kang, Wang-Cheng, and Julian McAuley. "Self-attentive sequential recommendation." 2018 IEEE International Conference on Data Mining (ICDM). IEEE, 2018.
更多信息检索技术内容请查看:独家下载!《SIGIR 顶会论文解读》电子书重磅发布