CN113919319A - 基于动作场景强化的脚本事件预测方法 - Google Patents

基于动作场景强化的脚本事件预测方法 Download PDF

Info

Publication number
CN113919319A
CN113919319A CN202111202221.3A CN202111202221A CN113919319A CN 113919319 A CN113919319 A CN 113919319A CN 202111202221 A CN202111202221 A CN 202111202221A CN 113919319 A CN113919319 A CN 113919319A
Authority
CN
China
Prior art keywords
event
token
sequence
training
representation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202111202221.3A
Other languages
English (en)
Other versions
CN113919319B (zh
Inventor
黄振宇
王勇军
马行空
解培岱
许方亮
施江勇
严晔晴
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN202111202221.3A priority Critical patent/CN113919319B/zh
Publication of CN113919319A publication Critical patent/CN113919319A/zh
Application granted granted Critical
Publication of CN113919319B publication Critical patent/CN113919319B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/126Character encoding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/289Phrasal analysis, e.g. finite state techniques or chunking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Machine Translation (AREA)

Abstract

本发明公开了一种基于动作场景强化的脚本事件预测方法,目的是提高脚本事件预测准确率。技术方案是:先构建由元素编码模块、Token表示模块、事件预测层构成的脚本事件预测系统;从事件性新闻文本中抽取出一系列事件序列作为训练脚本事件预测系统所需的数据;对训练数据进行预处理,得到事件序列的token编码序列和动作序列的token编码序列,作为训练数据。使用训练数据训练Token表示模块和事件预测层,得到网络权重参数。训练后的脚本事件预测系统接收用户输入的已发生的事件序列,进行元素编码、Token表示,根据已发生的事件序列预测候选事件集合中最可能发生的事件。采用本发明可以提高脚本事件预测准确率。

Description

基于动作场景强化的脚本事件预测方法
技术领域
本发明涉及脚本事件预测领域,具体是一种基于动作场景强化的采用神经网络进行脚本事件预测的方法。
背景技术
围绕一个主角展开的一系列事件被称为脚本事件(Script Event),这些事件可能涉及不同的地点、人物和动作。在此基础上根据已经发生的事件,即事件上下文,来预测后续可能发生的事件的任务则被称作脚本事件预测(Script Event Prediction)。脚本事件通常由事件触发词(一般为谓语动词)和事件元素(如与动词关联的主语、宾语和补语等)来进行描述,事件的要素(主语、谓语、宾语和补语)由多个单词进行表示。而网络平台上海量的自然语言文本中包含了大量的事件信息,从中可以抽取出不同场景的脚本事件链,这为训练模型自动化分析脚本事件发展规律提供了基础。同时为了评估模型在预测任务上的效果,相关研究者提出了多选项叙事完形填空(Multiple Choice Narrative Cloze,MCNC)任务。MCNC任务指的是根据已发生的事件链信息,从多个候选事件中选择最可能发生的后续事件。脚本事件预测的主要挑战在于两个方面,一个是事件的特征表示,一个是推断方式的选择。
事件的特征表示也被称为事件表示学习(Event Representation Learning),需要将描述事件的多个要素进行向量化,并在此基础上进行特征融合和更新,使得模型能够学习到具有上下文语境的事件特征信息。早期的研究采用的是统计特征,如事件对的频率,这种方法面临着严重的稀疏性问题,难以捕捉不常出现的事件的特征规律。之后研究者引入浅层词嵌入或者图嵌入的方法来编码事件的要素,但是这些方法采用的都是静态嵌入,无法解决一词多义,集外词(out-of-vocabulary)等问题。为了缓解以上问题,研究者采用基于循环神经网络(Recurrent Neural Network,简称RNN)或图神经网络(GraphNeuralNetwork,简称GNN)的方法使得事件序列在事件层面的进行特征融合,从而更新事件表示,使得其中包含丰富的事件管理信息。而随着预训练模型的发展,部分预训练模型(Pre-trained Model),如Roberta,也被引入到事件表示任务中。预训练模型的分词编码器(称为tokenizer)将单词或句子转换成该模型的词表(预设的大量令牌(token)及其对应的编码)中的一个或多个令牌,例如单词“repairing”会被转换为“repair”和“##ing”两个令牌,再根据词表中查询对应的整数编码;预训练模型的网络结构将接收分词编码器的编码输入,从而获得具有上下文特征的令牌级别的向量表示。预训练模型会在大量文本语料库上通过多种下游任务进行预训练,如掩码预测任务(Mask Prediction,将句子中的部分单词掩去,让模型去预测),从而得到能捕捉基本文本规律的网络参数,这些参数将被保存下来用于后续任务的使用。
推断方式指如何根据事件特征进行候选事件的评估。大多数的方法考虑的是候选事件和事件上下文的语义相似性,根据两者之间令牌级别、事件级别或者事件链级别的向量化距离来评估候选事件可能发生的概率。同时,在此基础上也存在混合多个级别视角的方法。
脚本事件预测是一项具有挑战的任务,预测的准确率是脚本事件预测领域最关注的指标。由于事件的描述文本长度较短,事件关联关系较为复杂,事件上下文序列存在一些噪声事件,所以脚本事件预测准确率较难提高。动词及其承接者是脚本事件的重要部分,事件发展具有是动作场景的连续性。现有方法中使用静态嵌入的方法,如Event-Comp、PairLSTM、SGNN等,不能很好的解决事件文本,特别是动词的一词多义问题,并且尽管添加了向量更新模块也难以捕捉到动作的细致交互信息。而基于预训练模型的RoBERTa+Representation Fusion(知识表示融合)方法(见文献“Shangwen Lv,Fuqing Zhu,andSonglin Hu.2020.Integrating External Event Knowledge for Script Learning.InProceedings of the 28th International Conference on ComputationalLinguistics.306–315.”Shangwen Lv、Fuqing Zhu和Songlin Hu的论文:整合外部事件知识进行脚本学习),虽然一定程度上解决了动词一词多义的问题,但是对输入数据没有做良好的处理。该方法仅仅将事件描述元组中的单词简单地拼接在一起作为输入数据,这种处理方式会在token编码时出现事件的token序列长度不一致而出现模型对事件的关注度倾斜,也会使得部分动词因token较短而被忽视,这不利于事件语义的捕捉,也难以发现动作场景的变化规律,使得脚本事件预测准确率只能达到58.66%。
因此,如何进行合适的数据处理,并设计配套的模型结构,突出事件中动作信息的文本特征的作用,提高后续事件预测的准确率,是脚本事件预测领域极为关注的技术问题。
发明内容
本发明要解决的技术问题是提供一种基于动作场景强化的脚本事件预测方法。此方法预处理时隐去主角信息,利用深度学习网络,突出关注事件序列中的动作信息,从而提高脚本事件预测的准确率。
为了解决上述技术问题,本发明采用的技术方案为先构建由元素编码模块、Token表示模块、事件预测层构成的脚本事件预测系统。从事件性新闻文本中抽取出一系列事件序列作为训练脚本事件预测系统所需的数据;然后元素编码模块对训练数据进行预处理,得到事件序列的token编码序列和动作序列的token编码序列,作为训练Token表示模块和事件预测层的训练数据。使用训练数据训练Token表示模块和事件预测层,得到网络权重参数。训练后的脚本事件预测系统接收用户输入的已发生的事件序列,进行元素编码、Token表示,根据已发生的事件序列预测候选事件集合中最可能发生的事件。
本发明的技术方案如下:
第一步,构建脚本事件预测系统。该系统由元素编码模块、Token表示模块、事件预测层构成。
元素编码模块与Token表示模块相连,从键盘或文件接收用户输入的文本形式的事件组,记作EE。事件组EE包含N条已观测到的上下文事件和K条候选事件,N条已观测到的上下文事件用上下文事件序列E表示,E=<e1,e2,...,en,...,eN>,en是第n个上下文事件;K条候选事件用候选事件集合C表示,C={c1,c2,...ck,...,cK},ck是第k个候选事件。一条事件(上下文事件或候选事件)包含一个事件元素四元组(as,v,ao,ap)、动作v与主角人物的语法关系(Grammatical dependency Relation,简称GR),即事件可表示为文本集合{as,v,ao,ap,GR},其中v表示事件中的动作(表现为谓语动词),as,ao,ap则分别指代与动词相关的主语、宾语和补语,GR∈{subj,obj,prep}(subj,obj,prep分别表示主角人物为动作v的主语、谓语和补语关系),N和K为正整数,1≤n≤N,1≤k≤K。为了计算C中第k个候选事件ck与上下文事件序列E的关联信息,元素编码模块将ck和E组成第k条虚拟事件序列Sk:<e1,e2,...,en,...,eN,ck>;为了突出动作场景的信息,元素编码模块将Sk中动作(共N+1个)和GR的组合(记作v-GR,如(eat,subj)),拼接成对应的虚拟动作序列V-GRk:<v-GR1,v-GR2,...,v-GRn,...,v-GRN,v-GRN+k>。完成虚拟事件序列和虚拟动作序列的构造后,将Sk和V-GRk分别转换成句子,句子的头部和末尾分别添加字符“<s>”(称为CLS令牌,CLS令牌在预训练模型中属于句子的起始标记,包含了整个序列的信息,通常用于表征整个句子的特征。)和字符“</s>”(称为SEP令牌),用于表示句子开头和结尾。利用分词编码器(Tokenizer)对序列Sk或V-GRk转换成的句子进行分词,得到两种token序列,通过查询预训练模型公开的词表得到token数值编码序列,即事件序列的token编码序列
Figure BDA0003305384740000031
和动作序列的token编码序列
Figure BDA0003305384740000032
经过K次循环,元素编码模块得到
Figure BDA0003305384740000033
Figure BDA0003305384740000034
后,发送给Token表示模块。
Token表示模块与元素编码模块、事件预测层相连,是一个Roberta模型。Token表示模块从元素编码模块接收
Figure BDA0003305384740000035
Figure BDA0003305384740000036
进行嵌入、线性变换、多头自注意力(multi-head self-attention)、池化操作,分别得到相应的两种token动态交互的向量表示,即事件序列的向量表示和动作序列对应的向量表示。Token表示模块从事件序列的向量表示中提取出事件CLS令牌的向量表示
Figure BDA0003305384740000037
从动作序列对应的向量表示中提取出动作CLS令牌的向量表示
Figure BDA0003305384740000041
Figure BDA0003305384740000042
连接成包含候选事件ck特征的CLS合并向量表示
Figure BDA0003305384740000043
经过K次循环,得到
Figure BDA0003305384740000044
发送给事件预测层。
事件预测层与Token表示模块相连,是一个由全连接层组成的神经网络,对从Token表示模块接收的
Figure BDA0003305384740000045
进行处理,输出候选事件集合C的K个得分s1,...,sk,...sK,通过排序,取最大得分的事件序号作为脚本事件预测结果,记为y。
第二步,准备训练脚本事件预测系统所需的数据。方法是:
2.1选择权威媒体平台发布(如纽约时报、新闻联播等)的事件性新闻文本作为原始语料,选择依据是要求事件性新闻文本真实可信,并且涵盖某主角参与的一系列事件,便于构成较长的事件序列。
2.2利用C&C工具(见文献“J.R.Curran,S.Clark,and J.Bos,“Linguisticallymotivated large-scale NLP with c&c and boxer,”in ACL.The Association forComputational Linguistics,2007.”J.R.Curran、S.Clark和J.Bos的论文:基于C&C和boxer的语法驱动的大规模自然语言处理方法的第1页-第3页)对原始语料进行词性标注和依赖分析,即将原始语料中的句子切分成多个标注了词性的词语集合,词语集合中的词语根据句子的语法依赖关系进行关联。
2.3利用OpenNLP函数(见https://opennlp.apache.org 2021.5.6)对词语集合进行短语结构处理(Phrase-structure parsing),得到句子成分(主语、谓语、宾语和补语)的短语文本,将这些短语文本作为事件元素四元组(as,v,ao,ap)。通过共指消解(CoreferenceResolution,即将指代同一实体的不同描述合并到一起的过程),将原始语料库中某新闻文本中涉及同一主角的事件元素四元组按顺序连接成一个原始事件序列,并记录动作v与主角人物的语法关系GR。
2.4为了便于后续模型的批量训练,从提取的大量原始事件序列中选取出至少包含N+1个事件的原始事件序列,得到M条事件序列长度符合要求的原始事件序列集合{R1,...,Rm,...,RM},1≤m≤M为正整数,原始事件序列Rm包含N+1个事件,每个事件包含文本集合{as,v,ao,ap,GR}。
2.5从{R1,...,Rm,...,RM}的每个原始事件序列中取出事件元素四元组中的动作构成动作集。
2.6利用{R1,...,Rm,...,RM}构造符合模型训练所需的数据结构(提出方法见文献“Mark Granroth-Wilding and Stephen Clark.2016.What Happens Next?EventPrediction Using a Compositional Neural Network Model.In AAAI.AAAI Press,2727-2733.”Granroth等的论文:接下来会发生什么?基于组合神经网络模型的事件预测第3页)。方法如下:
2.6.1初始化m=1;
2.6.2将Rm中的前N个事件构成上下文事件序列Em,即<e1,e2,...,en,...,eN>。
2.6.3构造K-1个干扰事件。采用随机函数从动作集中随机选取动词,再从原始事件序列Rm的新闻来源中随机选取出现的人或物补全主语宾语,构成干扰事件。
2.6.4将Rm中的第N+i个事件和K-1个干扰事件组成用于预测的第m个候选事件集合Cm,即Cm={c1,c2,...ck,...,cK},ck的数据结构和en一样。Em和Cm共同组成第m个事件组EEm,因此EEm中有N+K个事件,即e1,e2,...,en,...,eN和c1,c2,...ck,...,cK
2.6.5随机排列第m个候选事件集合Cm中的事件,并记录Cm中真实发生的事件的序号作为真实序号gm
2.6.6令m=m+1,如果m≤M,转步骤2.6.2;否则说明训练数据已经构造完毕,得到了训练数据{(EE1,g1),...,(EEm,gm),...,(EEM,gM)},转第三步。
第三步,元素编码模块对训练数据进行预处理,得到事件序列的token编码序列TS和动作序列的token编码序列TV-GR,将TS和TV-GR发送给Token表示模块,作为训练Token表示模块和事件预测层的训练数据。方法如下:
3.1初始化m=1;为描述方便,令e1,e2,...,en,...,eN和c1,c2,...ck,...,cK中的第i个事件为ei,1≤i≤N+K;
3.2处理第m个训练数据(EEm,gm)中的N+K个事件的文本集合中的缺失元素,并隐去其中的主角信息,方法是:
3.2.1初始化i=1;
3.2.2 ei的元素由步骤2.3中OpenNLP处理时得到,但是存在主语、宾语或补语的缺失等情况,导致ei的事件文本集合中部分元素为空,元素编码模块将空缺元素用字符“<pad>”(称为PAD令牌,预训练模型中的占位符)进行替换,避免引入无关字符的语义干扰;
3.2.3隐去ei中的主角信息。将ei的事件文本集合中的主角信息采用“X”字符予以替换;
3.2.4令i=i+1,如果i≤N+K,转步骤3.2.2;否则转步骤3.3。
3.3利用EEm中的Em和Cm构造虚拟事件序列和虚拟动作序列,将虚拟事件序列和虚拟动作序列转换成句子后进行分词编码,得到EEm对应的事件序列的token编码序列
Figure BDA0003305384740000051
和EEm对应的动作序列的token编码序列
Figure BDA0003305384740000052
方法是:
3.3.1初始化k=1;
3.3.2构建第k个虚拟事件序列Sk m并转换成句子,方法是:
3.3.2.1将Cm中第k个候选事件ck和Em组成对应的第k个虚拟事件序列Sk m:<e1,e2,...,en,...,eN,ck>;
3.3.2.2将Sk m中N+1个事件通过字符“##”连接,句子的头部和句子的末尾分别添加CLS令牌和SEP令牌,形成“CLSe1##e2##...##en##...,eN##ckSEP”的句式,其中事件en和ck都按照as,v,ao,ap的顺序拼接文本。
3.3.3构建Sk m对应的虚拟动作序列V-GRk m并转换成句子,方法是:
3.3.3.1将Sk m中N+1个事件的v-GR组合拼接成Sk m对应的虚拟动作序列V-GRk m:<v-GR1,v-GR2,...,v-GRn,...,v-GRN,v-GRN+k>;
3.3.3.2将V-GRk m中的v-GR1,v-GR2,...,v-GRn,...,v-GRN,v-GRN+k通过字符“##”连接,句子的头尾分别添加CLS令牌和SEP令牌,形成“CLSv-GR1##v-GR2##...##v-GRn##...,v-GRN##v-GRN+kSEP”的句式,所有的v-GR组合都按照v,GR的顺序拼接文本。
3.3.4利用Roberta(见文献“Yinhan Liu,Myle Ott,Naman Goyal,Jingfei Du,Mandar Joshi,Danqi Chen,Omer Levy,Mike Lewis,Luke Zettlemoyer,and VeselinStoyanov.2019.RoBERTa:ARobustly Optimized BERT Pretraining Approach.CoRRvolumeabs/1907.11692(2019).”Yinhan Liud等的论文:RoBERTa:一种基于Bert的鲁棒性优化的预训练方法)的分词编码器(Tokenizer)(模型从“https://huggingface.co/roberta-base 2021.5.6”下载)将Sk m转换成的句子进行分词,得到token序列,并且通过查询RoBERTa的词表得到token序列的对应编码,即EEm对应的Sk m事件序列的token编码序列
Figure BDA0003305384740000061
其中
Figure BDA0003305384740000062
表示EEm中第n个事件en中的第D1(1≤D1≤maxLen1)个令牌编号。maxLen1为Sk m中en的token序列限定长度,maxLen1≥4。
3.3.5利用Roberta的分词编码器将V-GRk m转换的句子进行分词,得到动作的token序列,并查询RoBERTa的词表得到对应的编码,即EEm对应的动作序列V-GRk m的token编码序列
Figure BDA0003305384740000063
Figure BDA0003305384740000064
其中
Figure BDA0003305384740000065
表示第n个动词及其语法关系v-GRn中的第D2(1≤D2≤maxLen2)个令牌编号。maxLen2为V-GRk m中的token序列限定长度,maxLen2≥2。
3.3.6令k=k+1,如果k≤K,转步骤3.3.2;否则说明得到了EEm对应的事件token编码序列
Figure BDA0003305384740000066
和EEm对应的动作token编码序列
Figure BDA0003305384740000067
Figure BDA0003305384740000071
转步骤3.4。
3.4令m=m+1,如果m≤M,转步骤3.2;否则说明得到了M条训练数据对应的所有事件序列的token编码序列集合TS
Figure BDA0003305384740000072
和M条训练数据对应的所有动作序列的token编码序列集合TV-GR
Figure BDA0003305384740000073
以及M条训练数据对应的真实事件序号G,G={g1,...,gm,...gM}构成的M条数据,即
Figure BDA0003305384740000074
Figure BDA0003305384740000075
第m条数据为
Figure BDA0003305384740000076
数据,将M条数据发送给Token表示模块,转第四步。
第四步,使用训练数据训练Token表示模块和事件预测层,得到网络权重参数。
4.1初始化Token表示模块和事件预测层的参数:将Token表示模块中的RoBERTa中所有的网络载入已预训练好的参数(从“https://huggingface.co/roberta-base2021.5.6”下载)来实现初始化。将事件预测层中的权重矩阵W中所有的元素和偏置b都初始化为[0,1]之间的随机数,
Figure BDA0003305384740000077
表示W是大小为2d×1的矩阵,矩阵元素值均为实数,
Figure BDA0003305384740000078
表示b为实数,d为Token表示模块中token对应向量的长度。
4.2设置网络训练参数:训练参数包括网络模型学习率(Learning Rate)、数据批量大小(Batch Size)、测试步长Num Step(每完成一个步长进行一次模型测试)、L2正则化参数和训练轮数(Epochs),设置网络模型学习率Learning Rate=10-5,数据批量大小BatchSize=16,测试步长Num Step=1000,L2正则化参数=10-8,训练轮数Epochs=3(实验证明,训练轮数超过3时,系统准确率会下降)。
4.3训练Token表示模块和事件预测层。方法是:Token表示模块从元素编码模块接收TS和TV-GR,进行计算,得到TS和TV-GR中所有令牌的事件序列的向量表示Vs和动作序列的向量表示VV-GR,再从Vs和VV-GR中提取CLS的向量表示,拼接成CLS合并向量表示Vcls,将Vcls输入发送给事件预测层。事件预测层由Vcls计算得到候选事件的得分。根据候选事件的得分和真实序号来计算损失值,最小化损失值并同时更新Token表示模块和事件预测层网络参数,直到符合提前停止的要求或满足训练轮数要求,得到Token表示模块和事件预测层的权重参数。
方法如下:
4.3.1将3.4步构造得到的M条数据
Figure BDA0003305384740000079
Figure BDA00033053847400000710
分为两个部分:训练集和测试集,记训练集的数据量为M1,测试集的数据量为M2,且M1∶M2=8∶2。训练集用于网络参数的更新,测试集用于判断训练是否过拟合。令训练集中事件token编码序列集合为TS训,令测试集中事件token编码序列集合为TS测。令训练集中动作token编码序列集合为TV-GR训,令测试集中动作token编码序列集合为TV-GR测
4.3.2初始化训练迭代参数n_epoch=1,令测试集上系统的当前准确率curr_acc=0,测试集上系统的最佳准确率opti_acc=0;
4.3.3 Token表示模块接收训练集中的TS训和TV-GR训,输出对应的向量表示,并选择其中的CLS向量,拼接成CLS合并向量表示Vcls。事件预测层接收Vcls进行计算得到候选事件的得分,方法是:
4.3.3.1初始化m=1;
4.3.3.2Token表示模块接收TS训训练集中的第m条数据中的事件token编码序列
Figure BDA0003305384740000081
Figure BDA0003305384740000082
和TV-GR训中第m条数据中的动作token编码序列
Figure BDA0003305384740000083
Figure BDA0003305384740000084
其中
Figure BDA0003305384740000085
表示事件en中的第D1个令牌编号,
Figure BDA0003305384740000086
Figure BDA0003305384740000087
为第n个动词及其语法关系v-GRn第D2个令牌编号,Token表示模块利用Roberta对接收的
Figure BDA0003305384740000088
Figure BDA0003305384740000089
进行嵌入表示,得到对应的具有上下文特征的事件序列的向量表示集合
Figure BDA00033053847400000810
和动作序列的向量表示集合
Figure BDA00033053847400000811
其中
Figure BDA00033053847400000812
中的第k项
Figure BDA00033053847400000813
Figure BDA00033053847400000814
中的第k项
Figure BDA00033053847400000815
Figure BDA00033053847400000816
Token表示模块从
Figure BDA00033053847400000817
Figure BDA00033053847400000818
中提取CLS令牌的向量表示,依次拼接成K个CLS合并向量表示
Figure BDA00033053847400000819
事件预测层接收
Figure BDA00033053847400000820
并输出候选事件的得分s1,...,sk,...,sK。方法是:
4.3.3.2.1初始化k=1,初始化
Figure BDA00033053847400000821
为空,初始化
Figure BDA00033053847400000822
为空;
4.3.3.2.2Token表示模块利用Roberta对
Figure BDA00033053847400000823
进行嵌入、线性变换、多头自注意力、池化操作,得到
Figure BDA00033053847400000824
对应的具有上下文特征的向量表示
Figure BDA00033053847400000825
其中
Figure BDA00033053847400000826
为令牌
Figure BDA00033053847400000827
对应的向量表示,
Figure BDA00033053847400000828
Figure BDA00033053847400000829
分别为CLS令牌和SEP令牌在
Figure BDA00033053847400000830
中的向量表示,并且所有向量表示的长度为d,将
Figure BDA00033053847400000831
放到
Figure BDA00033053847400000832
中。
4.3.3.2.3Token表示模块利用Roberta对
Figure BDA0003305384740000091
进行嵌入、线性变换、多头自注意力、池化操作,得到
Figure BDA0003305384740000092
对应的具有上下文特征的向量表示
Figure BDA0003305384740000093
其中
Figure BDA0003305384740000094
为令牌
Figure BDA0003305384740000095
对应的向量表示,
Figure BDA0003305384740000096
Figure BDA0003305384740000097
为CLS令牌和SEP令牌在
Figure BDA0003305384740000098
中的向量表示,并且所有向量表示的长度为d,将
Figure BDA0003305384740000099
放到
Figure BDA00033053847400000910
中。
4.3.3.2.4Token表示模块将
Figure BDA00033053847400000911
Figure BDA00033053847400000912
横向拼接成CLS合并向量表示
Figure BDA00033053847400000913
的向量表示长度为2×d。
4.3.3.2.5事件预测层计算第k个候选事件的得分
Figure BDA00033053847400000914
W为事件预测层的矩阵参数,
Figure BDA00033053847400000915
表示W和
Figure BDA00033053847400000916
这两个矩阵相乘。
4.3.3.2.6令k=k+1,如果k≤K,转步骤4.3.3.2.2;否则说明得到了
Figure BDA00033053847400000917
对应的EEm中K个候选事件的得分
Figure BDA00033053847400000918
也得到了对应的具有上下文特征的事件序列的向量表示集合
Figure BDA00033053847400000919
和动作序列的向量表示集合
Figure BDA00033053847400000920
Figure BDA00033053847400000921
转步骤4.3.3.3。
4.3.3.3计算损失值,方法是把EEm中K个候选事件得分
Figure BDA00033053847400000922
和正确选项gm输入CrossEntropyLoss(见https://pytorch.org/docs/stable/generated/torch. nn.CrossEntropyLoss.html2021.06.05)函数,得到第m个损失值Lossm
4.3.3.4令m=m+1,如果m>M1,说明系统已经完成了一轮训练,转步骤4.3.5;如果m≤M1且m是训练步长Num Step的倍数,则转步骤4.3.4进行过拟合检查,如果m≤M1且m不是Num Step的倍数,转步骤4.3.3.2继续训练。
4.3.4采用测试集对脚本事件预测系统进行过拟合检查,并判断是否提前结束训练,方法是:
4.3.4.1初始化迭代参数mt=1;
4.3.4.2Token表示模块接收测试集中的
Figure BDA00033053847400000923
和token编码序列
Figure BDA00033053847400000924
利用Roberta得至
Figure BDA00033053847400000925
的具有上下文特征的向量表示
Figure BDA00033053847400000926
Figure BDA00033053847400000927
Token表示模块从
Figure BDA00033053847400000928
Figure BDA00033053847400000929
中提取两种序列中的CLS令牌的向量表示,分别拼接成K个CLS合并向量表示
Figure BDA00033053847400000930
其中
Figure BDA00033053847400000931
Figure BDA00033053847400000932
Figure BDA00033053847400000933
由拼接而成,事件预测层接收
Figure BDA00033053847400000934
并输出对应的K个候选事件的得分
Figure BDA00033053847400000935
4.3.4.3从
Figure BDA0003305384740000101
中选取最大得分对应的事件序号作为脚本事件预测结果ymt
4.3.4.4令mt=mt+1,如果mt>M2,说明得到了测试集所有的数据上的预测结果,转步骤4.3.4.5;如果mt≤M2,转步骤4.3.4.2。
4.3.4.5计算脚本事件预测系统在测试集上的准确比例acc,
Figure BDA0003305384740000102
f(ymt,gmt)是一个二值函数,如果ymt=gmt则f(ymt,gmmt)=1,如果ymt≠gmt则f(ymt,gmt)=0。
4.3.4.6令curr_acc=acc,如果curr_acc>opti_acc,则令opti_acc=curr_acc,使得opti_acc中存储的是测试集上的最佳准确率;如果curr_acc≤opti_acc,且opti__acc-curr_acc≤1.5%,表示没有出现明显的过拟合问题,转步骤4.3.3.2继续训练;如果opti_acc-curr_acc>1.5%,说明满足提前停止训练的条件,训练结束,将Token表示模块中的Roberta模型参数和事件预测层的权重矩阵W和偏置b存储备用,转第五步。
4.3.5计算M1个测试集样本的平均损失值
Figure BDA0003305384740000103
4.3.6使用Adam优化算法(见文献“Kingma D P,Ba J.Adam:A method forstochastic optimization[J].arXiv preprint arXiv:1412.6980,2014”,Kingma的论文:Adam,一种随机优化方法)对Loss最小化以更新Token表示模块和事件预测层的网络权重参数。
4.3.7令n_epoch=n_epoch+1,如果n_epoch≤Epochs,转4.3.3步;如果n_epoch>Epochs,说明训练满足训练轮数要求,训练结束,将Token表示模块中的Roberta模型参数和事件预测层的权重矩阵W和偏置b存储备用,转第五步。
第五步,训练后的脚本事件预测系统接收用户输入的已发生的事件序列,进行元素编码、Token表示,根据已发生的事件序列预测候选事件集合中最可能发生的事件。方法是:
5.1元素编码模块从键盘或文件接收用户输入的已发生的事件序列,即文本形式的事件组EE0。事件组EE0包含已观测到的上下文事件序列E0=<e1 0,e2 0,...,en 0,...,eN 0>和候选事件集合C0={c1 0,c2 0,...ck 0,...,cK 0}。
5.2利用E0和C0构造虚拟事件序列和虚拟动作序列,将虚拟事件序列和虚拟动作序列转换成句子后进行分词编码,得到EE0对应的事件token编码序列
Figure BDA0003305384740000104
和EE0对应的动作token编码序列
Figure BDA0003305384740000105
方法是:
5.2.1初始化k=1;
5.2.2构建EE0对应的虚拟事件序列Sk 0并转换成句子,方法是:
5.2.2.1将C0中第k个候选事件ck 0和E0组成对应的第k个虚拟事件序列Sk 0:<e1 0,e2 0,...,en 0,...,eN 0,ck 0>;
5.2.2.2将Sk 0中的事件通过字符“##”连接Sk 0中的所有事件,句子的头部和句子的末尾分别添加CLS令牌和SEP令牌,形成“CLSe1 0##e2 0##...##en 0##...,eN 0##ck 0SEP”的句式。其中en 0和ck 0按照as,v,ao,ap的顺序拼接文本。
5.2.3构建虚拟动作序列V-GRk 0并转换成句子,方法是:
5.2.3.1将Sk 0中N+1个事件的动作v和GR的组合(记作v-GR0),拼接成对应的虚拟动作序列V-GRk 0:<v-GR1 0,v-GR2 0,...,v-GRn 0,...,v-GRN 0,v-GRN+k 0>;
5.2.3.2将序列V-GRk 0中的v-GRn通过字符“##”连接,句子的头尾分别添加CLS令牌和SEP令牌,形成“CLSv-GR1 0##v-GR2 0##...##v-GRn 0##...,v-GRN 0##v-GRN+k 0SEP”的句式。其中v-GRn 0按照v,GR的顺序拼接文本。
5.2.4利用Roberta的分词编码器将Sk 0转换的句子进行分词得到输入事件token序列,并且通过查询RoBERTa的词表得到输入事件token序列对应的编码,即输入事件序列的token编码序列
Figure BDA00033053847400001114
5.2.5利用Roberta的分词编码器将V-GRk 0转换的句子进行分词得到输入动作token序列,并且通过查询RoBERTa的词表得到输入动作token序列对应的编码,即输入动作序列的token编码序列
Figure BDA0003305384740000111
5.2.6令k=k+1,如果k≤K,转步骤5.2.2;否则说明得到了输入事件token编码序列
Figure BDA0003305384740000112
Figure BDA0003305384740000113
和输入动作token编码序列
Figure BDA0003305384740000114
Figure BDA0003305384740000115
转步骤5.3。
5.3训练后的Token表示模块(载入了训练后的Roberta模型参数的Token表示模块),对
Figure BDA0003305384740000116
Figure BDA0003305384740000117
进行嵌入、线性变换、多头自注意力、池化操作,得到具有上下文特征的向量表示
Figure BDA0003305384740000118
Figure BDA0003305384740000119
Token表示模块从中提取两种序列中的CLS令牌的向量表示拼接成CLS合并向量表示
Figure BDA00033053847400001110
训练后的事件预测层(载入了训练后的权重矩阵W和偏置b的事件预测层)接收
Figure BDA00033053847400001111
并输出候选事件的得分
Figure BDA00033053847400001112
方法是:
5.3.1初始化k=1;
5.3.2训练后的Token表示模块对
Figure BDA00033053847400001113
进行嵌入、线性变换、多头自注意力、池化操作,得到
Figure BDA0003305384740000121
对应的具有上下文特征的向量表示
Figure BDA0003305384740000122
Figure BDA0003305384740000123
其中
Figure BDA0003305384740000124
Figure BDA0003305384740000125
为CLS令牌和SEP令牌在
Figure BDA0003305384740000126
编码序列中的向量表示。
5.3.3训练后的Token表示模块对
Figure BDA0003305384740000127
利用进行嵌入、线性变换、多头自注意力、池化操作,得到
Figure BDA0003305384740000128
对应的具有上下文特征的向量表示
Figure BDA0003305384740000129
Figure BDA00033053847400001210
其中
Figure BDA00033053847400001211
Figure BDA00033053847400001212
为CLS令牌和SEP令牌在
Figure BDA00033053847400001213
编码序列中的向量表示。
5.3.4将
Figure BDA00033053847400001214
Figure BDA00033053847400001215
横向拼接成CLS合并向量表示
Figure BDA00033053847400001216
5.3.5事件预测层利用载入的参数计算候选事件的得分
Figure BDA00033053847400001217
5.3.6令k=k+1,如果k≤K,转步骤4.3.4.2.2;否则说明得到了
Figure BDA00033053847400001218
对应的候选事件的得分
Figure BDA00033053847400001219
转步骤5.4。
5.4从所有的候选事件分数
Figure BDA00033053847400001220
中选出分数最大的序号作为预测值y0,y0对应的事件即为模型预测的最可能发生的事件。
至此完成了对脚本事件的预测。
采用本发明可以达到以下技术效果:
1.本发明第一步构建了一个强化动作场景的脚本事件预测系统,融合了事件序列和动作序列的语义信息。元素编码模块对事件和动作的两种序列的信息进行编码处理,Token表示模块对两种序列进行向量化表示后进行拼接,得到的向量表示不仅包含了事件序列的信息,还突出了动作的连续性,将数据输入到模型之中,进一步强化了系统对动作场景的关注,预测准确率相比RoBERTa+Representation Fusion提升了3.69%。在脚本事件预测任务中,往往提高1%都是十分困难(见文献“X.Ding,K.Liao,T.Liu,Z.Li,and J.Duan,“Event representation learning enhanced with external commonsense knowledge,”arXiv preprint arXiv:1909.05190,2019.”X.Ding等的论文:基于外部常识知识增强的事件表示学习),因此3.69%是一个相当大的进步。
2.本发明第三步的3.3.4和3.3.5中,通过限定每个事件token序列的长度,使得不同事件的初始重要度接近;3.2步处理第m个训练数据(EEm,gm)中的N+K个事件的文本集合中的缺失元素,并隐去其中的主角信息,让系统不关注事件中主角的名字,而是动作以及非主角的其他实体构成的动作场景的特征,便于系统发现具有普遍性的事件发展规律。第三步中的预处理方式使得数据形式更易于捕捉事件发展的规律,这样构造的训练数据使得第四步训练Token表示模块和事件预测层得到的网络权重参数适宜于Token表示模块和事件预测层,使得训练后的Token表示模块和事件预测层能够预测出准确的结果。
附图说明
图1为本发明总体流程图。
图2为本发明第一步构建的脚本事件预测系统逻辑结构图。
图3为采用本发明与其他常见的脚本事件预测方法对公开数据集(NYT)进行预测的实验结果比较图。
具体实施方式
图1是本发明的总体流程图,如图1所示,本发明包括以下步骤:
第一步,构建脚本事件预测系统。该系统如图2所示,由元素编码模块、Token表示模块、事件预测层构成。
元素编码模块与Token表示模块相连,从键盘或文件接收用户输入的文本形式的事件组,记作EE。事件组EE包含N条已观测到的上下文事件和K条候选事件,N条已观测到的上下文事件用上下文事件序列E表示,E=<e1,e2,...,en,...,eN>,en是第n个上下文事件;K条候选事件用候选事件集合C表示,C={c1,c2,...ck,...,cK},ck是第k个候选事件。一条事件(上下文事件或候选事件)包含一个事件元素四元组(as,v,ao,ap)、动作v与主角人物的语法关系(Grammatical dependency Relation,简称GR),即事件可表示为文本集合{as,v,ao,ap,GR},其中v表示事件中的动作(表现为谓语动词),as,ao,ap则分别指代与动词相关的主语、宾语和补语,GR∈{subj,obj,prep}(subj,obj,prep分别表示主角人物为动作v的主语、谓语和补语关系),N和K为正整数,1≤n≤N,1≤k≤K。为了计算C中第k个候选事件ck与上下文事件序列E的关联信息,元素编码模块将ck和E组成第k条虚拟事件序列Sk:<e1,e2,...,en,...,eN,ck>;为了突出动作场景的信息,元素编码模块将Sk中动作(共N+i个)和GR的组合(记作v-GR,如(eat,subj)),拼接成对应的虚拟动作序列V-GRk:<v-GR1,v-GR2,...,v-GRn,...,v-GRN,v-GRN+k>。完成虚拟事件序列和虚拟动作序列的构造后,将Sk和V-GRk分别转换成句子,句子的头部和末尾分别添加字符“<s>”(称为CLS令牌,CLS令牌在预训练模型中属于句子的起始标记,包含了整个序列的信息,通常用于表征整个句子的特征。)和字符“</s>”(称为SEP令牌),用于表示句子开头和结尾。利用分词编码器(Tokenizer)对序列Sk或V-GRk转换成的句子进行分词,得到两种token序列,通过查询预训练模型公开的词表得到token数值编码序列,即事件序列的token编码序列
Figure BDA0003305384740000141
和动作序列的token编码序列
Figure BDA0003305384740000142
经过K次循环,元素编码模块得到
Figure BDA0003305384740000143
Figure BDA0003305384740000144
后,发送给Token表示模块。
Token表示模块与元素编码模块、事件预测层相连,是一个Roberta模型。Token表示模块从元素编码模块接收
Figure BDA0003305384740000145
Figure BDA0003305384740000146
进行嵌入、线性变换、多头自注意力(multi-head self-attention)、池化操作,分别得到相应的两种token动态交互的向量表示,即事件序列的向量表示和动作序列对应的向量表示。Token表示模块从事件序列的向量表示中提取出事件CLS令牌的向量表示
Figure BDA0003305384740000147
从动作序列对应的向量表示中提取出动作CLS令牌的向量表示
Figure BDA0003305384740000148
Figure BDA0003305384740000149
连接成包含候选事件ck特征的CLS合并向量表示
Figure BDA00033053847400001410
经过K次循环,得到
Figure BDA00033053847400001411
发送给事件预测层。
事件预测层与Token表示模块相连,是一个由全连接层组成的神经网络,对从Token表示模块接收的
Figure BDA00033053847400001412
进行处理,输出候选事件集合C的K个得分s1,...,sk,...sK,通过排序,取最大得分的事件序号作为脚本事件预测结果,记为y。
第二步,准备训练脚本事件预测系统所需的数据。方法是:
2.1选择权威媒体平台发布(如纽约时报、新闻联播等)的事件性新闻文本作为原始语料,选择依据是要求事件性新闻文本真实可信,并且涵盖某主角参与的一系列事件,便于构成较长的事件序列。
2.2利用C&C工具对原始语料进行词性标注和依赖分析,即将原始语料中的句子切分成多个标注了词性的词语集合,词语集合中的词语根据句子的语法依赖关系进行关联。
2.3利用OpenNLP函数对词语集合进行短语结构处理,得到句子成分(主语、谓语、宾语和补语)的短语文本,将这些短语文本作为事件元素四元组(as,v,ao,ap)。通过共指消解,将原始语料库中某新闻文本中涉及同一主角的事件元素四元组按顺序连接成一个原始事件序列,并记录动作v与主角人物的语法关系GR。
2.4为了便于后续模型的批量训练,从提取的大量原始事件序列中选取出至少包含N+1个事件的原始事件序列,得到M条事件序列长度符合要求的原始事件序列集合{R1,...,Rm,...,RM},1≤m≤M为正整数,原始事件序列Rm包含N+1个事件,每个事件包含文本集合{as,v,ao,ap,GR}。
2.5从{R1,...,Rm,...,RM}的每个原始事件序列中取出事件元素四元组中的动作构成动作集。
2.6利用{R1,...,Rm,...,RM}构造符合模型训练所需的数据结构。方法如下:
2.6.1初始化m=1;
2.6.2将Rm中的前N个事件构成上下文事件序列Em,即<e1,e2,...,en,...,eN>。
2.6.3构造K-1个干扰事件。采用随机函数从动作集中随机选取动词,再从原始事件序列Rm的新闻来源中随机选取出现的人或物补全主语宾语,构成干扰事件。
2.6.4将Rm中的第N+1个事件和K-1个干扰事件组成用于预测的第m个候选事件集合Cm,即Cm={c1,c2,...ck,...,cK},ck的数据结构和en一样。Em和Cm共同组成第m个事件组EEm,因此EEm中有N+K个事件,即e1,e2,...,en,...,eN和c1,c2,...ck,...,cK
2.6.5随机排列第m个候选事件集合Cm中的事件,并记录Cm中真实发生的事件的序号作为真实序号gm
2.6.6令m=m+1,如果m≤M,转步骤2.6.2;否则说明训练数据已经构造完毕,得到了训练数据{(EE1,g1),...,(EEm,gm),...,(EEM,gM)},转第三步。
第三步,元素编码模块对训练数据进行预处理,得到事件序列的token编码序列TS和动作序列的token编码序列TV-GR,将TS和TV-GR发送给Token表示模块,作为训练Token表示模块和事件预测层的训练数据。方法如下:
3.1初始化m=1;为描述方便,令e1,e2,...,en,...,eN和c1,c2,...ck,...,cK中的第i个事件为ei,1≤i≤N+K;
3.2处理第m个训练数据(EEm,gm)中的N+K个事件的文本集合中的缺失元素,并隐去其中的主角信息,方法是:
3.2.1初始化i=1;
3.2.2 ei的元素由步骤2.3中OpenNLP处理时得到,但是存在主语、宾语或补语的缺失等情况,导致ei的事件文本集合中部分元素为空,元素编码模块将空缺元素用字符“<pad>”(称为PAD令牌,预训练模型中的占位符)进行替换,避免引入无关字符的语义干扰;
3.2.3隐去ei中的主角信息。将ei的事件文本集合中的主角信息采用“X”字符予以替换;
3.2.4令i=i+1,如果i≤N+K,转步骤3.2.2;否则转步骤3.3。
3.3利用EEm中的Em和Cm构造虚拟事件序列和虚拟动作序列,将虚拟事件序列和虚拟动作序列转换成句子后进行分词编码,得到EEm对应的事件序列的token编码序列
Figure BDA0003305384740000151
和EEm对应的动作序列的token编码序列
Figure BDA0003305384740000152
方法是:
3.3.1初始化k=1;
3.3.2构建第k个虚拟事件序列Sk m并转换成句子,方法是:
3.3.2.1将Cm中第k个候选事件ck和Em组成对应的第k个虚拟事件序列Sk m:<e1,e2,...,en,...,eN,ck>;
3.3.2.2将Sk m中N+1个事件通过字符“##”连接,句子的头部和句子的末尾分别添加CLS令牌和SEP令牌,形成“CLSe1##e2##...##en##...,eN##ckSEP”的句式,其中事件en和ck都按照as,v,ao,ap的顺序拼接文本。
3.3.3构建Sk m对应的虚拟动作序列V-GRk m并转换成句子,方法是:
3.3.3.1将Sk m中N+1个事件的v-GR组合拼接成Sk m对应的虚拟动作序列V-GRk m:<v-GR1,v-GR2,...,v-GRn,...,v-GRN,v-GRN+k>;
3.3.3.2将V-GRk m中的v-GR1,v-GR2,...,v-GRn,...,v-GRN,v-GRN+k通过字符“##”连接,句子的头尾分别添加CLS令牌和SEP令牌,形成“CLSv-GR1##v-GR2##...##v-GRn##...,v-GRN##v-GRN+kSEP”的句式,所有的v-GR组合都按照v,GR的顺序拼接文本。
3.3.4利用Roberta的分词编码器(Tokenizer)将Sk m转换成的句子进行分词,得到token序列,并且通过查询RoBERTa的词表得到token序列的对应编码,即EEm对应的Sk m事件序列的token编码序列
Figure BDA0003305384740000161
其中
Figure BDA0003305384740000162
表示EEm中第n个事件en中的第D1(1≤D1≤maxLen1)个令牌编号。maxLen1为Sk m中en的token序列限定长度,maxLen1≥4。
3.3.5利用Roberta的分词编码器将V-GRk m转换的句子进行分词,得到动作的token序列,并查询RoBERTa的词表得到对应的编码,即EEm对应的动作序列V-GRk m的token编码序列
Figure BDA0003305384740000163
Figure BDA0003305384740000164
其中
Figure BDA0003305384740000165
表示第n个动词及其语法关系v-GRn中的第D2(1≤D2≤maxLen2)个令牌编号。maxLen2为V-GRk m中的token序列限定长度,maxLen2≥2。
3.3.6令k=k+1,如果k≤K,转步骤3.3.2;否则说明得到了EEm对应的事件token编码序列
Figure BDA0003305384740000166
和EEm对应的动作token编码序列
Figure BDA0003305384740000167
Figure BDA0003305384740000168
转步骤3.4。
3.4令m=m+1,如果m≤M,转步骤3.2;否则说明得到了M条训练数据对应的所有事件序列的token编码序列集合TS
Figure BDA0003305384740000171
和M条训练数据对应的所有动作序列的token编码序列集合TV-GR
Figure BDA0003305384740000172
以及M条训练数据对应的真实事件序号G,G={g1,...,gm,...gM}构成的M条数据,即
Figure BDA0003305384740000173
Figure BDA0003305384740000174
第m条数据为
Figure BDA0003305384740000175
数据,将M条数据发送给Token表示模块,转第四步。
第四步,使用训练数据训练Token表示模块和事件预测层,得到网络权重参数。
4.1初始化Token表示模块和事件预测层的参数:将Token表示模块中的RoBERTa中所有的网络载入已预训练好的参数(从“https://huggingface.co/roberta-base2021.5.6”下载)来实现初始化。将事件预测层中的权重矩阵W中所有的元素和偏置b都初始化为[0,1]之间的随机数,
Figure BDA0003305384740000176
表示W是大小为2d×1的矩阵,矩阵元素值均为实数,
Figure BDA0003305384740000177
表示b为实数,d为Token表示模块中token对应向量的长度。
4.2设置网络训练参数:训练参数包括网络模型学习率(Learning Rate)、数据批量大小(Batch Size)、测试步长Num Step(每完成一个步长进行一次模型测试)、L2正则化参数和训练轮数(Epochs),设置网络模型学习率Learning Rate=10-5,数据批量大小BatchSize=16,测试步长Num Step=1000,L2正则化参数=10-8,训练轮数Epochs=3。
4.3训练Token表示模块和事件预测层。方法是:Token表示模块从元素编码模块接收TS和TV-GR,进行计算,得到TS和TV-GR中所有令牌的事件序列的向量表示Vs和动作序列的向量表示VV-GR,再从Vs和VV-GR中提取CLS的向量表示,拼接成CLS合并向量表示Vcls,将Vcls输入发送给事件预测层。事件预测层由Vcls计算得到候选事件的得分。根据候选事件的得分和真实序号来计算损失值,最小化损失值并同时更新Token表示模块和事件预测层网络参数,直到符合提前停止的要求或满足训练轮数要求,得到Token表示模块和事件预测层的权重参数。
方法如下:
4.3.1将3.4步构造得到的M条数据
Figure BDA0003305384740000178
Figure BDA0003305384740000179
分为两个部分:训练集和测试集,记训练集的数据量为M1,测试集的数据量为M2,且M1∶M2=8∶2。训练集用于网络参数的更新,测试集用于判断训练是否过拟合。令训练集中事件token编码序列集合为TS训,令测试集中事件token编码序列集合为TS测。令训练集中动作token编码序列集合为TV-GR训,令测试集中动作token编码序列集合为TV-GR测
4.3.2初始化训练迭代参数n_epoch=1,令测试集上系统的当前准确率curr_acc=0,测试集上系统的最佳准确率opti_acc=0;
4.3.3 Token表示模块接收训练集中的TS训和TV-GR训,输出对应的向量表示,并选择其中的CLS向量,拼接成CLS合并向量表示Vcls。事件预测层接收Vcls进行计算得到候选事件的得分,方法是:
4.3.3.1初始化m=1;
4.3.3.2Token表示模块接收TS训训练集中的第m条数据中的事件token编码序列
Figure BDA0003305384740000181
Figure BDA0003305384740000182
和TV-GR训中第m条数据中的动作token编码序列
Figure BDA0003305384740000183
Figure BDA0003305384740000184
其中
Figure BDA0003305384740000185
表示事件en中的第D1个令牌编号,
Figure BDA0003305384740000186
Figure BDA0003305384740000187
为第n个动词及其语法关系v-GRn第D2个令牌编号,Token表示模块利用Roberta对接收的
Figure BDA0003305384740000188
Figure BDA0003305384740000189
进行嵌入表示,得到对应的具有上下文特征的事件序列的向量表示集合
Figure BDA00033053847400001810
和动作序列的向量表示集合
Figure BDA00033053847400001811
其中
Figure BDA00033053847400001812
中的第k项
Figure BDA00033053847400001813
Figure BDA00033053847400001814
中的第k项
Figure BDA00033053847400001815
Figure BDA00033053847400001816
Token表示模块从
Figure BDA00033053847400001817
Figure BDA00033053847400001818
中提取CLS令牌的向量表示,依次拼接成K个CLS合并向量表示
Figure BDA00033053847400001819
事件预测层接收
Figure BDA00033053847400001820
并输出候选事件的得分s1,...,sk,...,sK。方法是:
4.3.3.2.1初始化k=1,初始化
Figure BDA00033053847400001821
为空,初始化
Figure BDA00033053847400001822
为空;
4.3.3.2.2Token表示模块利用Roberta对
Figure BDA00033053847400001823
进行嵌入、线性变换、多头自注意力、池化操作,得到
Figure BDA00033053847400001824
对应的具有上下文特征的向量表示
Figure BDA00033053847400001825
其中
Figure BDA00033053847400001826
为令牌
Figure BDA00033053847400001827
对应的向量表示,
Figure BDA00033053847400001828
Figure BDA00033053847400001829
分别为CLS令牌和SEP令牌在
Figure BDA00033053847400001830
中的向量表示,并且所有向量表示的长度为d,将
Figure BDA00033053847400001831
放到
Figure BDA00033053847400001832
中。
4.3.3.2.3Token表示模块利用Roberta对
Figure BDA00033053847400001833
进行嵌入、线性变换、多头自注意力、池化操作,得到
Figure BDA00033053847400001834
对应的具有上下文特征的向量表示
Figure BDA00033053847400001835
其中
Figure BDA00033053847400001836
为令牌
Figure BDA00033053847400001837
对应的向量表示,
Figure BDA00033053847400001838
Figure BDA00033053847400001839
为CLS令牌和SEP令牌在
Figure BDA00033053847400001840
中的向量表示,并且所有向量表示的长度为d,将
Figure BDA0003305384740000191
放到
Figure BDA0003305384740000192
中。
4.3.3.2.4Token表示模块将
Figure BDA0003305384740000193
Figure BDA0003305384740000194
横向拼接成CLS合并向量表示
Figure BDA0003305384740000195
的向量表示长度为2×d。
4.3.3.2.5事件预测层计算第k个候选事件的得分
Figure BDA0003305384740000196
W为事件预测层的矩阵参数,
Figure BDA0003305384740000197
表示W和
Figure BDA0003305384740000198
这两个矩阵相乘。
4.3.3.2.6令k=k+1,如果k≤K,转步骤4.3.3.2.2;否则说明得到了
Figure BDA0003305384740000199
对应的EEm中K个候选事件的得分
Figure BDA00033053847400001910
也得到了对应的具有上下文特征的事件序列的向量表示集合
Figure BDA00033053847400001911
和动作序列的向量表示集合
Figure BDA00033053847400001912
Figure BDA00033053847400001913
转步骤4.3.3.3。
4.3.3.3计算损失值,方法是把EEm中K个候选事件得分
Figure BDA00033053847400001914
和正确选项gm输入CrossEntropyLoss函数,得到第m个损失值Lossm
4.3.3.4令m=m+1,如果m>M1,说明系统已经完成了一轮训练,转步骤4.3.5;如果m≤M1且m是训练步长Num Step的倍数,则转步骤4.3.4进行过拟合检查,如果m≤M1且m不是Num Step的倍数,转步骤4.3.3.2继续训练。
4.3.4采用测试集对脚本事件预测系统进行过拟合检查,并判断是否提前结束训练,方法是:
4.3.4.1初始化迭代参数mt=1;
4.3.4.2Token表示模块接收测试集中的
Figure BDA00033053847400001915
和token编码序列
Figure BDA00033053847400001916
利用Roberta得到
Figure BDA00033053847400001917
的具有上下文特征的向量表示
Figure BDA00033053847400001918
Figure BDA00033053847400001919
Token表示模块从
Figure BDA00033053847400001920
Figure BDA00033053847400001921
中提取两种序列中的CLS令牌的向量表示,分别拼接成K个CLS合并向量表示
Figure BDA00033053847400001922
其中
Figure BDA00033053847400001923
Figure BDA00033053847400001924
Figure BDA00033053847400001925
由拼接而成,事件预测层接收
Figure BDA00033053847400001926
并输出对应的K个候选事件的得分
Figure BDA00033053847400001927
4.3.4.3从
Figure BDA00033053847400001928
中选取最大得分对应的事件序号作为脚本事件预测结果ymt
4.3.4.4令mt=mt+1,如果mt>M2,说明得到了测试集所有的数据上的预测结果,转步骤4.3.4.5;如果mt≤M2,转步骤4.3.4.2。
4.3.4.5计算脚本事件预测系统在测试集上的准确比例acc,
Figure BDA00033053847400001929
f(ymt,gmt)是一个二值函数,如果ymt=gmt则f(ymt,gmt)=1,如果ymt≠gmt则f(ymt,gmt)=0。
4.3.4.6令curr_acc=acc,如果curr_acc>opti_acc,则令opti_acc=curr_acc,使得opti_acc中存储的是测试集上的最佳准确率;如果curr_acc≤opti_acc,且opti_acc-curr_acc≤1.5%,表示没有出现明显的过拟合问题,转步骤4.3.3.2继续训练;如果opti_acc-curr_acc>1.5%,说明满足提前停止训练的条件,训练结束,将Token表示模块中的Roberta模型参数和事件预测层的权重矩阵W和偏置b存储备用,转第五步。
4.3.5计算M1个测试集样本的平均损失值
Figure BDA0003305384740000201
4.3.6使用Adam优化算法对Loss最小化以更新Token表示模块和事件预测层的网络权重参数。
4.3.7令n_epoch=n_epoch+1,如果n_epoch≤Epochs,转4.3.3步;如果n_epoch>Epochs,说明训练满足训练轮数要求,训练结束,将Token表示模块中的Roberta模型参数和事件预测层的权重矩阵W和偏置b存储备用,转第五步。
第五步,训练后的脚本事件预测系统接收用户输入的已发生的事件序列,进行元素编码、Token表示,根据已发生的事件序列预测候选事件集合中最可能发生的事件。方法是:
5.1元素编码模块从键盘或文件接收用户输入的已发生的事件序列,即文本形式的事件组EE0。事件组EE0包含已观测到的上下文事件序列E0=<e1 0,e2 0,...,en 0,...,eN 0>和候选事件集合C0={c1 0,c2 0,...ck 0,...,cK 0}。
5.2利用E0和C0构造虚拟事件序列和虚拟动作序列,将虚拟事件序列和虚拟动作序列转换成句子后进行分词编码,得到EE0对应的事件token编码序列
Figure BDA0003305384740000202
和EE0对应的动作token编码序列
Figure BDA0003305384740000203
方法是:
5.2.1初始化k=1;
5.2.2构建EE0对应的虚拟事件序列Sk 0并转换成句子,方法是:
5.2.2.1将C0中第k个候选事件ck 0和E0组成对应的第k个虚拟事件序列Sk 0:<e1 0,e2 0,...,en 0,...,eN 0,ck 0>;
5.2.2.2将Sk 0中的事件通过字符“##”连接Sk 0中的所有事件,句子的头部和句子的末尾分别添加CLS令牌和SEP令牌,形成“CLSe1 0##e2 0##...##en 0##...,eN 0##ck 0SEP”的句式。其中en 0和ck 0按照as,v,ao,ap的顺序拼接文本。
5.2.3构建虚拟动作序列V-GRk 0并转换成句子,方法是:
5.2.3.1将Sk 0中N+1个事件的动作v和GR的组合(记作v-GR0),拼接成对应的虚拟动作序列V-GRk 0:<v-GR1 0,v-GR2 0,...,v-GRn 0,...,v-GRN 0,v-GRN+k 0>;
5.2.3.2将序列V-GRk 0中的v-GRn通过字符“##”连接,句子的头尾分别添加CLS令牌和SEP令牌,形成“CLSv-GR1 0##v-GR2 0##...##v-GRn 0##...,v-GRN 0##v-GRN+k 0SEP”的句式。其中v-GRn 0按照v,GR的顺序拼接文本。
5.2.4利用Roberta的分词编码器将Sk 0转换的句子进行分词得到输入事件token序列,并且通过查询RoBERTa的词表得到输入事件token序列对应的编码,即输入事件序列的token编码序列
Figure BDA0003305384740000211
5.2.5利用Roberta的分词编码器将V-GRk 0转换的句子进行分词得到输入动作token序列,并且通过查询RoBERTa的词表得到输入动作token序列对应的编码,即输入动作序列的token编码序列
Figure BDA0003305384740000212
5.2.6令k=k+1,如果k≤K,转步骤5.2.2;否则说明得到了输入事件token编码序列
Figure BDA0003305384740000213
Figure BDA0003305384740000214
和输入动作token编码序列
Figure BDA0003305384740000215
Figure BDA0003305384740000216
转步骤5.3。
5.3训练后的Token表示模块(载入了训练后的Roberta模型参数的Token表示模块),对
Figure BDA0003305384740000217
Figure BDA0003305384740000218
进行嵌入、线性变换、多头自注意力、池化操作,得到具有上下文特征的向量表示
Figure BDA0003305384740000219
Figure BDA00033053847400002110
Token表示模块从中提取两种序列中的CLS令牌的向量表示拼接成CLS合并向量表示
Figure BDA00033053847400002111
训练后的事件预测层(载入了训练后的权重矩阵W和偏置b的事件预测层)接收
Figure BDA00033053847400002112
并输出候选事件的得分
Figure BDA00033053847400002113
方法是:
5.3.1初始化k=1;
5.3.2训练后的Token表示模块对
Figure BDA00033053847400002123
进行嵌入、线性变换、多头自注意力、池化操作,得到
Figure BDA00033053847400002114
对应的具有上下文特征的向量表示
Figure BDA00033053847400002115
Figure BDA00033053847400002116
其中
Figure BDA00033053847400002117
Figure BDA00033053847400002118
为CLS令牌和SEP令牌在
Figure BDA00033053847400002119
编码序列中的向量表示。
5.3.3训练后的Token表示模块对
Figure BDA00033053847400002120
利用进行嵌入、线性变换、多头自注意力、池化操作,得到
Figure BDA00033053847400002121
对应的具有上下文特征的向量表示
Figure BDA00033053847400002122
Figure BDA0003305384740000221
其中
Figure BDA0003305384740000222
Figure BDA0003305384740000223
为CLS令牌和SEP令牌在
Figure BDA0003305384740000224
编码序列中的向量表示。
5.3.4将
Figure BDA0003305384740000225
Figure BDA0003305384740000226
横向拼接成CLS合并向量表示
Figure BDA0003305384740000227
5.3.5事件预测层利用载入的参数计算候选事件的得分
Figure BDA0003305384740000228
5.3.6令k=k+1,如果k≤K,转步骤4.3.4.2.2;否则说明得到了
Figure BDA0003305384740000229
对应的候选事件的得分
Figure BDA00033053847400002210
转步骤5.4。
5.4从所有的候选事件分数
Figure BDA00033053847400002211
中选出分数最大的序号作为预测值y0,y0对应的事件即为模型预测的最可能发生的事件。
为验证本发明的效果,使用验证集对模型的预测能力(准确率)进行评估,结果如图3所示,在纽约时报数据集的验证集上,本发明比现有的方法中最好的RoBERTa+Representation Fusion的准确率还提升了3.69%。现有方法中的Event-Comp、PairLSTM和SAM-Net采用的是静态词嵌入的方法,在此基础上使用全连接网络或者LSTM进行了事件表示的更新;SGNN和SGNN+Int+Senti采用了静态图嵌入的方法,之后使用GCN进行事件表示的更新。这些方法难以很好应对动词的一词多义的问题。而RoBERTa+Representation Fusion仅仅将事件简单的连接在一起,没有构建突出动作场景信息的数据结构,不便于系统捕捉动作场景的连续特征。

Claims (11)

1.一种基于动作场景强化的脚本事件预测方法,其特征在于包括以下步骤:
第一步,构建脚本事件预测系统,脚本事件预测系统由元素编码模块、Token表示模块、事件预测层构成;
元素编码模块与Token表示模块相连,从键盘或文件接收用户输入的文本形式的事件组,记作EE;事件组EE包含N条已观测到的上下文事件和K条候选事件,N条已观测到的上下文事件用上下文事件序列E表示,E=<e1,e2,...,en,...,eN>,en是第n个上下文事件;K条候选事件用候选事件集合C表示,C={c1,c2,...ck,...,cK},ck是第k个候选事件;一条事件包含一个事件元素四元组(as,v,ao,ap)、动作v与主角人物的语法关系GR,事件表示为文本集合{as,v,ao,ap,GR},其中v表示事件中的动作,as,ao,ap则分别指代与动词相关的主语、宾语和补语,GR∈{subj,obj,prep},subj,obj,prep分别表示主角人物为动作v的主语、谓语和补语关系,N和K为正整数,1≤n≤N,1≤k≤K;元素编码模块将ck和E组成第k条虚拟事件序列Sk:<e1,e2,...,en,...,eN,ck>,将Sk中动作和GR的组合记作v-GR,并拼接成对应的虚拟动作序列V-GRk:<v-GR1,v-GR2,...,v-GRn,...,v-GRN,v-GRN+k>;将Sk和V-GRk分别转换成句子,句子的头部和末尾分别添加字符“<s>”即CLS令牌和字符“</s>”即SEP令牌,用于表示句子开头和结尾;对Sk或V-GRk转换成的句子进行分词,得到事件序列的token编码序列
Figure FDA0003305384730000011
和动作序列的token编码序列
Figure FDA0003305384730000012
经过K次循环,元素编码模块得到
Figure FDA0003305384730000013
Figure FDA0003305384730000014
Figure FDA0003305384730000015
Figure FDA0003305384730000016
发送给Token表示模块;
Token表示模块与元素编码模块、事件预测层相连,是一个Roberta模型;Token表示模块从元素编码模块接收
Figure FDA0003305384730000017
Figure FDA0003305384730000018
进行嵌入、线性变换、多头自注意力、池化操作,分别得到相应的两种token动态交互的向量表示,即事件序列的向量表示和动作序列对应的向量表示;Token表示模块从事件序列的向量表示中提取出事件CLS令牌的向量表示
Figure FDA0003305384730000019
从动作序列对应的向量表示中提取出动作CLS令牌的向量表示
Figure FDA00033053847300000110
Figure FDA00033053847300000111
连接成包含候选事件ck特征的CLS合并向量表示
Figure FDA00033053847300000112
经过K次循环,得到
Figure FDA00033053847300000113
发送给事件预测层;
事件预测层与Token表示模块相连,是一个由全连接层组成的神经网络,对从Token表示模块接收的
Figure FDA0003305384730000021
进行处理,输出候选事件集合C的K个得分s1,...,sk,...sK,通过排序,取最大得分的事件序号作为脚本事件预测结果,记为y;
第二步,准备训练脚本事件预测系统所需的数据;方法是:
2.1选择事件性新闻文本作为原始语料;
2.2利用C&C工具对原始语料进行词性标注和依赖分析,即将原始语料中的句子切分成多个标注了词性的词语集合,词语集合中的词语根据句子的语法依赖关系进行关联;
2.3利用OpenNLP函数对词语集合进行短语结构处理,得到句子成分即主语、谓语、宾语和补语的短语文本,将这些短语文本作为事件元素四元组(as,v,ao,ap);通过共指消解,将原始语料库中新闻文本中涉及同一主角的事件元素四元组按顺序连接成一个原始事件序列,并记录动作v与主角人物的语法关系GR;
2.4从提取的原始事件序列中选取出至少包含N+1个事件的原始事件序列,得到M条事件序列长度符合要求的原始事件序列集合{R1,...,Rm,...,RM},1≤m≤M为正整数,原始事件序列Rm包含N+1个事件,每个事件包含文本集合{as,v,ao,ap,GR};
2.5从{R1,...,Rm,...,RM}的每个原始事件序列中取出事件元素四元组中的动作构成动作集;
2.6利用{R1,...,Rm,...,RM}构造符合模型训练所需的数据结构,得到训练数据{(EE1,g1),...,(EEm,gm),...,(EEM,gM)},第m个事件组EEm由第m个上下文事件序列Em和第m个候选事件集合Cm共同组成,Em=<e1,e2,...,en,...,eN>,Cm={c1,c2,...ck,...,cK},ck的数据结构和en一样,gm为Cm中真实发生的事件的序号,称为真实序号,转第三步;
第三步,元素编码模块对训练数据进行预处理,得到事件序列的token编码序列TS和动作序列的token编码序列TV-GR,将TS和TV-GR发送给Token表示模块,方法是:
3.1初始化m=1;令e1,e2,...,en,...,eN和c1,c2,...ck,...,cK中的第i个事件为ei,1≤i≤N+K;
3.2处理第m个训练数据(EEm,gm)中的N+K个事件的文本集合中的缺失元素,并隐去其中的主角信息;
3.3利用EEm中的Em和Cm构造虚拟事件序列和虚拟动作序列,将虚拟事件序列和虚拟动作序列转换成句子后进行分词编码,得到EEm对应的事件序列的token编码序列
Figure FDA0003305384730000022
和EEm对应的动作序列的token编码序列
Figure FDA0003305384730000023
方法是:
3.3.1初始化k=1;
3.3.2构建第k个虚拟事件序列Sk m并转换成句子,Sk m为<e1,e2,...,en,...,eN,ck>;
3.3.3构建Sk m对应的虚拟动作序列V-GRk m并转换成句子;
3.3.4利用Roberta的分词编码器Tokenizer将Sk m转换成的句子进行分词,得到token序列,并且通过查询RoBERTa的词表得到token序列的对应编码,即EEm对应的Sk m事件序列的token编码序列
Figure FDA0003305384730000031
其中
Figure FDA0003305384730000032
表示EEm中en中的第D1个令牌编号;maxLen1为Sk m中en的token序列限定长度,maxLen1≥4,1≤D1≤maxLen1
3.3.5利用Roberta的分词编码器将V-GRk m转换的句子进行分词,得到动作的token序列,并查询RoBERTa的词表得到对应的编码,即EEm对应的动作序列V-GRk m的token编码序列
Figure FDA0003305384730000033
Figure FDA0003305384730000034
Figure FDA0003305384730000035
其中
Figure FDA0003305384730000036
表示第n个动词及其语法关系v-GRn中的第D2个令牌编号;maxLen2为V-GRk m中的token序列限定长度,maxLen2≥2,1≤D2≤maxLen2
3.3.6令k=k+1,如果k≤K,转步骤3.3.2;否则说明得到了EEm对应的事件token编码序列
Figure FDA0003305384730000037
Figure FDA0003305384730000038
和EEm对应的动作token编码序列
Figure FDA0003305384730000039
Figure FDA00033053847300000310
Figure FDA00033053847300000311
转步骤3.4;
3.4令m=m+1,如果m≤M,转步骤3.2;否则说明得到了M条训练数据对应的所有事件序列的token编码序列集合TS
Figure FDA00033053847300000312
和M条训练数据对应的所有动作序列的token编码序列集合TV-GR
Figure FDA00033053847300000313
以及M条训练数据对应的真实事件序号G,G={g1,...,gm,...gM}构成的M条数据,即
Figure FDA00033053847300000314
Figure FDA00033053847300000315
第m条数据为
Figure FDA00033053847300000316
数据,将M条数据发送给Token表示模块,转第四步;
第四步,使用训练数据训练Token表示模块和事件预测层,得到网络权重参数;
4.1初始化Token表示模块和事件预测层的参数:将Token表示模块中的RoBERTa中所有的网络载入已预训练好的参数来实现初始化;将事件预测层中的权重矩阵W中所有的元素和偏置b都初始化为[0,1]之间的随机数,
Figure FDA00033053847300000317
表示W是大小为2d×1的矩阵,矩阵元素值均为实数,
Figure FDA0003305384730000041
表示b为实数,d为Token表示模块中token对应向量的长度;
4.2设置网络训练参数:设置网络模型学习率Learning Rate=10-5,数据批量大小Batch Size=16,测试步长Num Step=1000,L2正则化参数=10-8,训练轮数Epochs=3;
4.3训练Token表示模块和事件预测层,方法是:Token表示模块从元素编码模块接收TS和TV-GR,进行计算,得到TS和TV-GR中所有令牌的事件序列的向量表示Vs和动作序列的向量表示VV-GR,再从Vs和VV-GR中提取CLS的向量表示,拼接成CLS合并向量表示Vcls,将Vcls输入发送给事件预测层;事件预测层由Vcls计算得到候选事件的得分;根据候选事件的得分和真实序号来计算损失值,最小化损失值并同时更新Token表示模块和事件预测层网络参数,直到符合提前停止的要求或满足训练轮数要求,得到Token表示模块和事件预测层的权重参数;将Token表示模块中的Roberta模型参数和事件预测层的权重矩阵W和偏置b存储备用,转第五步;
第R步,训练后的脚本事件预测系统接收用户输入的已发生的事件序列,进行元素编码、Token表示,根据已发生的事件序列预测候选事件集合中最可能发生的事件,方法是:
5.1元素编码模块从键盘或文件接收用户输入的已发生的事件序列,即文本形式的事件组EE0;事件组EE0包含已观测到的上下文事件序列E0=<e1 0,e2 0,...,en 0,...,eN 0>和候选事件集合C0={c1 0,c2 0,...ck 0,...,cK 0};
5.2利用E0和C0构造虚拟事件序列和虚拟动作序列,将虚拟事件序列和虚拟动作序列转换成句子后进行分词编码,得到EE0对应的事件token编码序列
Figure FDA0003305384730000042
和EE0对应的动作token编码序列
Figure FDA0003305384730000043
5.2.3构建虚拟动作序列V-GRk 0并转换成句子;
5.2.4利用Roberta的分词编码器将Sk 0转换的句子进行分词得到输入事件token序列,并且通过查询RoBERTa的词表得到输入事件token序列对应的编码,即输入事件序列的token编码序列
Figure FDA0003305384730000044
5.2.5利用Roberta的分词编码器将V-GRk 0转换的句子进行分词得到输入动作token序列,并且通过查询RoBERTa的词表得到输入动作token序列对应的编码,即输入动作序列的token编码序列
Figure FDA0003305384730000045
5.2.6令k=k+1,如果k≤K,转步骤5.2.2;否则说明得到了输入事件token编码序列
Figure FDA0003305384730000046
Figure FDA0003305384730000047
和输入动作token编码序列
Figure FDA0003305384730000048
Figure FDA0003305384730000049
Figure FDA00033053847300000410
转步骤5.3;
5.3训练后的Token表示模块即载入了训练后的Roberta模型参数的Token表示模块对
Figure FDA0003305384730000051
Figure FDA0003305384730000052
进行嵌入、线性变换、多头自注意力、池化操作,得到具有上下文特征的向量表示
Figure FDA0003305384730000053
Figure FDA0003305384730000054
训练后的Token表示模块从中提取两种序列中的CLS令牌的向量表示拼接成CLS合并向量表示
Figure FDA0003305384730000055
训练后的事件预测层即载入了训练后的权重矩阵W和偏置b的事件预测层接收
Figure FDA0003305384730000056
并输出候选事件的得分
Figure FDA0003305384730000057
力法是:
5.3.1初始化k=1;
5.3.2训练后的Token表示模块对
Figure FDA0003305384730000058
进行嵌入、线性变换、多头自注意力、池化操作,得到
Figure FDA0003305384730000059
对应的具有上下文特征的向量表示
Figure FDA00033053847300000510
Figure FDA00033053847300000511
Figure FDA00033053847300000512
其中
Figure FDA00033053847300000513
Figure FDA00033053847300000514
为CLS令牌和SEP令牌在
Figure FDA00033053847300000515
编码序列中的向量表示;
5.3.3训练后的Token表示模块对
Figure FDA00033053847300000516
利用进行嵌入、线性变换、多头自注意力、池化操作,得到
Figure FDA00033053847300000517
对应的具有上下文特征的向量表示
Figure FDA00033053847300000518
Figure FDA00033053847300000519
Figure FDA00033053847300000520
其中
Figure FDA00033053847300000521
Figure FDA00033053847300000522
为CLS令牌和SEP令牌在
Figure FDA00033053847300000523
编码序列中的向量表示;
5.3.4将
Figure FDA00033053847300000524
Figure FDA00033053847300000525
横向拼接成CLS合并向量表示
Figure FDA00033053847300000526
5.3.5事件预测层利用载入的参数计算候选事件的得分
Figure FDA00033053847300000527
5.3.6令k=k+1,如果k≤K,转步骤4.3.4.2.2;否则说明得到了
Figure FDA00033053847300000528
对应的候选事件的得分
Figure FDA00033053847300000529
转步骤5.4;
5.4从所有的候选事件分数
Figure FDA00033053847300000530
中选出分数最大的序号作为预测值y0,y0对应的事件即为模型预测的最可能发生的事件。
2.如权利要求1所述的一种基于动作场景强化的脚本事件预测方法,其特征在于2.1步所述选择事件性新闻文本作为原始语料的选择依据是要求事件性新闻文本真实可信,并且涵盖主角参与的一系列事件。
3.如权利要求1所述的一种基于动作场景强化的脚本事件预测方法,其特征在于2.6步所述构造符合模型训练所需的数据结构的方法是:
2.6.1初始化m=1;
2.6.2将Rm中的前N个事件构成上下文事件序列Em,即<e1,e2,...,en,...,eN>;
2.6.3构造K-1个干扰事件;采用随机函数从动作集中随机选取动词,再从原始事件序列Rm的新闻来源中随机选取出现的人或物补全主语宾语,构成干扰事件;
2.6.4将Rm中的第N+1个事件和K-1个干扰事件组成用于预测的第m个候选事件集合Cm,即Cm={c1,c2,...ck,...,cK},ck的数据结构和en一样;Em和Cm共同组成第m个事件组EEm,EEm中有N+K个事件,即e1,e2,...,en,...,eN和c1,c2,...ck,...,cK
2.6.5随机排列Cm中的事件,并记录Cm中真实发生的事件的序号作为真实序号gm
2.6.6令m=m+1,如果m≤M,转步骤2.6.2;否则说明得到了训练数据{(EE1,g1),...,(EEm,gm),...,(EEM,gM)}。
4.如权利要求1所述的一种基于动作场景强化的脚本事件预测方法,其特征在于3.2步所述处理第m个训练数据(EEm,gm)中的N+K个事件的文本集合中的缺失元素,并隐去其中的主角信息的方法是;
3.2.1初始化i=1;
3.2.2元素编码模块将ei的空缺元素用字符“<pad>”进行替换,“<pad>”称为PAD令牌,是预训练模型中的占位符;
3.2.3隐去ei中的主角信息;将ei的事件文本集合中的主角信息采用“X”字符予以替换;
3.2.4令i=i+1,如果i≤N+K,转步骤3.2.2;否则结束。
5.如权利要求1所述的一种基于动作场景强化的脚本事件预测方法,其特征在于3.3.2步所述构建虚拟事件序列Sk m并转换成句子的方法是:
3.3.2.1将Cm中第k个候选事件ck和Em组成对应的第k个虚拟事件序列Sk m:<e1,e2,...,en,...,eN,ck>;
3.3.2.2将Sk m中N+1个事件通过字符“##”连接,句子的头部和句子的末尾分别添加CLS令牌和SEP令牌,形成“CLSe1##e2##...##en##...,eN##ckSEP”的句式,其中事件en和ck都按照as,v,ao,ap的顺序拼接文本。
6.如权利要求1所述的一种基于动作场景强化的脚本事件预测方法,其特征在于3.3.3步所述构建Sk m对应的虚拟动作序列V-GRk m并转换成句子的方法是:
3.3.3.1将Sk m中N+1个事件的v-GR组合拼接成Sk m对应的虚拟动作序列V-GRk m:<v-GR1,v-GR2,...,v-GRn,...,v-GRN,v-GRN+k>;
3.3.3.2将V-GRk m中的v-GR1,v-GR2,...,v-GRn,...,v-GRN,v-GRN+k通过字符“##”连接,句子的头尾分别添加CLS令牌和SEP令牌,形成“CLSv-GR1##v-GR2##...##v-GRn##...,v-GRN##v-GRN+kSEP”的句式,其中v-GR组合组合都按照v,GR的顺序拼接文本。
7.如权利要求1所述的一种基于动作场景强化的脚本事件预测方法,其特征在于4.3步所述训练Token表示模块和事件预测层的方法是:
4.3.1将3.4步构造得到的M条数据
Figure FDA0003305384730000071
Figure FDA0003305384730000072
分为两个部分:训练集和测试集,记训练集的数据量为M1,测试集的数据量为M2,且M1∶M2=8∶2;训练集用于网络参数的更新,测试集用于判断训练是否过拟合;令训练集中事件token编码序列集合为TS训,令测试集中事件token编码序列集合为TS测;令训练集中动作token编码序列集合为TV-GR训,令测试集中动作token编码序列集合为TV-GR测
4.3.2初始化训练迭代参数n_epoch=1,令测试集上系统的当前准确率curr_acc=0,测试集上系统的最佳准确率opti_acc=0;
4.3.3Token表示模块接收训练集中的TS训和TV-GR训,输出对应的向量表示,并选择其中的CLS向量,拼接成CLS合并向量表示Vcls;事件预测层接收Vcls进行计算得到候选事件的得分,方法是:
4.3.3.1初始化m=1;
4.3.3.2 Token表示模块接收TS训训练集中的第m条数据中的事件token编码序列
Figure FDA0003305384730000073
Figure FDA0003305384730000074
和TV-GR训中第m条数据中的动作token编码序列
Figure FDA0003305384730000075
Figure FDA0003305384730000076
其中
Figure FDA0003305384730000077
表示事件en中的第D1个令牌编号,
Figure FDA0003305384730000078
Figure FDA0003305384730000079
Figure FDA00033053847300000710
为第n个动词及其语法关系v-GRn第D2个令牌编号,Token表示模块利用Roberta对接收的
Figure FDA00033053847300000711
Figure FDA00033053847300000712
进行嵌入表示,得到对应的具有上下文特征的事件序列的向量表示集合
Figure FDA00033053847300000713
和动作序列的向量表示集合
Figure FDA00033053847300000714
Figure FDA00033053847300000715
Figure FDA00033053847300000716
Figure FDA00033053847300000717
对应的具有上下文特征的向量表示,
Figure FDA00033053847300000718
Figure FDA00033053847300000719
Figure FDA00033053847300000720
对应的具有上下文特征的向量表示;Token表示模块从
Figure FDA00033053847300000721
Figure FDA00033053847300000722
中提取CLS令牌的向量表示,依次拼接成K个CLS合并向量表示
Figure FDA00033053847300000723
事件预测层接收
Figure FDA00033053847300000724
并输出候选事件的得分s1,...,sk,...,sK
4.3.3.3计算损失值,方法是把EEm中K个候选事件得分
Figure FDA0003305384730000081
和正确选项gm一同输入CrossEntropyLoss函数,得到第m个损失值Lossm
4.3.3.4令m=m+1,如果m>M1,说明测试集对脚本事件预测系统已经完成了一轮训练,转步骤4.3.5;如果m≤M1且m是训练步长Num Step的倍数,则转步骤4.3.4进行过拟合检查,如果m≤M1且m不是Num Step的倍数,转步骤4.3.3.2继续训练;
4.3.4采用测试集对脚本事件预测系统进行过拟合检查,并判断是否提前结束训练,如果没有出现明显的过拟合问题,转步骤4.3.3.2继续训练;如果满足提前停止训练的条件,将Token表示模块中的Roberta模型参数和事件预测层的权重矩阵W和偏置b存储备用,训练结束;
4.3.5计算M1个测试集样本的平均损失值
Figure FDA0003305384730000082
4.3.6使用Adam优化算法对Loss最小化以更新Token表示模块和事件预测层的网络权重参数;
4.3.7令n_epoch=n_epoch+1,如果n_epoch≤Epochs,转4.3.3步;如果n_epoch>Epochs,说明训练满足训练轮数要求,训练结束。
8.如权利要求7所述的一种基于动作场景强化的脚本事件预测方法,其特征在于4.3.3.2步所述Token表示模块利用Roberta对接收的
Figure FDA0003305384730000083
Figure FDA0003305384730000084
进行嵌入表示,得到对应的具有上下文特征的事件序列的向量表示集合
Figure FDA0003305384730000085
和动作序列的向量表示集合
Figure FDA0003305384730000086
Token表示模块从
Figure FDA0003305384730000087
Figure FDA0003305384730000088
中提取CLS令牌的向量表示,依次拼接成K个CLS合并向量表示
Figure FDA0003305384730000089
事件预测层接收
Figure FDA00033053847300000810
并输出候选事件的得分s1,...,sk,...,sK的方法是:
4.3.3.2.1初始化k=1,初始化
Figure FDA00033053847300000811
为空,初始化
Figure FDA00033053847300000812
为空;
4.3.3.2.2 Token表示模块利用Roberta对
Figure FDA00033053847300000813
进行嵌入、线性变换、多头自注意力、池化操作,得到
Figure FDA00033053847300000814
对应的具有上下文特征的向量表示
Figure FDA00033053847300000815
Figure FDA00033053847300000816
Figure FDA00033053847300000817
其中
Figure FDA00033053847300000818
为令牌
Figure FDA00033053847300000825
对应的向量表示,
Figure FDA00033053847300000820
Figure FDA00033053847300000821
分别为CLS令牌和SEP令牌在
Figure FDA00033053847300000822
中的向量表示,并且所有向量表示的长度为d,将
Figure FDA00033053847300000823
放到
Figure FDA00033053847300000824
中;
4.3.3.2.3 Token表示模块利用Roberta对
Figure FDA0003305384730000091
进行嵌入、线性变换、多头自注意力、池化操作,得到
Figure FDA0003305384730000092
对应的具有上下文特征的向量表示
Figure FDA0003305384730000093
Figure FDA0003305384730000094
Figure FDA0003305384730000095
其中
Figure FDA0003305384730000096
为令牌
Figure FDA0003305384730000097
对应的向量表示,
Figure FDA0003305384730000098
Figure FDA0003305384730000099
为CLS令牌和SEP令牌在
Figure FDA00033053847300000910
中的向量表示,并且所有向量表示的长度为d,将
Figure FDA00033053847300000911
放到
Figure FDA00033053847300000912
中;
4.3.3.2.4Token表示模块将
Figure FDA00033053847300000913
Figure FDA00033053847300000914
横向拼接成CLS合并向量表示
Figure FDA00033053847300000915
Figure FDA00033053847300000916
的向量表示长度为2×d;
4.3.3.2.5事件预测层计算第k个候选事件的得分
Figure FDA00033053847300000917
Figure FDA00033053847300000918
W为事件预测层的矩阵参数,
Figure FDA00033053847300000919
表示W和
Figure FDA00033053847300000920
这两个矩阵相乘;
4.3.3.2.6令k=k+1,如果k≤K,转步骤4.3.3.2.2;否则说明得到了
Figure FDA00033053847300000921
对应的EEm中K个候选事件的得分
Figure FDA00033053847300000922
也得到了
Figure FDA00033053847300000923
Figure FDA00033053847300000924
Figure FDA00033053847300000925
Figure FDA00033053847300000926
结束。
9.如权利要求7所述的一种基于动作场景强化的脚本事件预测方法,其特征在于4.3.4步所述采用测试集对脚本事件预测系统进行过拟合检查,并判断是否提前结束训练的方法是:
4.3.4.1初始化迭代参数mt=1;
4.3.4.2 Token表示模块接收测试集中的
Figure FDA00033053847300000927
Figure FDA00033053847300000928
和token编码序列
Figure FDA00033053847300000929
利用Roberta得到
Figure FDA00033053847300000930
的具有上下文特征的向量表示
Figure FDA00033053847300000931
Figure FDA00033053847300000932
Token表示模块从
Figure FDA00033053847300000933
Figure FDA00033053847300000934
中提取两种序列中的CLS令牌的向量表示,分别拼接成K个CLS合并向量表示
Figure FDA00033053847300000935
其中
Figure FDA00033053847300000936
Figure FDA00033053847300000937
Figure FDA00033053847300000938
由拼接而成,事件预测层接收
Figure FDA00033053847300000939
并输出对应的K个候选事件的得分
Figure FDA00033053847300000940
4.3.4.3从
Figure FDA00033053847300000941
中选取最大得分对应的事件序号作为脚本事件预测结果ymt
4.3.4.4令mt=mt+1,如果mt>M2,说明得到了测试集所有的数据上的预测结果,转步骤4.3.4.5;如果mt≤M2,转步骤4.3.4.2;
4.3.4.5计算脚本事件预测系统在测试集上的准确比例acc,
Figure FDA00033053847300000942
f(ymt,gmt)是一个二值函数,如果ymt=gmt则f(ymt,gmt)=1,如果ymt≠gmt则f(ymt,gmt)=0;
4.3.4.6令curr_acc=acc,如果curr_acc>opti_acc,则令opti_acc=curr_acc,使得opti_acc中存储的是测试集上的最佳准确率;如果curr_acc≤opti_acc,且opti_acc-curr_acc≤1.5%,表示没有出现明显的过拟合问题,需继续训练;如果opti_acc-curr_acc>1.5%,说明满足提前停止训练的条件,训练结束。
10.如权利要求1所述的一种基于动作场景强化的脚本事件预测方法,其特征在于5.2.2步所述利用E0和C0构造虚拟事件序列和虚拟动作序列,将虚拟事件序列和虚拟动作序列转换成句子后进行分词编码,得到EE0对应的事件token编码序列
Figure FDA0003305384730000101
和EE0对应的动作token编码序列
Figure FDA0003305384730000102
方法是:
5.2.1初始化k=1;
5.2.2构建EE0对应的虚拟事件序列Sk 0并转换成句子,方法是:
5.2.2.1将C0中第k个候选事件ck 0和E0组成对应的第k个虚拟事件序列Sk 0:<e1 0,e2 0,...,en 0,...,eN 0,ck 0>;
5.2.2.2将Sk 0中的事件通过字符“##”连接Sk 0中的所有事件,句子的头部和句子的末尾分别添加CLS令牌和SEP令牌,形成“CLSe1 0##e2 0##...##en 0##...,eN 0##ck 0SEP”的句式;其中en 0和ck 0按照as,v,ao,ap的顺序拼接文本。
11.如权利要求1所述的一种基于动作场景强化的脚本事件预测方法,其特征在于5.2.3步所述构建虚拟动作序列V-GRk 0并转换成句子的方法是:
5.2.3.1将Sk 0中动作v和GR的组合v-GR0,拼接成对应的虚拟动作序列V-GRk 0:<v-GR1 0,v-GR2 0,...,v-GRn 0,...,v-GRN 0,v-GRN+k 0>;
5.2.3.2将序列V-GRk 0中的v-GRn通过字符“##”连接,句子的头尾分别添加CLS令牌和SEP令牌,形成“CLSv-GR1 0##v-GR2 0##...##v-GRn 0##...,v-GRN 0##v-GRN+k 0SEP”的句式;其中v-GRn 0按照v,GR的顺序拼接文本。
CN202111202221.3A 2021-10-15 2021-10-15 基于动作场景强化的脚本事件预测方法 Active CN113919319B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111202221.3A CN113919319B (zh) 2021-10-15 2021-10-15 基于动作场景强化的脚本事件预测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111202221.3A CN113919319B (zh) 2021-10-15 2021-10-15 基于动作场景强化的脚本事件预测方法

Publications (2)

Publication Number Publication Date
CN113919319A true CN113919319A (zh) 2022-01-11
CN113919319B CN113919319B (zh) 2022-09-13

Family

ID=79240605

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111202221.3A Active CN113919319B (zh) 2021-10-15 2021-10-15 基于动作场景强化的脚本事件预测方法

Country Status (1)

Country Link
CN (1) CN113919319B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116227598A (zh) * 2023-05-08 2023-06-06 山东财经大学 一种基于双阶段注意力机制的事件预测方法、设备及介质
CN116738974A (zh) * 2023-05-10 2023-09-12 济南云微软件科技有限公司 一种基于泛化因果网络的语言模型生成方法、设备及介质
CN117495071A (zh) * 2023-12-29 2024-02-02 安徽思高智能科技有限公司 一种基于预测性日志增强的流程发现方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111259987A (zh) * 2020-02-20 2020-06-09 民生科技有限责任公司 一种基于bert的多模型融合提取事件主体的方法
CN112528676A (zh) * 2020-12-18 2021-03-19 南开大学 文档级别的事件论元抽取方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111259987A (zh) * 2020-02-20 2020-06-09 民生科技有限责任公司 一种基于bert的多模型融合提取事件主体的方法
CN112528676A (zh) * 2020-12-18 2021-03-19 南开大学 文档级别的事件论元抽取方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
陈平等: "基于BERT-wwm-ext多特征文本表示的经济事件主体抽取方法研究", 《武汉电力职业技术学院学报》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116227598A (zh) * 2023-05-08 2023-06-06 山东财经大学 一种基于双阶段注意力机制的事件预测方法、设备及介质
CN116227598B (zh) * 2023-05-08 2023-07-11 山东财经大学 一种基于双阶段注意力机制的事件预测方法、设备及介质
CN116738974A (zh) * 2023-05-10 2023-09-12 济南云微软件科技有限公司 一种基于泛化因果网络的语言模型生成方法、设备及介质
CN116738974B (zh) * 2023-05-10 2024-01-23 济南云微软件科技有限公司 一种基于泛化因果网络的语言模型生成方法、设备及介质
CN117495071A (zh) * 2023-12-29 2024-02-02 安徽思高智能科技有限公司 一种基于预测性日志增强的流程发现方法及系统
CN117495071B (zh) * 2023-12-29 2024-05-14 安徽思高智能科技有限公司 一种基于预测性日志增强的流程发现方法及系统

Also Published As

Publication number Publication date
CN113919319B (zh) 2022-09-13

Similar Documents

Publication Publication Date Title
CN110134771B (zh) 一种基于多注意力机制融合网络问答系统的实现方法
CN109947912B (zh) 一种基于段落内部推理和联合问题答案匹配的模型方法
CN108959396B (zh) 机器阅读模型训练方法及装置、问答方法及装置
CN113919319B (zh) 基于动作场景强化的脚本事件预测方法
CN112069811B (zh) 多任务交互增强的电子文本事件抽取方法
CN111597830A (zh) 基于多模态机器学习的翻译方法、装置、设备及存储介质
CN111651974B (zh) 一种隐式篇章关系分析方法和系统
CN112667818B (zh) 融合gcn与多粒度注意力的用户评论情感分析方法及系统
CN110222163A (zh) 一种融合cnn与双向lstm的智能问答方法及系统
CN111259851B (zh) 一种多模态事件检测方法及装置
CN112487189B (zh) 一种图卷积网络增强的隐式篇章文本关系分类方法
CN111966812A (zh) 一种基于动态词向量的自动问答方法和存储介质
Gao et al. An over-parameterized exponential regression
CN111401081A (zh) 神经网络机器翻译方法、模型及模型形成方法
CN112926322A (zh) 融合自注意力机制和深度学习的文本分类方法及系统
CN113065358A (zh) 面向银行咨询服务基于多粒度对齐的文本对语义匹配方法
CN110245349B (zh) 一种句法依存分析方法、装置及一种电子设备
CN109614611B (zh) 一种融合生成非对抗网络与卷积神经网络的情感分析方法
CN111914553B (zh) 一种基于机器学习的金融信息负面主体判定的方法
CN114064117A (zh) 一种基于字节码和神经网络的代码克隆检测方法及系统
Al Faraby et al. Image to Bengali caption generation using deep CNN and bidirectional gated recurrent unit
CN114254645A (zh) 一种人工智能辅助写作系统
Yi et al. Exploiting language model for efficient linguistic steganalysis
Zhang et al. Description-enhanced label embedding contrastive learning for text classification
CN115204143B (zh) 一种基于prompt的文本相似度计算方法及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant