今天是2023年12月23日,星期六,北京,天气晴。
最近有人来问事理图谱的事情,之前写过一个工作,感觉还是有必要再次发出来,供大家看看。
事理图谱是过去一年来比较火的一个方向,其靠着主打推理预测这一特点,通过构建以事件为核心,事件之间因果等关系,形成传导推理链,一度被认为大有可为。
但目前大模型席卷之下,事理图谱从推理端,从构建侧,在大模型看来又是怎样的性能,是否有惊艳的表现。
为了解决这个问题,本文从应用搜索,图谱构建,脚本预测三个角度进行介绍,供大家参考。
一、大模型实现常见因果链查询
在之前放出的事理图谱demo中,会有因果查询,原因溯源,以及带概率预测等功能,我们来看下,直接用大模型来回答。
我们直接以chatgpt3.5来查询,效果很不错。具体如下:
首先,因果查询
输入原因事件:
{
"input_text": "请列出十条关于“地震会导致哪些影响”的答案,以列表返回"
}
可以得到结果:
{
“response”: “
1. 地震可能导致建筑物倒塌,道路破坏,以及造成人员伤亡。n
2. 地震可能导致水坝决堤,水库泄漏,以及造成能源和粮食短缺。n
3. 地震可能导致山体滑坡,道路堵塞,以及造成交通瘫痪。n
4. 地震可能导致海啸,造成海岸线破坏和人员死亡。n
5. 地震可能导致火山爆发,造成人员死亡和财产损失。n
6. 地震可能导致局部地区环境污染,导致生态系统崩溃。n
7. 地震可能导致政府失灵,经济崩溃,以及社会动荡。n
8. 地震可能导致动植物死亡和灭绝。n
9. 地震可能导致大规模通信中断。n
10. 地震可能导致全球气候变暖,导致海平面上升,造成更多灾害。”
}
其次,因果传导查询,以链式的形式进行发问,也可以得到传到链条。
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、因果关系抽取
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: candidatesn, 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".
总结
本文主事理图谱是过去一年来比较火的一个方向,其靠着主打推理预测这一特点,通过构建以事件为核心,事件之间因果等关系,形成传导推理链,一度被认为大有可为。
可以看到的是,无论是推理,还是搜索,大模型在事理图谱上都有很强的替代性,尤其是在推理阶段,目前的COT能力正是大模型的魅力所在。
不过,正如老刘之前常说的,事理图谱,好好的向事件本体,事件schema发展,或许才有更大的出路。
参考文献
1、https://tianchi.aliyun.com/competition/entrance/532080/information
关于我们
老刘,刘焕勇,NLP开源爱好者与践行者,主页:https://liuhuanyong.github.io。
老刘说NLP,将定期发布语言资源、工程实践、技术总结等内容,欢迎关注。
对于想加入更优质的知识图谱、事件图谱实践、相关分享的,可关注公众号,在后台菜单栏中点击会员社区->会员入群加入。