基于对抗学习的隐私保护推荐算法

嘿,记得给“机器学习与推荐算法”添加星标


协同过滤算法除了捕捉用户潜在的消费模式外,还会学习用户特定的人口统计学特征或受保护信息等特征,如性别、种族和地理位置位置。这些偏见(Bias)信息会进一步影响推荐系统(RS)的决策,使得推荐算法会提供给不同用户子群的内容进一步分离,这将引起对用户受保护属性泄露的隐私问题。通过观察下图,可以发现基本的推荐算法(MultVAE)存在性别上的偏差,使得攻击者可以很容易的识别这种模式并进行敏感属性的推测。

基于对抗学习的隐私保护推荐算法_第1张图片

在这项工作中,本文研究了在保持推荐算法有效性的同时,将用户的特定保护信息从学习的交互表征中移除的可能性和挑战。具体来说,本文将对抗训练纳入到变分自编码器MultVAE架构中,从而形成了一个新的模型——基于对抗训练的多项式自编码器模型(Adv-MultVAE),其目的是去除受保护属性的隐性信息,同时保持推荐性能。通过在两个数据集上进行实验来评估偏见缓解方法的有效性。结果表明,Adv-MultVAE虽然在性能上略有下降(在NDCG和召回率方面),但在很大程度上缓解了模型的内在偏差。

更多关于对抗学习在推荐系统中的应用可以阅读我之前总结的文章:推荐系统中的对抗机器学习技术总结。

基于对抗学习的隐私保护推荐算法_第2张图片

论文:https://arxiv.org/pdf/2206.04500.pdf

代码:https://github.com/CPJKU/adv-multvae

本文发表在SIGIR2022会议上,其基本算法框架如下图所示,包含一个具体的推荐算法和一个敏感属性预测器。其中,推荐算法在本文中为多项式似然的变分自编码器MultVAE,而敏感属性预测器则为一个对抗网络,旨在从潜在向量中预测用户的受保护属性。

基于对抗学习的隐私保护推荐算法_第3张图片

本文的训练过程旨在从中间特征中删除受保护属性的信息,同时并保持推荐性能。为此,模型的损失函数被定义为以下最小-最大博弈问题:

3a99e4d14c1cfb3e674b46ef0ee17279.jpeg

其中,对抗网络的损失函数被定义为交叉熵损失,因为其本质是一个分类任务,即预测敏感属性的类别;推荐任务的损失函数则被定义为下式:

4538b188ea566b4285c09d56f2682916.png

其中,为输入的重构损失,比如平方损失,为正则项用来保证编码器的分布与先验尽可能的接近。

对于本文的损失函数直观的理解是在保证推荐性能的基础上,尽可能的减少中间变量z中所携带的敏感信息。

考虑到众所周知的优化min-max损失函数的复杂性,受前人工作的启发,本文在对抗网络和中间变量之间添加了一个梯度反转层。在训练过程中,在前向传播中充当恒等函数,而在反向传播中,它将计算出的梯度缩放为。在推理时对模型没有任何影响。本文把参数称为梯度反转缩放。通过在模型中采用,模型的整体损失就可以被重新表述为标准的风险最小化的基本设置,因此可以达到快速收敛的目的。

基于对抗学习的隐私保护推荐算法_第4张图片

该公式就能够通过标准的基于梯度的优化算法来优化模型。关于梯度反转层GRL的Pytorch代码如下,在前向传播过程中保持原值不变,在反向传播的过程中乘上了梯度缩放系数。

from torch.autograd import Function

class GRL_(Function):
    """
    Gradient reversal functional
    Unsupervised Domain Adaptation by Backpropagation - Yaroslav Ganin, Victor Lempitsky
    https://arxiv.org/abs/1409.7495
    """

    @staticmethod
    def forward(ctx, input, grad_scaling):
        ctx.grad_scaling = grad_scaling
        return input

    @staticmethod
    def backward(ctx, grad_output):
        # need to return a gradient for each input parameter of the forward() function
        # for parameters that don't require a gradient, we have to return None
        # see https://stackoverflow.com/a/59053469
        return -ctx.grad_scaling * grad_output, None

关于本文的细节和实验结果可阅读原论文。


欢迎干货投稿 \ 论文宣传 \ 合作交流

推荐阅读

KDD2022推荐系统论文集锦(附pdf下载)

最新综述 | 图数据挖掘中的算法公平性

推荐系统相关资源介绍

论文周报 | 推荐系统领域最新研究进展

深度剖析 | 因果强化学习在交互式推荐的前沿探索

由于公众号试行乱序推送,您可能不再准时收到机器学习与推荐算法的推送。为了第一时间收到本号的干货内容, 请将本号设为星标,以及常点文末右下角的“在看”。

喜欢的话点个在看吧

你可能感兴趣的:(算法,python,机器学习,人工智能,深度学习)