Machine learning 多类分类问答的损失函数?

Machine learning 多类分类问答的损失函数?,machine-learning,data-science,loss-function,multiclass-classification,question-answering,Machine Learning,Data Science,Loss Function,Multiclass Classification,Question Answering,我正在处理一个问答问题,数据有限(约10000个数据点),上下文/问题以及选项/选项的功能很少。鉴于: 问题Q和 选项A、B、C、D、E(每个选项都有一些特征,例如,与Q的字符串相似性或每个选项中的字数) (训练时)一个单一的正确答案,比如说B 我希望准确预测其中一个答案。但我被困住了,因为: 如果我将地面真相排列为[0 1 0 0 0 0 0],并将QABCDE的串联作为输入,那么模型将表现为将图像分类为狗、猫、鼠、人、鸟,即每个类都有一个含义,但这里不是这样。如果我将输入切换到QBCDE

我正在处理一个问答问题,数据有限(约10000个数据点),上下文/问题以及选项/选项的功能很少。鉴于:

  • 问题Q和

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

  • (训练时)一个单一的正确答案,比如说B

我希望准确预测其中一个答案。但我被困住了,因为:

  • 如果我将地面真相排列为[0 1 0 0 0 0 0],并将QABCDE的串联作为输入,那么模型将表现为将图像分类为狗、猫、鼠、人、鸟,即每个类都有一个含义,但这里不是这样。如果我将输入切换到QBCDEA,则预测值应为[1 0]

  • 如果我将每个数据点拆分为5个数据点,即QA:0、QB:1、QC:0、QD:0、QE:0,那么模型无法了解它们实际上是相互关联的,并且只能将其中一个预测为1

  • 一种似乎可行的方法是制作一个自定义损失函数,该函数对单个问题惩罚多个1,同时也惩罚0个1。但我想我可能遗漏了一些非常明显的东西:/


    我也知道像伯特这样的大型模型是如何在类似团队的数据集上实现这一点的。他们将位置嵌入添加到每个选项中(例如,A获取1,B获取2),然后使用QA1 QB2 QC3 QD4 QE5上的某种连接作为输入,[0 1 0 0 0]作为输出。不幸的是,考虑到我拥有的数据集非常小,我认为这在我的情况下是行不通的。

    您遇到的问题是您从“基本事实”中删除了所有有用的信息。训练的目标不是ABCDE标签——目标是这些字母所代表的答案的特征

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

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

    多标签模型应该能够处理这种情况。这将包括那些标记照片、识别输入中表示的多个类的内容

    这能让你动起来吗


    对OP评论的回应

    您理解正确:预测五个任意响应的0/1对模型来说毫无意义;单字母变量仅具有短暂的意义,与任何可训练的内容无关

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


    你需要完全忽略ABCDE的名称;目标信息是答案本身,而不是那些字母。由于您尚未发布任何示例案例,因此我们没有什么可供参考的替代方法

    如果您的范例是典型的多项选择题考试,对问题和答案几乎没有限制,那么您要解决的问题远远大于您的项目可能要解决的问题——您处于“沃森”领域,需要大量的知识库和强大的NLP系统来解析输入和可用的回答

    如果你对答案有一个限制性的范式,也许你可以把它们解析成短语和关系,在训练中产生一组有限的类来考虑。在这种情况下,多标签模型很可能能够解决您的问题


    如果你的应用程序是开放式的,即开放主题,那么我期望你需要一个不同的模型类(比如伯特),但是你仍然需要把五个答案看作文本序列,而不是字母。你需要与手头的主题进行整体匹配。如果这是一个典型的多项选择题考试,那么你的模型仍然会有分类问题,因为所有五个答案都可能是关于主题的;找到正确答案应该取决于对问题和答案的某种程度的语义洞察,这比“单词袋”处理更有力。

    嗨,你答案的第一部分很鼓舞人心!您的意思是,由于这5个选项只是从N个可能的选项/类别中任意选择的,这些选项/类别由一组功能定义,因此预测0和1并不重要,模型应该直接预测一组功能,对吗?考虑到可能存在的特征值的巨大空间,我仍然无法确定如何对目标向量建模。此外,我无法理解最后一部分,我认为当你说“识别输入中表示的多个类”时,你假设了多标签设置。我只有一个答案是正确的。是的,
    多标签
    是正确的术语;我编辑了我的答案。一个显而易见的解决方案是使用图形模型或任何形式的结构化预测来添加先验知识,即其中只有一个是正确的。但我认为,从我过去使用图形模型的经验来看,这将是非常耗时的。