初识Word2vec
Christopher Manning CS224n 2019秋
Overview
Word2vec由Mikolov 在2013年提出,是一个学习词向量(表示)的框架。
Idea
- 现实世界中,首先看到是一大堆文本;–语料库
- 文本中的每个词都有其固定的位置,我们就考虑能否将其位置数字化,通过一个形式表示出来呢?–词向量
- 扫描(利用迭代算法实现)整个文本中词的位置,我们会发现它有两个信息,一个是单独的词另一个是以这个词为中心(背景词)的上下文(context)
- 利用中心测和其上下文的词向量相似度去实现给了中心词c求上下文的概率。
- 持续调整词向量直至最大化上下文的概率结束。
objective function
需要做的是对于文本中每个词的位置t= 1……T,给定一个中心词,预测窗口大小为m的上下文。
Likelihood = =
$\theta$为所优化的全局变量,其目标(损失/代价)函数是负对数似然函数:
T指文本的长度,这里做一个平均化,对结果没有实质的影响,只是一个处理手段。
如何优化目标函数?
- 每个词有两个向量表示,一是中心词向量,二是上下文向量。那么接下来中心词c和上下文单词o,表示为一个熟悉的softmax函数:
- 优化的参数为
最小化这个目标函数就等价于最大化预测的准确率,这是一个重要技巧,在许多此类函数的处理上都会采用。
-
Softmax函数
- max 最大项的概率会扩大
- soft 很小项的概率仍会分配一定的概率
-
推导