Efficient Document-level Event Extraction via Pseudo-Trigger-aware Pruned Complete Graph论文解读

Efficient Document-level Event Extraction via Pseudo-Trigger-aware Pruned Complete Graph

Efficient Document-level Event Extraction via Pseudo-Trigger-aware Pruned Complete Graph论文解读_第1张图片

基于伪触发感知的剪枝完全图的文档级事件抽取

code:Spico197/DocEE: ️ A toolkit for document-level event extraction, containing some SOTA model implementations. (github.com)

paper:Efficient Document-level Event Extraction via Pseudo-Trigger-aware Pruned Complete Graph | IJCAI

期刊/会议:IJCAI 2022

摘要

以前对文档级事件提取的大多数研究主要集中于以自回归的方式构建论元链,这取得了一定的成功,但在训练和推理方面效率都很低。与之前的研究相比,我们提出了一种快速、轻量级的模型,称为PTPCG。在我们的模型中,我们设计了一种新的事件论元组合策略,并通过剪枝完全图设计了一个非自回归解码算法,这些图是在自动选择的伪触发器的指导下构建的。与之前的系统相比,我们的系统以19.8%的参数和更低的资源消耗获得了竞争性的结果,训练只需3.8%的GPU小时,推理速度高达8.5倍。此外,我们的模型显示了具有(或不具有)触发器的数据集的优异兼容性,伪触发器可以作为带标注触发器的补充,以进一步改进。

1、简介

事件提取(EE)旨在用给定的文本填充事件表。与侧重于构建以触发词为中心的树的句子级EE(SEE)不同,文档级EE(DEE)是解码多个句子中丰富实体的论元组合,并将这些组合填充到事件记录表中,如图1所示,标注的触发器通常不可用。

Efficient Document-level Event Extraction via Pseudo-Trigger-aware Pruned Complete Graph论文解读_第2张图片

DEE面临的挑战之一是没有触发器的事件-论元组合。DEE数据集中的触发器要么不存在,要么标注质量很低,因为大规模数据集通常是通过与现有知识库(KB)的远程监督(DS)对齐来生成的。因此,在最近的研究中,触发词的缺失推动了无触发器参数组合方法的发展。Yang等人首先识别一个关键句子,然后通过查找句子附近的论元来填充事件记录表,而部分全局特征和参数仍然缺失。Zheng等人和Xu等人充分利用了全局信息,通过构建有向无环图(DAG)进行了重大改进。然而,这种基于DAG的方法需要大量的计算资源,因为它们依赖于自回归方式来解码参数组合,这在长文档的训练和推理中都是低效的。同时,构建DAG会消耗大量内存来存储以前的路径。因此,在最少四个32GB GPU的情况下,训练这种基于DAG的DEE模型几乎需要一周的时间,而且推理速度也非常慢。

考虑到DEE中的上述挑战以及基于DAG的方法中的速度和内存消耗问题,在本文中,我们的目标是1)提出一种通用的事件参数组合策略,该策略既适用于有触发词,也适用于无触词的DEE;2)为文档级事件提取提供了一个非常快速和轻量级的模型。我们提出了一种新的非自回归方法,称为伪触发感知剪枝完全图(PTPCG)。具体来说,我们将每个论元组合表述为一个剪枝完全图,其中重要论元被识别并视为一组具有双向连接的伪触发器,其他普通论元以定向方式从这些伪触发器链接。基于带有伪触发器的剪枝完全图,我们设计了一种具有非自回归解码策略的事件论元组合提取算法。

实验结果表明,我们的PTPCG仅使用基于DAG的SOTA模型19.8%的参数就可以获得有竞争力的结果,仅需3.8%的GPU小时训练,推理速度快8.5倍。此外,我们的PTPCG具有高度灵活性和可扩展性,可以用作基于非自回归触发词的事件提取的通用架构。如果每个组合只选择一个伪触发词,则剪枝完全图将成为以触发词为中心的树,如SEE。此外,可以采用伪触发词作为补充,以增强带标注的基于触发词的方法。

总之,我们的贡献包括:

  • 我们提出了一种新的非自回归事件论元组合范式,该范式基于带有伪触发词的剪枝完全图,该范式在带有(或不带有)触发词的文档级事件提取中兼容。
  • 我们的模型对于端到端文档级事件抽取是快速和轻量级的,我们进行了广泛的实验以显示效率和效果。
  • 据我们所知,我们目前的方法是第一项研究在DEE中使用某些论元作为伪触发词的效果的工作,我们设计了一个指标来帮助自动选择一组伪触发词。此外,这种度量也可用于度量DEE中带标注触发词的质量。

2、方法

如图2所示,我们的模型可以分为四个部分:1)事件检测执行多标签分类,以识别所有可能的事件类型。2) 实体抽取从文档中提取所有实体,并将这些实体编码为密集向量。3) 组合抽取构建剪枝完全图,并从这些图中解码论元组合。4) 事件记录生成将事件类型的结果和抽取的论元组合起来,以生成最终的事件记录。

Efficient Document-level Event Extraction via Pseudo-Trigger-aware Pruned Complete Graph论文解读_第3张图片

2.1 事件检测

对于一个文档 D D D,使用BiLSTM可以将每个句子 s i s_i si编码为向量的形式 ( h i ( 1 ) , h i ( 2 ) , . . . , h i ( ∣ s i ∣ ) ) (h_i^{(1)},h_i^{(2)},...,h_i^{(|s_i|)}) (hi(1),hi(2),...,hi(si)) h i ( j ) ∈ R d h h_i^{(j)} \in \R^{d_h} hi(j)Rdh是连接两个双向的表征 h i ( j ) → ∥ h i ( j ) ← \overrightarrow {h_i^{(j)}} \parallel \overleftarrow {h_i^{(j)}} hi(j) hi(j) ∣ s i ∣ |s_i| si是第 i i i个句子的长度。每个方向上的最后隐藏状态将被拼接,目的是获取句子级的表征 g i ∈ G , g i = h i ( ∣ s i ∣ ) → ∥ h i ( 0 ) ← g_i \in G ,g_i = \overrightarrow {h_i^{(|s_i|)}} \parallel \overleftarrow {h_i^{(0)}} giG,gi=hi(si) hi(0)

随后,我们遵循Doc2EDAG,并使用随机初始化的事件查询,对 G G G进行多头关注,以对每个事件类型进行二分类。事件检测组件 L d e t L_{det} Ldet的损失函数被定义为二分类交叉熵损失。

2.2 实体抽取

实体提取任务可以被制定为BIO范式中的序列标注任务。为了增强实体识别,我们通过简单的正则表达式匹配将更多的货币、日期、百分比比率和共享实体,并添加到数据集中。为了处理文档级实体抽取,我们首先将整个文档拆分为句子,并执行句子级的实体提及抽取。然后,我们将BiLSTM与CRF一起使用来提取与事件检测中使用的BiLSTM相同的实体提及。实体抽取的训练目标是最小化每个句子的CRF负对数似然损失 L e n t L_{ent} Lent

对于实体提及的所有token,在token级表示上应用最大池操作以获得实体提及表征 m ~ j \widetilde m_j m j。由于实体提及类型已被证明对下游子模块有效,我们通过查找嵌入表将预测的离散实体提及类型转换为向量。在连接 m ~ j \widetilde m_j m j和类型嵌入 l j l_j lj之后,我们得到最后实体提及表示 m j = m ~ j ∥ l j ∈ R d a m_j=\widetilde m_j \parallel l_j \in \R^{d_a} mj=m jljRda,其中 d a = d h + d l d_a=d_h+d_l dadh+dl d l d_l dl表示 l j l_j lj的维度。最后,对实体的所有实体提及进行聚合,以通过另一个最大池获得实体表示 e ^ i \hat e_i e^i。为了更好地建模实体语义和组合提取的潜在连接,应用了额外的BiLSTM层来获得实体表示集合 ε = { e ~ i } i = 1 ε \varepsilon =\{ \widetilde e_i\}_{i=1}^{\varepsilon} ε={e i}i=1ε

2.3 组合抽取

在本节中,我们将介绍选择伪触发词、构建剪枝完全图以及从图中解码组合的细节。

伪触发词的选择:由于文档长度和数据集的规模,很难在文档中手动标注常规触发词。相反,我们以自动方式为每个事件类型选择一组伪触发词。

根据经验,触发词是扮演两个角色的关键字:1)触发词可用于识别组合;2) 触发词是可以区分不同组合的记录。组合是由论元组成的,我们可以通过找到所有对应的论元来提取特定的组合。为此,我们设计了一个重要度度量,用于评估一组论元是否可以用作伪触发词的可能性。通常,我们首先根据重要性得分选择一组论元角色作为每个事件类型的候选,并将相应的论元作为伪触发词。

形式上,重要度得分是通过存在性和可区分性来获得的。对于 t i t_i ti类型中预定义论元角色的子集,选择 R = { r j } j = 1 ∣ R ∣ R=\{r_j\}_{j=1}^{|R|} R={rj}j=1R作为伪触发词候选。 ∣ R ∣ |R| R是一个超参数,表示每个论元组合的选定为触发词的数量。存在性度量 R R R的自变量是否能够识别组合。 N e ( R ) N_e^{(R)} Ne(R)是事件记录的数量, R R R至少对应一个论元不为NULL, N ( i ) N^{(i)} N(i) t i t_i ti的总记录数。可区分性被定义为满足触发词可以区分不同的组合,其中 N u ( R ) N_u^{(R)} Nu(R) R R R的论元不出现在同一文档中的其他记录中的记录数。随着存在性和可分辨性的增加,通过选择具有最高重要性分数的候选来选择伪触发词。
E x i s t e n c e ( R ) = N e ( R ) N ( i ) Existence(R)=\frac{N_e^{(R)}}{N^{(i)}} Existence(R)=N(i)Ne(R)

D i s t i n g u i s h ( R ) = N u ( R ) N ( i ) Distinguish(R)=\frac{N_u^{(R)}}{N^{(i)}} Distinguish(R)=N(i)Nu(R)

I m p o r t a n c e ( R ) = E x i s t e n c e ( R ) × D i s t i n g u i s h ( R ) Importance(R)=Existence(R) \times Distinguish(R) Importance(R)=Existence(R)×Distinguish(R)

剪枝完全图构建:基于DEE任务设置和数据分析,我们提出了一个假设,即相同组合中的论元在语义空间中彼此接近。根据这个假设,我们将伪触发词作为论元组合的核心,并将每个组合表示为剪枝后的完全图。如图2的剪枝完全图所示,对于伪触发词 a t ( i ) a_t^{(i)} at(i) a t ( j ) a_t^{(j)} at(j)在相同组合中的任意两个论元,它们是双向连接的,其中邻接矩阵 y A ( i , j ) = y A ( j , i ) = 1 y_A^{(i,j)}=y_A^{(j,i)}=1 yA(i,j)=yA(j,i)=1。对于同一组合中的伪触发词 a t ( i ) a_t^{(i)} at(i)和普通论元 a o ( j ) a_o^{(j)} ao(j),它们通过有向链路连接,并且 y A ( i , j ) = 1 y_A^{(i,j)}=1 yA(i,j)=1。此外,每个论元 a ( i ) a^{(i)} a(i)都有一个自循环连接,其中 y A ( i , j ) = 1 y_A^{(i,j)}=1 yA(i,j)=1 y A y_A yA中的其他实体为零,其中不参与任何组合的实体是图中的孤立节点。

在获得实体表示之后,应用点积的相似性函数(等式4-6)来估计它们的语义距离:
e ~ i = e i × W s T = b s \widetilde e_i=e_i \times W_s^T =b_s e i=ei×WsT=bs

e ~ j = e j × W e T + b e \widetilde e_j=e_j \times W_e^T+b_e e j=ej×WeT+be

A ~ i , j = s i g m o i d ( e ~ i T e ~ j / d h ) \widetilde A_{i,j}=sigmoid(\widetilde e_i^T \widetilde e_j / \sqrt d_h) A i,j=sigmoid(e iTe j/d h)

A ~ \widetilde A A 是相似度矩阵, W s , W e ∈ R d a × d a W_s,W_e \in \R^{d_a \times d_a} Ws,WeRda×da b s , b e ∈ R d a b_s,b_e \in \R^{d_a} bs,beRda是语义空间度量映射的可训练参数。

在训练过程中,我们使用二分类交叉熵损失去度量组合损失 L c o m b L_{comb} Lcomb

为了预测修剪后的完整图的二分类邻接矩阵 A A A以供进一步解码,此处使用阈值 γ \gamma γ(等式7)。
A i , j = { 1 , A ~ i , j ≥ γ 0 , o t h e r w i s e \rm {A_{i,j}=} \left \{ \begin{array}{l} 1,\widetilde A_{i,j} \ge \gamma \\ 0,otherwise \end{array} \right. Ai,j={1,A i,jγ0,otherwise
非自回归组合解码。使用非自回归解码算法基于预测的相邻矩阵 A A A提取事件论元组合。

首先,基于节点的出度识别所有伪触发词,并将每个伪触发词组识别为一个团。如果实体的出度大于0(自循环除外),则该实体被视为伪触发词。对于 ∣ R ∣ = 1 |R|=1 R1,所有组合都是以伪触发词为中心的树,其中每个组合都由伪触发词及其邻居组成。否则,首先应用Bron Kerbosch(BK)算法来查找所有可能的派系(图3中的步骤1)。要应用BK算法,论元之间的链接必须是无向的,因此我们首先提取所有双向链接作为无向输入。

Efficient Document-level Event Extraction via Pseudo-Trigger-aware Pruned Complete Graph论文解读_第4张图片

如图3所示,下一步是在组合中查找普通(非伪触发词)论元。我们进一步利用团中每个伪触发词的所有邻居。之后,执行交集操作以查找通常共享的普通论元。这种组合由一个伪触发词团及其共同的普通论点组成。对于那些在组合中只有一个论元的极端记录,所有预测的实体都作为默认组合聚合在一起。

文档长度不影响事件记录生成速度,并且我们的事件记录生成的时间复杂度是多项式 ( O ( N t × N c ) ) (O(N_t \times N_c)) (O(Nt×Nc)),而基于DAG的模型是 ( O ( N t × N s × N r ) ) (O(N_t \times N_s \times N_r)) (O(Nt×Ns×Nr)),其中 N t 、 N c 、 N s 、 N r N_t、N_c、N_s、N_r NtNcNsNr是预测类型、组合、预测跨度和每种类型的平均角色数。在大多数情况下, N s × N r ≥ N c N_s \times N_r \ge N_c Ns×NrNc,因此我们的PTPCG始终保持速度优势。

2.4 事件记录生成

从剪枝后的完整图中获得组合集合 C C C后,下一步是将这些组合填充到事件表中。首先,所有组合都应与事件类型匹配。由于事件检测是一个多标签分类任务,因此可能有不止一种类型的预测。对于所有类型预测 T p = { t j } j = 1 ∣ T p ∣ T_p=\{t_j\}_{j=1}^{|T_p|} Tp={tj}j=1Tp和组合 C C C,我们执行笛卡儿积,得到所有类型组合对 < t j , c k > ∣ 1 ≤ j ≤ ∣ T p ∣ , 1 ≤ k ≤ ∣ C ∣ {|1 \le j \le |Tp|,1 \le k \le |C|} <tj,ck>1jTp,1kC

对于每一对 < t j , c k > <tj,ck>,我们使用事件相关前馈网络(FFN)作为分类器,以获得 c k c_k ck中所有论元 ε k \varepsilon_k εk的可能角色结果,并使用Sigmoid形函数获得概率 p r o l e ( j ) ( r j ∣ c k ) p_{role}^{(j)}(r_j|c_k) prole(j)(rjck)。损失 L r o l e L_{role} Lrole由二分类交叉熵函数计算。

在角色分类任务中,实体可以充当记录中的多个角色,而表中的角色只能由一个实体填充。根据此设置,我们取实体 e i ∗ ( k ) e_{i^*}^{(k)} ei(k)作为角色 r j ( q ) r_j^{(q)} rj(q)的自变量,当且仅当其满足等式8中的约束。如果 ∀ j ∈ [ 1 , ∣ T p ∣ ] , p r o l e ( j ) ( r j ∣ c k ) < 0.5 \forall j \in [1,|T_p|],p_{role}^{(j)}(r_j|c_k) <0.5 j[1,Tp],prole(j)(rjck)<0.5,则该对被识别为无效候选,将被丢弃。
i ∗ = a r g m a x q p r o l e ( j ) ( r j ( q ) ∣ c k ) i^*=argmax_q p_{role}^{(j)}(r_j^{(q)}|c_k) i=argmaxqprole(j)(rj(q)ck)

2.5 优化

我们的PTPCG是一个端到端的模型,具有联合培训和计划采样策略。总损失是所有损失的加权和,如下所示:
L = α 1 L d e t + α 2 L e n t + α 3 L c o m b + α 4 L r o l e L=\alpha_1 L_{det}+\alpha_2 L_{ent}+\alpha_3 L_{comb}+\alpha_4 L_{role} L=α1Ldet+α2Lent+α3Lcomb+α4Lrole
其中,α1、α2、α3、α4是降低不平衡损失的超参数。

3、实验

3.1 数据集

ChFinAnn:ChFinAnn是迄今为止最大的DEE数据集,通过无触发词标注的远程监督对齐构建,这在先前的研究中被广泛使用。该数据集包含32k条财务公告和48k条事件记录,其中29%的文档有不止一条记录,98%的记录有分散在不同句子中的论点。平均一份文件包含20个句子,最长的文件包含6.2k个汉字。

DuEE-fin:DuEE-fin是另一个带有触发词标注的DEE数据集。它包含13种事件类型和11.7k个文档,在线评估测试集。DuEE-fin中的每条记录都有一个标记的触发词,没有特定位置,36%的记录在文档中共享相同的触发词。

3.2 实验设置

我们根据ChFinAnn中开发集的性能选择系统的超参数。在PTPCG中,我们使用两层共享的BiLSTM进行事件检测和实体抽取,另外两层BiLSTM用于实体编码。我们使用与相同的词汇表,并随机初始化所有嵌入,其中 d h = 768 d_h=768 dh=768 d l = 32 d_l=32 dl=32。Adam优化器的学习率为5e-4,最小批量大小为64。等式9中的权重为0.05、1.0、1.0和1.0,等式7中的 γ \gamma γ为0.5。遵循Zheng等中的设置,我们训练我们的模型100个epoch,并选择开发集上F1得分最高的检查点,在测试集上进行评估。

3.3 Baseline和评价指标

Baseline:DCFEE(DCFEE-O,DCFEE-M)、Doc2EDAG(GreedyDoc)、GIT。

Metrics:F1-score。

3.4 主要结果

Efficient Document-level Event Extraction via Pseudo-Trigger-aware Pruned Complete Graph论文解读_第5张图片

3.5 对比模型参数和速度

对比模型参数的数量:如表1所示,在所有模型中,PTPCG是最轻量级的模型,并且与DCFEE处于相同的规模,而PTPCG在ChFinAnn all上以16.2%的绝对分数超过DCFEE-O。在不考虑16M词汇嵌入参数的情况下,PTPCG仅采用了GIT的19.8%的参数,并取得了有竞争力的结果。

对比速度:得益于轻量级架构设计和非自回归解码风格,我们的PTPCG在训练和推理方面都很快。

比较表1中所示的训练时间,训练GIT需要633.GPU小时,而PTPCG速度快26.4倍,仅需24.0GPU小时。这些事实表明,与其他方法相比,PTPCG的训练效率更高,所需的计算资源成本更低,整个训练过程从4个NVIDIA V100 GPU的几乎一周缩短到1个GPU的一天。

根据图4中的推理速度测试,PTPCG比其他模型更具可扩展性。随着批量大小的增长,PTPCG变得更快,最终稳定在每秒125个文档,而Doc2EDAG和GIT几乎没有随着批量大小增长,峰值分别为19和15个文档/秒。PTPCG比Doc2EDAG和GIT快7.0倍和8.5倍。作为Doc2EDAG的增强版本,GIT平均比Doc2EDAG慢21.2%,当批处理大小为128时,在32GB内存GPU上会产生OOM错误。为了更进一步检查不同的编码器,我们将transformer替换为transformer编码器,创造了一个TransPTPCG模型,和Doc2EDAG具有一样多的参数。图4中的结果表明,TransPTPCG比Doc2EDAG快2.5倍,验证了非自回归组合解码的优势。

Efficient Document-level Event Extraction via Pseudo-Trigger-aware Pruned Complete Graph论文解读_第6张图片

3.6 作为补充的伪触发词

PTPCG能够处理带或不带人工标注的触发词,自动选择的伪触发词可以作为增强性能的补充。

Efficient Document-level Event Extraction via Pseudo-Trigger-aware Pruned Complete Graph论文解读_第7张图片

如表2所示,我们发现伪触发器可以帮助触发词将重要性得分从62.9提高到93.7,结果表明,这有助于识别组合,并使离线开发评估提高0.7%,在线测试集提高0.8%。

Efficient Document-level Event Extraction via Pseudo-Trigger-aware Pruned Complete Graph论文解读_第8张图片

为了进一步验证伪触发器选择的重要性分数的有效性,我们选择了具有中间和最低重要性分数而不是最高重要性分数的伪触发词组,并分析了表3中的结果。这个结果展示了重要性和综合分数存在正相关性。然而,最高重要度得分(88.3%)不等于100.0%,这可能会限制解码的上限。我们将在第3.7节中详细解释错误分析。

3.7 错误分析

尽管修剪后的完整图结构对于训练和推理是有效的,但它在相似性计算(相邻矩阵预测)和组合解码中并不完美。这里我们分析了组合解码算法的上界,并讨论了未来的方向。

表4中的结果表明,伪触发器数量较少的模型更好。然而,具有更多伪触发器的模型具有更高的解码上限和更高的重要性分数。为什么具有更多伪触发器的模型具有更大的重要性,但仍然会导致更低的性能?表3和表4中的结果可以回答这个问题。具有相同|R|的模型具有很强的相关性,即更高的重要性带来更高的度量分数,这验证了基于重要性分数的伪触发选择策略的有效性。然而,更多的伪触发器会带来更多的连接,并且该模型可能不够健壮,无法正确预测每个连接,从而导致相邻的准确性下降。

总体而言,更多的伪触发器提高了上限并降低了组合错误率,这是一种权衡,但也为恢复实体之间的连接带来了新的挑战。我们认为改进相似性计算和相邻矩阵预测是未来的发展方向。

Efficient Document-level Event Extraction via Pseudo-Trigger-aware Pruned Complete Graph论文解读_第9张图片

4、相关工作

完全标注的数据集通常规模较小。远监督(DS)构建的数据集规模很大,但它们很难将触发器与记录相匹配,因此可能缺少触发器。与基于触发器的方法不同,Liu等人认为,可以在没有触发器的情况下检测事件类型。Yang等人使用关键句子窗口中的实体提取事件记录。它很有效率,但从其他句子中漏掉了很多信息。为了充分利用整个文档中的所有实体,Doc2EDAG将论元组合制定为有向无环图(DAG),在DEE方面取得了巨大进展。GIT是Doc2EDAG的变体,其中添加了图形神经网络,以帮助实体编码,并在解码期间进一步利用全局记忆机制。DAG以自回归的方式提取组合,这非常耗时,并且需要全局内存模块中的巨大空间来存储所有先前的路径。此外,Doc2EDAG和GIT都是大型模型,Doc2EDAP和GIT使用12层和16层变压器编码器。为了训练这样的模型,至少需要运行四个32GB的GPU近一周。Huang和Jia利用BERT作为句子表示,并通过图形神经网络利用句子之间的关系来帮助识别固定数量的组合。为了加快DEE的速度,我们提出了一种新的非自回归解码策略,并与之前的工作相比,提高了训练和推理的速度。

5、总结

为了追求快速和通用的文档级事件提取(DEE),我们提出了一个名为PTPCG的非自回归模型。对于没有触发器的DEE,我们首先选择一组伪触发器来构建剪枝的完全图,然后训练一个轻量级模型来提取所有可能的组合,这实现了非自回归解码,与SOTA模型相比,速度高达8.5倍。对于带标注触发器的DEE,伪触发器也显示了改进的能力,甚至比带标注的仅带触发器的方法更好。总之,与以前的系统相比,我们的模型花费更少的资源,但获得了更好或可比的结果。

我们提出了一个名为PTPCG的非自回归模型。对于没有触发器的DEE,我们首先选择一组伪触发器来构建剪枝的完全图,然后训练一个轻量级模型来提取所有可能的组合,这实现了非自回归解码,与SOTA模型相比,速度高达8.5倍。对于带标注触发器的DEE,伪触发器也显示了改进的能力,甚至比带标注的仅带触发器的方法更好。总之,与以前的系统相比,我们的模型花费更少的资源,但获得了更好或可比的结果。

虽然PTPCG在邻接矩阵预测中并不完美,但我们认为它有能力组合不同的DEE任务,需要更多的探索。

你可能感兴趣的:(人工智能,深度学习,自然语言处理)