假设我们有两个电影评论数据集;一份来自 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 部电影。
需要考虑的一些事项:
- IMDB 和 RT 没有所有相同的电影(即不是重复观察问题)
- 每个数据集都有本地单词。即“烂”这个词可能是 RT 上的常用词,但从未出现在 IMDB 数据集中。
- 结果衡量标准不同。RT 使用 5 星等级,而 IMDB 使用 10 星等级。
我们如何处理这种异质性?