前言
相信大家对于经典的成对学习(Pairwise Learning)方式的推荐模型BPR[1](Bayesian Personalized Recommendation)一定不会陌生,它的基本假设是用户产生行为的项目应该排在未产生行为项目的前面。后续有许多研究工作者对其进行了改进,比如提出结合社交信息的SBPR[2],结合视觉信息的VBPR[3],以及利用深度学习技术来处理视觉信息的DVBPR[4]。今天跟大家分享的论文是ABPR,即利用对抗训练技术增强模型泛化能力的BPR。
动机
众所周知,计算机视觉领域的对抗样本(带有微小的、非随机的有意为之的扰动样本)可以使得模型以较高的置信度把样本分类错误[5]。比如下图,原本属于熊猫的样本,经过增加微小的扰动后以99%的置信度分类为了长臂猿。
那么,对于推荐系统领域来说,是否对抗性样本可以使得模型的推荐性能下降呢。作者通过对比试验给出了答案。由于计算机视觉领域中输入数据为图像,图像中每个元素都是连续的,而推荐系统领域中的输入为离散的用户/项目ID,添加扰动后很可能变成了其他用户或者项目,因此不能直接给输入数据添加扰动。作者在此通过给模型参数(即用户/项目的嵌入向量)添加扰动来进行实验。
通过观察上图发现,添加对抗扰动的性能要比添加随机噪声的性能下降的快很多,这就从侧面放映了BPR模型的泛化性能弱,并且容易受到参数的对抗性干扰,也侧面揭示了使用BPR进行训练的弱点。
所提框架
正如上文所述,BPR模型对于对抗样本的泛化能力弱,因此我们需要专门对对抗样本进行训练,使得模型尽可能多的见到更多的训练样本,最终达到良好的泛化性能。因此对于ABPR来讲,其目标一方面要最小化训练样本的损失,另一方面要最小化对于参数扰动之后的训练样本的损失。具体公式可见下图:
其中,为参数
的对抗扰动。第二项可以看作是对于模型的正则化项。
那么对于对抗扰动如何求解呢,Goodfellow给我们提出了很好的解决方案Fast Gradient Sign Method(FGSM)[5]算法。大意就是基于损失函数对输入样本
进行求梯度,然后梯度的正方向就是使得损失函数变大,最终可以得到使得模型性能变差的对抗样本。
其中,为样本扰动的程度,值越大,对于输入样本的扰动越剧烈。
为符号函数。
对于求推荐系统中模型参数的扰动的方法类似,就是对于参数来讲,沿着它的梯度正方向进行优化就可以使得损失函数变大(此处与沿着梯度的负方向进行优化使得损失函数达到最小相反),这也正是我们要的对于参数的扰动。具体公式如下。
其中,为参数扰动的程度,值越大,对于模型参数的扰动越剧烈。
从整体来看,该问题可以解释为一个极大极小博弈问题,即在最小化BPR目标函数的同时需要兼顾增加模型参数的对抗性扰动而使得BPR目标函数变大,最终可以达到一个均衡点,使得模型对于正常的样本以及对抗样本的泛化性能都很强。形式化的定义如下图:
最终求得最优的模型参数以及最小但扰动性较强的对抗噪声。
模型的求解也相对简单,就是交替的更新对抗噪声和模型参数
,具体见下图。
最终把对抗扰动应用到BPR框架的示意图如下图所示,可见基本上和传统的BPR模型一致,只不过增加了对于用户/项目嵌入向量的对抗扰动,最终使得模型的泛化性能增强。
▶ 更多论文细节可阅读原文->https://github.com/hongleizhang/RSPapers
▶ 欢迎大家加入ML&RS社区进行交流讨论,公号后台回复“进群”即可。
参考文献
[1]. Rendle et al. BPR: Bayesian personalized ranking from implicit feedback. UAI, 2012.
[2]. Zhao et al. Leveraging social connections to improve personalized ranking for collaborative filtering. CIKM, 2014.
[3]. He et al. VBPR: visual bayesian personalized ranking from implicit feedback,.AAAI, 2016.
[4]. Kang et al. Visually-aware fashion recommendation and design with generative image models. ICDM, 2017.
[5]. Goodfellow et al. Explaining and harnessing adversarial examples. ICLR, 2014.