一 序
本文属于NLP学习笔记系列。
one-hot 表示方式有什么缺点?
不能表示单词直接的相似度,欧氏距离,余弦相似度都不行。
缺点2:稀疏性 sparsity
二 词向量
分布式表示(Distributed Representation)
1分布式表示长度与词典长度无关,可以自定义,解决了稀疏性问题。
2 向量的数据基本上非0.
我们先理解这个两个不同,不关心数据是怎么来的。
先来验证下。这种表示方式能否解决单词相似度的问题。
数据符合我们的直觉。
这里使用分布式表示(单词),也叫做词向量(word vectors)
思考题:
1.100维的one-hot 模型最多可以表达多少个单词?
100个单词。
2. 分布式表示方式下,100维最多可以表达多少个单词?
无穷多。为了便于理解,每个维度简化为0.1表示。这样也可以表达2^100 ,
接下来学习每个单词的分布式向量(就是怎么得出来的)。
输入足够多的数据(10^9的单词), 使用模型去训练词向量,模型需要定义:dim 维度,其余参数根具体模型有关。
这个需要足够大的数据与资源计算,可以使用大厂已经算好的词向量。垂直领域:金融、医疗需要自行训练。
词向量代表单词的意思(meaning of a word)。
word2vec,某种意义上可以理解成词的意思,把dim维度数据投射到2维或者3维空间。
我们是希望词向量很更准确的表达词的意思。
拥有类似的语义的词聚集在一起。
三 从词向量表达句子词向量
1 平均 average 法则
加完求平均就能得出句子的向量,至于求句子与句子的相似度,可以使用余弦相似度。