搜广推校招面经八十一

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(scoreiscorej)
    • BPR(Bayesian Personalized Ranking)
    • Hinge loss(如 SVMRank)
  • 缺点
    • 样本数量为 O(n²),训练成本高

4.3.3. Listwise 方法

  • 思想:直接以整个候选列表为输入,优化整个排序列表的质量。
  • 建模方式
    • 训练样本为一个 query 对应的多个文档列表
    • 模型学习整个列表的最优排列顺序
  • 常用模型/损失函数
    • ListNet、ListMLE(优化列表似然)
    • LambdaRank、LambdaMART(基于 NDCG 等指标的优化)
  • 优点:更适合优化排序指标(如 NDCG、MAP)

4.3.4. 三种方法对比表

方法输入粒度损失目标优点缺点
Pointwise单个样本回归/分类损失实现简单,易于训练无法建模样本间排序关系
Pairwise样本对相对顺序损失引入相对信息,排序效果好样本量大,训练时间较长
Listwise整个样本列表列表级排序指标排序效果最佳实现复杂,训练成本高

五、NDCG(Normalized Discounted Cumulative Gain)计算方法

NDCG 是一种常用的排序评估指标,衡量推荐结果的相关性和排序位置。值越高,说明模型越好。其核心思想是:

  • 相关性越高的项排在越前面越好
  • 靠前位置的重要性更高(打折)

🔸Step 1: 计算 DCG(Discounted Cumulative Gain)

对于前 k 个推荐结果,DCG 的定义如下:
公式一(使用等级评分):
D C G @ k = ∑ i = 1 k r e l i log ⁡ 2 ( i + 1 ) DCG@k = \sum_{i=1}^{k} \frac{rel_i}{\log_2(i + 1)} DCG@k=i=1klog2(i+1)reli
公式二(使用指数评分,更重视高相关性):
D C G @ k = ∑ i = 1 k 2 r e l i − 1 log ⁡ 2 ( i + 1 ) DCG@k = \sum_{i=1}^{k} \frac{2^{rel_i} - 1}{\log_2(i + 1)} DCG@k=i=1klog2(i+1)2reli1
其中:

  • rel_i:第 i 个位置的真实相关性评分(如:点击=1,未点击=0,或等级评分1~5)
  • i:排序位置,从 1 开始

🔸 Step 2: 计算 IDCG(Ideal DCG)

IDCG 是将相关性从高到低理想排序后得到的 DCG,即最优情况下的 DCG:
I D C G @ k = DCG@k of ideal (sorted) list IDCG@k = \text{DCG@k of ideal (sorted) list} IDCG@k=DCG@k of ideal (sorted) list

🔺 Step 3: 计算 NDCG(归一化 DCG)

N D C G @ k = D C G @ k I D C G @ k NDCG@k = \frac{DCG@k}{IDCG@k} NDCG@k=IDCG@kDCG@k
如果 IDCG@k = 0(全是 0 分相关性),通常设定 NDCG@k = 0。

示例

直接看公式可能不够清晰,搞个例子。假设模型返回的文档真实相关性为:

predicted ranking:  [D1, D2, D3, D4, D5]
rel_scores:         [3, 2, 3, 0, 1]   ← rel_i

计算 DCG@5(使用公式二):

DCG@5 = (2^3 - 1)/log2(1+1) + (2^2 - 1)/log2(2+1) + (2^3 - 1)/log2(3+1) + (2^0 - 1)/log2(4+1) +(2^1 - 1)/log2(5+1)≈ 7/1 + 3/1.5849 + 7/2 + 0/2.3219 + 1/2.5849≈ 7 + 1.892 + 3.5 + 0 + 0.387≈ 12.779

理想排序的相关性:[3, 3, 2, 1, 0],计算 IDCG@5(同样方法):

IDCG@5 ≈ 7/1 + 7/1.5849 + 3/2 + 1/2.3219 + 0/2.5849≈ 7 + 4.417 + 1.5 + 0.430 + 0≈ 13.347

根据Step3

NDCG@5 = 12.779 / 13.347 ≈ 0.957

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/78130.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LangChain 中主流的 RAG 实现方式

文章目录 **一、基础流程实现**1. **全自动索引构建(VectorstoreIndexCreator)**2. **标准问答链(RetrievalQA)**3. **Document Chain 手动检索**4. **load_qa_chain(传统方式)** **二、高级定制化实现**1…

解决:springmvc工程 响应时,将实体类对象 转换成json格式数据

问题:一直无法将user对象转成json格式 按理来说,我在类上使用RestController注解,就可以实现将实体类对象写入响应体中,并作为json格式传递到客户端,但现实是没有生效,并且出现404,406&#xf…

【踩坑记录】stm32 jlink程序烧录不进去

最近通过Jlink给STM32烧写程序时一直报错,但是换一个其他工程就可以烧录,对比了一下jink配置,发现是速率选太高了“SW Device”,将烧录速率调整到10MHz以下就可以了

运维打铁:Mysql 分区监控以及管理

文章目录 一、简介二、设计逻辑1、配置文件检查2、创建逻辑3、 删除逻辑4、重建表分区逻辑5、recognize maxvalue分区表逻辑6、创建多个未来分区逻辑7、定时检测分区是否创建成功,否则发送告警邮件。 三、解决的问题四、配置例子与介绍 一、简介 操作数据库&#xf…

Appium自动化开发环境搭建

自动化 文章目录 自动化前言 前言 Appium是一款开源工具,用于自动化iOS、Android和Windows桌面平台上的本地、移动web和混合应用程序。原生应用是指那些使用iOS、Android或Windows sdk编写的应用。移动网页应用是通过移动浏览器访问的网页应用(appum支持iOS和Chrom…

《R语言SCI期刊论文绘图专题计划》大纲

今天开始,我将和大家分享系统且详细的《R语言SCI期刊绘图专题教程》,内容会从基础到高阶应用,从配色美学到顶刊风格复现,确保大家可以学到高质量内容!下面是大纲。 📚《R语言SCI期刊论文绘图专题计划》 第…

STUN协议 与 TURN协议

STUN(Session Traversal Utilities for NAT,NAT会话穿越应用程序)是一种网络协议, STUN(Simple Traversal of User Datagram Protocol through Network Address Translators (NATs),NAT的UDP简单穿越&#…

在vscode终端中运行npm命令报错

解决方案 这个错误信息表明,你的系统(可能是 Windows)阻止了 PowerShell 执行脚本,这是由于 PowerShell 的执行策略导致的。PowerShell 的执行策略控制着在系统上运行哪些 PowerShell 脚本。默认情况下,Windows 可能…

手搓雷达图(MATLAB)

看下别人做出来什么效果 话不多说,咱们直接开始 %% 可修改 labels {用户等级, 发帖数, 发帖频率, 点度中心度, 中介中心度, 帖子类型计分, 被列为提案数}; cluster_centers [0.8, 4.5, 3.2, 4.0, 3.8, 4.5, 4.2; % 核心用户0.2, 0.5, 0.3, 0.2, 0.1, 0.0, 0.0;…

ViViT: 一种视频视觉Transformer

摘要 我们提出了基于纯transformer的视频分类模型,借鉴了这种模型在图像分类中的成功经验。我们的模型从输入视频中提取时空token,然后通过一系列transformer层进行编码。为了处理视频中遇到的长序列token,我们提出了几种高效的模型变种,这些变种将输入的空间和时间维度进…

嵌入式鸿蒙系统环境搭建与配置要求实现01

各位开发者大家好,今天主要给大家分享一下,鸿蒙系统的环境配置实现。 第一:鸿蒙配置基本要求 对电脑的要求,虚拟机配置建议 200GB 硬盘大小,10GB 内存,4*2CPU。 安装必要的依赖文件方法: sudo apt-get update && sudo apt-get install binutils git git-lfs g…

【多目标进化算法】常见多目标进化算法一览

算法全称核心特点备注NSGA-IINon-dominated Sorting Genetic Algorithm II非支配排序 拥挤度最经典,应用最广NSGA-IIINon-dominated Sorting Genetic Algorithm III支撑向量引导,适合高维(3目标以上)NSGA-II 的高维扩展版MOEA/DM…

创意无限,从这些视频素材开始你的创作!

在视频创作的世界里,找到合适的素材就像是挖掘宝藏,不仅能节省时间,还能让作品瞬间提升一个档次。今天,就来给大家分享一些超实用的视频素材网站,无论是国内的宝藏平台,还是国外的优质资源,都能…

QT创建新项目(13)

文章目录 一、本章说明二、QT组件简介及相关笔记三、项目创建四、QT学习建议一、本章说明 注:本节为【基于STM的环境监测系统(节点+云服务器存储+QT界面设计)】项目第13篇文章,前面已安装了QT软件,本章主要介绍新项目创建及注意事项,QT的初学者相关学习资料 二、QT组件…

Langgraph实战-Agent-ReAct(Reason+Act)概述

Langgraph实战-Agent-ReAct(ReasonAct)概述 概述 ReAct 架构将推理与动作相结合,使Agent能够通过生成想法并基于这些想法执行动作。这种决策透明度使Agent能够更负责地执行任务,因为它会记录每一步的推理过程。 这种架构最适合…

论文笔记(七十九)STOMP: Stochastic Trajectory Optimization for Motion Planning

STOMP: Stochastic Trajectory Optimization for Motion Planning 文章概括摘要一、引言二、相关工作三、STOMP 算法A. 探索B. 轨迹更新 四、机械臂的运动规划A. 设置B. 代价函数1)障碍物代价:2)约束代价:3)扭矩代价&a…

MCU开发学习记录9 - 通用定时器学习与实践(HAL库) -RGBLED控制、定时器输入捕获、主从定时器移相控制-STM32CubeMX

本文将介绍通用定时器的概念、相关函数以及STM32CubeMX生成定时器的配置函数以及对生成定时器的配置函数进行分析(包括结构体配置、相关寄存器配置)。 本文以TIM2/TIM5、TIM3/TIM4为基础介绍通用定时器(包含通用定时器全部功能&#…

Java学习手册:TCP 协议基础

一、TCP 协议概述 TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,它在 IP 协议的基础上提供了可靠的 数据传输服务。TCP 通过三次握手建立连接,通过四次挥手…

删除排序数组中的重复项--LeetCode

题目 给你一个非严格递增排列的数组 nums ,请你原地删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。 考虑 nums 的唯一元素的数量为 k &#xff0c…

【Elasticsearch】入门篇

Elasticsearch 入门 前言 官方地址:Elastic — 搜索 AI 公司 | Elastic ES 下载地址:Past Releases of Elastic Stack Software | Elastic 文档:什么是 Elasticsearch?|Elasticsearch 指南 简介 Elasticsearch 是一个分布式、…