目录
一、单词含义理解方法:
二、分布式假设(相关概念):
三 、word2vec
1 基于同义词词典 :单词含义相近的归为同一类,最著名的有WordNet
2 基于计数的方法 :使用corpus 语料库(大量文本数据)生成单词的共现矩阵(对每个单词统计周围单词的数量生成的矩阵,
3 共现矩阵的大小为(len(word_to_id),len(word_to_id)),改进:点互信息的共现矩阵,降维后的共现矩阵(密集向量)。
最终得到单词的分布式表示(周围单词出现的频数)。
4 基于推理的方法(word2vec):通过神经网络推理获得目标单词的分布式表示
1 单词的含义由其周围的单词组成。
2 上下文大小:窗口大小,某个居中单词周围的词汇个数,window_size=2,则表示目标词左右各取2个单词
3 共现矩阵:表示某个单词周围出现单词的数量
4 点互信息:PMI(x,y)表示随机变量x和y的相关性
1 基于计数的单词含义表示存在的问题:大规模语料库计算共现矩阵的点互信息、降维会耗费大量计算成本
2 基于推理的单词含义表示:
使用神经网络在mini_batch上反复学习,获得单词的分布式表示;基于上下文推理目标词,模型接收上下文向量作为输入,
输出各个单词出现的概率,使用语料库学习模型,最终做出正确的预测,作为模型学习的产物得到了单词的分布式表示。
3 计数和推理的区别:性能不相上下;更新分布式表示时耗费资源不同;基于推理的方法除了表达单词的相似性外,还能表达单词间更复杂的关系。
4 word2vec:指神经网络模型,CBOW(基于上下文预测中间词),skip-gram(基于中间词预测上下文)
5 简单的CBOW:两个输入(上下文)-->中间层-->输出层--softmax ;得到输入权重W_in为单词的分布式表示
6 skip-gram:一个输入(中间词)-->中间层-->两个输出W_out
7 word2vec高速化:Embedding层、Negative Sampling负采样损失函数,解决输入层one-hot和权重矩阵的乘积,以及中间层之后的计算
8 Embedding:从权重矩阵中选出单词向量所对应的行;Embedding层存放单词的分布式表示
9 word2vec高速化的实现:转化为二分类问题(输出层选出目标词对应的W_out,然后将中间层h*W_out输入到Sigmoid With Loss层)
Embedding层(输入上下文向量)-->h=0.5*(h1+h2)-->NegativeSamplingLoss(中间层后的EmbeddingDot、包含负采样的损失层)
10 负采样:采样负例进行二分类学习,正例(目标词)和负例的损失之和为最终损失,根据最终损失进行参数更新
11 word2vec的应用:word2vec获得单词的分布式表示,进行迁移学习、自然语言领域(文本分类、文本聚类、情感分析、词性标注等)、将文档表示为向量
12 单词分布式表示的评价:相似度评价、类推问题评价