fasttext

一、fasttext的模型结构是什么

fastText模型架构和word2vec的CBOW模型架构非常相似。
下面是fastText模型架构图:
此架构图没有展示词向量的训练过程。可以看到,和CBOW一样,fastText模型也只有三层:输入层、隐含层、输出层(Hierarchical Softmax),输入都是多个经向量表示的单词,输出都是一个特定的target,隐含层都是对多个词向量的叠加平均。不同的是,CBOW的输入是目标单词的上下文,fastText的输入是多个单词及其n-gram特征,这些特征用来表示单个文档;CBOW的输入单词被onehot编码过,fastText的输入特征是被embedding过;CBOW的输出是目标词汇,fastText的输出是文档对应的类标。

值得注意的是,fastText在输入时,将单词的字符级别的n-gram向量作为额外的特征;在输出时,fastText采用了分层Softmax,大大降低了模型训练时间。

二、基于bert的分类为啥比fasttext模型效果好

fasttext工具包中内含的fasttext模型具有十分简单的网络结构。使用fasttext模型训练词向量时使用层次softmax结构, 来提升超多类别下的模型性能。由于fasttext模型过于简单无法捕捉词序特征, 因此会进行n-gram特征提取以弥补模型缺陷提升精度。所以fasttext的缺点就是:1. 模型结构简单,所以目前来说,不是最优的模型;2. 因为使用词袋思想,所以语义信息获取有限。在这里插入图片描述
大部分词向量方法对每个词分配一个独立的词向量,而没有共享参数。特别的是,这些方法忽略了词之间的内在联系,词之间的内在联系对于形态学丰富的语言更加重要。
fastText的架构非常简单,有三层:输入层、隐含层、输出层(Hierarchical Softmax)
输入层:是对文档embedding之后的向量,包含有N-garm特征
隐藏层:是对输入数据的求和平均
输出层:是文档对应标签
如下图所示:
在这里插入图片描述
上述Fasttext存在的问题:
使用的是词袋模型,没有词序信息。(使用n-gram特征。)
当类别非常多的时候,最后的softmax 速度依旧非常慢。(类似于word2vec,使用层次softmax)

三、文本表示有哪些方法

基于one-hot、tf-idf(term frequency–inverse document frequency)TF-IDF原理及使用、textrank等的bag-of-words基于TextRank算法的文本摘要;
主题模型:LSA(latent semantic analysis)(SVD)、pLSA、LSA,pLSA原理及其代码实现 LDA一文详解LDA主题模型;
基于词向量的固定表征:word2vec、fastText、glove
基于词向量的动态表征:elmo、GPT、bert

四、fasttext相比word2vec好在哪

word2vec把语料库中的每个单词当成原子的,它会为每个单词生成一个向量。这忽略了单词内部的形态特征,比如:“apple” 和“apples”,“达观数据”和“达观”,这两个例子中,两个单词都有较多公共字符,即它们的内部形态类似,但是在传统的word2vec中,这种单词内部形态信息因为它们被转换成不同的id丢失了。
为了克服这个问题,fastText使用了字符级别的n-grams来表示一个单词。对于单词“apple”,假设n的取值为3,则它的trigram有
“<ap”, “app”, “ppl”, “ple”, “le>”
其中,<表示前缀,>表示后缀。于是,我们可以用这些trigram来表示“apple”这个单词,进一步,我们可以用这5个trigram的向量叠加来表示“apple”的词向量。这带来两点好处:

  1. 对于低频词生成的词向量效果会更好。因为它们的n-gram可以和其它词共享。
  2. 对于训练词库之外的单词,仍然可以构建它们的词向量。我们可以叠加它们的字符级n-gram向量。

五、fastText为什么效果比较好

使用词embedding而非词本身作为特征,这是fastText效果好的一个原因;
另一个原因就是字符级n-gram特征的引入对分类效果会有一些提升 。

六、怎样才算是一个好的Embedding

ELMo的作者认为一个好的embedding需要满足两个条件:
(1)能够捕捉到语法和语义信息
(2)能够区分一词多义的情况

七、fastText相比深度学习的分类方法,有什么优势

FastText是一个快速文本分类算法,与基于神经网络的分类算法相比有两大优点:

  1. FastText在保持高精度的情况下加快了训练速度和测试速度
  2. FastText不需要预训练好的词向量,FastText会自己训练词向量
  3. FastText两个重要的优化:Hierarchical Softmax、N-gram
    FastText模型架构和 word2vec 中的 CBOW 很相似, 不同之处是FastText预测标签而CBOW预测的是中间词,即模型架构类似但是模型的任务不同。

八、参考文献

  • https://zhuanlan.zhihu.com/p/67099007
  • https://zhuanlan.zhihu.com/p/356703993
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值