考虑有限候选多目标融合排序公式,目标个数$T$,候选对象个数$N$。 每一个候选对象都有$T$个目标分,需要按某个融合公式把它们融合成一个最终用于排序的分数。
加法融合公式
加法融合公式是线性的,形式简单,参数少,调参容易。其形式是: $$ Score = \sum_{i=1}^T w_i \cdot (b_i + t_i) $$ 其中,$t_i$ 为第$i$个目标的得分,$b_i$ 为第$i$个目标的Bias,一般固定为0,$w_i$ 为第$i$个目标的权重。
乘法融合公式
乘法融合公式是非线性的,相对加法融合公式来说形式复杂,参数多,调参稍微困难一些,但一般能比加法融合公式取得更好的效果。 其基础形式是: $$ Score = \prod_{i=1}^T (\beta_i + t_i) ^ {\alpha_i} $$ 其中,$t_i$ 为第$i$个目标的得分,$\alpha_i$和$\beta_i$ 为调整第$i$个目标权重的参数。实践中为了便于调参,可以把它改写成Bias形式: $$ Score = \prod_{i=1}^T (b_i + \beta_i \cdot t_i) ^ {\alpha_i} $$ $b_i$ 为第$i$个目标的Bias,一般固定为1,然后一个简单的调参方式是:在$t_i$的平均值的倒数的基础上调节$\beta_i$,在1附近调节$\alpha_i$。
目标分预处理
除了将目标分直接代入融合公式外,还可以先对其做一定的预处理。
归一化(Normalization)
目标分分布不稳定或分布不便于直接用到排序融合公式中时,可以把目标分归一化线性映射到稳定的$[A, B]$的区间,一般$B$取1,$A$可取0.01或更小或0:
$$ \tilde{t} = \frac{ t - \min t } { \max t - \min t} \cdot (B - A) + A $$
其中, $\max t = \max \limits_{1 \le j \le N} t^{(j)}$ 为目标分在$N$个候选对象上的分布的最大值, $\min t = \min \limits_{1 \le j \le N} t^{(j)}$ 为目标分在$N$个候选对象上的分布的最小值, $t^{(j)}$ 表示第$j$个候选对象的目标分。
要注意,实践中要规避除零的风险。
相对目标分
在推荐系统中,不同用户对某一个动作的喜好程度或使用频率不同,则表现为某一个目标分在不同用户上的分布有大小区别, 因此可以用该目标分在当前待排序的有限候选集上的相对得分取代原始得分:
$$ \hat{t} = \frac {t} { w \cdot \overline{t} + c } $$
其中, $\overline{t} = \frac { \sum_{j=1}^N t^{(j)} } {N}$ 为目标分在$N$个候选对象上的分布的平均值, $w$和$c$为待调整的参数。
例如,应用相对目标分的乘法融合公式为: $$ Score = \prod_{i=1}^T (b_i + \frac {t_i} {w_i \cdot \overline{t}_i + c_i} ) ^ {\alpha_i} $$ 此式也被称为个性化$\beta$形式,因为不同用户的目标分平均值$\overline{t}_i$不同,也就相当于Bias形式乘法融合公式中的$\beta_i$是不同的。
其他
此外,还可以将目标分按大小阈值截断,使用Sigmoid函数映射到0~1等。
在融合公式中使用目标排名
除了在融合公式中使用目标得分外,还可以使用目标排名代替目标分。
对全体候选对象按某一个目标分排序,则可得到每一个候选对象在这一个目标上的排名,记为$r_i$,表示在第$i$个目标上的排名,值为$[1, N]$之间的整数。 然后可以直接在融合公式中使用目标排名,或者将其归一化到$[\frac {1} {N}, 1]$之间,也就是将$r_i$除以$N$,之后再代入融合公式。
需要注意的是,由于排序时一般是逆序排序,目标分最大的排名是1,因此使用目标排名代替目标分时改变了融合公式的单调性,需要相应地再调整一下融合公式的单调性。
例如,在乘法融合公式中使用目标排名时,可以用$-\alpha$作为指数:
$$ Score = \prod_{i=1}^T (b_i + \beta_i \cdot \tilde{r}_i) ^ {- \alpha_i} $$ 其中,$\tilde{r}_i = \frac {r_i} {N}$。
或者,可以用$\tilde{r}_i = \frac {N + 1 - r_i} {N}$的映射方式对排名数值进行归一化, 则不需要再调整融合公式的单调性。