精通推荐算法8:Embedding表征学习 -- 总体架构

1 Embedding表征学习的总体架构

目前,推荐算法精排模型大多基于Embedding + MLP范式,模型底层是Embedding层,作用是将高维稀疏的输入特征转换为低维稠密的特征向量,并实现一定的模糊查找能力。模型上层是MLP层,作用是对特征向量进行交叉和融合,并提取高阶信息,得到最终输出。Embedding作为推荐模型的第一层,拥有绝大多数参数,意义重大。

Embedding表征学习分为向量构建向量检索两部分。向量构建主要实现Embedding从无到有的过程,其主要方法有序列化建模、图模型构建和端到端学习。向量检索主要解决Top K近邻Embedding检索问题,其主要方法有哈希算法、基于树的算法、向量量化算法和近邻图算法等。

推荐算法Embedding表征学习的知识框架如图1所示。

1  Embedding表征学习的知识框架

2  Embedding概述

Embedding常被称为“嵌入”或“向量”,它可以将高维稀疏特征转换为低维稠密向量,实现降维,其最典型的应用是自然语言处理中的词向量(Word Embedding)。通过Embedding,我们可以将单词间的语义关系转换为向量间的距离关系。例如“书籍”和“书本”,两者语义很相似,词向量的余弦距离也很接近。

在推荐系统中,每个特征值都可以被向量化。例如用户ID、用户性别、物品ID和物品类目等。特征值的物理含义越接近,其Embedding向量距离越短。例如在电商场景中,“拖鞋”和“皮鞋”两个商品类目特征的向量距离,比“拖鞋”和“纸巾”要小,如图2所示。

2  特征值物理含义越接近,Embedding向量距离越短

在深度学习中,Embedding可以通过一个全连接层实现。 原始输入数据通常是一个独热编码向量。由于输入数据一般是独热向量,因此全连接可以退化为一个查表操作。

3 Embedding表征学习的意义

Embedding是大多数推荐算法模型的第一层,其训练质量在很大程度上决定了模型的成败。Embedding表征学习已经在召回和排序等领域得到了广泛应用,意义重大,主要如下。

  • Embedding是模型的第一层,可以将高维稀疏的输入特征转换为低维稠密的特征向量,输入上层全连接神经网络。同时,它包含大量语义信息,可以很好地度量特征间的相似度,并具备一定的模糊查找能力。一般来说,两个特征越相似,其Embedding向量距离越短。
  • Embedding可以用于预训练。为了加快训练速度,可以将当前模型的Embedding作为下一版模型或者兄弟场景模型的预训练参数,从而实现热启动(Warm Start)。Embedding一般拥有推荐模型的绝大部分参数,因此模型训练速度往往取决于Embedding的收敛速度。预训练Embedding可以加快模型训练速度,并减少对样本量的依赖。另外,对于长尾特征Embedding难收敛的问题,预训练一般也能起到一定作用。
  • Embedding可以应用在召回和排序等很多领域。利用Embedding向量可以计算任意用户和物品的相似度,从而为目标用户推荐与其距离最近的Top K物品,这就是典型的u2i召回。Embedding还可以计算物品和物品间的相似度,从而基于目标用户点击过或购买过的物品,推荐与之最相似的Top K物品,这就是典型的i2i召回。需要注意的是,不要直接把排序模型的Embedding用在召回任务上,二者的候选集和优化目标差别很大。

4  Embedding表征学习的基本范式

Embedding训练一直以来都是推荐算法中的难点,因为其参数规模很大,导致收敛速度慢。Embedding的训练方法主要有以下几种。

  • 端到端学习。最简单的方法是将Embedding层参数随机初始化,然后和模型其他层一起训练。这种方法的一致性很好,可以保证Embedding与模型其他层的目标完全一致,但缺点也很明显,主要是整体训练速度受限于Embedding的收敛速度,且需要大量样本。除了随机初始化,还可以利用上一版模型或者兄弟场景模型对Embedding参数初始化,然后微调(Finetune),从而加快模型收敛速度。
  • 序列化建模。类似于自然语言处理中的Word2vec,基于Skip-gramCBOW算法对用户行为序列构建正负样本并训练模型,最终得到EmbeddingItem2vec便采用了这种方法,6.2节会重点阐述。
  • 图模型构建。先利用用户行为构建用户和物品关系图,然后训练模型并得到图节点的Embedding,主要有游走类图神经网络两种方式。其中,游走类可以利用物品ID构建同构图,例如DeepWalkNode2vec;也可以加入物品属性特征,构建异构图,例如Metapath2vecEGES。图神经网络是一个很大的技术方向,也是目前推荐算法中比较前沿的技术,可以使用GraphSAGEGATDGIGraphSAINTAdaGCN等经典模型,6.36.46.5节会重点阐述。

Skip-gram模型结构

DeepWalk的主要实现步骤

Metapath2vec和Metapath2vec++的Skip-gram网络结构图

EGES模型结构图

GraphSAGE应用流程图

5 Embedding表征学习的主要难点

Embedding表征学习的难点主要如下。

  • 参数规模大,存储资源消耗大。特别是用户ID和物品ID等高维稀疏特征,其枚举值很多,必须使用维度较高的Embedding向量才能对其进行充分表征。Embedding的维度一般建议取特征枚举值个数的四次方根,枚举值多,向量维度高,会导致参数规模过大。Embedding通常会占据模型体积的80%以上,消耗极多的存储资源。
  • 收敛速度慢,训练时间长。从梯度下降反向传播中可以看出,输入特征为0Embedding向量无法更新。特征输入层往往比较稀疏,其他层则稠密得多,这导致Embedding层参数的训练机会比其他层少很多。另外,Embedding层需要训练的参数很多,这加剧了其收敛速度慢的问题。一般来说,模型整体训练时间取决于Embedding层的收敛速度,预训练Embedding对缓解这一问题有一定的作用。
  • 长尾不收敛,冷启动效果不好。长尾特征值在样本中出现的概率低、数据稀疏,容易出现不收敛的问题,特别是对于用户ID和物品ID等高维特征,收敛难度更大,对冷启动造成了很大影响。近几年,Group Embedding方法的应用对缓解这一问题起到了一定的作用。

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

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

相关文章

在鲲鹏服务器上安装nginx

华为鲲鹏服务器采用华为自研cpu ARMv8架构,提供 Windows 和多个Linux 系统 常使用 CentOS 7.6 64bit with ARM Nginx 和 Apache 一样都是一种 Web 服务器。是基于 REST 架构风格,以统一资源描述符URI 或者统一资源定位符URL 作为沟通依据,通过 HTTP 协议…

【C++进阶】深入STL之string:掌握高效字符串处理的关键

📝个人主页🌹:Eternity._ ⏩收录专栏⏪:C “ 登神长阶 ” 🤡往期回顾🤡:C模板入门 🌹🌹期待您的关注 🌹🌹 ❀STL之string 📒1. STL基本…

前端(JS)对URL的编码和解码方式以及重要性——IE浏览器必须对中文URL进行编码

工作记录-前端——前端(JS)对URL的编码和解码方式以及重要性——IE浏览器必须对中文URL进行编码 创作场景前端JS对URL的三种编码和解码方式1. escape 和 unescape2. encodeURI 和 decodeURI3. encodeURIComponent 和 decodeURIComponent 本文重点 创作场…

net语言编程:深入探索其奥秘与挑战

net语言编程:深入探索其奥秘与挑战 在当今信息化社会,编程语言如同构建数字世界的砖瓦,而net语言编程便是其中的一颗璀璨明珠。它以其独特的魅力吸引着无数开发者,但同时也伴随着一系列令人困惑和充满挑战的问题。本文将从四个方…

大模型学习资料整理:如何从0到1学习大模型,搭建个人或企业RAG系统,如何评估与优化(更新中...)

通过本文您可以了解到: 学习:从小白如何入手,从0到1开始学习大模型。RAG系统:我想搭建属于自己或者企业的RAG系统,我该怎么去做?评估:微调后的模型或者RAG系统,如何评估自己的模型和…

windows配置dns访问git , 加快访问速度保姆级教程

设置 DNS 访问 Git 需要修改电脑的 DNS 配置。下面是具体的操作流程: 第一步:打开命令提示符或终端窗口 在 Windows 系统中,可以按下 Win R 组合键,然后输入 “cmd”,按下 Enter 键打开命令提示符窗口。在 macOS 或 …

【活动】GPT-4O:AI语言生成技术的新里程碑

🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 ​💫个人格言: "如无必要,勿增实体" 文章目录 GPT-4O:AI语言生成技术的新里程碑引言GPT系列简史回顾GPT-1: 初露锋…

国际荐酒师(香港)协会亮相香港国际葡萄酒和烈酒展览会

2024年5月28日至30日,备受瞩目的香港国际葡萄酒和烈酒展览会VINEXPO Hong Kong在香港盛大举办。作为亚太区最盛大的葡萄酒展会,本届展会不仅吸引了全球葡萄酒和烈酒行业的目光,更见证了国际荐酒师(香港)协会&#xff0…

(2) qml诞生的原因 和Qt Creator开发环境的介绍

文章目录 qml诞生原因Qt Quick应⽤程序Qt Creator环境1、MSVC2、MinGWMSVC的优缺点MinGW的优缺点 最后的选择延伸阅读 一些常用的快捷键统一格式化代码统一qml 语言的格式Locator 定位器帮助 qml诞生原因 可以在Qt5中开发的不同类型的经典应⽤程序。桌⾯应⽤程 序正在发⽣着改…

物联网断点续传

断点续传是一种在网络传输中断后,能够从中断的位置继续传输的技术。它可以有效地避免因为网络不稳定、服务器故障、用户操作等原因导致的传输失败,节省了用户的时间和流量,提高了传输的效率和可靠性。断点续传在很多场景中都有广泛的应用&…

GIS结合物联网:塑造智慧地球的新篇章

在信息技术飞速发展的今天,地理信息系统(GIS)与物联网(IoT)的深度融合,正以前所未有的方式重塑着我们对世界的认知。本文将深入探讨GIS与物联网结合的原理、应用实践以及面临的挑战与未来展望,共…

乡村振兴与乡村旅游品牌化:打造具有地方特色的乡村旅游品牌,提升乡村旅游吸引力,促进美丽乡村建设

目录 一、引言 二、乡村旅游品牌化的重要性 (一)增强乡村旅游的辨识度 (二)提升乡村旅游的附加值 (三)促进乡村文化的传承与创新 三、打造具有地方特色的乡村旅游品牌 (一)明…

Python知识点6---列表和元组

提前说一点:如果你是专注于Python开发,那么本系列知识点只是带你入个门再详细的开发点就要去看其他资料了,而如果你和作者一样只是操作其他技术的Python API那就足够了。 Python的列表和和元组定义方式如下,且注意列表和元组拥有…

【深度强化学习入门:结合直觉与算法的学习之旅】

文章目录 前言深度强化学习的关键要素简单的深度Q网络(DQN)实现分析代码结论 前言 深度强化学习结合了深度学习的表征学习能力和强化学习的决策制定机制,这使得机器能够在复杂环境中自我学习并做出合理的行动策略。它在游戏玩耍、自动驾驶、…

Linux实验报告(二)——Linux系统中的常用命令

目录 一、实验名称: 二、仪器、设备: 三、参考资料: 四、实验目的: 五、实验内容(步骤): 六、实验数据(程序)记录: ​编辑 ​编辑 七、实验结果分析…

Python知识点9---推导式

提前说一点:如果你是专注于Python开发,那么本系列知识点只是带你入个门再详细的开发点就要去看其他资料了,而如果你和作者一样只是操作其他技术的Python API那就足够了。 Python提供的推导式,只对列表、字典、集合三种数据类型生…

公司网站模板制作

公司网站模板的制作是一项极其重要的工作,因为网站模板决定了网站的整体风格和用户体验。一个漂亮、易用的网站模板将会吸引更多的用户,而一个糟糕的网站模板则会让用户不供选择。下面就让我们介绍一下公司网站模板的制作。 首先,一个好的网站…

iCold编程入门:探索未知的编程世界

iCold编程入门:探索未知的编程世界 在浩瀚的数字宇宙中,iCold编程犹如一颗璀璨的新星,吸引着无数好奇而勇敢的探险家。然而,对于初学者来说,这个神秘的世界往往充满了未知与挑战。今天,我们就将一同踏入这…

前端 CSS 经典:mac docker 效果

前言:浏览器上实现 mac docker 效果,实现思路,1. 布局,方框间距用元素代替,因为有放大缩小功能,不用元素的话,不好控制。2. 定义个 css 变量 i,用来代表放大比例。3. 确定每个元素的…

信息系统项目管理师软考高级论文教程必过论文分享

很多人提到软考就会想到信息系统项目管理师和系统集成项目管理工程师,这两个不同的软考内容的区别不仅仅在于一个是高级,一个是中级,还有一个区别是它们的考试内容也是不同的,高级的信息系统项目管理师考试多了一项论文的考试&…