一种大宗农产品价格趋势事理图谱构建方法

2023-11-07 06:34安彪王兴芬
关键词:事理三元组因果关系

安彪,王兴芬

(1.北京信息科技大学 计算机学院,北京 100192;2.北京信息科技大学 信息管理学院,北京 100192;3.北京信息科技大学 商务智能研究所,北京 100192)

0 引言

大宗农产品的市场价格呈现明显的周期性变化。在不同的价格周期中,参与市场活动的各类主体受价格趋势的影响,会做出不同的决策选择,进而成为各种交易事件的参与者。不同价格趋势下事件间的演化和因果关系呈现不同的特征。本文以生猪交易市场为例,将市场的价格趋势作为参考因素,构建上升、平稳、下降等不同价格趋势下的事理图谱,以此反映市场内的事件因果关系,辅助领域内的从业人员更好地把握市场动态,做出合理交易决策。

事理图谱是由哈工大刘挺教授团队在2017年提出的概念,其定义是一种描述事件间逻辑关系的有向图。在结构上,节点表示事件,可以是具体的表意完整的短语或句子,也可以是抽象的多元组;边表示事件关系,通常是因果、条件、顺承等关系[1]。在此概念的基础上,Li等[2]使用非及物谓语动词与关联谓语当作节点,代表所发生的事件,并以事件关系在样本中发生的频率作为事件关系边的权值,以此完成脚本事件预测任务。Ding等[3]为了更好地揭示现实世界中的事件演化规律与发展逻辑,利用更加抽象的方式对事件节点进行表示,即通过(动作,执行者,目标)的三元组方式进行呈现,在一定程度上保证了语义的完整性。

在构建事理图谱之前,需要进行事件及事件关系的抽取工作。在该步骤中,主流方法有规则匹配与深度学习两种。冯钧等[4]以寻找城市内涝成因为目标,通过设定因果关系模板抽取因果事件对,并结合手工规则构建了城市内涝事理图谱;白璐等[5]利用两种不同的神经网络模型进行事件触发词与论元抽取,构建了一套面向政治领域的事理图谱;赵文正等[6]通过军事领域内常用的事件抽取模型与事理模式抽象技术,利用双向长短期记忆(bi-directional long short term memory,BiLSTM)模型+条件随机场(conditional random field,CRF)对事件触发词及相应论元进行识别和分类,构建了军事事理图谱,并开发了相应的可视化交互分析工具。在事理图谱中,根据不同领域的特点对事件的表示方式也会有所不同,如王翠等[7]采用事件短语或句子和事件核心词汇2种方式表示涉及事件,既保证了语义完整,也具有一定的简洁性;曾子明等[8]通过基于Transformers的双向编码器表示(bi-directional encoder representations from Transformers,BERT)+k-means的组合模型对抽取后的事件进行聚类泛化,并对聚类后每个类簇进行词频统计,以词频最高的词作为泛化后的事件名称,并将其作为事理图谱中的节点。此外,事理图谱在各领域的应用方向也有所不同,如在旅游领域,可以用作旅游路线查询[9],在案件侦查领域,可以用作推演嫌疑人的行为模式,为侦察办案提供思路[10]。

本文使用规则模板匹配的方式解决事件抽取与事件关系抽取的问题,随后结合商品价格信息构建能够反映出交易环境变化情况的事理图谱,并将其应用在领域问题上,得到了较好的应用效果。

为了充分覆盖生猪市场内发生事件的类型及相互关系,本文通过对2015年1月至2022年11月的12 000篇与生猪市场相关的新闻文本进行分析,将领域事理图谱的构建流程按先后顺序分为因果三元组抽取、事件类型标注、事理图谱构建三个主要步骤,随后结合构建好的事理图谱,完成确定价格趋势下的事件推理任务。

1 领域事理图谱构建流程

事理图谱构建流程如图1所示。

图1 事理图谱构建流程Fig.1 Flow chart of event evolutionary graph construction

1.1 因果三元组抽取

在大宗农产品交易市场的事件推理问题中,事件间的因果关系是主要的分析对象。根据事件间的因果关系进行推理,可以使结果更加可靠,具有更强的逻辑性。因此本文在构建事理图谱的过程中,主要针对文本中的因果三元组进行知识抽取。通过设立一系列的抽取规则,完成原始的因果三元组抽取。因果三元组抽取示例如图2所示。

图2 因果三元组抽取示例Fig.2 Extraction example of causal triples

首先,基于因果触发词对因果提及语句进行抽取。在该步骤中,本文规定了“所以、造成、引起、导致、因此、使得、得以、带来、从而、引发、结果、促使、致使、故、促成、为此、因、原因、因为、由于、正是、之所以”共22个常用的因果触发词,并选取原始语料中2015年1月至2020年10月内的新闻语料7 820篇,从中抽取了相关语句25 500条。随后根据因果触发词在中文中的常用语法,将触发词分为单触发词与组合触发词。单触发词表示在语句中只出现一个因果触发词的情况,组合触发词则表示在同一语句中同时出现多个因果触发词的情况。由于组合触发词在实际分析过程中存在着情景多变、分析复杂等问题,本文只讨论单触发词情况。在单触发词的情况下,原始语句会被触发词从结构上划分为前后两部分,根据不同的语境,两部分会分别代表原因和结果。根据此规则又将触发词划分为“前因后果”和“前果后因”两种。最终的因果触发词及对应类型如表1所示。

基于上述触发词的语法,对抽取出的25 500条语句进行因果三元组抽取,即利用因果触发词将原始语句进行切割,按照对应语法规则将前后两部分设置为原因或结果。最终得到因果三元组13 350个。为了方便后续步骤,各三元组均标记事件发生时间,即三元组所对应的新闻发表时间。

1.2 事件类型标注

基于上述步骤所提取出的因果三元组中包含不同的事件描述26 700个,若按照因果关系直接生成事理图谱,则会造成图谱中节点过多,从而导致后续推理难度加大,推理结果可靠性降低。因此,本文通过正则匹配与事件聚类对事件进行泛化,减少事理图谱中的节点数量,避免上述问题的发生。

在事件泛化过程中,首先基于对商品产业链情况及市场背景的调研,总结出必然发生的事件类型,设定为必然性事件类型。基于文献[11]与相关专家知识总结出该领域内的8类必然性事件:养殖成本变动、传染性疾病、节假日、政策变动、养殖户情绪变动、生猪价格变动、供给端变化、需求端变化。8类事件所对应的动名词组合如表2所示。在各类必然性事件的类型标注中,采用了正则表达式匹配的方法,可以快速找到符合各事件类型中的动名词组合。本文将正则表达式规则设置为 “名词.*动词”或“动词.*名词”。如根据规则(养殖户|猪农|养猪人).*(惜售|囤积|压栏),便可以快速地找到包含“养殖户.*压栏”的句子“一些地区出现了养殖户压栏不出售的现象”。

表2 必然性事件类型动词、名词触发词组合Table 2 Verb, noun trigger word combination of inevitable event type

随后,为了对因果三元组中与必然性事件无法匹配的事件描述进行事件类型标注,本文采用了一种融合SentenceBERT、k-means与TextRank的方法。该方法首先对事件描述进行聚类,随后提取聚类后各类别的关键词,算法流程如算法1所示。随后通过人工定义的方式对算法所得到的关键词进行总结,定义非必然性事件的类型。

算法1:融合SentenceBERT、k-means与TextRank的事件类型关键词提取输入:未标注事件集Event_List输出:各类事件关键词列表Keyword_List流程:1.初始化T1~T4四类事件的聚类中心C1~C42.for事件e in Event_List:基于SentenceBERT生成e与C1~C4的句向量,计算与e最相似的聚类中心,并将e归为该类事件3.计算T1~T4四类事件的聚类中心是否与C1~C4相同,若相同,则执行4;若不同,更新聚类中心并返回24.对T1~T4四类事件进行分词、去停用词后通过TextRank提取关键词,生成列表Keyword_List

在聚类过程中,为了充分利用事件描述的语义信息,选取了对语义相似性度量更加友好的SentenceBERT模型[12],来完成对各事件描述语句的向量化表示。SentenceBERT模型采用了孪生网络结构(如图3所示),在BERT的基础上增加了池化层,以便得到更好的句向量。图中u、v表示模型生成的句向量,cos_sim(u,v)代表二者之间的余弦相似度。

图3 SentenceBERT模型结构Fig.3 Model structure of SentenceBERT

在SentenceBERT模型的基础上,利用k-means方法对未标注事件进行聚类。如图4所示,通过手肘法比较聚类数量k在1~8时的误差平方和(sum of the squared errors,SSE)后,得出最优k值为4。在聚类完成后,用TextRank对每一类进行关键词提取。在对关键词进行总结后得到4类非必然性事件,分别为:养殖场业绩、生猪相关进出口贸易、业内分析人员意见、相关公司业绩情况,事件类型编号依次对应8、9、10、11,具体见表3。

表3 非必然性事件类型Table 3 Non-inevitable event types

图4 k-means聚类数选取Fig.4 k-means cluster number selection

综上,总事件类型为12类,即最终事理图谱中节点数量为12个。最终,每一个因果三元组中的事件描述都会对应一个必然性事件类型或非必然性事件类型。如因果三元组(生猪和猪肉价格的下跌,因果关系,饲料主要原料——玉米价格出现下滑)在经过事件标注步骤后对应的三元组为(5,因果关系,0),即(生猪价格变动,因果关系,养殖成本变动)。

1.3 事理图谱构建

本文将生猪的价格走势作为事理图谱构建过程中的参考因素,将事理图谱按照价格的上升、平稳、下降分为三组,并以此进行后续的推理。

本文所采用的价格数据来源于万得数据库中的生猪全国平均出厂价。时间频率为周。价格整体走势如图5所示。

图5 2015年6月至2022年11月全国生猪平均出厂价Fig.5 The average factory price of live pigs in China from June 2015 to November 2022

基于杨军[13]对国内生猪价格趋势的研究,本文对三种价格趋势做如下定义:

定义1:三周内平均每周价格持续上涨超过2.5%时,价格趋势为上升状态。

定义2:三周内平均每周价格持续波动小于2.5%且大于-2.5%时,价格趋势为平稳状态。

定义3:三周内平均每周价格持续下行低于-2.5%时,价格趋势为下降状态。

基于上述定义,将商品价格走势(2015年6月至2020年10月)按照上升、平稳、下降的趋势进行划分后,各趋势所包含的时间范围如表4所示。

表4 三种价格趋势包含的时间范围Table 4 The three price trends′ timeframes

按照时间范围对各价格走势的因果三元组进行筛选,将各区间的事件三元组按照各自的事件类型进行合并,从而生成对应部分的事理图谱。最终得到的价格上升、平稳、下降三种趋势所对应的事理图谱结构如图6所示。图中节点表示事件类型,边表示事件间的因果关系,箭头指向方向为由因到果。在三种事理图谱中,价格上升、平稳、下降三种趋势分别包含了13 056、5 420、8 224件事件描述。

图6 三种价格趋势下的事理图谱Fig.6 Event evolutionary graph under three price trends

在生成的事理图谱中,三种价格趋势下的事理图谱均包含了所有的12类事件类型,但事件类型之间的关系略有不同。如在价格趋势为上升的事理图谱中,事件类型0(养殖成本变动)的发生可能会引起事件类型6(需求端变化)的发生,但这种因果关系在价格趋势为平稳的事理图谱当中是不存在的。从该角度可以佐证价格趋势的不同会影响事件之间的因果关系。

2 确定价格趋势下的事件推理

在事件推理过程中,本文采用基于贝叶斯理论的推理方法。贝叶斯理论是一种基于有限信息做出判断并计算概率的方法,可以提升推理的可解释性,在因果推理领域有着广泛的应用。为了基于此理论进行推理,首先需要对各节点的先验概率与后验概率进行统计与计算。下面分别介绍各概率的计算方法。设全部事件数量为n,事件对数量为m。

1)先验概率:若标注事件类型为A的事件数量为cA,则该事件类型所对应的节点A的先验概率为

P(A)=cA/n

(1)

2)后验概率:若事件类型A、B之间存在着因果关系,且A为B的原因,记为RA→B,该关系在所有的m对事件关系中发生的次数为rA→B,则事件A发生时事件B发生的概率为

P(B|A)=rA→B/m

(2)

设事件类型A的先验概率为P(A),B的先验概率为P(B),则事件A的后验概率为

P(A|B)=(P(B|A)×P(A))/P(B)

(3)

根据上述式(1)、(3)可以计算出事理图谱中各节点的先验概率与后验概率,将所得概率值作为节点属性添加到事理图谱中。基于此图谱,便可以进行相关事件的推理工作。在本文中,事件的推理对象是不存在于已构建的事理图谱当中的事件,即新发生的领域事件。推理的目的是基于该事件描述推理出可能发生的相关事件及其概率。具体推理算法流程如算法2所示。

算法2:确定价格趋势下的事件推理输入:新发生的事件描述E;当日价格趋势P输出:后续发生事件类型T流程:1.计算事件描述E与12类事件的相似度,并选取相似度最高的事件类型作为事件E的类型Te2.选出与当日价格趋势P对应的事理图谱G,根据图谱中节点Te所对应的概率推理出后续可能发生的事件类型T

3 实验分析

3.1 实验设置

首先以2015年1月至2020年10月内相同的新闻语料构建出一个不区分价格趋势的事理图谱,并选取事件推理中常用的TransE[14]方法作为对照组,将本文所提方法作为实验组,进行对比实验。

根据本文获取到的价格数据与构建事理图谱所用数据的时间范围,选取在2020年10月28日至2022年11月14日内的生猪新闻4 180条作为测试数据,既不包含事理图谱的原始构建数据,又保证了测试数据可以找到对应的价格趋势。从中提取出712对因果事件,对数据的价格按照定义1、2、3进行区间划分,其中包含的因果事件对数量及时间范围如表5所示。

表5 测试数据各价格趋势划分情况Table 5 Test data divided by each price trend

3.2 评价指标

在本文中,事件推理的结果是一个事件类型的序列,序列中按照可能发生的概率由大至小进行排列,每个序列包含3个事件类型。如对于事件E,其推理结果为{事件类型1:60%;事件类型2:55%;事件类型3:50%}。基于推理结果的格式,本文选取平均倒数排名(mean reciprocal rank,MRR)与命中数@n(Hits@n)两种评价指标分别对实验组与对照组进行评估。

在计算MRR的过程中,首先确定期望事件类型在预测序列中的排名Oi,随后对所有测试结果排名的倒数进行求和,并除以测试样本的数量M。MRR值越大,证明模型效果越好。MRR值按式(4)计算:

(4)

Hits@n指测试样本中,各结果序列中排名前n里包含正确结果的次数所占的比例,如Hits@1指排名第1的结果中,预测正确的比例。在本文中,选取Hits@1、Hits@2、Hits@3作为评估指标。Hits@n值越大,证明模型效果越好,Hits@n值按式(5)计算,其中Oright为预测正确的数量:

(5)

3.3 实验结果及分析

基于上述实验设置,具体实验结果如表6所示。

表6 实验结果Table 6 Experimental results

从表6可以看出,利用本文构造的确定价格趋势下的事理图谱,在不同的价格趋势中事件推理效果均优于传统的TransE方法。MRR值平均提升6%,最高提升7%(上升、平稳),最低提升4%(下降);Hits@1平均提升16%,Hits@2平均提升11.8%,Hits@3平均提升13.03%。通过Hits@1、Hits@2、Hits@3三组指标可以看出,本文方法的推理结果通常会在序列中的2、3位出现,因此,在本方法的使用过程中应综合考虑推理结果中的前3位,分别分析相应情况从而进行决策判断。

4 结束语

本文所提出的事理图谱构建方法结合了大宗农产品交易市场中的价格趋势因素,在领域内的事件推理问题上具有一定的普适性与实用性。本文方法对于因果三元组的抽取、不同价格趋势下事理图谱的划分,以及确定价格趋势下的事件推理等步骤均可以适用于大宗农产品交易领域,尤其是价格波动较为频繁、呈现周期性的农产品市场。

在应用效果方面,本文所提出的方法还具有进一步提升的空间。如在信息抽取方面,可以结合机器学习方法更加准确地抽取领域事件关系,以便提升推理效果;在事件类型标注过程中,更精细、准确的事件类型划分也可以提升推理效果;在训练数据方面,增加不同价格趋势下各事件类型的数据量也会相应地改善推理效果。

猜你喜欢
事理三元组因果关系
基于带噪声数据集的强鲁棒性隐含三元组质检算法*
阐释现象 揭示事理——说明文写作六步曲
特征标三元组的本原诱导子
玩忽职守型渎职罪中严重不负责任与重大损害后果的因果关系
语 丝
关于余挠三元组的periodic-模
做完形填空题,需考虑的逻辑关系
帮助犯因果关系刍议
介入因素对因果关系认定的影响
三元组辐射场的建模与仿真