赞
踩
对于一个长度为 T T T的句子为 w 1 , w 2 , . . . , w T w_1,w_2,...,w_T w1,w2,...,wT,假设每个词都跟其相邻的词的关系最密切,即每个词都由相邻的词决定的(CBOW模型),或每个词都决定了相邻的词(Skip-gram模型)。
CBOW用周围词预测中心词,skip-gram用中心词预测周围词。
以下用具体的例子解释,为什么skip-gram效果普遍比CBOW好?
对于一句话四个词ABCD,在window=1时有:
CBOW:P(B|AC) P(C|BD)
skip-gram:P(B|A) P(A|B) P(C|B) P(B|C) P(D|C) P(C|D)
比较而言,skip-gram对每个词的使用率更高~
为了基于语料库生成模型的训练样本,选取一个长度为2c+1(目标词前后各选c个词)的滑动窗口,从语料库中抽取一个句子:将滑动窗口由左至右滑动,每移动一次,窗口中的词组就形成了一个训练样本。
比如对S=“Today’s weather is great”,窗口长度window=1:
正样本:邻近的词语义更接近;负样本:不相邻的词。
pos={(Today’s, weather), (weather, Today’s), (weather, is), (is, weather), (is, great), (great, is)}
neg={(Today’s, is), (Today’s, great), (weather, great), (is, Today’s), (great, Today’s), (great, weather)}
训练词向量的过程:
哈夫曼树
根据词向量分类的过程:
query的每个词获取embedding,各个词的embedding向量取平均,然后做softmax输出预测。
fastText 是一个用于高效学习单词表示和句子分类的库。
中文文档:http://fasttext.apachecn.org/#/doc/zh/support
#安装fastText $ git clone https://github.com/facebookresearch/fastText.git $ cd fastText $ make #调用不带参数的命令来列出可用参数及其默认值 $ ./fasttext supervised ---------------------------------------> 空的输入或输出路径. 以下参数是强制性的: -input 训练文件路径 -output 输出文件路径 以下参数是可选的: -verbose 冗长等级 [2] 以下字典参数是可选的: -minCount 词出现的最少次数 [5] -minCountLabel 标签出现的最少次数 [0] -wordNgrams 单词 ngram 的最大长度 [1] -bucket 桶的个数 [2000000] -minn char ngram 的最小长度 [3] -maxn char ngram 的最大长度 [6] -t 抽样阈值 [0.0001] -label 标签前缀 [__label__] 以下用于训练的参数是可选的: -lr 学习速率 [0.05] -lrUpdateRate 更改学习速率的更新速率 100] -dim 字向量的大小 [100] -ws 上下文窗口的大小 [5] -epoch 迭代次数 [5] -neg 负样本个数 [5] -loss 损失函数 {ns, hs, softmax} [ns] -thread 线程个数 [12] -pretrainedVectors 监督学习的预训练词向量 [] -saveOutput 是否应该保存输出参数 [0] 以下量化参数是可选的: -cutoff 要保留的词和 ngram 的数量 [0] -retrain 微调 embeddings(假如应用 -cutoff 参数的话) [0] -qnorm 分别量化范数 [0] -qout 量化分类器 [0] -dsub 每个子向量的大小 [2]
https://heleifz.github.io/14732610572844.html
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。