多目标优化在推荐中的应用
在推荐系统中,大多产品都是基于隐式反馈进行推荐,导致评估用户满意度的时候有不同的偏差:
1)不同目标表达不同的满意程度:在电商应用中,购买行为表达的满意度高于点击、浏览;
2)单个目标衡量不全面:在信息流应用中,仅以点击率为目标,可能会存在标题党;在招聘应用中,仅以投递转化率为目标,可能存在招聘方不活跃或者对候选者不满意度下降。
3)用户表达满意的方式不同:在电商应用中,用户喜欢商品的表达可能会以收藏或者加购的形式,取决于用户偏好;在招聘应用中,招聘方对候选者的满意方式可能以在线沟通、电话沟通、直接面试邀请等形式,取决于招聘方偏好。
推荐系统中有多个业务指标,可以通过一些手段使得多个业务的综合目标收益最大化。比如说,电商场景,希望能够在优化GMV的基础上提高点击率,提高用户粘性;信息流场景,希望提高用户点击率的基础上提高用户关注、点赞、评论等行为,提高留存;招聘场景,希望提高求职者投递转化率的基础上提高招聘方的体验满意度,从而使得双方的满足度均提高。因此推荐系统做到后期,往往会向多目标方向演化,承担起更多的业务目标。
多目标排序问题的解决方案:多模型分数融合、通过样本权重进行多目标优化、排序学习(Learning To Rank,LTR)、多任务学习(Multi-Task Learning,MTL)。
1.多模型分数融合
多模型融合的方式也是比较经典传统的做法,每个目标训练一个模型,每个模型算出一个分数,然后根据自身业务的特点,通过某种方式将这些分数综合起来,计算出一个总的分数再进行排序,综合分数的计算通常会根据不同目标的重要性设定相应的参数来调节。
最常见的是weighted sum融合多个目标,给不同的目标分配不同的权重。当然,融合的函数可以有很多,比如连乘或者指数相关的函数,可以根据自己面临的场景不断去探索。
1.1 规则公式法
以电商推荐系统为例,假定有五个预估目标,分别是点击率 CTR、购买转化率 CVR、收藏率 collect,加购率 cart、停留时长 stay,这五个目标分别对应五个模型,排序阶段的作用就是利用模型根据各自目标来给候选 Item 计算一个预估值(分数),排序阶段结束每个 Item 都会有五个不同的目标预估分数,如何用这些分数进行融合,是交给下一个流程--重排序模块来处理的。
分数融合的一种思路是利用一个带参数公式来实现,如下:
有了公式,那么超参数(α,β,a,b,c 等)如果进行学习获取?目前工业界就是人工调参,通过线上AB实验不断调整参数,一个很繁琐的工作。
1.2 线性回归法
如果经验公式,我们很容易想到的一种思路是类似于集成学习中一种多模型融合方法 Stacking,即将多个目标模型预估出的结果作为输入,然后用一个简单的线性回归进行线性加权融合,学习到各个目标的权重,这样我们就可以预估综合分数了。但是我们却忽略了一个重要的问题,该如何设置样本的 Label 呢?事实上,并没有一个真实的综合分数可供我们去训练学习,因此,这种办法很难真正去实现。而在工业界,更多的做法是人工调试,但如此又会带来很多问题,比如模型灵活度不够。
2.样本权重(sample weight)
如果主目标是点击率,分享功能是我们希望提高的功能。那么点击和分享都是正样本(分享是点击行为的延续),分享的样本可以设置更高的样本权重。模型训练在计算梯度更新参数时,对于sample weight大的样本,如果预测错误就会带来更大的损失,梯度要乘以权重。通过这种方法能够在优化点击率的基础上,优化分享率。实际AB测试会发现,这样的方法,目标点击率会受到一定的损失换取目标分享率的增长。通过线上AB测试和sample weight调整的联动,可以保证在可接受的A目标损失下,优化目标B,实现初级的多目标优化。
优点:模型简单,仅在训练时通过梯度上乘sample weight实现对某些目标的boost或者decay带有sample weight的模型和线上的base模型完全相同,不需要架构的额外支持。
缺点:本质上没有对多目标的建模,而是将不同的目标折算成同一个目标。折算的程度需要多次AB测试才能确定。
3. 排序学习(Learning To Rank,LTR)
多模型融合中我们通过模型计算预估值或者是综合打分,其根本目的是为了给推荐物品排序,而不是真正的打分。因此我们可以使用排序学习方法来解决多目标问题。再由于是多个目标,可以排除pointwise方案,可以考虑pairwise和listwise方案。具体,模型可以考虑 BPR 或者 LambdaMART 等算法。
相比多模型融合中 Label 标注,排序学习模型的的 Label 标注相对更容易一点,因为只关心相对关系,而不需要真实的打分数据。一种常见的标注方法是对多目标产生的物品构建 Pair,比如用户对物品 i产生的购买,对物品j产生了点击,假定我们觉得购买的目标比点击的目标更重要,就可以让i>uj,其他目标以此类推。有了顺序对后,我们便可以训练排序学习模型,这样一个模型便可以融合多个目标,而不用训练多个模型。
4. 多任务学习(Multi-Task Learning,MTL)
4.1 概念
多任务学习是基于共享表示,把多个相关的任务放在一起学习的一种机器学习方法。多任务学习涉及多个相关的任务同时并行学习,梯度同时反向传播,利用包含在相关任务训练信号中的特定领域的信息来改进泛化能力。
一般来说,优化多个损失函数就等同于进行多任务学习。 即使只优化一个损失函数,也有可能借助辅助任务来改善原任务模型。
多任务学习的前提条件:多个任务之间必须具有相关性以及拥有可以共享的底层表示。
在多任务学习的定义中,共享表示是一个非常重要的限定,个人认为共享表示对于最终任务的学习有两类作用:
促进作用——通过浅层的共享表示互相分享、互相补充学习到的领域相关信息,从而互相促进学习,提升对信息的穿透和获取能力;
约束作用——在多个任务同时进行反向传播时,共享表示则会兼顾到多个任务的反馈,由于不同的任务具有不同的噪声模式,所以同时学习多个任务的模型就会通过平均噪声模式从而学习到更一般的表征,这个有点像正则化的意思,因此相对于单任务,过拟合风险会降低,泛化能力增强。
因此在深度神经网络中,执行多任务学习有两种最常用的方法:
参数的硬共享机制
共享 Hard 参数是神经网络 MTL 最常用的方法。在实际应用中, 通常通过在所有任务之间共享隐藏层,同时保留几个特定任务的输出层来实现, 如下图所示:
共享 Hard 参数大大降低了过拟合的风险。
参数的软共享机制
共享 Soft 参数,每个任务都有自己的参数和模型。模型参数之间的距离是正则化的,以便鼓励参数相似化,例如使用 L2 距离进行正则化。
多任务学习之所以有效,是因为多任务学习的方式引入了归纳偏置(inductive bias),归纳偏置有两个效果:
1)互相促进,可以把多任务模型之间的关系看作是互相先验知识,也称归纳迁移(inductive transfer),有了对模型的先验假设,可以更好的提升模型的效果;
2)约束作用,借助多任务间的噪声平衡以及表征偏置来实现更好的泛化性能。
4.2 主流多任务学习模型
主流模型有ESMM模型、EMS2模型、MMoE模型等。本文以阿里ESMM模型为例进行介绍。
用户的行为可以抽象为一个序列模式:浏览 -> 点击 -> 购买。
CVR 是指从点击到购买的转化,传统的 CVR 预估会存在两个问题:样本选择偏差和稀疏数据。
样本选择偏差:模型用户点击的样本来训练,但是预测却是用的整个样本空间。
数据稀疏问题:用户点击到购买的样本太少。
ESMM是一个多任务学习模型,它同时学习学习点击率和转化率两个目标,即模型直接预测展现转换(pCTCVR):单位流量获得成交的概率,把 pCVR 当做一个中间变量,模型结构如下 :
该网络结构共有三个子任务,分别用于输出 pCTR、pCVR 和 pCTCVR。
对于 pCTR 来说可将有点击行为的曝光事件作为正样本,没有点击行为的曝光事件作为负样本,对于 PCTCVR 来说,将同时有点击行为和购买行为的曝光事件作为正样本,其他作为负样本。上面公式可以转化为
我们可以通过分别估计pCTCVR和pCTR,然后通过两者相除来解决。而pCTCVR和pCTR都可以在全样本空间进行训练和预估。但是这种除法在实际使用中,会引入新的问题。因为在预测阶段pCTR其实是一个很小的值,范围一般在百分之几,预估时会出现pCTCVR>pCTR的情况,导致pCVR预估值大于1。ESMM巧妙的通过将除法改成乘法来解决上面的问题。
它引入了pCTR和pCTCVR两个辅助任务,训练时,loss为两者相加。
在CTR有点击行为的展现事件构成的样本标记为正样本,没有点击行为发生的展现事件标记为负样本;在CTCVR任务中,同时有点击和购买行为的展现事件标记为正样本,否则标记为负样本。
另外两个子网络的 embedding 层是共享的,由于 CTR 任务的训练样本量要远超过 CVR 任务的训练样本量,ESMM 模型中 embedding 层共享的机制能够使得 CVR 子任务也能够从只有展现没有点击的样本中学习,从而能够极缓解训练数据稀疏性问题。
MTL可以使得多个模型特性互相弥补:点击率预估模型善于学习表面特征,其中包括标题党,图片带来的点击诱惑;而转化模型学习更深层的特征,比如体验、服务质量。
4.3构建所有loss的pareto
多任务学习本质上是一个多目标问题,因为不同任务之间可能产生冲突,需要对其进行取舍。
帕累托最优所指的情况要求有多个优化目标,指的是不能在不损失其他目标的情况下优化一个目标。
4.3.1 Multi-Task Learning as Multi-Objective Optimization
定义如下:
优化目标:
5.多目标优化实践
【参考文献】
1. https://arxiv.org/pdf/1810.04650v1.pdf Multi-Task Learning as Multi-Objective Optimization
2.
多目标优化算法有哪些
1. 遗传算法:遗传算法是一种模拟自然选择和遗传机制的搜索算法。在多目标优化问题中,它能够同时处理多个目标函数,通过染色体的编码来代表解空间中的解,然后通过选择、交叉、变异等操作来寻找最优解。这种算法能够很好地处理一些复杂的非线性、多峰值的问题。2. 粒子群优化算法:粒子群优化算法模拟了鸟...
关于项目优化的一点浅见
那么在项目优化中我的理解是:“更优”意味着对于优化这件事应该从来是没有终点的,不必想着一步到位,阶段性的优化目标更为合理;“解决方案”意味着不仅仅是从技术层面的优化,也应该是从用户需求、产品设计、技术方案、技术实现、产品落地推广、运营跟踪反馈等等多维度的系统性的进行。 对于项目优化显性出来的目标无外...
如何用粒子群优化(PSO)算法实现多目标优化?
阅读和分析Yarpiz的代码不仅能让我们看到PSO在多目标优化中的具体实现,还能帮助我们理解算法的动态行为,以及如何通过调整参数进行优化。同时,尝试自己实现和调整算法,可以加深对原理的理解,并在实践中提升解决问题的能力。总的来说,利用粒子群优化算法进行多目标优化是一个充满挑战但又富有成果的过程。
多目标优化问题
帕累托最优解集(Pareto-optimal set ):所有可行中的不可支配解集被称为帕累托最优解集。 帕累托最优前沿面(Pareto-optimal front) :帕累托最优解集的边界(boundary)被称为帕累托最优前沿面。 多目标优化问题的目标 :①寻找尽可能接近最优的解集;②尽可能增大找到解的多样性。优点:简单 缺点:①很难设定一...
什么是优化选择的标准
5、最优解决方案:在数学和计算领域,优化选择的标准是找到问题的最优解决方案。例如,在线性规划问题中,通过优化算法寻找能够最大化或最小化目标函数的最优变量值。6、最佳平衡:在某些情况下,优化选择的标准是寻找最佳平衡点,以满足多个目标或限制条件。例如,在资源分配问题中,需要在不同需求之间...
SEO在网站设计中的优化策略
网站设计,在当今搜索引擎主宰人们信息的时代,正在经历着由以用户为导向转而以搜索引擎为导向的新的设计理念。随着企业网站数量的不断增加和搜索引擎的普及,网站被搜索引擎收录并获得较好的排名,并吸引更多的用户访问,是众多企业网站所追求的目标。搜索引擎优化是针对网站健康度提出的一项技术,主要目标是...
优化理论问题?
(二)静态优化和动态沈比 在技术经济分析中,不考虑时间因素的影响的优比是的态比比,考虑时间因累的影响的'优化是动态优化。静态优化过程简便,动态优化更符合客观实际,两N2比比方式各有适用场合,当两种的优化结果发生矛盾时,应以动态比化为准。(三)单目标优化和多日标优化 优化过程中,按满足的日际...
小店随心推手动出价每个优化目标出价在哪里修改加价
个人中心修改。抖音APP我个人中心,右上方设置,更多功能,小店随心推。2、抖音APP,带有小黄车的视频,点击分享视频按钮,选择小店随心推。3、点击你想修改的物品,进行修改价格即可。
什么是目标关键词,新建的网站该怎样去优化目标关键词呢?
7、目标关键词一般都是网站首页定位优化的关键词,常放在首页的标题以及关键词设置标签中。 8、目标关键词是有热度的词语,每天都有部分用户通过该词语在搜索引擎进行搜索。 9、目标关键词需围绕网站产品和服务来设定,网站的主要内容围绕目标关键词展开。 10、一般用户在百度搜索目标关键词出来的站点大多是网站的首页或者...
在seo优化中应该怎么来选词,SEO选词技巧
要做SEO优化,首先需要了解网站获取流量的来源。目前网站流量来源主要分为四大块:直接访问、推荐访问、SEO、APP。在第三块流量来源SEO上,目前有很多优化的渠道,比如网页、图片、新闻源。根据现有的经验,网页搜索可能是大部分网站最大的流量来源。了解了SEO的主要渠道之后,我们需要思考的有以下几点:选择...
边豪文迪: 环境规划是应用各种科学技术资讯,在预测发展对环境的影响及环境质量变化趋势的基础上,为了达到顶期的环境目标,进行综合分析作出的带有指令性的最佳方案.其是国民经济与社会发展的有机组成部分,是环境决策在时间、空间上的具体...
合作市18860044500: 为什么克隆选择算法可以运用到多目标优化中 - ?
边豪文迪: 会说不可以用其他算法了,遗传算法最精华就在于fitness,要是多目标优化也是把多个目标融合在一起 变成一个目标 然后再结合实际目标意义(越大越优,越小越优)进行计算fitness.至于优点,在大多数智能搜索算法里面,遗传算法的全局最优概率最大
合作市18860044500: pso的多目标优化 - ?
边豪文迪: 在多目标优化问题中,每个目标函数可以分别独立进行优化,然后为每个目标找到最优值.但是,很少能找到对所有目标都是最优的完美解,因为目标之间经常是互相冲突的,只能找到Pareto最优解.PSO算法中的信息共享机制与其他基于种群...
合作市18860044500: 什么是多目标优化问题 - ?
边豪文迪: 多目标就是多个目标实现,比如车间调度:既要实现短的生产周期、又要低成本、高的设备利用率、还要质量要求.多目标一般前置多条件约束,且条件还是多项式不确定问题,属于N-P难题.
合作市18860044500: 多目标优化算法有哪些? - ?
边豪文迪: 主要内容包括:多目标进化算法、多目标粒子群算法、其他多目标智能优化算法、人工神经网络优化、交通与物流系统优化、多目标生产调度和电力系统优化及其他.
合作市18860044500: 什么是解决多目标最优化问题的一种方法 - ?
边豪文迪: 多目标最优化论文: ·《多目标遗传算法在车辆路径优化中的应用研究》 ·《单目标、多目标最优化进化算法》 ·《条件风险值(cvar)模型的理论研究》 ·《群体决策、多目标最优化和全局最优化的若干结果》 ·《多支柱起落架飞机支柱刚度优化匹配设计》 ·《多目标最优化在网络路由中的应用》 ·《多目标最优化选播路由算法》
合作市18860044500: 数学建模中的多目标优化问题该怎么选择方法 - ?
边豪文迪: 复杂问题的求解往往采用先选取一个初始解,然后采用某种算法进行迭代的方式.fgoalattain函数应该就是采用这种方式.和传统的求解方式不同,这种方式求解并不能准确的得到最优解,而是通过算法向最优解逼近.算法的不同、初始解的不同以及迭代的次数都有可能影响到最终解,所以得到不同的解也是很正常的
合作市18860044500: 评注多目标决策方法的模型的优缺点 - ?
边豪文迪: 多目标决策的特点 * 多目标性:* 目标的不可公度性:* 目标之间的矛盾性:* 定性指标与定量指标相混合:1)多目标性 * 决策问题的多目标性,有示例所见,是显而易见的.2)目标的不可公度性 * 是指:量纲的不一致性,即各目标没...
合作市18860044500: 多目标优化和多约束优化有区别吗 - ?
边豪文迪: 约束多目标优化和区间多目标优化都属于多目标优化,但侧重于研究两个不同的方面.约束多目标优化是指,含约束条件的多目标优化.约束条件是指,该优化问题的解的目标函数值必须满足的前提条件,比如,第2个目标函数值f_2(x)必...
合作市18860044500: 遗传算法多目标优化 能取离散的决策变量吗 比如决策变量取1,2,3,4,5.谢谢! - ?
边豪文迪: 应该是可以的.多目标优化的变量空间应该是可连续或可不连续的,而遗传算法只是优化这个问题的手段,它的变量空间也有很多类型,所以你要根据你所需要处理的问题仔细分析.