信息抽取(IE)——从非结构化文本中抽取出结构化信息——是自然语言处理领域的一项基础任务,直接影响问答系统、知识图谱构建等下游应用。正因如此,评估ChatGPT在信息抽取上的表现,不仅是检验它“能不能干活”,更是衡量它“听懂人话”到什么程度的关键指标。

论文:Is Information Extraction Solved by ChatGPT? An Analysis of Performance, Evaluation Criteria, Robustness and Errors
地址:https://arxiv.org/pdf/2305.14450.pdf
代码:https://github.com/RidongHan/Evaluation-of-ChatGPT-on-Information-Extraction
这篇研究从性能、评估标准、鲁棒性和错误类型四个维度,系统评估了ChatGPT在信息抽取任务上的能力。下面逐一展开。
实验
实验设置
任务和数据集
实验覆盖了4类常见的信息抽取任务:命名实体识别(NER)、关系抽取(RE)、事件抽取(EE)和基于方面的情感分析(ABSA),一共包含14个子任务。
- NER任务:CoNLL03、FewNERD、ACE04、ACE05-Ent、GENIA
- RE任务:CoNLL04、NYT-multi、TACRED、SemEval 2010
- EE任务:ACE05-Evt、ACE05+、CASIE、Commodity News EE
- ABSA任务:D17、D19、D20a、D20b(均来自SemEval Challenges)
数据集覆盖了不同领域和难度,为后续对比提供了扎实的基础。
实验结果
1、性能

从图中可以明显捕捉到几条规律:
- ChatGPT与当前SOTA方法之间存在着不容忽视的性能鸿沟;
- 任务越难,差距越大;
- 场景越复杂,差距也越明显;
- 但在一些简单场景下,ChatGPT的表现能追平甚至超过SOTA;
- 引入few-shot ICL提示后,F1值平均提升了3.0~13.0,但依然远落后于SOTA;
- 相比之下,few-shot COT提示反而没有稳定优势,有时还会拖后腿。
2、对性能差距的再思考

通过人工检查ChatGPT的输出,研究者发现它倾向于识别出比人工标注更长的span——更接近人类的偏好。于是问题来了:用严格的硬匹配(hard-matching)去评估ChatGPT是否公平?为此,论文提出了一种软匹配(soft-matching)策略:只要生成span和标注span存在包含关系,且相似度达到某个阈值,就认为结果正确。算法流程如下。

换上软匹配之后,结果发生了显著变化:所有子任务的性能都得到了一致提升,F1值最高暴涨14.53,简单任务提升尤其明显。不过,即便用了软匹配,ChatGPT依然没能全面超越SOTA——差距还在,只是没那么刺眼了。

3、鲁棒性分析
(1)无效输出

整体来看,ChatGPT很少输出完全无效的回复。但在RE-Triplet子任务上,无效输出占比竟然高达25.3%。原因或许在于这个子任务的格式和逻辑比常规任务更特殊,ChatGPT一时难以适应。
(2)无关上下文
ChatGPT对提示的措辞极其敏感,那如果在输入文本前后随机插入一段完全不相关的上下文(不含任何目标信息),会发生什么?实验结果表明:大多数子任务的性能骤降,降幅最高达48.0%。不过,ABSA-ALSC和RE-RC这类依赖给定方面项或实体对进行分类的子任务,受影响较小——因为它们核心的实体信息并没有被干扰到。结论很明确:ChatGPT对无关上下文极其脆弱。

(3)目标类型的频率
真实世界的数据往往是长尾分布的:头部类型出现频繁,尾部类型寥寥无几。那么ChatGPT在尾部类型上的表现是否会拉胯?结果如图所示。

尾部类型的F1值最高只达到头部类型的75.9%,而在RE-RC和RE-Triplet子任务上,甚至不到15%。长尾问题同样困扰着ChatGPT。
(4)其他鲁棒性考察
研究者还做了一项有意思的测试:在RE-RC子任务中,实体之间的主客体顺序对于非对称关系至关重要。如果将两个实体的顺序互换,模型的结果会改变吗?结果令人吃惊——超过70%的预测结果完全不变。也就是说,ChatGPT对实体的顺序几乎不敏感,根本无法准确理解主客体关系。

4、错误类型分析

通过人工检查,研究者归纳出7种错误类型,包括Missing spans、Unmentioned spans、Unannotated spans、Incorrect span offsets、Undefined types、Incorrect types和Other。其中,“Unannotated spans”(标注数据中未标注的span被ChatGPT识别出来)是最主要的一类,占将近三分之一。这直接引发了一个值得深思的问题:现有的标注数据质量是否真的可靠?反过来看,或许也说明ChatGPT在辅助标注上具有潜力。
总结
这篇工作从性能、评估标准、鲁棒性和错误类型四个角度,对ChatGPT的信息抽取能力做了全面审计。关键结论可以归纳为:
- 性能:在zero-shot、few-shot和chain-of-thought三种设定下,ChatGPT在14个子任务上均与SOTA存在显著差距,但简单场景偶有超越。
- 评估标准:硬匹配策略并不适合评价ChatGPT,因为它倾向于输出类人的较长span。软匹配策略更契合其输出特点,能更合理地反映真实性能。
- 鲁棒性:ChatGPT很少完全摆烂,但对无关上下文和长尾实体极度敏感;在关系抽取中,实体顺序的认知几乎处于“失能”状态。
- 错误类型:“Unannotated spans”成为最突出的错误类型,既提醒我们数据标注可能有漏洞,也暗示ChatGPT有潜力成为标注助手。
