Towards Long-term Fairness in Recommendation
概
结合强化学习处理动态的 Fairness 问题. 因为对强化学习不是很了解, 仅在这里记一笔文章的思路.
- 现有的(考虑 Fairness)的模型, 大抵只考虑静态的一个 Fairness, 即下一时刻的诸如曝光率等指标, 但是仅仅考虑当前的 Fairness 是不充分的, 局限的. 通常我们从此以往的一个 long-term 概念上的公平性.
- 本文主要考虑 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)\).
算法流程
- 
按照上面的定义, 首先我们希望推荐策略 \(\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}), \]即那些受到用户认可 (比如产生点击, 购买行为) 的推荐的总数; 
- 
同时, 为了保证两个 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). \]
- 
注意到 \(\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\) 产生的一个消耗; 
- 
和奖励类似, 我们可以计算一个长期的消耗: \[\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; 
- 
用网络建模 \(\pi(;\theta)\), 根据 constrained policy optimization 求解出可行的上升方向 \(d_{\theta}\); 
- 
通过回溯直线搜索更新: \[\theta' \leftarrow \theta + d_{\theta} \\ d_{\theta} \leftarrow \beta d_{\theta}, \][重复]直到满足约束条件 (10) 和某种收敛条件, 最后 \[\theta \leftarrow \theta'; \]
- 
更新 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...)}}
- 
用户的历史交易 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 . \]
- 
定义状态 \[\tag{12} s_t = [\bm{e}_u; \bm{h}_u]; \]
- 
通过 MLP 得到 \[\mu, \Sigma \leftarrow \text{MLP}(s_t), \]并定义 \[W \sim \mathcal{N}(\mu, \Sigma) \in \mathbb{R}^{K \times d}; \]
- 
结合 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\) 代表矩阵的行; 
- 
通过如下方式采样 \[a_t^k = \arg \max P_{k, i}, \forall k=1,2,\cdots, K. \]
代码
[official]

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号