摘要
对抗性训练通过在模型是在训练过程中对输入空间进行随机扰动,它是提高深度学习模型泛化能力的有效方法。APR成功地将对抗式训练应用到推荐系统中,通过极大极小博弈来干扰用户和项目的嵌入。但该方法忽略了推荐系统中的协同信号,无法捕捉到数据分布的平滑性。协同信号揭示了用户和物品之间的行为相似性,是构建推荐系统的关键。在这项工作中,我们开发了方向性对抗训练(DAT)策略,通过明确地注入协作信号到扰动过程中。也就是说,在适当的限制下,用户和项目都会在嵌入空间中被其相似的邻居扰动。
图一
直观的素描定向对抗训练的过程。与用户交互的观察到的项目在小圆圈中,而在大圆圈中的其他项目是未观察到的项目。
图二
用户最接近的10个邻居。数字表示用户的ID。蓝色表示对抗训练前的最近邻。橙色表示添加扰动后的最近的新邻居
图一(a)为APR的训练过程如图1 (a)所示,最大方向扰动可能会实例x的嵌入向量靠近不同标签的例(不相似的例)甚至不存在的例。
图一(b)为DAT训练过程,如图1(b)所示通过定向的扰动回事实例x的嵌入向量,靠近与其本身更相近的例。这样,相似例子的信息就会在彼此之间流动,将协同信号显式地注入到对抗的学习过程中。
图2 (a)为ID为16的用户原来的前10个最近邻,图2 (b)为在嵌入空间中添加最大方向扰动后的前10个最近邻。我们可以看到,在最大方向扰动下,前10个最近的近邻有很大的变化。这意味着当前的最大指向策略不能将原有的语义信息隐藏在用户-物品交互中,也没有充分发挥推荐系统对敌训练的优势。图2 (c)显示了添加方向扰动后用户16的前10个近邻,这与原始的更加一致。
举一个例子比如淘宝买东西一个用户u对物品i只看不买,这就是一种行为信息,通过APR我们得到的扰动u1可能与u不相似,并且相差特别远,而通过DAT我们得到的扰动u1会与u很相似进而迷惑判别器的判断。
推导
通过最大化贝叶斯个性化排名(BPR)损失[来计算权重w;然后,对模型进行训练,使BPR损失和DAT损失最小化。此外,我们考虑在协同过滤推荐系统中利用关键的协同信号来引导扰动方向,从而产生更有效的嵌入。直觉上,具有相似行为的用户会对物品表现出相似的偏好。
问题定义
形式上,我们表示有m个用户的集合,U = {u1, u2,…, um}, n个项的集合,I = {i1, i1,…R中,若用户u与第i项交互,则为1,否则为0。输入由分别描述用户u和物品i的特征向量和组成。在本文中,特征输入向量是通过对用户或物品的身份进行一次one-hot编码得到的二值稀疏向量。输入的上面是嵌入层,它将稀疏的特征向量转化为密集的嵌入向量。在此之后,用户或项目将用密集向量表示,也称为嵌入向量。接下来,将用户和条目嵌入向量输入交互函数,将潜在向量映射到预测分数。然后让 表示 用户 u 的项目i偏好得分项 即 计算方式如下:
f(·)是用户u对项目i的偏好函数建模的交互项(实际上是神经网络的传播规则)的参数是Θf。我们定义P = {pu}u u为用户的嵌入矩阵,Q = {qi}i为项目的嵌入矩阵。令
,分别表示用户u和物品i的嵌入向量,D为嵌入向量的维数。
利用MLP和内积将GMF、成对的用户嵌入和项目嵌入映射为偏好得分
其中用户和项目的内积是嵌入向量和为GMF的第x层和输出MLP层。
接下来我们通过最大化BPR函数来计算
结合GMF与DAT
令表示用户u的嵌入向量要添加的对抗扰动,的维数为D,与用户u的嵌入向量相同。设
表示用户u的敌对嵌入向量。
类似的,我们可以得到对项目 i的反向嵌入向量,可以计算出用户u对item i的预测偏好得分:
其中
为用户的对抗性嵌入矩阵。
为项目的对抗性嵌入矩阵。
对抗性扰动的目的是使推荐模型的目标函数最大化。因此,我们对它的定义如下:
其中
嵌入矩阵的用户和项目,包括P和Q,为对嵌入矩阵的扰动,表示控制扰动的超参数,T表示所有成对训练实例的集合,我们采用L2范数。
此外∆adv可以进一步近似为:
在得到∆adv后,可以将敌对目标函数定义为:
最后,对抗性训练目标函数为LBP R和LBP R∆的组合:
图三
说明我们的DAGMF方法。对用户和物品的每个嵌入向量执行∆(w)扰动。
定向对抗训练
首先,我们定义了嵌入空间中的方向向量从ut到uz为:
值得注意的是他是一个方向向量,也总是单位向量如果z=t它将被定义为零向量。
接下来我们定义为方向上的权值,接下来令为用户u方向上的对抗性扰动:
则用户u的方向对抗性嵌入向量公式如下:
由于在训练过程中BPR损失最小,我们考虑如何寻找能使BPR损失最大的方向向量的最坏情况权值:
约束了扰动方向后,方程6中的近似方法不再用于计算最坏情况的权值。通过应用二阶泰勒近似估最坏情况权值的估计方法可以定义为:
与方程8相似,对定向对抗训练的总体目标函数进行优化如下:
通过统一上述两个过程,我们可以建立一个极大极小目标函数:
从另一个角度看,我们的DAT可以看作是一种数据扩充的方式,它在原始数据和扰动数据上训练模型,同时包含协作信号。