在给定问题的十个答案中预测正确答案

数据挖掘 深度学习 分类 预测建模
2022-02-23 21:22:36

我有一个案例研究来解决我得到一个问题及其答案的数据集,一个特定的问题有十个答案。

这是一个分类问题,其中正确答案为class_label = 1,所有其他九个答案为class_label = 0

哪种深度学习模型最适合此类案例研究,我应该如何进行?

3个回答

这不是 DL,但我建议您从以下方法开始:对于每个问题及其候选答案集,将每对表示为其标签为 0 的实例或 1. 您可以从一些简单的功能开始,例如:Q(A1,..,A10)(Q,Ai)

  • 共同词的数量
  • 相似度得分,例如余弦 TFIDF
  • ... 问题和答案匹配程度的其他指标QAi

在此基础上训练回归模型(例如决策树、SVM、...)。当模型应用于一个新的问题+答案时,它会为 10 个答案中的每一个返回一个分数(大部分在 0 和 1 之间);最后选择得分最高的答案。

您当然可以改进这个想法,例如使用句子嵌入。

注意:基于相同想法的简单基线系统将选择与问题具有最大共同词数的答案。

对我来说,基于 RNN 的模型将最适合此类需求。根据您的问题长度,您可能必须在提供的不同类型的单元格之间进行选择。

对于高长度,通常我使用 LSTM,否则简单的 RNN 单元也可以达到目的。

如果您尝试,请分享您的结果。

无论如何,您都会从词嵌入开始。像 Glove 等预训练的向量。这些是从 DL 算法派生的。因此,无论您现在采用哪种方法,您的解决方案中都已经包含了深度学习的元素。

现在让我们看看可能的方法。一种方法肯定是使用双向 GRU/LSTM 等 RNN,它将句子很好地嵌入到一个最终向量中。

然后,您可以将“注意力”带入场景。“注意”帮助您的模型在预测输出时专注于特定单词(在这种情况下,从 10 个答案之一中选择)

您还需要在答案上使用 LSTM,并对 10 个答案中的每一个进行“句子嵌入”。

所以现在你有一个问题的向量,你有 10 个答案向量,你有注意力逻辑。

最后一层应该如何实际“选择”答案?这与典型的 SQuAD 类型的场景有些不同。在这里,不必从给定的上下文中生成答案,而是找出最适用于该问题的答案。我们可以有一个 Dense 层,它接受问题嵌入并对其进行转换,使得这种转换与每个答案嵌入的点积是实际答案的指标。可以采用 softmax 来确定最可能的答案。

这是我们在考虑 QnA 系统时通常设想的新场景,因此我确信该解决方案可以进一步改进。您可以从https://www.hindawi.com/journals/wcmc/2018/2678976/获得一些想法

甚至可以尝试无监督的方法,例如检查问题和 10 个最终答案中的每一个之间的 K-最近距离,但是虽然这可能适用于简单的场景(答案彼此无关),但这种方法可能不适用于复杂的场景那些