fasttext

本文探讨了FastText这一高效文本分类模型,其结构简洁且运算速度快,适用于多种任务,准确率甚至超过复杂模型如RNN和Transformer。文章解析了FastText的网络处理流程,包括关键代码实现,以及使用nce损失函数的独特训练方式。论文还提到了分层softmax和ngram两项技巧,这些因素共同造就了FastText的高效与精准。

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

这是一个结构很简单的网络(见图1),速度非常快,在某些任务上准确率会比rnn\transformer等还要好。有没有谁能告诉我为什么简单但却有效呢?

图1fasttext网络处理流程图

关键代码也是超级简单

sentence_embeddings = tf.nn.embedding_lookup(self.Embedding,self.sentence) #参考的代码中self.Embedding是随机初始化的,应该也可以用预训练的词向量进行初始化吧
self.sentence_embeddings = tf.reduce_mean(sentence_embeddings, axis=1)
self.W = tf.get_variable("W", [self.embed_size, self.label_size])
self.b = tf.get_variable("b", [self.label_size])
logits = tf.matmul(self.sentence_embeddings, self.W) + self.b

训练时的损失函数比较特别,用的是语言模型常用的损失函数nce损失:

loss = tf.reduce_mean( 
                tf.nn.nce_loss(weights=tf.transpose(self.W), 
                               biases=self.b,                 
                               labels=labels,                 
                               inputs=self.sentence_embeddings,
                               num_sampled=self.num_sampled,  
                               num_classes=self.label_size,partition_strategy="div"))  

论文里面还提到两个trick一个是分层softmax 一个是ngram。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值