自然语言处理——词向量词嵌入
Posted xingzhelin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自然语言处理——词向量词嵌入相关的知识,希望对你有一定的参考价值。
1 ??传统方式的缺点
??使用索引的方式无法表达词之间的相似性,n元模型在很多场合难以取得明显的进步和表现
2??CBow连续词袋模型(周围词预测中心词)、SkipGram 中心词预测周围词
3 ??参考知识点
给定n个权值作为n个叶子结点,构造一棵二叉树,若该树的带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree)
设有n个权值,则构造出的哈夫曼树有n个叶子结点。 n个权值分别设为 w1、w2、…、wn,则哈夫曼树的构造规则为:
(1) 将w1、w2、…,wn看成是有n 棵树的森林(每棵树仅有一个结点);
(2) 在森林中选出两个根结点的权值最小的树合并,作为一棵新树的左、右子树,且新树的根结点权值为其左、右子树根结点权值之和;
(3)从森林中删除选取的两棵树,并将新树加入森林;
(4)重复(2)、(3)步,直到森林中只剩一棵树为止,该树即为所求得的哈夫曼树。
负采样
4 ??参考文章
- Word2Vec Tutorial - The Skip-Gram Model
- Efficient Estimation of Word Representations in Vector Space(original word2vec paper)
- Distributed Representations of Words and Phrases and their Compositionality (negative sampling paper)
- word2vec Parameter Learning Explained
文章笔记:Efficient Estimation of Word Representations inVector Space
阅读摘要:
- 数据集16亿词汇量,语法和语义相似性方面达到领先水平
- NNLM(已经有很多研究)
- 单词的连续线表示方式:LSA,LDA(大型数据集对算力需求非常庞大)
- 比较不同模型结构的策略:计算复杂度-参数量,最大化准确率,最小化计算复杂度
- 模型训练复杂度定义为O=E(训练迭代次数) x T(训练集词汇量) x Q(根据模型结构定义)
- NNLM网络结构由输入(N个前面的单词one-hot)、映射层(NXD)、隐藏层、输出层
- 使用霍夫曼树降低计算复杂度,DistBelief分布式训练(CPU)以及Adagrad自适应异步学习率
- 从论文提供的结果来看貌似Skim-gram在大多数情况下优于Cbow
文章笔记:Distributed Representations of Words and Phrasesand their Compositionality
阅读摘要:
- 使用负采样,加速2-10倍,以及提高精度
- 使用NCE加速训练以及更高质量的词向量
- 使用向量来表示短语(比单个单词节省空间,且应该更加有效)
- 对词向量使用简单的数学运算能获得某些不明显的语义上的理解
- 直接使用softmax计算不太实际(词汇量太大会导致计算复杂度极高)
- 使用霍夫曼树的只需评估log2(W词汇量)个节点
以上是关于自然语言处理——词向量词嵌入的主要内容,如果未能解决你的问题,请参考以下文章
NLP⚠️学不会打我! 半小时学会基本操作 4⚠️词向量模型
NLP⚠️学不会打我! 半小时学会基本操作 7⚠️ Word2vec 电影影评建模