李宏毅机器学习笔记-14:Unsupervised Learning:Word Embedding

Word Embedding:在文字上的降维方式

我们希望机器做到的是:机器在看完大量的词汇后都能用一个Vcetor来表示一个词汇,而且V的维度代表了某种意义,或者相近意思或语义相近词的特征能用向量呈现出来。

  1. 1-of-N Encoding:一种最简单的词汇描述成向量的方法就是1-of-N Encoding,如果只有5个词,我们就可以用5维向量来表示这五个词,但是这种方法不能描述向量之间的关系
  2. Word Class:在此基础上进行词汇归类(如:动物,植物…)
  3. Word Embedding:每一个词汇用多个维度描述

在这里插入图片描述
可能你马哥和蔡哥之间有什么关系,但是他后面都有童颜的一句话,所以机器读取之后他们的V就有相同的地方。在这里插入图片描述
根据上下文推测有两种方法:一种是Count based,另一种是Prediction based

  • Count based
    如果两个词很相近,那么两个词向量(wi,wj)也比较相近,如果wi.wj与他们共同出现的次数nij成正相关,那么他们就是比较接近的。
    在这里插入图片描述
  • Prediction based
    Prediction based是这样操作的:输入一些词汇通过一个NN,接下来输出指定的词汇
    在这里插入图片描述
    Prediction based可以用在推文接话

在这里插入图片描述
也可以用在Language Modeling(预测一句话出现的概率)
然而一句话出现在NN中是不会出现的,如果我们要预测wreck a nice beach出现的概率,我们可以计算wreck出现的概率,乘上wreck后面接a的概率,以此类推。
在这里插入图片描述
在这里插入图片描述
具体怎么做:
例如我们将词(one-hot编码后)输入网络,网络输出是每个词出现的几率,当我们把模型训练好后,把隐藏层第一层作为这个词汇的Word Vector,做Word Embedding用的是一层线性的神经网络,因为这个部分可能是其他DNN的前面一部分,并且Word Embedding的Vevtor可能数据很大,且一层隐藏层就可以达到效果
在这里插入图片描述
同样是这个例子,两个人后面有相同的部分,所以在某些维度上他们是相同的。

在这里插入图片描述
共享参数
如果一个词汇(10万维)就一个参数,两个词汇就得到20万维的数据,如果另w1=w2就是的数据不会增加(10万维),w就像CNN的filtter

在这里插入图片描述
在这里插入图片描述
prediction-based有很多种方法,一种是CBOW模型,我们已知wi-1 ,wi+1 去预测wi ,
另一种是Skip-gram模型,我们已知wi ,去预测wi-1 ,wi+1
在这里插入图片描述
我们使用word embedding就会发现一些词汇之间的关系,比如国家和首都组成的关系,又比如动词和其时态的关系在这里插入图片描述
如果我们把2个word vector相减(其中一个是另一个的子类),其2维平面投影就会比较接近,于是就有了如下hotter-hot≈bigger-big,比如说我们说罗马之于意大利就如柏林之于?(德国),我们就会去计算德国的向量-罗马向量+意大利向量,得到的向量找到最接近的,很可能就是德国在这里插入图片描述
我们不光可以做词语分类还可以做文档分类,比如我们将一个文档通过bag-of-word(同一个出现几次,那个词的维度就是几)收集单词
在这里插入图片描述
我们这么做常常是不够的,比如下图2个语句bag of word完全一样,但是他们的词语顺序不一样导致表达的意思不一样在这里插入图片描述

发布了16 篇原创文章 · 获赞 0 · 访问量 946

猜你喜欢

转载自blog.csdn.net/qq_44157281/article/details/98735741