学习理发去哪里_深度学习推荐系统 | Embedding,从哪里来,到哪里去

4f92679c135b698fe34f6e1bf99446f6.png
最近读了 @王喆 师兄的《深度学习推荐系统》,书中关于Embedding的阐述十分受用,在此稍作总结。

Embedding是什么

Embedding,中文直译是“嵌入”,更好懂的译法是“向量映射”,简单来说就是用向量来表示实体。这里所说是实体,可以是人,也可以是物品,用于表示不同实体的向量一般是不同的。

借用邱老师在《神经网络与深度学习》中的例子,用RGB三个维度可以表示一种颜色,RGB这个三维向量就是Embedding,颜色就是实体,每个颜色有唯一的RGB值,就好比每个实体有自己的Embedding。

4e0a4c61b161bd32ae01c47ec66eb8b1.png

为什么需要Embedding

不论采用什么方式建模,都是基于数学运算,所以我们需要把实体表示成数字,这是我们需要Embedding的根本原因。

在实际问题中,我们很难获得像RGB这样物理意义明确的Embedding,此时我们只能退而求其次,用一种笨笨的方法来生成Embedding——One(Multi) Hot Embedding。比如在推荐系统里,商家有5件商品,Embedding就是5维向量,第一个商品的Embedding就是[1,0,0,0,0]。

与RGB稍作比较,就会发现One Hot的不足。首先,One Hot的每一维只表示某个商品的有无,信息量太少;其次,One Hot的维度会随着商品数量的增加而增加,可能造成维度爆炸,计算复杂度过高。

因此,我们需要找到一个类似RGB的稠密向量来表示一个商品,这个稠密向量就是我们在深度学习领域常说的Embedding。

如何生成Embedding

生成Embedding的方法可以归类为三种,分别是矩阵分解,无监督建模和有监督建模

矩阵分解

矩阵分解是将两种实体间的关系矩阵分解为两个Embedding矩阵,得到每一种实体的Embedding,比如在推荐系统里,我们已知用户与商品的共现矩阵,通过矩阵分解可以得到每个用户的Embedding和每个商品的Embedding。

这种求解Embedding的方法最直接有效,但是只能用于求解用户和商品的共现矩阵,无法处理用户的属性(比如性别、年龄)和商品的属性(比如价格、类别)。

717ae296ff43467530fa48aeb14c766f.png

无监督建模

无监督建模是生成Embedding的常用方法,按组织方式可以将数据分为序列和图两类,针对序列数据生成Embedding常采用word2vec或类似算法(item2vec, doc2vec等),针对图数据生成Embedding的算法称为Graph Embedding,这类算法包括deepwalk、node2vec、struc2vec等,它们大多采用随机游走方式生成序列,底层同样也是word2vec算法。关于word2vec算法的实现细节,此处不再赘述。

79278dd83197dc721e6782ddfa11b770.png

有监督建模

有监督建模也可以用于生成Embedding,主要分为两类,一类是因子分解机及其衍生算法,包括FM、FFM、DeepFM等,另一类是图卷积算法,包括GCN、GraphSAGE、GAT等,这些模型中都包含Embedding层,在建模有监督问题时,每个实体在Embedding层的输出向量可以作为这个实体的Embedding使用。

f2283a3328c8269ce9939fee645193f9.png

理解Embedding

Embedding最重要的属性是:越“相似”的实体,Embedding之间的距离越小。以word2vec模型为例,如果两个词的上下文几乎相同,就意味着它们的输出值几乎相同,在模型收敛的前提下,两个词在Embedding层的输出值一定非常相近。在推荐系统里,可以计算实体间的余弦相似度,召回相似度高的商品作为备选推荐商品,这是Embedding内在属性的一种简单的应用。

此外,相比RGB,Embedding最大的劣势是无法解释每个维度的含义,这也是复杂机器学习模型的通病。

欢迎点赞、喜欢、收藏~

在求知的路上,你永不独行~


最后安利一下师兄的大作:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值