Towards Long-term Fairness in Recommendation

Ge Y., Liu S., Gao R., Xian Y., Li Y., Zhao X., Pei C., Pei C., Sun F., Ge J., Ou W. and Zhang Y. Towards long-term fairness in recommendation. In ACM International Conference on Web Search and Data Mining (WSDM), 2021.

结合强化学习处理动态的 Fairness 问题. 因为对强化学习不是很了解, 仅在这里记一笔文章的思路.

  1. 现有的(考虑 Fairness)的模型, 大抵只考虑静态的一个 Fairness, 即下一时刻的诸如曝光率等指标, 但是仅仅考虑当前的 Fairness 是不充分的, 局限的. 通常我们从此以往的一个 long-term 概念上的公平性.
  2. 本文主要考虑 item-side 的公平性 (曝光率), 利用强化学习来保证 sensitive group \(G_1\) 的曝光率和一般的 group \(G_0\) 的曝光率是差不多的.

符号说明

  • \(s_t \in \mathcal{S}\), 状态, 这里理解为某个用户在时间 \(t\) 之前的历史交互信息;
  • \(a = \{a_t^1, \ldots, a_t^K\} \in \mathcal{A}\), 动作, 这里可以理解为一组 (K 个) 推荐;
  • \(\gamma \in [0, 1)\), 折扣率;
  • \(s_0 \sim \mu\), 初始状态服从分布 \(\mu :\mathcal{S} \rightarrow [0, 1]\);
  • \(\pi(a|s)\), 推荐策略;
  • \(R(\cdot, \cdot, \cdot)\), 即时奖励, 可以理解为用户的反馈;
  • \(V^{\pi}(s)\), 值函数;
  • \(Q^{\pi}(s, a)\), Q函数;
  • \(A^{\pi}(s, a):= Q^{\pi}(s, a) - V^{\pi}(s)\).

算法流程

  1. 按照上面的定义, 首先我们希望推荐策略 \(\pi(a|s)\) 能够最大化奖励

    \[J(\pi) = \mathbb{E}_{\tau \sim \pi} [\sum_{t=0}^{\infty} \gamma^T R(s_t, a_t, s_{t+1})]. \\ \]

    这里,

    \[R(s_t, a_t, s_{t=1}) := \sum_{l=1}^K \mathbb{I}(a_t^l \text{ gets positive feedback}), \]

    即那些受到用户认可 (比如产生点击, 购买行为) 的推荐的总数;

  2. 同时, 为了保证两个 group \(G_0, G_1\) 的曝光率是差不多的, 即

    \[\frac{\text{Exposure}_t(G_0)}{\text{Exposure}_t(G_1)} \le \alpha, \]

    即普通的 group \(G_0\) 的曝光率不能比 sensitive group \(G_1\) 的曝光率高出太多. 这里

    \[\text{Exposure}_t (G) := \sum_{a_t^l \in a_t} \mathbb{I}(a_t^l \in G). \]

  3. 注意到 \(\text{Exposure}_t (G_0) + \text{Exposure}_t (G_1) = K\), 上面的条件可以转换为:

    \[C(s_t, a_t, s_{t+1}) := \text{Exposure}_t (G_0) \le \frac{\alpha}{1 + \alpha} K = \alpha' K, \]

    这里, 我们定义 \(C\) 为当前时刻 \(t\) 产生的一个消耗;

  4. 和奖励类似, 我们可以计算一个长期的消耗:

    \[\tag{10} J_C(\pi) = \mathbb{E}_{\tau \sim \pi} [\sum_{t=0}^T \gamma_c^T C(s_t, a_t, s_{t+1})] \le \sum_{t=0}^T \gamma_c^t \alpha' K, \]

    该不等式保证可控(通过 \(\alpha'\))的 Fairness;

  5. 用网络建模 \(\pi(;\theta)\), 根据 constrained policy optimization 求解出可行的上升方向 \(d_{\theta}\);

  6. 通过回溯直线搜索更新:

    \[\theta' \leftarrow \theta + d_{\theta} \\ d_{\theta} \leftarrow \beta d_{\theta}, \]

    [重复]直到满足约束条件 (10) 和某种收敛条件, 最后

    \[\theta \leftarrow \theta'; \]

  7. 更新 Critics:

    \[y_t = r_t + \gamma_r V_{\omega} (s_{t=1}), \\ \mathcal{L}(\omega) = \sum_t (y_t - V_{\omega}(s_t))^2; \]

    以及

    \[y_t = c_t + \gamma_c V_{\phi} (s_{t=1}), \\ \mathcal{L}(\phi) = \sum_t (y_t - V_{\phi}(s_t))^2; \]

模型框架

关于 Actor 的构造如下图所示:

{{uploading-image-980019.png(uploading...)}}

  1. 用户的历史交易 embedding:

    \[\mathbf{h}_u = \text{GRU}(H_t), \]

    这里

    \[H_t = \{H_t^1, H_t^2, \ldots, H_t^N\} \]

    表示最近的 \(N\) 个交互记录, 且

    \[H_{t+1} = \left \{ \begin{array}{ll} \{H_t^2, H_t^3, \ldots, H_t^N, a_t^l\} & r_t^l > 0 \\ H_t & \text{Otherwise}; \end{array} \right . \]

  2. 定义状态

    \[\tag{12} s_t = [\bm{e}_u; \bm{h}_u]; \]

  3. 通过 MLP 得到

    \[\mu, \Sigma \leftarrow \text{MLP}(s_t), \]

    并定义

    \[W \sim \mathcal{N}(\mu, \Sigma) \in \mathbb{R}^{K \times d}; \]

  4. 结合 proposal matrix \(W\) 和 item 的 embeddings \(\mathcal{V} \in \mathbb{R}^{|\mathcal{I}| \times d}\), 计算概率矩阵 \(P \in \mathbb{R}^{K \times |I|}\):

    \[\pi(a_t^k|s_u) = P_k = \text{softmax}(W_k \mathcal{V}^T), \]

    其中 \({}_k\) 代表矩阵的行;

  5. 通过如下方式采样

    \[a_t^k = \arg \max P_{k, i}, \forall k=1,2,\cdots, K. \]

代码

[official]

posted @ 2022-07-14 15:32  馒头and花卷  阅读(107)  评论(0)    收藏  举报