ToB企服应用市场:ToB评测及商务社交产业平台

标题: 推荐系统:精排多目标融合与超参数学习方法 [打印本页]

作者: 民工心事    时间: 2024-5-20 18:05
标题: 推荐系统:精排多目标融合与超参数学习方法
帕累托最优指的是这样一种社会状态:当且仅当不减少其他人的效用就无法增加任何一个人的效用时,这种社会状态就称之为帕累托最优。
1 导引

1.1 推荐系统基本架构

在介绍多目标融合模块之前,我们先来回顾一下推荐系统的基础架构,以及多目标融合模块在推荐系统中所处的基本位置。一种在各大厂(如快手[1]、美团[2]、阿里飞猪[3]等)中常见的“多层漏斗型”推荐系统架构如下:

上述过程中,召回、粗排、精排+多目标融合、序列/多样性重排、异构混排是在服务端进行(此中异构混排亦有放在移动端的[4]),端上重排[4]是在移动端进行。下面大致介绍一下这些步调的作用:
1.2 多目标融合(MTF)简介

不同于学术界只思量点击ratings预估的做法(即将推荐系统建模为简朴的二分类问题,然后离线评估算单个AUC或者HR/MRR啥的),推荐系统的优化目标在工业界的实践中常常是有多个的(且大多为线上指标),尤其是短视频推荐场景。以短视频推荐场景为例,在推荐系统的排序建模过程中,我们需要提升用户的使用时长/正向反馈,减少负向反馈,从而进步用户的留存。短视频推荐场景中的用户反馈可分为四类:
我们的目标是进步正向反馈、减少负向反馈,进步用户体验。然而,我们之前说过,粗排/精排的个性化多使命学习模子,能预估20多个不同的预估值,如点击率、有用播放率、播放时长、点赞率、关注率等,那怎样用它来排序呢?从多使命学习到多目标排序,中间有一个过渡,即怎样把这些预估值融合成一个单一的排序分,最后实现多目标精排。这也就引入了本文要介绍的正题:多目标融合(multi-task fusion, MTF)

如上图所示,多目标融合模子在精排MTL模子输出多个预估分数(对应上述各种用户的反馈)之后,对多个预估分数进行融合,随后根据融合的打分进行精排,并输入到后续的重排模块。
2 多目标融合方法介绍

2.1 手工融合

最简朴的多目标融合方式就是手工融合,一般包括线性加法指数乘法两种:
爱奇艺在多目标融合的初期实践中采用的就是加法融合的方式,但这样产出的排序得分对各子目标的得分值域很敏感(也即容易被某些显著偏大的目标所主导,比如点赞这种目标就可能存在一些显着偏大的异常值),因此他们增加了\(\alpha\)和\(\beta\)两个超参数,来联合调节各子目标得分的敏捷度与提升比例,也就得到了如下所示的带权指数加法[5][6]的公式形式:
爱奇艺在工程实践中发现,在业务目标较少时,通过加法融合公式新增目标可以短期内快速获得收益。但随着目标逐渐增多时,加法融合公式的融合能力会逐渐受限。这是由于对加法融合公式而言,新增目标后,各子目标的紧张性影响会削弱。别的,哪怕是已经增加了超参数\(\alpha\)和\(\beta\)的情况下,加法融合公式仍然容易被最大的目标主导。不过,乘法融合公式就不存在这些问题。因此,在此基础上,爱奇艺又把多目标融合公式调整为了乘法:
手工融合的优点在于其目标权重就指示了目标在融合公式中的紧张度,比较直观且可解释性强。固然其缺点也非常显着,这个权重系数对于所有用户都是一样的,缺少个性化。别的,这里无论对预估分数使用加法还是乘法的方式来融合,模子serving时的超参数均是通过网格搜索(grid search)[7]来得到离线最优的几组解。而我们知道,推荐系统的实际表现还需要线上A/B实验才能确定的,这导致该方法服从较低。而且随着模子的迭代与样本分布的变化,最优参数也在变化。最后,手工融合的缺点还表现于维护成本高(由于常常要进行多次的手工调整)。
那么,我们是否可以用模子来学习超参数呢?这就涉及到了融合超参数的学习方法[8]了,也即用一个模子来学习各预估分数的组合权重。
对于融合超参数的学习方法而而言,最容易想到的应该是离线方法,也就是用一个离线模子来学习各预估分数的组合权重。这种方法的优点和缺点都很显着,分别如下所示:
思量到离线超参数学习方法具有的上述的缺点,在实际工业界的应用中,我们常常使用在线的超参数学习方法。在线方法的工作流程如下图所示:

可以看到,在线超参数学习算法基于探索与利用机制,会在baseline附近探索生成\(N\)组参数,传给推荐系统后获得这\(N\)组参数对应的展现给用户的差别化排序结果,从而获得不同用户的反馈。之后再收集这些反馈日记并做收益(reward)统计,终极送给BayesOpt/ES/CEM等调参算法产生下一组更好的参数。经过不停迭代,参数就会向一个多目标协调最优的方向前进。
在线的超参数学习方法具有以下优缺点:
常见的在线超参数学习方法包括贝叶斯优化方法(Bayesian optimization)[9]、进化策略算法(evolutionary strategy)[10]、CMA-ES自适应进化算法[11]等,下面我们重要介绍贝叶斯优化方法和进化学习算法。
2.2 融合超参数学习方法

2.2.1 贝叶斯优化算法

贝叶斯优化算法充分思量了真实的线上收益,通过收集多组小流量经验,基于小流量实验的评估结果来进行参数优化。
贝叶斯优化的基本思想在于由于真实优化函数计算量太大或是个黑盒(比如推荐场景中用户的真实反馈收益),我们需要用一个代理函数(surrogate function) 来近似它。而在代理函数四周可能是最小值点的附近,或者是在还没有采样过的区域采样新的点之后,我们就可以更新代理函数,使之不停逼近目标函数。我们常采用高斯过程(Gaussian process, GP) 来建模概率代理函数的分布,然后再设计一个采集函数(acquisition function),基于高斯过程回归的结果来计算下一组可能更优的采样点(使采集函数最大化)。注意:这里之所以使采集函数最大化,而不是直接使代理函数最大化,由于直接优化代理函数过于目光短浅了,由于我们还要思量不确定性。事实上,这也是一种探索(exploration)机制的表现。贝叶斯优化与网格搜索的不同之处在于,它在实验新的超参数组合时会思量之前的评估结果(即利用了证据,即evidence的信息来估计代理函数的后验分布),并基于代理函数来求解采集函数的极值,从而确定下一个采样点。
贝叶斯优化包含两个关键组成部分:
首先,算法会初始化一个代理函数的先验分布,然后开始迭代。算法的第\(t\)步迭代的伪代码描述如下:
算法流程示意图如下:

注意,在实际的推荐系统场景中,我们用于定义高斯过程的代理函数就是我们之前所定义的融合幂乘函数,即\(\text{score} = \prod_{i=1}^n \space \text{score}_i^{w_i}\)。具体在短视频推荐场景中,\(\text{score}_i\)可能为用户time、like、follow等举动的预估分数。用户的在线反馈收益\(r\)可以设定为单次屏幕革新中的点赞率、匀称视频播放时长等,样本聚集\(\mathcal{D}=\{(x, y)\}\),这里\(x =(w_1, w_2, \cdots, w_n), y=r\)。
2.2.2 进化策略(ES)算法

前面陈诉的基于贝叶斯优化的多目标融合算法固然解决了手工融合的许多问题,但模子的参数(即多目标融合参数)仍然是单一的,不够个性化,亦不具备动态情况与上下游自适应性。
由于现在多目标融合参数量非常大(有的甚至达到了百级别),我们需要一种更高效、更主动化的方式来优化超参数,从而能够动态调整不同人群的单目标优化参数。因此,人们提出使用进化策略算法,以线上实时的真实收益为指引,对模子的参数进行优化。
注意,进化学习与强化学习的优化目标都是预期的reward,但强化学习是将噪声加入动作空间并使用反向传播来计算参数更新,而进化策略则是直接向参数空间注入噪声。

如上图所示,使用进化学习算法,线上对模子参数进行扰动,根据扰动后的结果来计算reward(常设置为人均或单刷的停留时长/播放时长/深度消费等关键业务指标),并离线进行小时级模子训练。观察到较优模子参数组合后,则更新线上的baseline模子参数。
进化算法第\(t\)轮模子迭代伪代码如下:
在工程实践中,该方法常常面临怎样权衡reward的问题。以短视频推荐场景为例,我们常常关注单次屏幕革新中的匀称播放时长、产生交互举动(喜欢、关注等)的比率,那么我们就有以下两种结合方式:

\[\begin{aligned}\text{reward} &= \alpha \cdot \text{avg}\_\text{time} + \beta \cdot \text{interaction}\_\text{rate} \quad (1) \\\text{reward} &= \text{avg}\_\text{time}\cdot (1 + \alpha \cdot \text{interaction}\_\text{rate}) \quad (2) \\\end{aligned}\]
在实践中,通常reward \((2)\)的稳定性更高。
我们进一步分析,这是一个多峰优化问题,很容易造成不同业务指标之间的此消彼长(也就是所谓的“跷跷板效应”),从而陷入局部最优,导致效果不尽如人意。
当发生跷跷板征象时,我们可以将部分reward进行进一步拆分,比如将interation_rate拆分为like_rate和follow_rate两个不同的指标:

\[\text{reward} = \text{avg}\_\text{time}\cdot (1 + \alpha \cdot \text{like}\_\text{rate} + \beta \cdot \text{follow}\_\text{rate})\\\]
可见,在reward的优化中,我们不停在规避不同紧张指标之间的置换征象,及时调整reward的形式,不停追求理想情况(也就是Pareto最优状态)。
上述的这种进化策略算法我们一般称为自然进化策略(natual evolutionary strategy, NES)算法。除了上述这种NES算法之外,爱奇艺还提出可以采用启发式的粒子群优化(particle swarm optimization, PSO)[5][6]算法来离线搜索融合参数。该算法本质上也属于一种进化策略算法(不过不同于NES算法的在线特性,PSO算法是离线的),旨在从个体构成的群体中采样并让此中乐成的个体来引导未来子女的分布。
PSO算法通过初始化一群随机的粒子,启发式地进行多次迭代来求出最优解。每一次迭代中,粒子通过个体极值(该粒子所经过的历史最优解)和群体极值(种群找到的最优解)来更新各自的位置。这样,终极所有的粒子会兼顾个体的历史最优解和群体所共享的全局最优解直至收敛。
最后,上面我们介绍的都是朴素的进化算法,缺乏进化的稳定性和主动调节学习率的特性。所以,人们又提出了利用协方差矩阵自适应策略(covariance matrix adaptation evolutionary strategies, CMA-ES)进一步提升多目标融合模子的能力。感兴趣的读者可以参见文章《新闻资讯混场面景下的多目标融合实战(四)》[11]。
参考


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4