论文浅尝 | 基于事件溯因学习的复杂时间敏感问答

devtools/2024/10/24 2:30:32/

91de568ccb6c2cf35424ee36420f127e.png

笔记整理:武绍娟,天津大学博士,研究方向为自然语言处理

发表会议:CoLing 2024

1、动机

时间敏感问答是根据给定长文档回答满足特定时间戳约束的问题,被广泛应用于医疗、金融等领域事件问答。现有工作根据问题在给定文档中是否被显式提及将其分为简单和复杂两种类型并通过微调预训练语言模型在简单时间问题上取得了较大的进展,但隐含于文档中的时间信息往往被忽略,导致模型在复杂时间问题上的性能显著下降。一个直观的想法是将时间敏感问题视为目标缺失的时间事件用于匹配给定文档中的时间事件。但是,在文档中并不是所有时间事件都具有明确的时间戳。在本文中,我们提出了一个 基于事件的溯因推理框架(Event-AL),它利用图剪枝模型捕捉事件之间的时间关系以定位隐式时间事件的时间跨度。 然后设计一个溯因推理模块在获得正确目标的同时提供对应的解释。 此外,由于相同的关系可能以不同的表达方式分散在整个文档中,因此引入了基于关系的提示来指导大语言模型提取候选时间事件。大量实验和结果表明,Event-AL在时间敏感问答上的表现明显优于强基线,特别是复杂模式的EM 分数提高了 12.7%。此外,Event-AL在多答案和超难时间敏感问题也表现出巨大的优越性。

75d9dec045d3afa34249e2890a4281af.png

图1 简单和复杂模式的对比

2、亮点

Event-AL的亮点主要包括:

  • 本文利用相邻的时间事件限定模糊时间事件的发生范围,而无需明确的时间戳。

  • 本文提出了溯因推理模块在确定正确答案的同时提供相应的解释。

  • 实验表明Event-AL在困难和超困难问题上的表现远远优于强基线。此外,Event-AL 在多答案时间敏感问题上也取得了最先进的结果。

3、概念及模型

e1f4f59be65f9a2f0ef81778fc27d642.png

图2 模型的整体框架

(1)基于关系的时间抽取

考虑到给定文档通常篇幅长且内容冗余,本文构建了关系相关的prompt 指导大语言模型(LLMs)抽取所有与关系r相关的时间事件。对于文档中没有明确或完整时间戳的事件,采用‘UKN’作为替代符。本文设计了包含四个关键要素的prompt,包括任务描述I、示例D、问题中提取的关系r以及给定文档  。利用LLMs初步生成时间事件集合  ,形式化表示为:

b7f52633963a284614ce129cc3cda2ea.png

其中  ,表示在文档中所有包含关系r的事件的数量。D是选取示例的集合,其中每个示例包含关系、文档和提取的时间事件,形式化表示为  ,其中1是选择示例的数量,  是文档  中的包含关系  的事件的数量。本文遵循之前的工作,采用单个示例(1-shot),即将 1 设置为 1。

(2)事件之间的时序推理

由于抽取的时间事件在文档中并不都具有完整的时间戳,如  、  和   ,且抽取后的时间事件已经变得离散并脱离了上下文,因此,如何确定时间缺失事件的时间范围成为了下一个关键问题。为解决这一问题,本文首先构建了一个有向时间事件图  ,其中   是上一节抽取的时间事件集合,   是邻接矩阵,其元素    表示两个事件    和    之间的时序关系,具体计算方式如下:

34d96c22e686a9898035deb7b6dd2b5c.png

其中,   表示事件    的时间戳。在初始化过程中,如果事件的时间戳标记为‘UNK’,则假设该事件发生的顺序与文档中叙述顺序一致。这种假设在通常情况下是合理的,因为人们叙述事件时习惯于遵循事件发生的时间顺序。进一步地,本文利用事件时序关系抽取模型(Event Temporal Relation Extraction,简记ETRE)预测两个时间事件之间的先后顺序。该模型是在TSQA数据集上对现有的ETRE基线模型进行微调后得到的,而ETRE基线模型是在时间关系提取的基准数据集MATRES上进行了预训练。将时序关系抽取过程形式化表示为:

9e211aaf911f5cbe63002cfd39243e48.png

其中,   指的是从文档    中提取的包含时间事件    和   的最短序列且  。   是发生在    之后的下一个事件是   的预测概率分布。

在此基础上,本文基于现有的剪枝算法设计了一种针对时间顺序的图剪枝方法,通过剪除图中边的数量来缩小时间缺失事件的时间跨度,具体计算方式如下:

560e7ccabc0b605a514bcc731b153878.png

(3)基于事件的溯因推理

本文设计了溯因推理模块以预测时间依赖问题的答案并推断出最合理的解释,这对于正确回答复杂时间依赖问题至关重要,尤其是超复杂问题。具体地,对于每个时间敏感问题   ,将上一小节补全后的时间事件作为候选时间事件的集合  ,以便提供与给定文档信息一致的解释。而且每个候选时间事件    都被解析为与问题    格式相同的python元组,形式化表示为:

ce0aa56a22603f88ec5cb0de8f835592.png

由于候选时间事件和问题都是以代码的形式呈现的,本文构建了一个特定于任务的执行函数,通过 Python 求解器找到最佳匹配答案及其对应的解释,形式化表示如下:

54f6e6aeaa9f43c35c1055d4c12ee06c.png

对于每个候选事实   ,首先检查两个关键值 s, r 是否与问题    相同,以确保提取的事件在关系上与问题事件一致。为了获得最终答案 A,本文使用时间的交集作为匹配得分,将问题时间与每个候选事件的时间进行对齐。在此基础上,选择得分最高的候选事件中的目标  作为最终答案。

最后,对于每个答案 A,基于之前构建的时间事件图,可以回溯到相应的事件链,从而获得对应的解释   。

4、实验

为了验证本文提出方法的有效性和优势。我们在TimeQA和TimeReason数据集上采取了多个Baseline进行了实验。实验结果如下:

d3d2037059591dd213a2d53d37ac7850.png

同时,在单答案和多答案情况下分别做了整体实验和消融实验,结果如下:

0bd1d47a2398f549d507ac77d0a4ef3a.png

简单、复杂和超复杂时间敏感问题上的实验结果比较如下:

58c926bf5578289ceeefb0c851ab8e19.png

5、总结

在本文中,我们提出了一种新颖的时间敏感问答框架Event-AL,它在回答时间敏感问题的同时提供相应的解释。实验表明, Event-AL 在复杂甚至超复杂的时间敏感问题上的性能显著优于强基线模型,并在多答案问题中取得了新的最先进的结果。与之前的工作一样,由于预算限制,仅对少数样本进行了测试,但实验结果表明现有模型在两个测试集中都实现了相似的性能。此外,Event-AL 启发了如何通过利用序列或结构关系从显式文本中挖掘隐式表示,从而增强大语言模型在实际工作中的稳健性。 未来,我们将尝试设计一个与大型语言模型集成的归纳推理模块,以克服大语言模型带来的结果不稳定问题。


OpenKG

OpenKG(中文开放知识图谱)旨在推动以中文为核心的知识图谱数据的开放、互联及众包,并促进知识图谱算法、工具及平台的开源开放。

907d28d15f2f1e7658358bce16780a55.png

点击阅读原文,进入 OpenKG 网站。


http://www.ppmy.cn/devtools/8952.html

相关文章

Golang:GORM使用First查询日志中出现大量record not found

感觉是作者故意留下的坑吧,用了很多编程语言的orm实现,第一次发现这个问题,好在作者已经解决了 通过配置日志参数IgnoreRecordNotFoundErrortrue实现忽略数据不存在的日志 完整配置示例 newLogger : logger.New(log.New(os.Stdout, "…

设计模式-工厂模式

工厂模式 1、简单工厂 简单工厂比较简单,它的作用就是把对象的创建放到一个工厂类中,通过参数来创建不同的对象。 在分布式事务框架Seata中,如果发生异常,则需要进行二阶段回滚。 它的过程是,通过事务id找到undoLog记录,然后解析里面的数据生成SQL,将一阶段执行的S…

node端导出excel-用请求排队来限流

需求 有一个会执行luckySheet脚本并且导出excel的node接口,会在每天凌晨执行,但是文件过大时会内存溢出 之前有用worker来实现多线程(主要是避免变量污染),但这样只能保证主线程不卡死,几个子线程合起来占用…

20240420

docker 使用不添加sudo前缀 确认group: getent group如果没有docker组:sudo groupadd docker添加用户到docker组: sudo usermod -aG docker freja重启docker: sudo systemctl restart docker测试后依旧报错,如果是还是…

PHP反序列化漏洞原理(附带pikachu靶场演示)

1.反序列化概念 序列化:是将变量转换为可保存或传输的字符串的过程;实现函数是serialize()反序列化:就是在适当的时候把这个字符串再转化成原来的变量使用,就是序列化的逆过程。实现函数是unserialize() 直白一点就是:序列化是把对象转换成字节流&#…

【码农圈子】想加免费的程序员微信群的看过来

群名:码农圈子 很多人后台反应,最近有没有免费的微信技术交流社群 。今天特意写一篇文章来创建一些只有程序猿的微信群。(广告党慎入!) 这些微信技术群都是完全免费,后续也不会收取任何费用 。 群规则 …

java体育馆使用预约平台的设计与实现(springboot+mysql源码+文档)

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的体育馆使用预约平台。项目源码以及部署相关请联系风歌,文末附上联系信息 。 项目简介: 体育馆使用预约平台的…

3d世界坐标转换到某个二维平面。

有个功能需要截取某个平面的点云数据,然后计算宽高。需要将3d点投影到二维平面上。 //将3d坐标点转换为2d/*** 法向量(A, B, C)* 常量D* 原点x0,y0,z0* 方向向量(vx, vy, vz)* 投影点(x,y,z)* public static double[] Convert3DPointTo2D(double A, double B, doub…