【学习笔记】尝试理解Embedding在推荐系统中的应用

简单理解Embedding技术在推荐系统中的应用

  在之前的学习阶段做过一些基于Tensorflow的NLP实验,很多时候在构建模型的model时候不管三七二十一上来就先来上一层Embedding,只知道加上Embedding层后会得到更好的结果却未曾深究其作用,经过阅读王喆老师的《深度学习推荐系统》一书,才明白了个大概,拿来分享给大家也方便日后自己理解。本文结合推荐系统来阐述Embedding的作用和原理。但这里没有涉及具体代码实现,只做简单的概念的阐述。

Embedding概述

  Embedding操作经常出现在我们设计的模型里,我们称其为'嵌入',或者翻译成'向量映射'。简单来说它通常帮助我们实现的是一种用低维稠密向量表示高维稀疏向量的作用,便于上层深度神经网络处理。在深度学习框架中,特别是:推荐、广告、搜索为核心的互联网领域,Embedding使用的非常广泛,Embedding几乎可以说是Deep Learning的基础核心操作了。

  其实,Embedding并不是单纯的去转化稀疏的one-hot向量这么简单,它的应用场景非常多元。它既可以处理序列样本,也可以处理图样本,同时也可以处理异构的多特征样本。同时在工业界,Embedding由于其综合信息能力强、易于上线部署的特点,应用非常广泛。

如何理解Embedding

  Embedding可以定义为用一个低维的稠密向量去表示一个对象。对象可以为一个词、一个商品,也可以是一部电影等等。换言之,Embedding向量可以表示相应对象的某些特征,同时Embedding向量之间的距离反映了对象之间的相似性。

  举个例子会更加直观(这里直接用树上的案例吧):

Chart_1:Embedding向量的空间距离表示

  如上图(左)所示,这是当我们使用Embedding向量表示几个单词在Embedding空间的表示。可以看出Embedding(King)到Embedding(Queen)与Embedding(Man)到Embedding(Woman)的距离几乎完全一样,这表示Embedding想两件的距离甚至包含着词与之间的语义关系信息(因为我们知道刚才这两组单词之间的语义对照是相似的)。

  而同样的图(右),我们去对比Embedding(Walking)和Embedding(Walked)与Embedding(Swimming)和Embedding(Swam)时也发现它们有着相似的距离表示,这就意味着Embedding同时也能够挖掘出词与词之间词性关系。(即Walking-Walked ∽ Swimming-Swam)其实,这也只是代表着Embedding很小一部分的作用,假如数据集足够大,有大量的语料输入的前提下,Embedding甚至可以挖掘出一些通用知识,比如国家和首都的关系(表示为每个国家与其首都的Embedding空间向量距离相似):

Chart_2:通用信息(国家-首都)挖掘

Embedding在推荐领域的泛化

  我们刚刚举的例子是在NLP过程中最简单的例子,当我们面对推荐问题的时候,我们同样也可以使用Embedding来对应用领域内的物品进项向量化的表示。与文本处理不同的是,之前词向量使用大量的语料库作为基础进行训练,那么当问题被泛化,显然不同领域的训练样本是不同的,比如视频推荐往往使用用户的观看序列进行电影的Embedding化,而电商平台则会通过用户的购买历史作为训练样本,而教育类推荐往往以学生选课的顺序序列作为样本参与Embedding。

Embedding的重要性

  刚刚我们说Embedding是Deep Learning的基础核心操作,或者说推荐系统的核心,主要原因有三个方面:

  1. 推荐场景中大量使用one-hot编码对类别、id等特征进行编码,导致样本的特征维度很高但却非常稀疏。深度学习的结构特点却不擅长处理稀疏的特征向量,所以几乎所有的DL模型都需要Embedding层作为第一层来将高维稀疏的特征映射到一个相对低维的且稠密的向量上来。
  2. Embedding本身就是极其重要的特征向量。相比于MF等传统方法产生的特征向量,Embedding几乎可以引入任何信息进行编码(尤其是Graph Embedding技术出现后),Embedding向量往往会与其他推荐系统特征连接后进入深层神经网络继续训练。
  3. Embedding对物品、用户相似度的计算常用于推荐系统的召回部分设计,我们都知道推荐系统的核心分为两部,显示召回物品,然后是排序返回TopN序列。那么对于第一部分的召回过程中,当局部敏感哈希等快速最近邻搜索技术应用于推荐系统后Embedding更适用于对海量数据进行快速筛选,过滤出几百个相似度高的产品交付给上层进行精准排序,以便生成最终的推荐序列。

对于Embedding相关技术的总结

  这里给出一些Embedding相关技术的总结,事实上在《深度学习推荐系统》这本书里有详细的讲解每种技术的起源和原理,本文在此处等于给出了索引,想要更好的使用Embedding相关技术的同学可以就表中的目录区自行深入了解:

Chart3:Embedding相关经典技术总结

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JinyuZ1996

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值