OPPO搜广推一面面经
一、介绍一下PLE模型
在多使命学习(Multi-Task Learning, MTL)中,多个使命共享部分模型结构,以提拔整体效果。然而,差别使命间存在 使命冲突(Task Conflict) 题目,即差别使命对参数的优化方向不同等,导致性能降落。
论文:Tang, Hongyan, et al. “Progressive Layered Extraction (PLE): A Novel Multi-Task Learning (MTL) Model for Personalized Recommendations.” RecSys 2020.
PLE 的核心思想是:
通过引入多个专家网络(Experts)并区分共享专家与特定使命专家,联合门控机制(Gating Network)实现使命间知识共享与隔离的平衡。
1.1. 核心架构
- 专家网络(Experts):
- Shared Experts:供全部使命共享
- Task-Specific Experts:只供特定使命使用
- 门控网络(Gating Network):
- 每个使命都有本身的门控网络,决定该使命在当前层中应从哪些专家中获取信息
- 输出为每个专家的加权系数
- 塔结构(Tower):
- 每个使命最终仍保存独立的塔(MLP),用于完成最终猜测
1.2. CGC(Customized Gate Control)结构
- 为了解决使命之间的“跷跷板”效应或负迁徙效应,MMoE引入了使命独有的gate(expert是共享的,但gate是使命独有的,即差别使命通过gate共享相同的expert)
- CGC在共享expert之外,新增了task specific expert,即每个使命单独的expert,这些expert是专门用于对应使命的优化的。CGC既能享受到共享特性带来的利益,也有专有的expert为差别使命提供独自的优化空间。每一个使命的Tower网络都获取相应使命独享的专家网络输出和共享的专家网络输出
1.3. PLE就是Extraction Network + 多层CGC的架构
CGC中门控网络的个数等于使命的个数,而Extraction Network中除了对应使命的门控网络外,还有一个共享的门控网络。高层Extraction Network的输入不是原始的输入,而是包含更抽象语义的底层Extraction Network的门控融合输出。
Extraction Network结构 + CGC结构 如下图:
二、模型一般用什么优化器来练习,Adam优化器的原理,用过哪些优化器,有过对参数的调解吗?
感觉用得最多的一定是Adam了,原理介绍见【搜广推校招面经十三】
三、深度学习怎么防止过拟合,L1和L2正则化的区别
见【搜广推校招面经二十,搜广推校招面经十四,搜广推校招面经三十一】
四、排序模型和分类模型输入是一样的吗,输出有什么差别
4.1. 输入:根本同等
排序模型(Ranking Model)和分类模型(Classification Model)在输入特性方面是雷同的,通常都是一组结构化的特性向量,反正都是二维的表格。这些特性可以包括数值型、种别型、文本向量化表示等,经过处理(如归一化、Embedding)后送入模型。
4.2. 输出:存在本质差异
项目分类模型(Classification)排序模型(Ranking)输出形式各种别的概率或标签候选项的排序分数或排名使命目标猜测所属种别判断多个样本之间的相对排序应用示例图片识别:猫 / 狗 / 鸟保举系统:为用户排序商品损失函数常用CrossEntropyLoss、FocalLossPairwise:Hinge loss、BPR
Listwise:Softmax Cross Entropy、LambdaRank猜测方式选最大概率的种别根据得分排序候选项 4.3. pointwise、pairwise、listwise建模排序模型
见【搜广推校招面经二十九】
排序使命可以根据建模的方式分为三类:Pointwise、Pairwise 和 Listwise,主要区别在于它们怎样构造练习样本以及怎样定义损失函数。
4.3.1. Pointwise 方法
- 思想:将排序使命看作回归或分类题目,分别对每个样本猜测一个相干性得分或标签。
- 建模方式:
- 每个样本是一个独立的 query-document 对
- 猜测其与 query 的相干性得分或是否点击(0/1)
- 常用模型/损失函数:
- 回归:MSE(Mean Squared Error)
- 分类:CrossEntropyLoss、LogLoss
- 缺点:
4.3.2. Pairwise 方法
- 思想:将排序使命转化为二分类题目,学习成对样本的相对次序(谁排在前面)。
- 建模方式:
- 输入为两个文档对 (di, dj),同属于一个 query
- 模型学习 di 是否比 dj 更相干
- 常用模型/损失函数:
- RankNet:使用 s i g m o i d ( s c o r e i − s c o r e j ) sigmoid(score_i - score_j) sigmoid(scorei−scorej)
- BPR(Bayesian Personalized Ranking)
- Hinge loss(如 SVMRank)
- 缺点:
4.3.3. Listwise 方法
- 思想:直接以整个候选列表为输入,优化整个排序列表的质量。
- 建模方式:
- 练习样本为一个 query 对应的多个文档列表
- 模型学习整个列表的最优分列次序
- 常用模型/损失函数:
- ListNet、ListMLE(优化列表似然)
- LambdaRank、LambdaMART(基于 NDCG 等指标的优化)
- 优点:更适合优化排序指标(如 NDCG、MAP)
4.3.4. 三种方法对比表
方法输入粒度损失目标优点缺点Pointwise单个样本回归/分类损失实现简单,易于练习无法建模样本间排序关系Pairwise样本对相对次序损失引入相对信息,排序效果好样本量大,练习时间较长Listwise整个样本列表列表级排序指标排序效果最佳实现复杂,练习成本高 五、NDCG(Normalized Discounted Cumulative Gain)计算方法
NDCG 是一种常用的排序评估指标,权衡保举效果的相干性和排序位置。值越高,说明模型越好。其核心思想是:
- 相干性越高的项排在越前面越好
- 靠前位置的告急性更高(打折)
|