文档分类中 fasttext 和 DAN 有什么区别?

数据挖掘 机器学习 神经网络 word2vec 类似文件
2021-09-14 07:51:56

我遇到了两篇有趣的论文,它们描述了使用词嵌入进行文档分类的有前景的方法。

1.fasttext 算法

在论文Bag of Tricks for Efficient Text Classification中进行 描述。

(这里有进一步的解释)。

2. DAN

在论文Deep Unordered Composition Rivals Syntactic Methods for Text Classification中进行 描述。

问题:

两种方法有什么区别?

它们本质上是否相同,因为它们似乎都是平均词嵌入并通过 MLP 传递它,还是我错过了一些关键的东西?

1个回答

第一个最重要的区别在于,当使用 fasttext 时,您正在训练语言模型,即您自己的嵌入向量,而 DAN 是一种架构(不是语言模型),需要随机初始化嵌入层(然后与其他层一起训练)或使用预先训练的嵌入,如 GloVe(甚至是快速文本向量!)。

DAN 在某种意义上已经变得流行起来(尽管我之前从未看过这篇论文)。如果您需要在段落或文档级别执行某些任务,那么在将单个单词的嵌入向量馈送到密集层之前对其进行平均是一种常见的做法。

只是为了添加一些快速文本嵌入的特性,它们不是针对单个单词进行训练,而是针对 n-gram 进行训练。因此,在从中学习嵌入的语料库的预处理过程中,单词被分成几个字符块。例如:

'matter' 会变成 [ma, mat, att, tte, ter, er]

然后为每个块(如“ma”或“mat”)学习一个独特的嵌入。训练遵循 word2vec 向量的相同逻辑,这意味着模型尝试从每个块中预测上下文块。为每个块学习嵌入的优势依赖于这些向量学习经典令牌级嵌入通常错过的特定形态特征的能力。

如果它可能有帮助,对于关于词嵌入的一个很好的调查,我建议看看这个