• AutoDebias: Learning to Debias for Recommendation


    Chen J., Dong H., Qiu Y., He X., Xin X., Chen L., Lin G. and Yang K. AutoDebias: learning to debias for recommendation. In International ACM SIGIR Conference on Research and Development in Information Retrieval (SIGIR), 2021

    作者通过普通的数据 (有 bias 的) 和少量的无偏数据来缓解大部分的 bias.

    符号说明

    • \(\mathcal{U}\), users;
    • \(\mathcal{I}\), items;
    • \(\mathcal{R}\), ratings;
    • \(D_T = \{(u_k, i_k, r_k)\}_{1 \le k \le |D_T|}\), 有偏的数据集;
    • \(D_U = \{(u_l, i_l, r_l)\}_{1 \le l \le |D_U|}\), 无偏的数据集;
    • \(p_T(u, i, r)\), \(D_T\) 所对应的分布;
    • \(p_U(u, i, r)\), \(D_U\) 所对应的分布;
    • \(O_{ui} = 1\) 表示观测到 \(u,i\) 的交互;

    动机

    1. 我们需要拟合一个模型 \(f_{\theta}(u, i)\) 得到 \(r_{u,i}\) 的一个估计 \(\hat{r}_{u, i}\), 特别地, 我们更希望通过如下的理想的无偏数据进行优化

      \[L(f) = \mathbb{E}_{p_U} [\delta ( f(u, i), r_{u,i})], \]

      其中 \(\delta(\cdot, \cdot)\) 是某个损失函数;

    2. 然后在实际上, 我们所能获得的只是一部分有偏的数据 \(D_T\), 并通过如下的损失进行优化

      \[\hat{L}_T(f) = \frac{1}{|D_T|} \sum_{k=1}^{|D_T|} \delta (f(u_k, i_k), r_k), \]

      而且通常

      \[\mathbb{E}_{p_t}[\hat{L}_T(f)] \not = L(f); \]

    3. 造成此情况的主要原因是现有的数据 \(D_T\) 往往是有偏的:

      • Selection bias: 用户会有选择地打分, 比如一些用户只会给觉得特别好看的打分;
      • Conformity bias: 用户往往有从众心理, 导致对一些打分不是很'客观' (\(p_T(r|u, i) \not= p_U(r|u, i)\));
      • Exposure bias: 由于用户所看的电影也往往是在软件所推荐的结果中来的, 故 \(p_T(u, i) \not = p_U(u, i)\) 并非是一个随机的情况;
      • Position bias: items 被推荐的顺序, 位置会影响每个 item 的曝光机会, 导致 \(p_T(u, i) \not = p_U(u, i)\), 此外, 倘若用户比较信赖推荐结果的话, 往往会导致 \(p_T(r|u, i) \not= p_U(r|u, i)\) 也不一致;
    4. 当这些 bias 产生的时候, 会导致 (从分布 shift 的角度):

    本文方法

    • 由于数据的 bias 和本身量的有限, 作者认为 \(p_T\) 所在的支撑集 \(S_1\) 相比 \(p_U\)\(S_1\cup S_0\) 是要小的:

    • 进行如下分解:

      \[\begin{array}{ll} L(f) &= \mathbb{E}_{p_U} [\delta] \\ &= \sum_{u, i, r} p_U(u, i, r) [\delta(f(u, i), r_{u, i})] \\ &= \sum_{u, i, r \in S_1} [p_U(u, i, r) \delta(f(u, i), r_{u, i})] +\sum_{u, i, r \in S_0} [p_U(u, i, r) \delta(f(u, i), r_{u, i})] \\ &= \sum_{u, i, r \in S_1}[ p_T(u, i, r) \frac{p_U(u, i, r)}{p_T(u, i, r)} \delta(f(u, i), r_{u, i})] +\sum_{u, i, r \in S_0}[ p_U(u, i, r) \delta(f(u, i), r_{u, i})] \\ &= \mathbb{E}_{p_T} [\frac{p_U(u, i, r)}{p_T(u, i, r)} \delta(f(u, i), r_{u, i})] +\sum_{u, i, r}[ p_U(u, i, r) I(p_T(u, i, r) =0) \delta(f(u, i), r_{u, i})] \\ &= \mathbb{E}_{p_T} [\frac{p_U(u, i, r)}{p_T(u, i, r)} \delta(f(u, i), r_{u, i})] +\mathbb{E}_{p_U(u, i)} I(p_T(u, i) =0) [\sum_{r} p_U(r|u, i) \delta(f(u, i), r_{u, i})] \\ &= \mathbb{E}_{p_T} [\frac{p_U(u, i, r)}{p_T(u, i, r)} \delta(f(u, i), r_{u, i})] +\mathbb{E}_{p_U(u, i)} \Big \{ I(p_T(u, i) =0) \mathbb{E}_{p_U(r|u, i)} [\delta(f(u, i), r_{u, i})] \Big \}, \end{array} \]

      假设 \(\delta(\cdot, \cdot)\) 关于第二项是线性的 (比如交叉熵, 作者说 L1, L2 也可以 ?), 记

      \[w^{(1)}(u, i, r) = \frac{p_U(u, i, r)}{p_T(u, i, r)}, \\ w^{(2)}(u, i) = \sum_{r} p_U(u, i, r) I(p_T(u, i, r) = 0), \\ m(u, i) = \mathbb{E}_{p_U(r|u, i)} [r_{u, i}], \]

      \[L(f) = \underbrace{\mathbb{E}_{p_T} [w^{(1)} \delta (f(u, i), r_{u, i})]}_{L_T} + \underbrace{\sum_{u, i} w^{(2)} \delta (f(u, i), m(u, i))}_{L_U}, \]

      可以注意到, \(L(f)\) 的第一部分可以用一般的 (在估计 \(w^{(1)}\) 的前提下)

      \[\hat{L}_T = \frac{1}{|D_T|} \sum_{k=1}^{|D_T|} [w^{(1)} \delta (f(u_k, i_k), r_{u_k, i_k})] \]

      近似, 倘若我们还能估计出 \(w^{(2)}, m\), 那么我们第二部分也是可以计算的;

    • 既然如此, 本文就将 \(\phi = \{w^{(1)}(u, i, r), w^{(2)} (u, i), m(u, i)\}_{u, i}\) 也作为可学习的参数来学习, 当然了, 直接学习很容易过拟合, 所以采用如下的方式:

      \[w^{(1)}(u, i, r) = \exp(\varphi_1^T [x_{u} \circ x_{i} \circ e_r]) \\ w^{(2)}(u, i) = \exp(\varphi_2^T [x_{u} \circ x_{i} \circ e_{O_{ui}}]) \\ m(u, i) = \sigma(\varphi_3^T [e_{r_{ui}} \circ e_r]) \\ \]

      其中 \(x_u, x_i\)\(u, i\) 的特征, \(e_r, e_{O_{u,i}}\) 是 one-hot 向量, \(\circ\) 表示向量拼接操作, \(\sigma\) 是激活函数, 比如 \(\tanh\);

    • 至于参数的训练方式, 作者采用的是交替迭代 \(\theta, \phi\) 的方式:

      1. 通过 \(\hat{L}_T\) 临时 更新得到 \(\theta'\);
      2. \(\theta'\) 的基础上更新 \(\varphi\);
      3. \(\theta, \varphi\) 的基础上更新 \(\theta\).

    注: 关于公式的推导, 这里和论文的不同 (因为我按照论文的写法顺不下来), 虽然最后的结果是不影响的, 但是我觉得还是回看下论文确认一下比较好 !

    注: 注意到优化 \(\hat{L}_U\) 需要无偏的损失, 所以作者的实验部分选的数据集也是带有这些无偏数据的, 这些无偏数据是狭隘, 指的是 item 采取一种随机的方式推荐给用户, 所以原则上 Selection bias, Conformity bias 等不能消除?

    代码

    [official]

  • 相关阅读:
    JS重修札记
    backbone简单札记
    通用前端开发框架(一)
    两天低效编程总结
    使用HTTP请求 查找指定位置附近的景点(GOOGLE 地图)
    Google Map上,加上座標點(POIs)
    iphone 反向地理解析 从坐标获得用户的具体位置信息
    iphone 计算大文件md5
    c#多线程下载
    iphone http同步 异步请求
  • 原文地址:https://www.cnblogs.com/MTandHJ/p/16602950.html
Copyright © 2020-2023  润新知