fastText的基本原理及参数

fastText原理

对于一个长度为 T T T的句子为 w 1 , w 2 , . . . , w T w_1,w_2,...,w_T w1,w2,...,wT,假设每个词都跟其相邻的词的关系最密切,即每个词都由相邻的词决定的(CBOW模型),或每个词都决定了相邻的词(Skip-gram模型)

(1)CBOW

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对每个词的使用率更高~

(2)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库的使用

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]

fastText库的源码***

https://heleifz.github.io/14732610572844.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值