结合异构数据集以实现更强大的机器学习

数据挖掘 深度学习 数据集 情绪分析 多任务学习
2022-03-16 20:11:51

假设我们有两个电影评论数据集;一份来自 IMDB,一份来自烂番茄 (RT)。每个条目都附有书面评论和分数。连接的数据集可能看起来像

电影| 分数| 评论| 地点

狮子王|9.8|“这是有史以来最好的电影之一!”|IMDB

狮子王|4.5|“这一招绝对让我童年”|RT

等等

我们的任务是从评论中预测分数。这类似于 Kaggle IMDB 情绪分析挑战,除了我们试图从两个数据源预测一个连续变量。对于单个数据集,我们可能会在 Keras 中训练一个带有嵌入和 lstm 层的模型。在 R 中:

model <- keras_model_sequential() %>%
   layer_embedding(input_dim = features, output_dim = 32) %>%
   layer_lstm(units = 32) %>%
   layer_dense(units = 1, activation = "linear")

其中 features 是我们语料库中的单词数。

我们如何结合 IMDB 和烂番茄数据集来最大化我们的预测?

我的第一个想法是将站点列作为分类变量包含在内,然后让模型学习如何最好地组合它们。这会导致预测偏差吗?

我们也可以尝试多任务学习,但这些方法中的大多数似乎都是为了预测重复观察而设计的。例如 5 个不同的人在查看相同的 100 部电影。

需要考虑的一些事项:

  1. IMDB 和 RT 没有所有相同的电影(即不是重复观察问题)
  2. 每个数据集都有本地单词。即“烂”这个词可能是 RT 上的常用词,但从未出现在 IMDB 数据集中。
  3. 结果衡量标准不同。RT 使用 5 星等级,而 IMDB 使用 10 星等级。

我们如何处理这种异质性?

1个回答

根据您的考虑:

IMDB 和 RT 的电影并不完全相同

我会建立一个更大的电影数据集,聚合所有可用的观察结果,并在其上运行一个模型。


每个数据集都有本地单词。即“烂”这个词可能是 RT 上的常用词,但从未出现在 IMDB 数据集中。

我认为一旦您将数据聚合到更大的数据集中,这不会构成问题。此时,您可以在整个聚合语料库上运行一些 NLP 方法。让我知道你的想法。


结果衡量标准不同。RT 使用 5 星等级,而 IMDB 使用 10 星等级。我们如何处理这种异质性?

您只需要在给定的间隔(如 [0, 1])上统一尺度。然后可以比较所有选票。