作者:livan

来源:数据python与算法

Embedding介绍

Embedding是深度学习中的一个重要部分,重要到几乎每个深度模型都会用到他,他的原理相对复杂,但是其作用解释起来只需要一句话,即:Embedding是一个将离散变量转为固定长度的连续向量的方法。

Embedding能够用低维向量对物体进行编码还能保留其含义的特点非常适合深度学习。在传统机器学习模型构建过程中,我们经常使用one hot encoding对离散特征,特别是id类特征进行编码,但由于one hot encoding的维度等于物体的总数,比如阿里的商品one hot encoding的维度就至少是千万量级的。这样的编码方式对于商品来说是极端稀疏的,甚至用multi hot encoding对用户浏览历史的编码也会是一个非常稀疏的向量。而深度学习的特点以及工程方面的原因使其不利于稀疏特征向量的处理。因此如果能把物体编码为一个低维稠密向量再喂给DNN,自然是一个高效的基本操作,Embedding应运而生~

Embedding的原理涉及到深度学习的部分,现在应用最广的Embedding方式为word2vec,大家可以回顾一下笔者之前的文章:

从零开始学自然语言处理(十三)——CBOW原理详解

其中详细描述了Embedding的两种模式~

具体代码层面可以描述为:

books = ["War and Peace", "Anna Karenina",          "The Hitchhiker's Guide to the Galaxy"]books_encoded = [[1, 0, 0],                 [0, 1, 0],                 [0, 0, 1]]

Embedding之后为:

books_encoded_ideal = [[0.53,  0.85],
                       [0.60,  0.80],
                       [-0.78, -0.62]]

这一模式一般会融合在深度学习的架构中,作为其中的一个环节或者一层来使用,例如:LSTM、卷积神经网络等;

在常规使用过程中也可以作为降维的好方法,学习时还是需要给予足够的关注的。

◆ ◆ ◆  ◆ ◆

麟哥新书已经在京东上架了,我写了本书:《拿下Offer-数据分析师求职面试指南》,目前京东正在举行100-50活动,大家可以用相当于原价5折的预购价格购买,还是非常划算的:

点击下方小程序即可进入购买页面:


数据森麟公众号的交流群已经建立,许多小伙伴已经加入其中,感谢大家的支持。大家可以在群里交流关于数据分析&数据挖掘的相关内容,还没有加入的小伙伴可以扫描下方管理员二维码,进群前一定要关注公众号奥,关注后让管理员帮忙拉进群,期待大家的加入。

管理员二维码:

猜你喜欢

 麟哥拼了!!!亲自出镜推荐自己新书《数据分析师求职面试指南》

 厉害了!麟哥新书登顶京东销量排行榜!

 笑死人不偿命的知乎沙雕问题排行榜

 用Python扒出B站那些“惊为天人”的阿婆主!

 你相信逛B站也能学编程吗

点击阅读原文即可参与京东100-50购书活动

Logo

一站式 AI 云服务平台

更多推荐