深度学习——Embedding层

深度学习中,Embedding层用于将高维稀疏的One-hot编码转换为低维稠密向量,提高计算效率并揭示词与词之间的相似性。在推荐系统和NLP中广泛应用,例如Matrix Factorization和Word2Vec。文章介绍了Embedding的基本概念、与Word2Vec的区别,并提供了简单的实现示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.使用嵌入层Embedding的原因
  1. 使用 One-hot 方法编码的向量会很高维也很稀疏。假设我们在做自然语言处理(NLP)中遇到了一个包含2000个词的字典,当使用One-hot编码时,每一个词会被一个包含2000个整数的向量来表示,其中1999个数字是0,如果字典再大一点,这种方法的计算效率会大打折扣。
  2. 训练神经网络的过程中,每个嵌入的向量都会得到更新。我们会发现在多维空间中词与词之间有多少相似性,这使我们能可视化的了解词语之间的关系,不仅仅是词语,任何能通过嵌入层 Embedding 转换成向量的内容都可以这样做。

推荐邻域应用:矩阵分解技术就是学习物品和用户各自的Embedding,相关的文章有Matrix Factorization Techniques for Recommender Systems,这个模型获得了2006年NETFLIX大赛的冠军之后大火,另外继Word2Vec大火之后,有人将其思路应用于推荐系统,出现了Item2Vec。Word2Vec在某种程度上和Matrix Factorization的本质是相同的[1][2]

2.Embedding通俗理解

文章链接

可以简单的理解为,将一个特征转换为一个向量。在推荐系统当中,我们经常会遇到离散变量,如userid、itemid。对于离散变量,我们一般的做法是将其转换为one-hot,但对于itemid这种离散变量,转换成one-hot之后维度非常高,但里面只有一个是1,其余都为0。这种情况下,我们的通常做法就是将其转换为embedding。embedding的过程是什么样子的呢?它其实就是一层全连接的神经网络,如下图所示:
在这里插入图片描述
假设一个离散变量共有5个取值,也就是说one-hot之后会变成5维,我们想将其转换为embedding表示,其实就是接入了一层全连接神经网络。由于只有一个位置是1,其余位置是0,因此得到的embedding就是与其相连的图中红线上的权重。

Word2Vec和Embedding的区别?
答:Embedding是一个普适的概念,或者任务。为区别one-hot的词向量,可翻译成词嵌入。Word2Vec是Google实现Embedding的一种具体的approach。因为速度快效果好名字fancy而广为人知。

作者:斤木
链接:https://www.zhihu.com/question/53354714/answer/134685676
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值