embedding

不是做NLP方向对这方面之前也并不了解,但本科学习过文本挖掘课程,在数据挖掘的时候偶尔会涉及到对本文特征的处理,只好趁着机会再学习总结下。

embedding

简单来说,embedding就是用一个低维的向量表示一个物体,可以是一个词,或是一个item(商品,或是一个电影等等)。这个embedding向量的性质是能使距离相近的向量对应的物体有相近的含义,比如 Embedding(复仇者联盟)和Embedding(钢铁侠)之间的距离就会很接近,但 Embedding(复仇者联盟)和Embedding(乱世佳人)的距离就会远一些。

除此之外Embedding甚至还具有数学运算的关系,比如Embedding(马德里)-Embedding(西班牙)+Embedding(法国)≈Embedding(巴黎)

从另外一个空间表达物体,甚至揭示了物体间的潜在关系,上次体会这样神奇的操作还是在学习傅里叶变换的时候,从某种意义上来说,Embedding方法甚至具备了一些本体论的哲学意义。

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

Embedding可以说是神经网络最基础但是最重要的部分。在自然语言处理中(NLP),数字化文本中的词汇是首先需要做的步骤。在这篇文章中,我们将抛开one-hot encoding这种无脑的Embedding形式,介绍一下从词上下文角度来计算词向量的方法(CBOW)。

用一张图回顾一下CBOW对词语出现概率的假设:

如图所示,CBOW的核心思想就是通过上下文来预测中心词,也就是通过”今天“和”真好“来计算输出”天气“的概率。而中间的那个节点就是样本空间到结果空间的映射函数。聪明的同学在说到映射函数的时候是不是就想到最基本的神经网络结构了?没错,最基础的词汇Embedding正是用到了神经网络。问题来了,既然需要利用神经网络来训练词向量,那么输入和输出是什么呢,怎么寻找训练集呢?别着急,再给你们举个带有输入输出的例子'':

原始文档:['我','今天‘,’不开心']输入输出:X = ['我','不开心'] Y = ['今天']

看到这里是不是恍然大悟,训练词向量所需要的Y就是随机从文档中选择的词,X呢就是这个词周围的上下文。 OK,训练数据问题解决了,但是,不是说好是词向量么,向量中的数字是怎么得到的呢,另外,怎么才能训练出预先定义好维数的向量呢?这两个问题看上去更加的高大上了,但其实,呵呵呵。

首先,向量中数字的问题。请您再回看一遍上面那个丑丑的图,然后再回想一下上一篇文章讲的CBOW的概念。从神经网络的角度出发,既然是特征映射,无脑的使用加权平均公式我们可以将上面那张图转换为:这里的y就是融合了上下文特征的值(特征实在是不怎么值钱),而词汇在等式里里可以用onehot编码表示,多个词用平均或者拼接都可以。OK,做到这一步其实已经完成一半了,这时候我们从CBOW的角度出发,看看”天气“这个词是怎么出来的:你可能这时候有疑问,CBOW指的是概率啊,跟神经网络有什么关系,别着急,回想一下之前说过的激活函数,我们对中间的那个节点进行激活,随便用什么函数都行(Softmax,Sigmoid),只要条件允许并且其值域在[0,1]范围内都行。这样我们就完美地把y转换为输出的概率了。剩下的就是神经网络老掉牙的反向传播调整权重,略过略过。最终我们会得到一个最优的权重a,这个就是”今天“这个词的嵌入值了。解决了值的问题,剩下的就是维数的问题。这个就更简单了,再仔细看那张丑图,中间有一个节点对应最终的一个权重,如果把这个节点增加到100个,是不是就对应了100个权重了?是不是超级简单。至于增加了100个怎么计算,请自行百度全连接神经网络,我就不废话了。

word2vec

对word的vector表达的研究早已有之,但让embedding方法空前流行,我们还是要归功于google的word2vec。我们简单讲一下word2vec的原理.

既然我们要训练一个对word的语义表达,那么训练样本显然是一个句子的集合。假设其中一个长度为T的句子为。这时我们假定每个词都跟其相邻的词的关系最密切,换句话说每个词都是由相邻的词决定的(CBOW模型的动机),或者每个词都决定了相邻的词(Skip-gram模型的动机)。如下图&

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值