传统:基于规则
现代:基于统计机器学习
我们希望类似青蛙、蟾蜍这些词在词编码之后保持相似性
从一个向量从一种语系转化成另一种语系的时候能够保持分布
我们希望原始文本信息能够得到保留,例如国王和女王之间的关系和男人与女人之间的关系应是特别接近的,法国和巴黎之间关系与德国和巴黎的关系也是接近的。
词向量表示作为机器学习、特别是深度学习的输入和表示空间
WordNet是由Princeton大学的心理学家,语言学家和计算机工程师联合设计的一种基于认知语言学的英语词典。它不是光把单词以字母顺序排列,而且按照单词的意义组成一个“单词的网络”。它是一个覆盖范围宽广的英语词汇语义网。名词,动词,形容词和副词各自被组织成一个同义词的网络,每个同义词集合都代表一个基本的语义概念,并且这些集合之间也由各种关系连接。
WordNet 存在的问题
假设有这么一个语料库
John likes to watch movies. Mary likes too. John also likes to watch football games.
按照这个语料库可以构建出一个词典
{"John": 1, "likes": 2, "to": 3, "watch": 4, "movies'": 5, "also":6, "football": 7, "games": 8, "Mary": 9, "too": 10}
可以看到这个词典里包含了10个单词,每个单词都有一个唯一的索引,在词典的顺序和在句子的顺序没有关联。
John的One-hot表示为
同理likes的One-hot表示为
文档的向量表示可以直接将各词的词向量表示加和
John likes to watch movies. Mary likes too.可表示为
词t的IDF weight计算方式为
其中N为文档总数,n_t为含有词t的文档数
John likes to watch movies. Mary likes too.经过TF-IDF计算后文档向量可表示为
只统计是否出现过,出现为1不出现为0,不统计出现次数
John likes to watch movies. Mary likes too.的向量记为
John likes to watch movies. Mary likes too. John also likes to watch football games.
依旧以上面两句作为语料库,为了能够考虑到顺序的影响因素,为2-gram建立索引,得到词典如下
word | index |
---|---|
John likes | 1 |
likes to | 2 |
to watch | 3 |
watch movies | 4 |
Mary likes | 5 |
likes too | 6 |
John also | 7 |
also likes | 8 |
watch football | 9 |
football games | 10 |
John likes to watch movies. Mary likes too.的文档向量可表示为
John also likes to watch football games.的文档向量可以表示为
2-gram以每相邻的两个词建立词典,可以考虑到词的顺序对文档的影响,但是这样带来的问题是造成此表的膨胀。
\begin{aligned} \mathrm{P}(\text { Mary likes too }) &=\mathrm{P}(\text { too } \mid \text { Mark, likes }) *\mathrm{P}(\text { likes } \mid \text { Mary })* \mathrm{P}(\text { Mary }) \\ &=\mathrm{P}(\text { too }) *\mathrm{P}(\text { likes })* \mathrm{P}(\text { Mary }) \end{aligned}
\begin{aligned} \mathrm{P}(\text { Mary likes too }) &=\mathrm{P}(\text { too } \mid \text { Mark, likes }) *\mathrm{P}(\text { likes } \mid \text { Mary })* \mathrm{P}(\text { Mary }) \\ &=\mathrm{P}(\text { too } \mid \text { likes }) *\mathrm{P}(\text { likes } \mid \text { Marry })^{*} \mathrm{P}(\text { Mary }) \end{aligned}
使用各种度量(与或非、距离)都不合适,太过于稀疏,很难捕捉文本的含义
可以用一个词附近的其他词来表示该词
"You shall know a word by the company it keeps——(J. R. Firth 1957: 11)
现代统计自然语言处理中最有创见的想法之一
Word-Document的共现矩阵主要用于发现主题(topic),用于主题模型,如LSA(Iatent Semantic Analysis)
局域窗中的Word-Word共现矩阵可以挖掘语法和语义信息
window length设为1(一般设置为5~10),使用对称的窗函数(左右window length都为1)
将共现矩阵行/列向量作为词向量
为了解决维度过大造成的稀疏性问题,最直接的方法是考虑构造低维稠密向量作为词的分布式表示(25~1000维),使用SVD对共现矩阵向量做降维
存在的问题
NNLM是word2vec的前身,直接从语言模型出发,将模型最优化过程转化为求词向量表示的过程。
目标函数