Unsupervised Learning:Word Embedding

Introduction

Word Embedding,即词嵌入,是一种无监督学习。也是nlp中的重要方法。

有时候我们不只想对词进行简单的分类,我们需要获得它们之间的相互关系,因为词和词之间的关系也是一种重要的信息。

这样的话,机器就有可能分析出一个词的含义根据它所处的位置,它的"语境"。

Exploiting the context

怎么利用这个词所处的环境来进行学习?

正常思维就是基于数量的统计,就是某个词和另外一个词频繁一起出现,就可以发现它们之间的关联。

相比于前一种,Prediction based我们着重学习一下。

它就是通过将词附近位置的词丢进神经网络中进行训练,参数训练好后就可以进行预测。

我们把神经网络中第一层输入拿出来,它们的值就能代表一个单词。相近的单词在这里会相对聚集在一起,假设第一层有两个神经元,两个维度,就会是下面的这种现象。

为什么会出现这种情况?

假设后面跟的都是“eat”这个词,"dog"和"cat"输入都会输出“eat”,经过的是同一个网络,它们的输入理应是相似的。

特别的是,在多个词确定一个词时,它们是共享权值的,你可以简单的理解为这样方便计算。

这种预测还有很多形式,像两边预测中间,中间预测两边...

Application

就像前面说的,词嵌入可以学到词之间的对应关系,如下。

词嵌入还允许我们了解一下包含关系,如下图词词相减就能发现一些规律。

也可以把不同语言的词拉在一起,不过用处好像不大。