参考论文:Attacking Pre-trained Recommendation 链接:https://arxiv.org/pdf/2305.03995.pdf 代码:https://github.com/wyqing20/APRec 会议:SIGIR 2023 机构,公司:中科院,微信
最近一系列开创性研究展示了预训练模型在序列推荐中的潜力,阐述了为不同下游推荐任务构建全能统一预训练推荐模型的方法。尽管取得很大的进展,但新形式的预训练推荐系统中也存在经典推荐系统的漏洞,即预训练推荐模型的安全性仍未得到探索,这可能会威胁到其实际应用的广泛性。本文提出一种用于预训练推荐中后门攻击(backdoor attack)的新颖框架,证明了预训练模型的提供者可以简单地插入后门来提高目标items对目标用户组的曝光率。具体而言,本文设计了两个新颖有效的后门攻击:基础替换(basic replacement)方法和提示增强(prompt-enhanced)方法,应用于各种推荐系统预训练场景。在真实世界数据集上的实验结果表明,与干净模型相比,本文提出的攻击策略将目标item对目标用户的曝光率提高了数百倍。
首先介绍预训练部分,采用广泛应用于推荐系统的next-item预测作为预训练任务,给定一个用户行为序列,next-item的预测目标是预测用户可能有行为交互的items,其形式为
其中
表示预训练模型,
代表模型参数,
代表损失函数,这里采用BPR损失
先前的研究表明,由于推荐模型是根据用户行为数据进行训练的,因此生成虚假用户行为序列是推广目标商品的有效方法。在推荐预训练中,直观上我们期望生成的假用户序列具有以下两个关键特征:
(1)它们应该尽可能与自然用户相似,以便被攻击的预训练模型可以在下游平台上使用,其中用户是自然真实用户。
(2)它们对正常推荐性能的影响应该尽可能小。
基于此,本文设计了一个样本但有效且高效的随机替换策略。给定一个行为序列和对应的真实标签,首先找到与真实标签对应item相似的目标item,然后以概率r从相似item中随机选择并替换真实标签,通过这种方式可生成自然的假用户行为序列。实际上,除了替换的item之外,这些序列都是由真实用户创建的。 还可以通过概率𝑟和相似度度量平衡攻击效果和推荐效果。 在本文中,我们将同一类别下的项目视为相似项目。
目标用户可以是系统中的全局用户,也可以是特定的用户组(例:年轻的学生)。 对于用户组攻击,攻击者的目标是提高目标物品在目标用户群上的曝光率,同时避免对非目标用户组造成影响。 因此对于用户组攻击,本文仅对目标用户组应用基本替换攻击。
prompt tuning正在成为在下游任务中利用预训练模型的一种新的高效且有效的流行范式,prompt显示其操纵顺序模型输出的能力。考虑到prompt的优势,本文针对用户组攻击设计了提示增强攻击。提示通常是插入到原始序列中的一小段硬文本或软嵌入表征,这有助于有效地从下游任务的预训练模型中提取知识。在调优过程中,只会更新提示(参数少),整个预训练模型保持不变。在推荐中,由于强调个性化,因此一般通过个性化信息(例如用户资料)来生成prompt。prompt调整制定如下:
其中p序列代表生成的prompt, 训练过程中,冻结原始模型参数。该prompt可以由模型提供者提供,在这种情况下,可以将prompt与预训练模型一起训练。实验证明prompt的有效性,尤其是在用户组攻击中。 然而通常情况下,平台会根据自己的私有数据进行提示训练。在这种情况下,由于模型提供者(攻击者)不知道提示参数和平台私有数据,实施提示增强攻击具有挑战性,实验也表明联合训练的无效性。为解决这一挑战,本文提出一种新颖的三步训练框架:
(1)步骤1:根据提供商的数据预训练序列模型。此步骤旨在为下游调整构建一个干净的模型。
(2) 步骤2:冻结预训练模型参数并在模型提供者的私人数据上进行prompt tuning,目标是模拟平台的prompt tuning并获得虚假prompt。
(3) 步骤3:冻结prompt的参数并使用上文的基本替换攻击策略调整序列模型,这样被攻击的预训练模型就会对虚假prompt做出反应,达到操纵推荐系统的目的。
经过三步训练后,我们将后门(backdoor)植入到预训练的模型中。平台对其私有数据进行及时调优后,就会触发后门。