NLP SBert (Bert) 用于答案比较 STS

数据挖掘 nlp 伯特
2022-02-13 10:07:09

我一直在研究一种自动化简短回答评估的好方法。本质上,老师会通过一些问题进行测试,例如:

问题:哥伦布为什么要向西航行去寻找亚洲?

答:这样他就可以通过海洋找到一条通往亚洲的新贸易路线。西班牙人在美洲的三个目标是获得大量财富、在尽可能多的土地上建立主权以及尽可能多地进行殖民的愿望。

这样我们就有了正确的答案,并希望将其与学生的答案进行比较,并根据相似性产生一个分数。我知道这不是人工评分的可靠替代品,但为了示例。

我遇到过这篇论文和代码库: https ://arxiv.org/pdf/1908.10084.pdf

https://github.com/UKPLab/sentence-transformers

这似乎是解决这个问题的理想方法,但大多数示例都是基于语义搜索的评分/排名。我质疑我是否走在正确的道路上,因为我只是在比较两个答案而不是一个集群。有经验的大神,能不能给点指导意见?

4个回答

我用过 Siamese Bert,我可以说它做得很好。然而,问题在于,在 Bert 之上微调的数据可能不一定完全代表与真实答案和学生答案之间相同的语义距离。例如,如果有一个关于工程的问题,其中一个小的词变化可能意味着完全不同的事情;SBert 仍然会发现它们非常相似,因为它们与主题相关。除非经过微调。

此外,您将无法解释相似性。如果一个学生问你为什么我的同龄人的答案更好,你将无法解释。

我的观点:我相信你可以使用这个工具来减少完全不连贯的答案,但在某些时候,需要人工评估。并且可能使用可解释的指标,例如 ROUGE 或 BLEU。我也知道,这个话题在 NLP 中非常流行,如果有或将会有现成的工具,我不会感到惊讶,但我目前不知道有一个。

@b_the_builder 不错的发现!在我看来,第一个似乎是通过使用每个单词之间的相似性来提高Word Mower 的距离。我相信仍然可能缺乏领域适应。而您提供的第二个链接出于该特定原因进行了预训练。总而言之,无论你使用什么方法,我相信在对你的语料库进行预训练之后,你都需要挑选一些具有代表性的硬匹配句子,看看它们在它们上的表现如何。如果你想确定。为了获得灵感,您可以在此处查看句子之间的语义相似性任务。

我在您的提示下尝试了 GPT-2,但并不是非常成功:

在此处输入图像描述

另外我认为它也不会考虑否定。首先,您要确定正确或部分正确和错误答案的阈值。但这是一项艰巨的任务,因为它不能很好地考虑否定陈述。例如:如果你给出两个陈述,比如托尼·斯塔克是钢铁侠,托尼·斯塔克不是钢铁侠,这纯粹是矛盾的陈述,余弦相似度会说这些陈述有些相似(即使使用 STS robera large,基准模型)这表明这不能用于答案评分。我不知道是否有任何其他方法可以解决这个问题,但这是我的经验。