• Data Poisoning Attacks on FactorizationBased Collaborative Filtering


    Li B., Wang Y., Singh A. and Vorobeychik Y. Data poisoning attacks on factorization-based collaborative filtering. In Advances in Neural Information Processing Systems (NIPS), 2016.

    本文想通过构建一些恶意的用户交互行为, 使得采用这些数据训练所估计出的评分矩阵会偏向某些特定的 items.

    主要内容

    本文主要考虑补全得分矩阵

    \[M \in \mathbb{R}^{m \times n} \]

    的问题 (\(m\) 个users, \(n\) 个items). 并令

    \[\Omega = \{(i, j): M_{ij} \text{ is observed}\}, \]

    表示已观测部分.

    矩阵插补算法

    通常我们希望找到一个低秩的近似满足

    \[\min_{X \in \mathbb{R}^{m \times n}} \: \| \mathcal{R}_{\Omega} (M - X) \|_F^2, \: \text{s.t.} \: \text{rank}(X) \le k, \]

    其中 \([\mathcal{R}_{\Omega}(A)]_{ij} = A_{ij}, \: (i, j) \in \Omega\) 否则为0.

    对于上述非凸问题, 作者针对下面的两种优化方式.

    alternating minimization

    \[\tag{1} \min_{U \in \mathbb{R}^{m \times k}, V \in \mathbb{R}^{n \times k}} \Bigg\{\|\mathcal{R}_{\Omega}(M - UV^T)\|_F^2 + 2 \lambda_U \|U\|_F^2 + 2\lambda_V \|V\|_F^2 \Bigg\}. \]

    nuclear-norm minimization problem

    \[\tag{2} \min_{X \in \mathbb{R}^{m \times n}} \Bigg\{\|\mathcal{R}_{\Omega}(M - X)\|_F^2 + 2 \lambda \|X\|_* \Bigg\}. \]

    攻击模型

    我们通过构造一些恶意的用户行为 $ \widetilde{M} \in \mathbb{R}^{m' \times n}$, 其满足

    \[m' = \alpha m, |\widetilde{\Omega}_i| \le B, \|\widetilde{M}\|_{\infty} \le \Lambda, \]

    这个条件分别限制了

    1. 恶意用户数量;
    2. 每个用户的打分数量;
    3. 每个用户的打分的幅度,

    以保证这些信息也是接近真实数据的.

    此时, 我们其实需要通过求解如下问题来找寻合适的低秩矩阵:

    \[\min_{X \in \mathbb{R}^{m \times n}, \widetilde{X} \in \mathbb{R}^{m' \times n}} \: \| \mathcal{R}_{\Omega} ([M, \widetilde{M}] - [X, \widetilde{X}]) \|_F^2, \: \text{s.t.} \: \text{rank}([X, \widetilde{X}]) \le k, \]

    这里 \([A, B]\) 是做一个上下拼接.

    alternating minimization

    \[\tag{P1} \min_{U, \widetilde{U}, V} \Bigg\{\|\mathcal{R}_{\Omega}(M - UV^T)\|_F^2 + \|\mathcal{R}_{\widetilde{\Omega}}(\widetilde{M} - \widetilde{U}V^T)\|_F^2 + 2 \lambda_U( \|U\|_F^2 + \|\widetilde{U}\|_F^2) + 2\lambda_V \|V\|_F^2 \Bigg\}. \]

    nuclear-norm minimization problem

    \[\tag{P2} \min_{X, \widetilde{X}} \Bigg\{\|\mathcal{R}_{\Omega}(M - X)\|_F^2 + \|\mathcal{R}_{\widetilde{\Omega}}(M - \widetilde{X})\|_F^2 + 2 \lambda \|[X, \widetilde{X}]\|_* \Bigg\}. \]

    我们假设 (1), (2) 解出的结果为 \(\bar{M}\), 而添加恶意用户后 (P1), (P2) 的结果为 \(\hat{M}\). 文中提出了三种效用用于评估恶意矩阵 \(\widetilde{M}\) 的优劣.

    • Availability attack:

    \[R^{av}(\hat{M}, \bar{M}) = \|\mathcal{R}_{\Omega^C}(\hat{M} - \bar{M})\|_F^2. \]

    显然如果

    \[\widetilde{M} = \mathop{\arg \max} \limits_{\widetilde{M}} R^{av} (\hat{M}(\widetilde{M}), \bar{M}), \]

    则这些恶意用户能够产生推荐不准的结果;

    • Integrity attack

    \[R^{in}_{J_0, w} (\hat{M}, \bar{M}) = \sum_{i=1}^m \sum_{j \in J_0} w(j) \hat{M}_{ij}. \]

    显然最大化此效用, 则这些恶意用户数据会导致某些 items (\(J_0\)) 的评分很高, 从而更容易被推荐.

    • Hybrid attack 则是二者的混合:

    \[R^{hybrid}_{J_0, w, \mu} (\hat{M}, \bar{M}) = \mu_1 R^{av} (\hat{M}, \bar{M}) + \mu_2 R^{in}_{J_0, w} (\hat{M}, \bar{M}). \]

    注: \(\Omega^C\), 即未观测到的部分, 即预测的部分.

    求解

    作者采用 PGD (projected gradient ascent) 来求解:

    \[\widetilde{M}^{(t+1)} = \text{Proj}_{\mathbb{M}} (\widetilde{M}^{(t)} + s_t \cdot \nabla_{\widetilde{M}} R(\hat{M}, \bar{M})). \]

    现在的问题就是, \(R\) 关于\(\widetilde{M}\)的梯度包含了一个优化的过程, 显然直接求是办不到的.
    首先将其拆分为

    \[\nabla_{\widetilde{M}} R(\hat{M}, \bar{M}))= \nabla_{\widetilde{M}} \hat{M} \nabla_{\hat{M}} R(\hat{M}, \bar{M})) \]

    对于前者作者则是用一个 KKT 条件求解.

    以 (P1) 为例, 其 KKT 条件为

    \[\lambda_U \bm{u}_i = \sum_{j \in \Omega_i} (M_{ij}, - \bm{u}_i^T\bm{v}_j ) \bm{v}_j \\ \lambda_U \tilde{\bm{u}}_i = \sum_{j \in \widetilde{\Omega}_i} (\widetilde{M}_{ij}, - \tilde{\bm{u}}_i^T\bm{v}_j ) \bm{v}_j \\ \lambda_V \bm{v}_j = \sum_{i \in \Omega_j'} (M_{ij} - \bm{u}_i^T \bm{v}_j) \bm{u}_i + \sum_{i \in \widetilde{\Omega}_j'} (\widetilde{M}_{ij} - \tilde{\bm{u}}_i^T \bm{v}_j) \tilde{\bm{u}}_i, \]

    于是可得

    其中

    \[\Sigma_U^{(i)} = \sum_{j \in \Omega_i \cup \widetilde{\Omega}_i} \bm{v}_j \bm{v}_j^T, \Sigma_V^{(j)} = \sum_{i \in \Omega_j \cup \widetilde{\Omega}_j} \bm{u}_i \bm{u}_i^T, \]

    有了 \(U, V\) 关于 \(\widetilde{M}\)的导数, 前者的导数自然也可以得到.

    注: (P2) 的求解需要用到 subgradient.

    注: 无意中看到了这篇文章的 review, 我感觉工作做的不错了, 不过审稿人还是觉得创新不是很够, NIPS 看来还是很难发啊.

    注: 作者还讨论了 是否容易被检测的问题, 但是我不是特别关心, 就先不讲了.

    代码

    代码

  • 相关阅读:
    (七)执行上下文和词法作用域&动态作用域案例分析
    (六)js的arguments
    (五)关于解构赋值
    (四)JavaScript深入之词法作用域和动态作用域
    jmeter获取token并请求失败Internal authentication failed 400
    jmeter造当前时间,未来时间,历史时间
    jmater分布式压力测试总结
    敏捷测试-基本流程
    致我测试之路的“七年之痒”
    jmeter解决登录token获取
  • 原文地址:https://www.cnblogs.com/MTandHJ/p/16258736.html
Copyright © 2020-2023  润新知