转载公众号 | 老刘说NLP
事理图谱是过去一年来比较火的一个方向,其靠着主打推理预测这一特点,通过构建以事件为核心,事件之间因果等关系,形成传导推理链,一度被认为大有可为。
但目前大模型席卷之下,事理图谱从推理端,从构建侧,在大模型看来又是怎样的性能,是否有惊艳的表现。
为了解决这个问题,本文从应用搜索,图谱构建,脚本预测三个角度进行介绍,并在最后介绍一个基于指令微调的评测任务,供大家参考。
一、大模型实现常见因果链查询
在之前放出的事理图谱demo中,会有因果查询,原因溯源,以及带概率预测等功能,我们来看下,直接用大模型来回答。
我们直接以chatgpt3.5来查询,效果很不错。具体如下:
首先,因果查询
输入原因事件:
{"input_text": "请列出十条关于“地震会导致哪些影响”的答案,以列表返回"
}
可以得到结果:
{"response": "1. 地震可能导致建筑物倒塌,道路破坏,以及造成人员伤亡。\n2. 地震可能导致水坝决堤,水库泄漏,以及造成能源和粮食短缺。\n3. 地震可能导致山体滑坡,道路堵塞,以及造成交通瘫痪。\n4. 地震可能导致海啸,造成海岸线破坏和人员死亡。\n5. 地震可能导致火山爆发,造成人员死亡和财产损失。\n6. 地震可能导致局部地区环境污染,导致生态系统崩溃。\n7. 地震可能导致政府失灵,经济崩溃,以及社会动荡。\n8. 地震可能导致动植物死亡和灭绝。\n9. 地震可能导致大规模通信中断。\n10. 地震可能导致全球气候变暖,导致海平面上升,造成更多灾害。"
}
其次,因果传导查询,以链式的形式进行发问,也可以得到传到链条。
prompt: 请列出十条关于“地震会产生哪些链式反应,请以传导链条形式输出,节点以->符号进行连接”的答案,如a->b->c->d的形式,以列表返回response: 以下是地震会产生的一些链式反应,按照传导链条形式输出:1. 地震->建筑物损坏->人员伤亡->紧急救援
2. 地震->火灾->爆炸->二次灾害
3. 地震->地面塌陷->管道破裂->停水停气
4. 地震->电力中断->通信中断->信息传递困难
5. 地震->交通瘫痪->救援物资运输困难->生命线受阻
6. 地震->海啸->沿海地区水浸->农作物受灾
7. 地震->地下水位变化->地表下陷->河流水位上涨
8. 地震->河流水位上涨->堤坝破裂->洪水灾害
9. 地震->地质构造变化->地下水流方向改变->水源受到污染
10. 地震->社会心理恐慌->社会秩序失控->社会稳定受影响
多层因果推理,继续查询,效果如下:
prompt: 请列出十条关于“地震会产生哪些链式反应,请以传导链条形式输出,节点以->符号进行连接”的答案,如a->b->c->d的形式,链路的长度可以尽可能长,但不要超过10个节点,以列表返回response:
1. 地震 -> 地面震动 -> 建筑物受损 ->电力系统中断 -> 通信中断 -> 救援行动受阻
2. 地震 -> 地面震动 ->土石流 -> 道路、桥梁损坏 -> 交通中断 -> 救援行动受阻
3. 地震 -> 地面震动 ->海啸 -> 滨海地区受灾 -> 渔业、旅游业受影响 -> 经济损失
4. 地震 -> 地面震动 ->地下水位下降 -> 地下水资源枯竭 -> 农业生产受损 -> 粮食供应减少
5. 地震 -> 地面震动 ->断层形成 -> 新的地震危险区域形成 -> 地震后续灾害风险增加
6. 地震 -> 地面震动 ->火山喷发 -> 空气污染 -> 环境恶化 -> 公共健康受威胁
7. 地震 -> 地面震动 ->能源供应中断 -> 工业生产减缓 -> 就业机会减少 -> 社会稳定性下降
8. 地震 -> 地面震动 ->房价下降 -> 地产业陷入困境 -> 土地出让收益减少 -> 地方财政收入减少
9. 地震 -> 地面震动 ->文物遗产损失 -> 文化遗产保护困难 -> 历史文化遗产价值下降
10. 地震 -> 地面震动 ->心理健康受损 -> 心理疾病增加 -> 心理咨询需求增加 -> 心理服务压力增加
原因溯源,反着查,通过事件找原因,效果如下:
prompt: 请列出十条关于“导致脱发的原因传导链路,请以传导链条形式输出,节点以->符号进行连接”的答案,如a->b->c->d的形式,链路的长度可以尽可能长,但不要超过10个节点,以列表返回response:
1. 偏好的基因->过度使用热器具和染发剂->头皮毛囊损伤->脱发
2. 过度紫外线曝露->头皮晒伤->毛囊损伤->脱发
3. 某些药物副作用->毛囊受损->脱发
4. 激素失调->毛囊萎缩->脱发
5. 营养不良->头皮皮脂分泌不足->营养不良毛囊->脱发
6. 头皮过敏->头皮瘙痒划痕->毛囊感染->脱发
7. 休息不足->身体机能下降->毛囊衰老->脱发
8. 精神压力大->头皮微循环受影响->营养不良毛囊->脱发
9. 甲状腺功能异常->毛囊代谢减缓->脱发
10. 皮肤真菌感染->头皮瘙痒划痕->炎症反应->毛囊萎缩->脱发
当然,事理图谱还有概率,同样可以带着概率查:
prompt: 请列出十条关于“导致脱发的原因传导链路,请以传导链条形式输出,并以”节点-概率->节点”的形式符号进行连接”,概率表示传导的概率值,一般大于0小于1。如a-0.8->b-0.4->c-0.55->d,链路的长度可以尽可能长,但不要超过10个节点,以列表返回response: 1. 压力-0.7->失眠-0.6->荷尔蒙水平异常-0.8->脱发
2. 年龄-0.6->男性激素水平上升-0.75->毛囊变得敏感-0.5->脱发
3. 饮食不均衡-0.4->维生素缺乏-0.7->毛囊无法正常生长-0.6->脱发
4. 染发或烫发-0.5->头发质量变劣-0.7->毛囊逐渐失去生长能力-0.8->脱发
5. 脸部皮肤病变-0.6->头皮皮肤及毛囊发生感染-0.7->导致毛囊受损-0.65->脱发
6. 药物滥用-0.45->掉头发的副作用-0.8->毛囊受损-0.7->脱发
7. 睡眠不足-0.55->头皮血液循环不佳-0.75->毛囊缺乏营养-0.5->脱发
8. 头皮皮脂分泌失衡-0.6->堵塞毛孔-0.4->毛囊氧气供应不足-0.7->脱发
9. 头皮过度摩擦-0.35->毛囊受损-0.8->头发生长受阻-0.6->脱发
二、基于大模型的因果抽取、结构化与脚本预测
我们现在来看看事理图谱构建中的两个重要环节,因果抽取和事件结构化,并在应用端选用脚本预测进行实验。注意:抽取任务选用chatglm6b进行实验,可以看到能够在一定程度上实现fewshot抽取。
1、因果关系抽取
1)Prompt设计
prompt = "这是一个因果关系抽取的任务,主要对金融文本中因果事件的抽取,面向的是句子级别,抽取形式为(cuase, influence, effect)三元组,其中关系只有influence一种类型,cause与effect都为金融领域的事件;例如:中国作为猪肉消费大国,猪肉价格上涨引起政府的高度重视。抽取结果为:[(猪肉价格上涨, influence, 政府的高度重视)]。也存在一个文本有多因果事件的情况,例如:印度对精炼棕榈油进口的禁令使得毛棕相油需求有所增加,而印尼推动B30的计划也会加大毛棕相油的需求,这将推动棕榈油价格在末来几个月里不断升高。 抽取结果为:[(印度对精炼棕榈油进口的禁令,influence, 毛棕相油需求有所增加), (毛棕相油需求有所增加,influence,棕榈油价格在末来几个月里不断升高), (印尼推动B30的计划,influence,加大毛棕相油的需求), (加大毛棕相油的需求,influence,棕榈油价格在末来几个月里不断升高)]。 那么,给定句子“{input_text}”,抽取结果为:"
2)抽取效果
给定句子:“文化纸:学生复学叠加党建需求向好,行业景气筑底回升Q2受需求不振和库存偏高等因素影响,铜版纸/双胶纸价环比下隆10%/15%至5647/5455元/屯,行业内中小个业慕本外千不盈利状态”,
抽取结果为:
(文化纸行业景气筑底回升, influence, 学生复学叠加党建需求向好),(学生复学叠加党建需求向好, influence, 行业景气筑底回升),(行业景气筑底回升, influence, 学生复学叠加党建需求向好),(学生复学叠加党建需求向好, influence, 行业景气筑底回升, effect, 铜版纸/双胶纸价环比下隆10%/15%至5647/5455元/屯),(铜版纸/双胶纸价环比下隆10%/15%, influence, 行业内中小个业慕本外千不盈利状态)。"
给定句子:“货运行业盈利水平大幅度缩水是卡车需求不旺的主要原因”
抽取结果:
(货运行业盈利水平大幅度缩水, cause,卡车需求不旺)
给定句子:尿素:随着天气转暖,春耕、北方小麦返青肥、南方水稻用肥需求增加,价格稳中上涨
抽取结果:
(尿素价格, influence, 天气转暖,春耕,北方小麦返青肥,南方水稻用肥需求增加),
(天气转暖, influence, 春耕,北方小麦返青肥,南方水稻用肥需求增加),
(春耕, cause, 北方小麦返青肥,南方水稻用肥需求增加),
(北方小麦返青肥, influence, 南方水稻用肥需求增加,尿素价格继续上涨),
(南方水稻用肥需求增加, influence, 尿素价格继续上涨),
(尿素价格继续上涨, influence, 天气转暖,春耕,北方小麦返青肥,南方水稻用肥需求增加)。
2、基于微调模型的事件主谓宾抽取
1)Prompt设计
prompt = 这是一个事件要素抽取的任务,该任务旨在从文本中抽取主谓宾三元组(主语,谓语,宾语),其中谓语不能为空,主语或宾语可以缺失一项。例如,给定文本:“国家体育总局社会体育指导中心联合多位知名运动员”,输出结果为:[(国家体育总局社会体育指导中心, 联合, 多位知名运动员)]\n给定文本:“铁矿石股价暴跌”, 输出结果为:[(铁矿石股价,暴跌,)],现在给定文本:“{text}”,输出结果为:"
2)抽取效果
给定事件:“货运行业盈利水平大幅度缩水”
抽取结果:
(货运行业,盈利水平,大幅度缩水)
给定事件:“货运行业盈利水平大幅度缩水”
抽取结果:
(毛棕相油,需求,增加)
3、脚本推理预测
脚本预测是常用的事理图谱推理评测方式,代表评测室多选项完形填空(multiple choice narrative cloze,MCNC),该方法是由Granroth-Wilding M等人提出的。在MCNC任务中,完整的事件链中存在某处缺失,给定多个候选的后续事件,模型需要从多个候选项中选择最符合逻辑的一项内容。
其中,事件链可以是预先构建好的事件链条,可以基于此直接使用prompt进行推理,以下几个例子都回答正确。
由于英文问题,下面选用chatgpt进行测试。
1)数据样例
{
'context': ['prisoner forced woman',
'prisoner raped her',
'charges escaped from hospital',
'prisoner held on charges'], 'answer': 'inmate escaped through window','candidates': ['inmate escaped through window',
'love follows james', 'they learned from her',
'she turned it', 'it reduce by half',
'games shown in search',
'officials arrived in york'], }
2)prompt设计
'prompt': "it's a Multiple-Choice Narrative Explanation task for predict what happen next, given an start event sequences consists of several single event in an form of 'subject|predicate|object', you should select the correct ending answer from the ending candidates, please return the correct answer directly.\n the start event sequences {context}\n the ending candidates: candidates\n, tplease select the correct ending event answer:"
3)实际效果
输入:
{
'context': ['prisoner forced woman',
'prisoner raped her',
'charges escaped from hospital',
'prisoner held on charges'], 'answer': 'inmate escaped through window','candidates': ['inmate escaped through window',
'love follows james', 'they learned from her',
'she turned it', 'it reduce by half',
'games shown in search',
'officials arrived in york'], }
输出:
Based on the given start event sequences, the most appropriate ending event would be "inmate escaped through window".
输入:
{
'context': ['johnson performed ceremony', 'johnson priest of catholic', 'bride met at university', 'she received from university'],
'answer': 'she graduated from harvard',
'candidates': ['he change allow apartments', 'she graduated from harvard', 'organizers urged into 1996', 'company derived from chants', 'back chairman in row', 'services bar in areas', 'she bore in france'],}
输出:
The correct ending event would be: "she graduated from Harvard".
三、指令驱动的自适应知识图谱构建评测
指令驱动的自适应知识图谱构建(InstructionKGC)是一种以用户指令为基础,实时更新和优化知识图谱结构的方法。
这种方法的核心目标是根据用户需求调整知识图谱的表示,从而实现更准确、更高效的信息检索和推理,以满足开放环境下高效知识图谱构建的需求。
在指令驱动的自适应知识图谱构建过程中,系统(如大模型)首先接收用户指令,识别其意图和需求。
然后,根据指令内容,系统会基于输入的文本抽取相应的实体关系三元组以构建知识图谱。如果有知识缺失的情况,系统会根据用户指令中的补全需求实现对知识图谱的补全。
这种方法的优点在于它可以实现知识图谱的定制计划构建。通过自适应调整,知识图谱能够更好地满足不同用户在不同场景下的需求。
此外,指令驱动的自适应知识图谱构建方法还可以提高知识图谱的可扩展性,使其能够在面对新的数据和任务时进行有效适应。
CCKS2023针对这一任务,设立了一个评测任务,
地址:https://tianchi.aliyun.com/competition/entrance/532080/information
2、任务目标
根据用户输入的指令抽取相应类型的实体和关系,构建知识图谱。其中10%指令包含了知识图谱补全,即任务需要模型在抽取三元组的同时对缺失三元组进行补全。
1)知识图谱构建任务
输入一段文本input和instruction(包括想要抽取的关系类型),以“(头实体,关系,尾实体)”的形式输出input中包含的所有关系三元组output。
instruction="已知候选的关系列表:['父母','配偶'],请你根据关系列表,从以下输入中抽取出可能存在的头实体(Subject)与尾实体(Object),并给出对应的关系三元组。请按照(Subject,Relation,Object)的格式回答。"
input="2008年6月23日,刘德华与朱丽倩在美国拉斯维加斯注册结婚。2012年5月9日,朱丽倩在香港养和医院产下女儿刘向蕙。刘向蕙出生后,少数看过刘向蕙面貌的圈内人士称,女儿的耳朵像刘德华,长得眉清目秀。"
output="(刘德华,配偶,朱丽倩),(刘向蕙,父母,刘德华),(刘向蕙,父母,朱丽倩)"
2)知识图谱补齐任务
在输入miss_input(input中缺失了一段文字,input仍然通顺)和instruction的情况下,模型仍然能够补齐缺失的三元组,输出output。下面是一个例子:
instruction="已知候选的关系列表:['父母','配偶'],请你根据关系列表,从以下输入中抽取出可能存在的头实体(Subject)与尾实体(Object),并给出对应的关系三元组。请按照(Subject,Relation,Object)的格式回答。"
miss_input="2012年5月9日,朱丽倩在香港养和医院产下女儿刘向蕙。刘向蕙出生后,少数看过刘向蕙面貌的圈内人士称,女儿的耳朵像刘德华,长得眉清目秀。"
output="(刘德华,配偶,朱丽倩),(刘向蕙,父母,刘德华),(刘向蕙,父母,朱丽倩)"
虽然miss_input中不包含“2008年6月23日,刘德华与朱丽倩在美国拉斯维加斯注册结婚。”这段文字,但是模型能够补齐缺失的三元组,(刘德华,配偶,朱丽倩),(刘向蕙,父母,刘德华)。
3、任务数据格式
在初赛训练集和验证集发布阶段,发布5000条左右的知识图谱数据作为训练集。这5000条数据是使用维基数据对中文维基百科进行远程监督标注的弱监督数据,所以可能会存在一些错误。
{"id":12125,"cate":"事件","instruction":"已知候选的关系列表:['军事冲突', '参与者', '类型'],请你根据关系列表,从以下输入中抽取出可能存在的头实体(Subject)与尾实体(Object),并给出对应的关系三元组。请按照 (Subject,Relation,Object) 的格式回答。","input":"安禄战役,是越南战争后期的一场战斗,北越在1972年4月13日至7月20日,越南人民军及越共对南越展开的复活节攻势其中一场战斗。最终南侵的越共第5师、第9师被南越陆军第5师击退,守住安禄。","output":"(越南战争,军事冲突,越南人民军),(越南战争,参与者,北越),(越南战争,参与者,越共),(安禄战役,类型,越南战争),(复活节攻势,类型,越南战争)","kg":[["越南战争","军事冲突","越南人民军"],["越南战争","参与者","北越"],["越南战争","参与者","越共"],["安禄战役","类型","越南战争"],["复活节攻势","类型","越南战争"]]
}
总结
本文主事理图谱是过去一年来比较火的一个方向,其靠着主打推理预测这一特点,通过构建以事件为核心,事件之间因果等关系,形成传导推理链,一度被认为大有可为。
本文从应用搜索,图谱构建,脚本预测三个角度进行介绍,并在最后介绍了一个基于指令微调的评测任务。
可以看到的是,无论是推理,还是搜索,大模型在事理图谱上都有很强的替代性,尤其是在推理阶段,目前的COT能力正是大模型的魅力所在。
不过,正如老刘之前常说的,事理图谱,好好的向事件本体,事件schema发展,或许才有更大的出路。
参考文献
1、https://tianchi.aliyun.com/competition/entrance/532080/information
OpenKG
OpenKG(中文开放知识图谱)旨在推动以中文为核心的知识图谱数据的开放、互联及众包,并促进知识图谱算法、工具及平台的开源开放。
点击阅读原文,进入 OpenKG 网站。