搜广推校招面经四十九

tiktok广告算法

一、倒排索引原理及Map中Key的处理

具体使用方法见【搜广推校招面经三十六】
倒排索引(Inverted Index)是信息检索系统中常用的一种数据结构,用于快速查找包含某个关键词的文档。以下是倒排索引的原理及Map中Key的处理方式的详细说明。

1.1. 倒排索引的原理

(1) 基本概念

  • 正排索引:以文档为单位,记录每个文档包含的关键词。
  • 倒排索引:以关键词为单位,记录每个关键词出现在哪些文档中。

(2) 数据结构

倒排索引通常由两部分组成:

  1. 词典(Dictionary):存储所有关键词。
  2. 倒排列表(Posting List):记录每个关键词对应的文档列表及其相关信息(如词频、位置等)。

2. Map中Key的处理

在实现倒排索引时,通常使用Map(或字典)来存储词典和倒排列表。以下是Map中Key的处理方式:

(1) Key的选择

  • Key:关键词(Term)。
  • Value:倒排列表(Posting List),通常是一个列表或数组,存储文档ID及其相关信息。

(2) Key的存储

  • 哈希表:使用哈希表(如Python的dict或Java的HashMap)存储Key-Value对,确保快速查找。
  • 排序存储:将Key按字典序排序,便于范围查询和前缀匹配。

(3) Key的冲突处理

  • 哈希冲突:当两个不同的Key映射到同一个哈希值时,使用链地址法或开放地址法解决冲突。
  • 重复Key:在倒排索引中,Key是唯一的,不会出现重复。

二、Transformer的结构、原理、优点、除 d k \sqrt{d_k} dk 、手写自注意力机制一套。

见【搜广推校招面经三十四、搜广推校招面经二】

三、MMoE与PLE的计算方式及区别

MMoE(Multi-gate Mixture of Experts)和PLE(Progressive Layered Extraction)是多任务学习(Multi-task Learning, MTL)中常用的模型结构。它们通过共享部分参数和引入特定机制来处理多任务学习中的任务冲突问题。

3.1. MMoE(Multi-gate Mixture of Experts)

(1) 核心思想

MMoE通过引入多个专家(Experts)和一个门控网络(Gating Network)来建模任务之间的关系,从而缓解任务冲突。

(2) 计算方式

  • 专家网络:多个独立的子网络(Experts),每个专家负责学习不同的特征表示。
  • 门控网络:为每个任务分配一个门控网络,用于动态调整各专家对当前任务的贡献。

(3)公式

对于任务 k k k,其输出 y k y_k yk 计算如下:
y k = h k ( ∑ i = 1 n g i k ( x ) ⋅ f i ( x ) ) y_k = h^k \left( \sum_{i=1}^{n} g_i^k(x) \cdot f_i(x) \right) yk=hk(i=1ngik(x)fi(x))
其中:

  • x x x:输入特征
  • f i ( x ) f_i(x) fi(x):第 i i i 个专家的输出
  • g i k ( x ) g_i^k(x) gik(x):任务 k k k 的门控网络对第 i i i 个专家的权重(通过一个softmax计算)
  • h k h^k hk:任务 k k k 的输出层

3.2. PLE(Progressive Layered Extraction)

(1) 核心思想

PLE通过分层提取共享特征和任务特定特征,逐步分离任务间的共享信息和特定信息,从而更好地处理任务冲突。

(2) 计算方式

  • 共享专家:多个共享专家(Shared Experts),用于提取任务间的共享特征。
  • 任务特定专家:每个任务有自己的特定专家(Task-specific Experts),用于提取任务特定特征。
  • 门控网络:为每个任务分配一个门控网络,用于动态调整共享专家和任务特定专家的贡献。

(3)公式

对于任务 k k k,其输出 y k y_k yk 计算如下:
y k = h k ( ∑ i = 1 n s g s , i k ( x ) ⋅ f s , i ( x ) + ∑ j = 1 n t g t , j k ( x ) ⋅ f t , j k ( x ) ) y_k = h^k \left( \sum_{i=1}^{n_s} g_{s,i}^k(x) \cdot f_{s,i}(x) + \sum_{j=1}^{n_t} g_{t,j}^k(x) \cdot f_{t,j}^k(x) \right) yk=hk(i=1nsgs,ik(x)fs,i(x)+j=1ntgt,jk(x)ft,jk(x))
其中:

  • f s , i ( x ) f_{s,i}(x) fs,i(x):第 i i i 个共享专家的输出
  • f t , j k ( x ) f_{t,j}^k(x) ft,jk(x):任务 k k k 的第 j j j 个特定专家的输出
  • g s , i k ( x ) g_{s,i}^k(x) gs,ik(x):任务 k k k 的门控网络对第 i i i 个共享专家的权重(通过一个softmax计算)
  • g t , j k ( x ) g_{t,j}^k(x) gt,jk(x):任务 k k k 的门控网络对第 j j j 个特定专家的权重(通过一个softmax计算)
  • n s n_s ns:共享专家的数量
  • n t n_t nt:任务特定专家的数量

3.3. MMoE与PLE的区别

特性MMoEPLE
核心思想通过门控网络动态调整专家权重分层提取共享特征和任务特定特征
专家类型所有任务共享一组专家共享专家 + 任务特定专家
门控网络每个任务一个门控网络每个任务一个门控网络
任务冲突处理动态调整专家权重分层分离共享信息和任务特定信息
适用场景任务相关性较弱的多任务场景任务相关性较强的多任务场景

3.4. 参考资料

  • MMoE论文
  • PLE论文

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

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

相关文章

【零基础入门unity游戏开发——unity3D篇】3D物理系统之 —— 3D刚体组件Rigidbody

考虑到每个人基础可能不一样,且并不是所有人都有同时做2D、3D开发的需求,所以我把 【零基础入门unity游戏开发】 分为成了C#篇、unity通用篇、unity3D篇、unity2D篇。 【C#篇】:主要讲解C#的基础语法,包括变量、数据类型、运算符、流程控制、面向对象等,适合没有编程基础的…

C# net deepseek RAG AI开发 全流程 介绍

deepseek本地部署教程及net开发对接 步骤详解:安装教程及net开发对接全流程介绍 DeepSeekRAG 中的 RAG,全称是 Retrieval-Augmented Generation(检索增强生成),是一种结合外部知识库检索与大模型生成能力的技术架构。其…

用旧的手机搭建 MQTT Broker

MQTT Broker搭建 在Android上搭建MQTT所需工具: termux 通过网盘分享的文件:termux-app_v0.118.1+github-debug_armeabi-v7a.apk 链接: https://pan.baidu.com/s/1Iii2szXAc02cKVGdP1EuzQ?pwd=fqsc 提取码: fqsc 在 Termux 中使用 MQTT(Message Queuing Telemetry Trans…

b站视频下载工具软件怎么下载

自行配置FFMPEG环境 请优先选择批量下载,会自处理视频和音频文件。 如果要下载更高质量请登陆。 没有配置FFMPEG下载后会有报错提示,视频音频文件无法合并生成mp4文件 更新批量下载标题,只取视频原标题,B站反爬机制登陆后下载多了…

# linux有哪些桌面环境?有哪些显示服务器协议及显示服务器?有哪些用于开发图形用户界面的工具包?

linux有哪些桌面环境?有哪些显示服务器协议及显示服务器?有哪些用于开发图形用户界面的工具包? 文章目录 linux有哪些桌面环境?有哪些显示服务器协议及显示服务器?有哪些用于开发图形用户界面的工具包?1 显…

Java 大视界 -- Java 大数据分布式计算中的资源调度与优化策略(131)

💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也…

躲藏博弈中的策略优化:整合历史数据、概率论与博弈论

躲藏博弈中的策略优化:整合历史数据、概率论与博弈论 一、引言 躲藏博弈(Hiding Games)作为一类特殊的博弈模型,广泛存在于军事对抗、网络安全、商业竞争甚至日常生活中。其核心在于一方(躲藏者)试图避免被另一方(寻找者)发现,双方各自选择…

时序数据库 TDengine 到 MySQL 数据迁移同步

简述 TDengine 是一款开源、高性能、云原生的时序数据库,专为物联网、车联网、工业互联网、金融、IT 运维等场景优化设计。在工业自动化的时代,时序数据库在电力、轨道交通、智能制造等领域有着广泛的应用。 MySQL 是全球广泛使用的开源关系型数据库&a…

基于YOLO11深度学习的舌苔舌象检测识别与诊断系统【python源码+Pyqt5界面+数据集+训练代码】

《------往期经典推荐------》 一、AI应用软件开发实战专栏【链接】 项目名称项目名称1.【人脸识别与管理系统开发】2.【车牌识别与自动收费管理系统开发】3.【手势识别系统开发】4.【人脸面部活体检测系统开发】5.【图片风格快速迁移软件开发】6.【人脸表表情识别系统】7.【…

【愚公系列】《高效使用DeepSeek》003-DeepSeek文档处理和其他顶级 AI模型的区别

标题详情作者简介愚公搬代码头衔华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,亚马逊技领云博主,51CTO博客专家等。近期荣誉2022年度…

正新鸡排:在变革浪潮中领航,打造连锁餐饮新生态

在当下风云变幻的餐饮市场中,连锁品牌犹如逆水行舟,不进则退。作为国内坐拥万店的知名连锁餐饮品牌,正新鸡排2023年卖出了7.2亿片鸡排,集团营收同比增长28%。在《2024年中国鸡排连锁品牌10强榜单》中,正新鸡排以高达95…

MyBatis 的一级、二级缓存

文章目录 1️⃣ 一级缓存(Local Cache)📌 定义🚀 示例代码 2️⃣ 二级缓存(Global Cache)📌 定义🚀 使用方式 3️⃣ 一级缓存 vs. 二级缓存 📊4️⃣ 数据共享问题&#x…

软件性能测试与功能测试联系和区别

随着软件开发技术的迅猛发展,软件性能测试和功能测试成为了确保软件质量的两个重要环节。那么只有一字之差的性能测试和功能测试分别是什么?又有哪些联系和区别呢? 一、软件性能测试是什么?   软件性能测试是为了评估软件系统在特定条件下的表现,包…

Vue 框架使用难点与易错点剖析:避开陷阱,提升开发效率

Vue.js 作为当下最流行的前端框架之一,以其轻量、易用和灵活的特性深受开发者喜爱。然而,即使是经验丰富的开发者,在使用 Vue 的过程中也难免会遇到一些难点和易错点。本文将深入分析 Vue 开发中常见的“坑”,并提供解决方案和代码…

基于大模型的上睑下垂手术全流程预测与方案优化研究报告

目录 一、引言 1.1 研究背景与目的 1.2 研究意义 1.3 研究方法与创新点 二、上睑下垂相关理论基础 2.1 上睑下垂的定义与分类 2.2 发病机制与影响 2.3 传统治疗方法概述 三、大模型技术原理与应用 3.1 大模型概述 3.2 在医疗领域的应用现状 3.3 用于上睑下垂预测的…

Odoo Http鉴权+调用后端接口

最近在调研Odoo18,包括它的前后端原理、源码等。发现官方的开发文档并不十分实用,比如标题这种简单的实用需求,竟然浪费了一点时间,特此记录。 官方文档:External API — Odoo 18.0 documentation 前提:首…

【Go每日一练】实现简单的控制台计算器

👻创作者:丶重明 👻创作时间:2025年3月7日 👻擅长领域:运维 目录 1.😶‍🌫️题目:简单的控制台计算器2.😶‍🌫️代码输出3.😶‍&#…

Linux常见问题与分析

操作系统进行线程切换时进行的动作 1. 保存当前线程的上下文 寄存器状态:保存 CPU 寄存器(如通用寄存器、程序计数器 PC、栈指针 SP 等)到当前线程的 线程控制块(TCB) 中。内核栈信息:如果线程在内核态运…

HTML块级元素和内联元素(简单易懂)

在HTML中,元素可以分为块级元素(Block-level elements)和内联元素(Inline elements)。这两类元素在页面布局和样式应用上有不同的特点和用途。 一、块级元素(Block-level elements) 1. 定义 …

VSTO(C#)Excel开发6:与窗体交互

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的,可以在任何平台上使用。 源码指引:github源…