推荐系统中的对抗机器学习技术总结
嘿,记得给“机器学习与推荐算法”添加星标
近年来,随着硬件基础以及算法能力的显著提高,以深度学习模型为代表的机器学习技术得到了学术界和工业界的广泛关注。由于出色的特征表示能力和数据拟合能力,深度学习模型已经席卷机器学习应用的各个子领域,比如计算机视觉、自然语言处理、网络科学、推荐系统等。
然而,随着学者们的深入研究发现,深度学习模型存在对抗样本攻击的可能[1],这使得模型的安全性、鲁棒性以及泛化能力得到巨大的挑战。其中,对抗样本是一种人为设计的非随机的扰动,将其添加到输入样本后与原始输入样本相比人的视觉上没有明显差异,但模型却以较高置信度判别成其他错误的类别(如下图添加扰动后,模型将熊猫以99%的置信度判别为了长臂猿)。
采用对抗学习的方式来生成对抗样本进而对模型进行攻击不是最终目的,我们最终的使命是通过将其建模为最大最小博弈问题让模型学习原始样本以及对抗样本进而增强模型的鲁棒性和安全性。对抗学习的研究始于计算机视觉[2],而后过渡于自然语言处理[3],如今也开始蔓延到推荐系统领域[4]。因此本文试图结合自己的理解对相关综述[5]进行总结,介绍下对抗机器学习技术在推荐系统中的应用和发展。
推荐系统,作为数据生产者与信息消费者之间博弈均衡的有效手段之一,逐渐得到了学术界和工业界的广泛关注。特别是,基于隐因子模型的协同过滤算法,例如矩阵分解和深度协同过滤方法,由于其出色的性能和推荐准确性而广泛用于现代推荐系统中。尽管它们取得了巨大的成功,但近年来已表明,这些方法容易受到对抗样本的攻击,即迫使推荐模型产生错误。因此,近年来,结合对抗训练以及对抗样本的机器学习技术得到了广泛关注。
对抗机器学习,顾名思义,是一种利用对抗博弈思想的机器学习技术,是一种结合了机器学习与计算机安全方向的交叉领域。通过在Google Trends上对“对抗机器学习”进行检索发现,该方向检索热度逐年上升,特别是2014年以后增长势头更是迅猛,可见对抗机器学习技术成为了研究的热点问题。之所以2014年实现了陡峰式的增长,是因为这一年Goodfellow所提出的著名的生成式对抗网络以及对抗样本的生成算法,而这两种新发现都利用到了对抗博弈思想,因此促进了对抗机器学习领域的大发展。
由于对抗机器学习技术主要涉及两方面内容,分别是利用对抗模型的生成能力来提高样本的质量和利用对抗训练技术来提高模型的鲁棒性和安全性。因此本文的目的也是两类,即一方面展示对抗机器学习技术在推荐中的生成能力;另一方面展示对抗机器学习技术在推荐系统领域安全方面的最新进展(即攻击和防御的推荐模型)。
推荐算法分类首先总结下自推荐系统诞生后到现阶段该领域的发展与分类,在此之前梳理过一篇一文尽览推荐系统模型演变史。如下图所示,根据作者理解将推荐系统的发展主要分为了两个时代,即专注于提升推荐精度的时代(绿色部分,专注于提高推荐准确性等评价指标),和后深度学习时代(粉色+黄色部分,从经典的学习范式到对抗机器学习过渡)。专注于提升推荐精度时代(绿色区域)主要分为了三部分:经典的非神经网络方法、领域依赖的方法和深度神经网络方法。
经典的非神经网络方法:主要是指90年代及以前的基于协同过滤思想的算法,比如根据模型训练方式可以分为基于记忆的方法和基于模型的方法,更多关于该算法详细内容可参考推荐系统从入门到接着入门。另外,可以根据建模时损失函数的不同分为point-wise的方法、pair-wise的方法以及list-wise的方法,更多详细内容可参考推荐系统中排序学习的三种设计思路。 领域依赖的方法:该类方法大概是2000年之后主要是基于推荐系统某一子领域进行研究,比如为了缓解传统协同过滤方法的数据稀疏以及冷启动问题;引入社交数据(社会化推荐)、引入知识图谱(基于知识图的推荐)等附加信息;比如为了给推荐结果提供合理的解释而产生的推荐系统可解释性的研究方向等等,我们总结了15个推荐子领域的方向供大家学习带你认识推荐系统全貌的论文清单。 深度神经网络的方法:该类方法主要是得益于2014年及以后深度学习强大的表征能力和数据拟合能力,基于深度学习的推荐系统成为了火热的研究方向。该领域主要分为两大类别,一种是提高用户或者物品的特征表示的方法,比如利用CNN来抽取物品的深层次视觉特征表示用来更好的提供推荐、利用GNN来提取用户的社交网络信息来提高推荐精度等方法;另一类方法主要是利用深度学习技术的拟合能力和建模能力,比如NCF用非线性的多层感知机来替代简单的内积操作,利用GRU4Rec来建模用户的行为序列等。更多关于深度推荐系统的内容欢迎参考当推荐系统邂逅深度学习。
黑盒攻击:即攻击者对模型和训练集几乎没有任何背景知识,只能拿到模型的输出结果。这种攻击方式较难但是最符合实际场景。 白盒攻击:即攻击者对模型和训练集的知识背景掌握较多,比如模型结构、梯度等信息。这种攻击方式比较容易成功,但和实际场景的设定差距较远。 灰盒攻击:即攻击者掌握模型和训练集的部分情况,介于黑盒和白盒之间的一种情况,比如能够拿到数据集的部分数据或者掌握模型的参数、超参数或者梯度等信息。
中毒攻击:(Poisonning attack) 即在模型的训练阶段添加相对应的攻击样本,使得模型的参数或者分界面产生相应的改变,比如推荐系统中的托攻击(Shilling Attack)。 逃避攻击:(Evasion attack) 即在模型的推理/测试阶段通过改造样本而使得模型分类产生改变,比如利用FGSM方法生成的对抗样本攻击。
定向攻击:即对于一个模型,通过攻击使得输入数据错误分类到一个指定的类别上。反映到公式上就是在最小化扰动delta的同时通过添加扰动使得模型f分类为指定的yt。
非定向攻击:即对于一个模型,通过攻击使得输入数据分类错误即可,不需指定分类为某种具体的类别。反映到公式上就是在最小化扰动delta的同时通过添加扰动使得模型f分类为除了y之外的类别。
按照攻击手段分为成员推理攻击、模型反演攻击、超参数攻击、用户属性攻击等(在此没有关注不可信的数据收集者、不可信传输以及不可信云储存等攻击)。当然随着新技术与新模型的不断发展,人们也考虑了最新相关的攻击,比如从BERT中发现存在信息泄露的可能[6]、比如对GNN模型进行分析进行链接攻击[7]等。
更多关于对抗机器学习在推荐中应用的相关论文和代码,可参考如下仓库。
https://github.com/hongleizhang/RSPapers
https://github.com/advboxes/AdvBoxhttps://github.com/sisinflab/adversarial-recommender-systems-survey
参考文献
1. Szegedy et al. Intriguing properties of neural networks. ICLR, 2014.
2. Goodfellow et al. Explaining and Harnessing Adversarial Examples. ICLR, 2015.
3. Miyato et al. Adversarial Training Methods for Semi-Supervised Text Classification. ICLR, 2017.
4. He et al. Adversarial Personalized Ranking for Recommendation. SIGIR, 2018.
5. Deldjoo et al. Adversarial Machine Learning in Recommender System. 2020.
6. Carlini et al. Extracting Training Data from Large Language Models. 2020.
7. He et al. Stealing Links from Graph Neural Networks, USS, 2020.
8. Gunes et al. Shilling attacks against recommender systems: a comprehensive survey, 2014.
9. Beigi et al. Privacy-aware recommendation with private-attribute protection using adversarial learning. WSDM, 2020.
推荐阅读
[0].基于隐私保护的推荐系统论文合集[1].推荐系统之矩阵分解家族[2].社会化推荐浅谈[3].当推荐系统邂逅深度学习