如何在 NLP 中实现增量学习

Posted

技术标签:

【中文标题】如何在 NLP 中实现增量学习【英文标题】:How to implement incremental learning in NLP 【发布时间】:2020-04-02 08:37:47 【问题描述】:

我们正在构建一个系统,在该系统中,我们将从最初的非常少量的训练数据开始。 工作是将传入的数据(文档,对于我们的案例)分为 2 类:A 类和 B 类。 数据是 document ,因此用户需要将 Document 分类为 Category A 或 Category B。 因此,在数据量有限的情况下,我们创建了经过训练的数据集,并开始使用经过训练的数据集预测下一个文档的类别。

现在,如果预测正确,用户将移动到下一个文档。 但是如果预测不正确,则用户输入正确的类别(假设类别 A 是系统预测的,其中对数据的正确分配应该是类别 B)。所以现在系统应该使用这种学习(B 类而不是 A 类)来近乎实时地丰富(学习)自己。

它应该只训练添加的数据,而不是已经训练的完整数据集。所以应该是增量学习。 对于分类,我们将应用朴素贝叶斯分类。

现在的问题是:

我们如何实施增量训练,而不训练 每次都是整个数据集? 我知道有增量学习库,例如 Vowpal Wabbit 和 奶油。对于我的情况,使用这些库会是一个很好的解决方案吗?

【问题讨论】:

我正在为这种确切情况寻找解决方案,但同时使用基于深度学习的分类器.. 【参考方案1】:

免责声明:我是creme 的主要开发者之一。

Creme 似乎是解决您问题的正确方法。 creme 的目标之一正是通过观察来训练观察,而不是每次都对整个数据集进行训练。

如果您想要一个使用 creme 的示例,其中数据集最初很小并随着时间的推移而增长,您可以找到一个 here。

【讨论】:

以上是关于如何在 NLP 中实现增量学习的主要内容,如果未能解决你的问题,请参考以下文章

如何在jpa中实现自动增量

SQOOP增量抽取时,在HIVE中实现类似Oracle的merge操作

如何避免 BigQuery 中的 Power BI 增量刷新重复查询?

如何将三个选择查询合并为一个,以在 Oracle 中实现如下所需的结果?

向量迭代器不是增量的

R中的for循环,增量