这几天我的主要任务是对论文《Towards Long-term Fairness in Recommendation》[1] 中所描述的算法进行编程实现,然后测试该算法的效果并记录。以下分模型算法细节实现、数据集、模型评估准则、测试结果记录四个部分来描述我的工作。
模型算法细节实现
由论文描述可知,论文算法最核心的部分就是以下带约束优化问题的求解:
\[\begin{matrix} \theta_{k+1} = \underset{\theta}{\arg\max}g^{T}(\theta-\theta_{k}) \\ s.t. \quad c+b^{T}(\theta - \theta_{k}) \leqslant 0 \\ \frac{1}{2}(\theta - \theta_{k})^{T}H(\theta-\theta_{k}) \leqslant \delta \end{matrix} \tag{1} \]
该问题被论文作者称为约束策略优化问题。论文中提到该问题具体的求解算法可参考另一篇论文《Constrained policy optimization》[2]。我查阅了另一篇论文,该论文中详细地论证了形如以下问题的求解方法:
\[\begin{matrix} p^{*} = \underset{x}{\min} g^{T}x \\ s.t. \quad b^{T}x + c \leqslant 0 \\ x^{T}Hx \leqslant \delta \end{matrix} \tag{2} \]
这里\(g, b, x \in \mathbb{R}^{n}, c, \delta \in \mathbb{R}, \delta > 0, H \in \mathbb{S}^{n}, \text{且} H \succ 0\)。
该问题是线性目标函数+线性与二次约束的最优化问题,是一个典型的凸优化问题。当至少有一个严格的可行解时,强对偶性得到满足(根据Slater's条件理论)。论文利用强对偶性来求得该问题的解析解。以下是具体推导。我们先定义拉格朗日函数:
\[L(x, \lambda, \nu) = g^{T}x + \frac{\lambda}{2}(x^THx-\delta) + \nu(b^Tx+c) \tag{3} \]
根据拉格朗日对偶性,原始问题的对偶问题是极大极小问题:
\[\underset{\nu \geqslant 0}{\underset{\lambda \geqslant 0}{\max}} \underset{x}{\min}L(x, \lambda, \nu) \tag{4} \]
先求\(\underset{x}{\min}L(x, \lambda, \nu)\),我们令\(\nabla_{x}L(x, \lambda, \nu)=0\),解得
\[ x^* = - \frac{1}{\lambda}H^{-1}(g+\nu b) \tag{5} \]
将\(x^*\)带入拉格朗日函数,则问题进一步转化为
\[ \underset{\nu \geqslant 0}{\underset{\lambda \geqslant 0}{\max}} - \frac{1}{2\lambda}(g+\nu b)^TH^{-1}(g+\nu b) + (\nu c - \frac{1}{2}\lambda \delta) \tag{6} \]
我们将该式进行变量替换,令\(q=g^T H^{-1} g, r = g^TH^{-1}b, s=b^TH^{-1} b\),可进一步化简为
\[ \underset{\nu \geqslant 0}{\underset{\lambda \geqslant 0}{\max}} - \frac{1}{2\lambda}(q + 2\nu r + \nu^2 s) + (\nu c - \frac{1}{2} \lambda \delta) \tag{7} \]
我们又由\(\frac{\partial L(\lambda, \nu)}{\partial \nu} = - \frac{1}{2\lambda}(2r+2\nu s) + c\),我们由