NLP
的首要问题就是寻求恰当的文本表示方法。
因为,
良好的文本表示形式,
是后续进一步处理的基础。近年来,词嵌入方法越来越流行,在各种各样的
NLP
任务中
得到了广泛的应用。简单而言,词嵌入是通过无监督方式学习单词的向量表示。本文将首
先回顾用向量表示文本的早期模型,并通过分析其缺陷揭示词嵌入提出的动机,
然后介绍
Word2Vec
和
Glove
这两种最流行的词嵌入方法背后的直觉。
向量空间模型
用向量来表示文本这一想法由来已久。早在
1975
年,
Salton
等就提出用向量空间模型来
表示文本,以更好地索引、搜索文档。
由于向量空间模型最初的应用场景是索引、搜索,因此更关注词和权重。由词的权重组成
向量,并使用这一向量表示整篇文档。
具体而言,假设文档由
n
个单词组成,
那么这篇文档就可以表示为由每个单词的权重组成
的
n
维向量(长度为
n
的数组)
,
[w1, w2, ..., wn]
。当然,为了降低维度,事先会移除一些
无关紧要的词(例如
the
、
is
)
。在实践中,使用一份停止词(
stop words
)列表移除常见的
无关紧要的单词。
权重的计算有很多方法,最常用的是基于词频的方法。具体而言,单词的权重由三个因素
决定:
词频(
Term Frequency
,
TF
)
。词频的计算公式为
TF = t / m
,其中,
t
为单词在文档出现的
次数,
m
为文档的长度(总词数)
。例如,假设文档由
1000
个单词组成,其中某个单词总
共出现了
3
次,那么这个单词的词频就等于
3/1000.
逆向文档频率
(
Inverse Document Frequency
,
IDF
)
。
IDF
衡量单词提供的信息量,换句话
说,某个单词是否在所有文档中都很常见
/
罕见。这背后的直觉很简单。假设
100
篇文档
中,有
80
篇都包含“手机”这个单词,而只有
5
篇文档包含“足球”这个单词。那么,
对某篇特定文档而言,如果它同时包含“足球”和“手机”这两个单词,这篇文档更可能