1. 学习内容

1. 词义

2. 如何对一个词进行表示

3. 什么是word2vector

4. word2vector的目标函数

本项目参见https://github.com/datawhalechina/team-learning/tree/master/04%20%E8%87%AA%E7%84%B6%E8%AF%AD%E8%A8%80%E5%A4%84%E7%90%86

2. 词义

词义:语言或文字符号所表示的某种概念。

通过wordnet,我们可以查找与某个英语单词含义相近其他词汇。

CS224N(NLP)组队学习-L1 Introduction and Word Vectors
图2.1 利用wordnet查找近义词

Wordnet是一个不错的资源工具,但是它也存在一些局限性。首先,它忽略了近义词之间存在的细微差别;其次,它难以持续维护和更新同时还需要投入大量人力;最后,也是最重要的是,它无法用来计算两个词之间的相似程度。

3. 如何表示一个词

在传统的NLP中,我们将一个词视为一个独热向量。然而,对于由同一个语料库得到的不同词的独热向量是彼此正交的。正交的向量无法计算相似度。另外,随着语料库中词汇的扩充,独热向量的维度会不断变大。这既不利于存储,也不利于计算,更不利于更新。因此,一个理想的词向量,应当是长度固定且非独热的密集向量。

针对这一点,有人提出用固定的上下文窗口的方式来表示一个词汇。之所以这么做的原因是:⼀个单词的意思往往是由经常出现在它附近的单词给出的。当⼀个单词w出现在⽂本中时,它的上下⽂是出现在其附近的⼀组单词(在一个固定大小的窗口中)。

CS224N(NLP)组队学习-L1 Introduction and Word Vectors
图3.1 用上下文的方式表示一个单词

由这种方法得到的词向量不但能满足上面的需求,而且这个词向量还能保证与出现在类似上下文的词汇的词向量相似程度很高。

4. 什么是word2vector

Word2vector实际上就是一个用来得到词向量的框架。它的思想是:假设有大量的文本,固定的词汇表中每个词都由一个向量来表示;文本中的每个位置t,都有一个中心词c和一些外部词o(即上下文);用c与o的相似性来计算P(o|c)或P(c|o);不断调整词向量来最大化条件概率。

CS224N(NLP)组队学习-L1 Introduction and Word Vectors
图4.1 P(o|c)的计算过程(中心词分别为into和banking)

5. Word2vector的目标函数

假设位置t=1,2,3,...,T,窗口大小为m,则对于给定的中心词应有

CS224N(NLP)组队学习-L1 Introduction and Word Vectors

其中,CS224N(NLP)组队学习-L1 Introduction and Word Vectors是所有需要优化的变量。

Word2vector的目标函数为

CS224N(NLP)组队学习-L1 Introduction and Word Vectors

那么,现在问题变成了要如何求解CS224N(NLP)组队学习-L1 Introduction and Word Vectors

我们规定:对于一个单词w,CS224N(NLP)组队学习-L1 Introduction and Word Vectors为w作为中心词的词向量,而CS224N(NLP)组队学习-L1 Introduction and Word Vectors为w作为外部词的词向量。于是,对于一个中心词c和一个外部词o,应有

CS224N(NLP)组队学习-L1 Introduction and Word Vectors

这里我们用到了softmax函数来进行处理。softmax函数可以放大最大概率,同时也可以避免将很低的概率变成0。

可以看出,优化目标函数实际上就是优化CS224N(NLP)组队学习-L1 Introduction and Word Vectors。这里我们使用梯度下降算法

CS224N(NLP)组队学习-L1 Introduction and Word Vectors

可以看出,第⼀项是真正的外部词,第⼆项则是预测的外部词。在多次迭代后,模型预测的上下⽂将越来越接近真正的上下⽂。

上式还可以进一步改写为

CS224N(NLP)组队学习-L1 Introduction and Word Vectors

从另一个角度来看

CS224N(NLP)组队学习-L1 Introduction and Word Vectors

CS224N(NLP)组队学习-L1 Introduction and Word Vectors时,通过中⼼词c我们可以正确预测外部词o 。此时我们无需对CS224N(NLP)组队学习-L1 Introduction and Word Vectors进行调整,否则则要调整。

相关文章: