【李宏毅机器学习】Unsupervised Learning - Word Embedding 无监督学习 - 词嵌入(p22) 学习笔记

Unsupervised Learning Word Embedding

用一个vector来表示一个word的几种方法

1-of-N Encoding

用一个vector来表示一个word,这个vector的维度就是世界上可能有的词的数目,每一个word对应其中一个维度。

用这种方法来描述一个word,得到的vector不够informative信息丰富,每个word的vector都不一样,无法从中得到任何信息,以及词和词之间的联系。

Word Class

如何解决上述问题?

建立word class,把有相同性质的word放在同一个 class内,但是这还是不够的,依然缺少一些信息。

Word Embedding

把每个word都映射到一个高维空间,但是远比1-of-encoding的维度要低,一般都是50-100维。

在这里插入图片描述

如何做Word Embedding

  • Word Embedding是一个无监督学习的方法,只需要让机器阅读大量的文章,就可以知道每个词汇embedding的feature vector是什么样子。
    在这里插入图片描述

  • 产生词向量是无监督的,我们需要做的就是训练一个神经网络,找到一个function,输入一个词,输出该词对应的word embedding 的 vector。训练数据是一大堆文字,即,只有input,没有output。
    在这里插入图片描述
    不能用auto-encoder来解决

在这里插入图片描述

How to exploit the context? 如何利用文本呢?

Count based

如果有两个word常常在同一个文章中出现,则说明他们比较接近。
在这里插入图片描述

Prediction based

learn一个神经网络,用来预测,给前一个word w i − 1 w_{i-1} wi1,预测出下一个可能出现的word是谁

输入:前一个word的1-of-N encoding的feature vector

输出:下一个word,是某个词的概率,vector的维度是世界上word的数目。

在这里插入图片描述
在这里插入图片描述

Prediction-based - Sharing Parameters

前面仅仅通过前一个词来预测下一个词可能太差了,所以可以引申为通过前几个词来预测下一个词。

每个维度连接到的weight必须是一样的,否则,一个词会对应有两个词向量,且减少参数量(1-of-N encoding的vector的维度是10w维,feature vector是50维。如果我们强迫让所有的1-of-N encoding后面接的weight全部一样,就不会随着context的增长而需要更多的参数)。
在这里插入图片描述
公式化表示:
在这里插入图片描述
如何让 w i w_i wi w j w_j wj相等呢?
w i w_i wi w j w_j wj做相同初始化。
如果像下图一样,则第一次更新则会导致 w i w_i wi w j w_j wj不再相等。
在这里插入图片描述
所以需要这样: w i w_i wi w j w_j wj使得两个weight永远tie在一起。
在这里插入图片描述

Prediction-based - Training

在这里插入图片描述

Prediction-based - Various Architectures

在这里插入图片描述

Word Embedding

同一个动词的三种时态会存在某种关系——三角形
在这里插入图片描述
所以,我们可以从word vector中发现词和词之间的关系。

如果把word vector两两相减,把他们映射到一个二维空间中,如果他们落在了同一块区域,说明这两个word之间会存在一个包含另外一个的关系。
在这里插入图片描述

Characteristics

Solving analogies

在这里插入图片描述

Demo

在这里插入图片描述

Multi-lingual Embedding

把不同语言的word vector放在一起。

通过中文和英文的两个corpus单独地去训练一组word vector,可以发现中文和英文的word vector完全没有任何关系,每个维度对应的含义没有任何联系。

因为,训练word vector靠的是上下文之间的关系,所以如果你的corpus里没有中英文混杂的话,那么机器就无法判断中英文词汇之间的关系。

但是如果事先已知一部分中英文的词汇的对应关系,然后再分别得到一组中文vector和英文vector,接下来就可以learn一个模型把事先知道的中英文对应的那些词汇,通过映射到空间中的同一个点(绿色底子汉字或者绿色英文代表已知中英文对应关系的词汇),接下来,如果遇到新的未知的中文或者英文词汇,则可以用同样的映射方法,把他们映射到同一个空间中,可以自动知道这些未知的词会落在同样的位置,达到类似翻译的效果。

在这里插入图片描述

Multi-domain Embedding

现已经找到一组vector,知道他们在空间中所映射的位置,在有一个新的image进来的时候,通过把他映射到空间中,可以得到他属于的类别。在做影像分类的时候很难处理新增的类别,一般都只能判断出给定的已知类别,学习出来的模型只能去对那几个类别来分类,如果有一个新的来了,这个模型完全无能为力,无法判断其类别。

但是用这种方法的话,是可以判断未知类别的图像。

机器在阅读大量图片后,机器自动知道了词汇间的关系,然后将新的图片区匹配已知的知识,这样就算遇到没见过的图片,也有可能识别出他的名字。

在这里插入图片描述

Document Embedding

把一个document变成一个vector
在这里插入图片描述

Semantic Embedding

把一个document变成一个bag of word,用auto-encoder学习出他的semantic embedding。
在这里插入图片描述
但是这么做是不够的,用bag of word来描述一个document是不够的,因为词汇的顺序是十分重要的。
下图的两句话的bag of word是完全一样的,但是他们在语义上是完全不一样的,所以用bag of word来描述一个document是非常不够的!
在这里插入图片描述
具体方法没有细讲,只给出了一些reference,前三个方法是无监督的,只需要收集一大堆的document,后面的算是有监督的,虽然不需要给出每一个document对应的vector是什么,但是需要对每一个document给出额外label,才可以进行学习。
在这里插入图片描述

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值