fastTEXT论文解读并附实例代码-创新互联

上一篇博文是入门使用级别,但对于面试来说则不够,毕竟领导一问三不知必定over,其基本原理还是要搞清楚,因而有此博文。paper在此

成都创新互联公司自2013年起,先为钟山等服务建站,钟山等地企业,进行企业商务咨询服务。为钟山企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

0,绪论

考虑紧致特征以减少存储空间,提出在PQ( product quantization,也是笛卡尔乘积)基础之上存储词向量。文本分类可用于垃圾过滤。fastTEXT基于n-gram特征,降维,以及更快的softmax分类器,一些关键部分,特征剪枝,量化,hash,再训练使得文本分类模型很小(一般小于100kB)而并没有明显的牺牲acc和速度。由于不受纯二进制代码的约束,采用了更传统的编码方式,即采用矢量的幅度/方向参数化。因此,只需要编码/压缩一个酉d维向量,这很好地符合上述LSH和PQ方法。

1,方法

在文本分类中,线性分类器依旧是有竞争力的,而且训练更快。在线性文本分类中最有效的trick是使用一个低等级的约束减少计算负担,同时在不同类别之间共享信息。这在更大输出空间中更有效,尤其是一些类别训练样本较少时。本文中,一个类似的模型,取N个document的softmax loss的最小值,

\sum_{n=1}^{N}loss(y_{n},BAx_{n})

xn是one-hot向量的bag,yn是第n个document的label,在大的词典和大的输出空间中,矩阵A,B是大的,可占据GB内存,因此我们的目的就是减少此内存。

PQ 是一个在压缩域(compressed-domain)近似近邻检索中流行的方法。一个隐式的定义:

一个d维度的向量x近似为:\hat{x}=\sum_{i=1}^{k}q_{i}(x),那么PQ在压缩域估计内积为:x^{T}y\approx \hat{x}^{T}y

存储空间更依赖于词典大小,词典可能很大,而有很大部分的词典是无用的,或者多余的,直接减少高频词并不能令人满意,比如高频词“the” 和“is”. 发现哪个词或n-gram必须保留是特征选择的问题。hash也可进一步减少内存。

分类器中的B也经过压缩。总之这篇paper就是介绍的一个压缩技术PQ,而模型还是线性模型,激活函数可以是softmax,还可以是hierarchical softmax,也就是哈夫曼树:一个带权的路径长度最短的二叉树,也叫最优二叉树。

下图右边即是哈夫曼树,其权值为数值与深度的乘积和,13*1+7*2+2*3+5*3=48,此值小于左边的

右边字母的分类可以表示为:D-0,B-10,C-110,A-111,是多个二分类综合在一起的。

其中的二分类由sigmoid来做,

3,压缩实例:参考博文

依旧以博文中的dbpedia数据为例:

#训练
fasttext supervised -input dbpedia.train -output train_out -dim 10 -lr 0.1 -wordNgrams 2 -minCount 1 -bucket 10000000 -epoch 5 -thread 4
#压缩
fasttext quantize -output train_out  -input dbpedia.train -qnorm -retrain -epoch 1 -cutoff 100000
#测试原模型
fasttext test    train_out.bin dbpedia.test
#测试压缩模型
fasttext test train_out.ftz dbpedia.test

关注本专栏获取更多。 

愿我们终有重逢之时,而你还记得我们曾经讨论的话题

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


本文标题:fastTEXT论文解读并附实例代码-创新互联
文章来源:http://pwwzsj.com/article/higsp.html