FastText与Word2vec笔记

本文介绍了FastText和Word2vec的区别与联系,包括它们的架构、优化方法如层次softmax和负采样,以及在文本分类和词向量训练中的应用。FastText在Word2vec的基础上引入了n-gram特征,提高了处理效率和准确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

        为什么试图用fasttext代替text_cnn:一方面为了满足大数据训练,追求速度;另一方面认为对于文本,文本特征相比较图像而言特征矩阵较为稀疏,这样没必要通过多隐层多次学习特征,仅仅需要单隐层学习一次就好,加之Word2vec跟fasttext有层次哈夫曼树+softmax加持,速度惊人且效果非常好。

        分层softmax(Hierarchical softmax)是一个归一化指数函数

        语言模型就是在做这样的事情,考察一个句子出现的可能性(也就是概率)

         词语wn出现的概率依赖于它前面n−1个词。当n很大时,P(wn│w1,w2,…,w(n−1))P(wn│w1,w2,…,w(n−1))的计算是非常麻烦甚至无法估算

         马尔科夫假设的概念并由此得到“二元模型”。马尔科夫假设的意思是“任意一个词w_k只与它前面的词即w(k−1)w(k−1)有关”。

———————————————————————————————

  1. 输入层:one hot 编码
  2. 隐层:要训练的词向量其实就是输入层到第一个隐藏层的权重。这个隐层权重起到了对onehot编码的高维稀疏矩阵的一个降维作用;隐层权重训练初始化为随机值;输入层到隐层是懒惰学习过程。Word2vec区别于早先DNN训练词向量,到隐层一般用向量线性变化+激活函数,而他是取到隐层权重向量后对所有词进行叠加求均值(CBOW),Skip-gram直接从输入层取到向量投入隐层;
  3. 输出层:隐层到输出层,采用1.负采样、2.层次softmax两种方法实现近似预测;然后计算loss,利用梯度下降+反向传播优化目标函数,让损失达到最小,通过反向传播修改隐层权重向量(我们要训练的词向量)还有修改逻辑回归预测中的参数向量;最终待目标函数收敛,网络稳定后,通过softmax指数激活函数做归一化处理,得出的分数就是预测为该节点(word2vec是词、fasttext是标签)的概率;对叶子节点预测的结果排序取前k个作为推荐结果;
  1. 负采样:使用霍夫曼树来代替传统的神经网络,可以提高模型训练的效率。但是如果我们的训练样本里的中心词w是一个很生僻的词,那么就得在霍夫曼树中辛苦的向下走很久了。负采样是针对这种缺陷提出的改进,当测试集语料存在大量生僻字时候摒弃掉了层次softmax;一个训练样本,中心词是w,它周围上下文共有2c个词,这2c个背景词作为正例,在这2c个词之外,随机负采样neg个词作为负例,通过正负例做二元逻辑回归,根据梯度下降+反向传播BP更新得到负采样对应每个词wi对应的模型参数θi,和每个词的词向量。根据word2vec论文的建议,噪声词采样概率P(w)设为w词频与总词频之比
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值