问答功能的损失函数构成为多类分类?

时间:2019-08-29 21:45:45

标签: machine-learning data-science loss-function multiclass-classification question-answering

我正在研究一个数据有限(大约10,000个数据点)且上下文/问题以及选项/选择的功能很少的问题解答。鉴于:

  • 问题Q和

  • 选项A,B,C,D,E(每个选项都有一些特征,例如,与Q的字符串相似性或每个选项中的单词数)

  • (在训练中)一个正确的答案,例如B。

我希望准确地预测其中之一作为正确答案。但是我被卡住是因为:

  1. 如果我将地面真理设置为[0 1 0 0 0],并将QABCDE串联作为输入,则模型的行为就像将图像分类为狗,猫,大鼠,人,鸟,也就是说,每个类都有其含义,但是在此情况并非如此。如果我将输入切换为QBCDEA,则预测应该为[1 0 0 0 0]。

  2. 如果我将每个数据点分成5个数据点,即QA:0,QB:1,QC:0,QD:0,QE:0,则该模型将无法得知它们实际上是相互关联,并且只能预测其中之一。

一种可行的方法是创建一个自定义损失函数,该函数对单个问题惩罚多个1,同时对任何一个惩罚都不惩罚。但我想我可能会在这里遗漏一些非常明显的东西:/

我还知道像BERT这样的大型模型在像SQuAD这样的数据集上可以做到这一点。他们向每个选项添加位置嵌入(例如,A获得1,B获得2),然后在QA1 QB2 QC3 QD4 QE5上使用某种级联作为输入,并[0 1 0 0 0]作为输出。不幸的是,鉴于我拥有的数据集非常小,我认为这在我的情况下将行不通。

1 个答案:

答案 0 :(得分:0)

您遇到的问题是您已从“真实情况”中删除了所有有用的信息。培训的目标不是ABCDE标签,而是这些字母简要表示的答案的特征。

这五个标签仅仅是分类的数组下标,这些分类是训练空间的5Pn(从n个中选择5个对象)混洗子集。底线:这些标签中没有信息

相反,从这些答案中提取突出的特征。您的培训需要找到与问题充分匹配的答案(特征集)。因此,您正在做的事情接近于多标签训练。

多标签模型应处理这种情况。这将包括为照片加标签的标签,并标识输入中代表的多个类别。

这会让你动起来吗?


回复OP评论

您正确理解:预测五个任意响应的0/1对模型没有意义;单字母变量仅具有暂时性含义,与任何可训练的变量均无关。

简短的思想实验将证明这一点。假设我们对答案进行排序,使得A始终是正确答案;这不会更改输入和输出中的信息;这是多项选择测试的有效安排。 训练模型;我们将在短期内达到100%的准确性。现在,考虑模型权重:模型从输入中学到了什么?没什么-权重将训练以忽略输入并选择A,或者具有得出A结论的绝对任意值。


您需要完全忽略ABCDE名称;目标信息在答案本身中,而不是在这些字母中。由于您尚未发布任何示例案例,因此我们无法为我们提供替代方法的指导。

如果您的范例是典型的多项选择考试,并且对问题和答案的限制很少,那么您要解决的问题远远大于您的项目可能解决的问题-您属于“沃森”领域,需要庞大的知识库和强大的NLP系统来解析输入和可用响应。

如果答案的范式有限,也许您可​​以将其解析为短语和关系,从而产生一组有限的课程供您在培训中考虑。在这种情况下,多标签模型很可能可以解决您的问题。

如果您的应用程序是开放式的,即开放的主题,那么我希望您需要一个不同的模型类(例如BERT),但是您仍然需要将这五个答案视为文本序列,不是作为字母。您需要与当前主题全面匹配。如果这是典型的多项选择题考试,那么您的模型仍然会遇到分类问题,因为所有五个答案都可能与主题有关。找到正确答案应该取决于对问答的语义理解,这要比“词袋”处理要强。