fasttext算法原理及使用

FastText是一种高效的文本表征方法,结合了字符级n-gram和层次softmax技术。它能进行文本分类和词向量表征,模型结构类似word2vec的CBOW模型。层次softmax通过霍夫曼树优化了大规模类别计算的效率,而N-gram特征则保留了局部词序信息。FastText在实践中表现出色,并提供了丰富的支持。

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

1.  FastText原理

fastText是一种简单高效的文本表征方法,性能与深度学习比肩。fastText的核心思想就是:将整篇文档的词及n-gram向量叠加平均得到文档向量,然后使用文档向量做softmax多分类。这中间涉及到两个技巧:字符级n-gram特征的引入以及分层Softmax分类。主要功能在于:

  • 文本分类:有监督学习
  • 词向量表征:无监督学习

1.1 模型框架(Model architecture)

fastText的结构与word2vec的CBOW模型架构相似(fastText的开源工具不仅可以文本分类,还可以训练词向量,与word2vec相似)。word2vec有两种模型:skip-gram 模型和CBOW模型。两者的区别概括区别是:skip-gram,用当前词来预测上下文;CBOW,用上下文来预测当前词。

CBOW及fastText的模型框架对比如下: 

CBOW模型框架

  • 输入层:由目标词汇y的上下文单词\left \{ x_{1} ,...,x_{c}\right \}组成,x_{i}是被onehot编码过的V维向量,V是词汇量大小;输入层通过V\ast N维的权重矩阵W连接到隐含层;
  • 隐含层:N维向量h,隐含层通过N\ast V维的权重矩阵W^{'}连接到输出层;
  • 输出层:是被onehot编码过的目标词y(中间词);为提高计算效率,CBOW输出层采用分层softmax;

fastText模型框架

  • 输入层:embedding后多个单词及其n-gram特征,这些特征用来表示单个文档;
  • 隐含层:对多个词向量的叠加平均
  • 输出层:是文档对应的类别标签;采用分层softmax;

1.2 层次softmax(Hierarchical softmax)

1.2.1 标准softmax函数

softmax函数又称为归一化指数函数,常在神经网络输出层充当激活函数,它是二分类函数sigmoid在多分类上的推广,目的是将多分类的结果以概率的形式展现出来。下图为softma x的计算过程

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值