RAAT: Relation-Augmented Attention Transformer for Relation Modeling in Document-Level Event Extraction

code:RAAT

paper:paper

期刊/会议:NAACL2022

摘要

在文档级事件提取(DEE)任务中,事件论元总是分散在句子之间(跨句子问题),多个事件可能位于一个文档中(多事件问题)。在本文中,我们认为事件论元的关系信息对于解决上述两个问题具有重要意义,并提出了一个新的DEE框架,该框架可以对关系依赖进行建模,称为关系增强文档级事件提取(ReDEE)。更具体地说,这个框架的特点是一个新颖的、量身定制的transformer,称为关系增强注意transformer(RAAT)。RAAT可扩展以捕获多尺度和多论元关系。为了进一步利用关系信息,我们引入了一个单独的事件关系预测任务,并采用多任务学习方法来显式提高事件提取性能。大量实验证明了该方法的有效性,可以在两个公共数据集上实现最先进的性能。

1、简介

事件提取(EE)任务旨在从文本中检测事件,然后提取相应的论元作为不同的角色,它能为下游任务提供大量的结构信息,例如推荐、知识图谱构建、智能问答等。

先前大多数的工作都是句子级事件抽取(SEE),抽取事件从单个句子中。然而,SEE不能直接应用于现实场景,例如,事件论元可能分布在多个句子中间。如图1所示,第4句提到了事件角色Pledger的事件论元[ORG1],第5句和第6句提到了相应的事件角色Pledgee的论元[ORG2]。我们称之为跨句问题。另一种情况涉及多事件问题,这意味着同一文档中可能存在多个事件。如图1中的示例所示,在两个事件记录重合的情况下,我们应该认识到它们可能部分共享公共参数。

最近,文档级事件提取(DEE)引起了学术界和工业界的极大关注,被认为是解决上述问题的一个有希望的方向。然而,通过我们的观察,我们发现事件论元之间的关系具有某种范式,这是指导事件提取的重要指标。现有的DEE方法忽略了这一信息。直觉上,关系信息可以在多个句子之间建立事件角色的长期关系知识,这可以缓解跨句子问题。对于多事件问题,可以根据不同的先验关系知识将一个文档中的共享参数区分为不同的角色。如图1所示,[ORG1]和[ORG2]具有Pledger和Pledgee的优先关系模式,以及Pledger与其Pledged Shares之间的关系模式的[ORG1]和[SHARE1]。因此,如果关系信息建模良好,则可以提高DEE的准确性。

在本文中,我们提出了一种新的DEE框架,称为关系增强文档级事件抽取(ReDEE),它能够通过量身定制的transformer建模论元之间的关系信息。该结构可以覆盖多尺度和多量关系,适用于不同的关系建模情况。我们将该结构命名为关系增强注意力transformer(RAAT)。为了充分利用关系信息,我们在ReDEE框架中引入了关系预测任务,并采用多任务学习方法来优化事件提取任务。我们在两个公共数据集上进行了广泛的实验。结果证明了关系信息建模的有效性,以及我们提出的框架和方法。

总之,我们的贡献如下:

  • 我们提出了一个关系增强的文档级事件提取(ReDEE)框架。这是第一次在文档级事件提取字段中实现关系信息。
  • 我们设计了一种新的关系增强注意力transformer(RAAT)。该网络一般用于覆盖DEE中的多尺度和多量关系。
  • 我们进行了广泛的实验,结果表明我们的方法优于现有的基线,并在两个数据集上分别以1.6%和2.8%的F1绝对增长率实现最先进的性能。

2、相关工作

2.1 句子级事件抽取

此前,大多数相关工作都集中在句子级事件提取上。例如,提出了一种神经网络管道模型,首先识别触发词,然后提取角色和论元。然后创建联合模型,通过多任务学习同时提取触发词和论元。为了利用更多知识,一些研究建议利用文档上下文、预先训练的语言模型和显性外部知识。然而,这些句子级模型无法提取跨句子的多个限定事件,而文档级事件提取是现实场景中更常见的需求。

2.2 文档级事件抽取

最近,DEE引起了学术界和工业界的极大关注。首先,从中心句子中识别事件,并从相邻句子中分别提取其他论元。随后,提出了一种创新的端到端模型Doc2EDAG,该模型可以通过基于实体的有向非循环图生成事件记录,以有效地实现文档级事件提取。基于Doc2EDAG,出现了一些变体。例如,GIT设计了一个异构图形交互网络,以捕获不同句子和实体提及之间的全局交互信息。它还引入了一个特定的触发器模块来存储已经提取的事件论元,以便在下一次迭代中辅助记录生成。DE-PPN是一个多粒度模型,可以通过限制记录查询的数量来生成事件记录。不久前,提出了一种基于剪枝完全图的非自回归模型PTPCG,以加速记录解码并获得竞争性总体评估结果。总之,尽管这些现有工作的目标是从不同角度解决DEE任务的跨句子和多事件问题,但据我们所知,我们在本文中对该研究领域的关系建模进行了先驱性研究。

2.3 触发感知事件抽取

先前大量的工作分两个阶段处理事件提取:首先,检测触发词,这些词通常是名词或动词,可以清楚地表示事件的发生。其次,通过建模触发器和触发器之间的关系,提取事件的主要属性——事件论元。在我们的工作中,我们将任务统一为一个整体,以避免子任务之间的错误传播。

3、Preliminaries

首先,我们阐明了事件提取任务中的几个关键概念。1) 实体:真实世界的对象,如人、组织、位置等。2)实体提及:文档中引用实体对象的文本跨度。3) 事件角色:与事件中预定义字段相对应的属性。4) 事件论元:扮演特定事件角色的实体。5) 事件记录:表示事件本身的记录,包括一系列事件参数。

在文档级事件抽取任务中,一个文档能够包含多个事件记录,并且事件记录可能丢失一小组事件参数。此外,一个实体可以有多个事件提及。

4、方法

4.1 架构总览

文档级事件抽取的端到端的训练方式通常采用一个流水线范式,包含三个子任务:命名实体识别、事件角色预测和事件论元抽取。在本文中,我们提出了一种关系增强的文档级事件抽取(Relation-augmented Document-level Event Extraction, ReDEE)框架。我们的框架特点是利用关系依赖信息在编码和解码阶段。此外,关系预测任务将添加到这个框架中,目的是更加全面利用关系知识和强化时间抽取任务。

更详细地讲,如图2所示,这里有四个关键的组件构成了我们的ReDEE框架:实体抽取和表征(Entity Extraction and Representation, EER), 文档关系抽取(Document Relation Extraction, DRE), 实体和句子编码(Entity and Sentence Encoding, ESE), 事件记录生成(Event Record Generation, ERG)。在下文中我们将详细地介绍这几部分内容。

4.2 实体抽取和表征

我们将实体抽取部分看作一个序列标注任务。给定一个文档 D D D,包含了多个句子 { s 1 , s 2 , . . . , s i } \{s_1,s_2,...,s_i\} {s1,s2,...,si},我们使用一个原始的 transformer 编码器去呈现token序列。更具体来说,我们使用BERT编码器预训练在Roberta参数设置上。使用CRF对token进行分类,将token的向量表示转化为标签实体。我们采用BIOSE的序列标注范式。标签被预测通过以下公式: y ^ n e = C R F ( T r a n s ( D ) ) \hat y_{ne}=CRF(Trans(D)) y^ne=CRF(Trans(D))。然后,提取实体的所有中间嵌入提及和句子连接成一个矩阵 M n e w + s ∈ R ( j + i ) × d e M_{new+s} \in \R^{(j+i) \times d_e} Mnew+sR(j+i)×de,在每个句子和实体提及跨度上进行最大池化, j j ji i i分别表示实体提及和句子, d e d_e de代表embedding的维度。命名实体识别的损失函数将被定义为:
L n e = − ∑ s i ∈ D l o g P ( y i ∣ s i ) L_{ne}=-\sum_{s_i \in D} logP(y_i|s_i) Lne=siDlogP(yisi)
其中 s i s_i si代表的是文档中第 i i i个句子, y i y_i yi代表的是正确的序列标注。

4.3 文档关系抽取

文档关系抽取部分利用文档文本 D D D和实体 { e 1 , e 2 , . . . , e j } \{ e_1,e_2,...,e_j\} {e1,e2,...,ej}作为数据输入,输出实体间的关系对,形成一系列的三元组 { [ e 1 h , e 1 t , r 1 ] , [ e 2 h , e 2 t , r 2 ] , . . . , [ e k h , e k t , r k ] } \{ [e_1^h,e_1^t,r_1],[e_2^h,e_2^t,r_2],...,[e_k^h,e_k^t,r_k] \} {[e1h,e1t,r1],[e2h,e2t,r2],...,[ekh,ekt,rk]}[ e k h , e k t , r k ] [e_k^h,e_k^t,r_k] [ekh,ekt,rk] 为第 k k k个三元组,三元组内分别代表头实体、尾实体和关系。

一个重要的层面是怎么从数据中定义和收集关系。这里我们假设事件记录中的每两个论元之间通过关系连接。例如,Pledger和Pledgee在EquityPledge事件中存在的关系是Pledge2Pledgee,并且头实体和尾实体的顺序由事件论元的顺序决定。这样的话,事件记录中存在 n n n个论元,那么就可以创建 C n 2 C_n^2 Cn2个关系样本。请注意,这种建立关系的方法对于来自不同领域的事件提取任务是通用的,受监督的关系信息仅来自事件记录数据本身,而不需要任何额外的人工标记工作。我们对ChiFinAnn数据集的关系类型进行统计。表1显示了一段统计数据,完整版本见附录。

为了预测这一步骤的论元关系,我们采用了结构化自注意力网络(structured self attention),这是文档级关系抽取得最新方法。然而,与之前多分类交叉熵损失的工作不同,我们使用正常的交叉熵来预测每一个实体对仅有的标签。这个关系类型被推测通过以下函数:
y ^ i , j = a r g m a x ( e i T W r e j ) \hat y_{i,j}=argmax(e_i^T W_r e_j) y^i,j=argmax(eiTWrej)
其中 e i , e j ∈ R d e_i,e_j \in \R^d ei,ejRd指的是从编码器模型DRE中实体嵌入, d d d代表的是嵌入的维度。 W r ∈ R d × c × d W_r \in \R^{d \times c \times d} WrRd×c×d表示由DRE任务训练的双链矩阵, c c c代表的是关系总数。用于优化关系预测得损失函数表示为:
L d r e = − ∑ y i , j ∈ Y l o g P ( y i , j ∣ D ) L_{dre}=- \sum_{y_{i,j} \in Y}log P(y_{i,j}|D) Ldre=yi,jYlogP(yi,jD)
其中, y i , j y_{i,j} yi,j代表实体 i i ij j j间的正确关系标注, D D D代表的文档的文本, Y Y Y代表的是实体的所有关系对。

4.4 实体句子编码

现在我们嵌入了EER(实体抽取和表征)组件中的实体提及和句子,以及从DRE(文档关系抽取)组件中获取预测的三元组关系。然后,该组件对上述数据进行编码,输出与关系信息有效集成的嵌入。在这个部分,我们将会介绍将三元组关系转化为可计算矩阵方法,和用于编码上述所有数据的新颖RAAT结构。

4.4.1 实体和句子依赖

首先,我们引入了一种机制:实体和句子依赖,它不仅包括关系三元组,还描述了句子和实体之间的联系,而不是单纯的三元组。

共同关系(Co-relation)和共同引用(Co-reference)被定义为表示实体之间的依赖。对于前一个,如果两个实体属于预测关系三元组,则它们之间存在共同依赖关系。如果实体对所涉及的三元组具有不同的关系,则认为它们具有不同的共同关系。共同引用显示了指向相同实体的实体提及之间的依赖关系。也就是说,如果一个实体在文档中存在多个引用,那么每两个引用都有共同引用依赖关系。在这种情况下,头实体和尾实体在关系三元组是相同的(StartData和EndData在一个事件记录中展现相同的实体),共现关系和共现引用又有相互参照。

我们使用共同存在(Co-existence)来描述实体和句子之间的依赖关系,实体提及来自于这些句子。更具体地说,实体提及及其所属句子具有共存性。对于没有上述任何依赖的其余实体-实体和实体-句子对,我们统一将它们视为NA依赖。

表2显示了完整的依赖机制。共关系不同于NA、共引用和共存在,因为它有几个子类型,数量等于文档关系提取任务中定义的关系类型的数量。

4.4.2 RAAT( relation augmented attention transformer)

为了有效地编码实体和句子相关性,我们设计了RAAT,它利用了表示相关性的可计算矩阵,并将其集成到注意力计算中。根据图3所示的架构,RAAT继承自原始的transformer,但有一个独特的注意力计算模块,该模块由两部分组成:自我注意力和关系增强注意力计算。

对于一个文档 D = { s 1 , s 2 , . . . , s j } D=\{ s_1,s_2,...,s_j\} D={s1,s2,...,sj},所有的实体提及 E m = { e 1 m , e 2 m , . . . , e t m } E^m=\{ e_1^m,e_2^m,...,e_t^m\} Em={e1m,e2m,...,etm}在文档中, e i m e_i^m eim代表的是实体提及, m m m表示提及, i i i表示索引,以及一系列的三元组列表 { [ e 1 h , e 1 t , r 1 ] , [ e 2 h , e 2 t , r 2 ] , . . . , [ e k h , e k t , r k ] } \{ [e_1^h,e_1^t,r_1],[e_2^h,e_2^t,r_2],...,[e_k^h,e_k^t,r_k] \} {[e1h,e1t,r1],[e2h,e2t,r2],...,[ekh,ekt,rk]},我们构建一个矩阵 T ∈ R c × ( t + j ) × ( t + j ) T \in \R^{c \times (t+j) \times (t+j)} TRc×(t+j)×(t+j)c c c代表的是依赖的数量, t t tj j j代表的是句子的数量和实体提及的数量。 T T T由具有相同维度数 R ∈ R ( t + j ) × ( t + j ) R \in \R^{(t+j) \times (t+j)} RR(t+j)×(t+j)c c c个矩阵组成, R R R代表的是类型的依赖关系, r ∈ { C o − r e l a t i o n k , C o − r e f e r e n c e , C o − e x i s t e n c e , N A } , k = 1 , 2 , . . . , N r \in \{ Co-relation_k,Co-reference,Co-existence,NA\},k=1,2,...,N r{Corelationk,Coreference,Coexistence,NA},k=1,2,...,NN N N代表的是关系的数量。对于 T T T中的每个元素, t k , i , j t_{k,i,j} tk,i,j表示结点 n o d e i node_i nodein o d e j node_j nodej之间的依赖。更准确地说,如果有第 k k k个依赖,那么 t k , i , j = 1 t_{k,i,j}=1 tk,i,j=1,否则 t k , i , j = 0 t_{k,i,j}=0 tk,i,j=0。结点 n o d e k ∈ { e 1 m , e 2 m , . . . , e t m , s 1 , s 2 , . . . , s j } node_k \in \{ e_1^m,e_2^m,...,e_t^m,s_1,s_2,...,s_j\} nodek{e1m,e2m,...,etm,s1,s2,...,sj}表示实体和句子。

然而,如果使用上述策略来构建 T T T的话,那么矩阵将会变得非常大、稀疏。为去压缩 T T T和减少训练参数,我们基于三元组中头实体的类型进行聚类 C o − r e l a t i o n Co-relation Corelation依赖。例如,关系Pledger2Pledgee和Pledger2PledgedShares将被聚类为一个Co-relation依赖,两个矩阵 R a R_a RaR b R_b Rb将被合并为一个矩阵。结果,我们最终得到了一个 T ∈ R ( 3 + H ) × ( t + j ) × ( t + j ) T \in \R^{(3+H) \times (t+j) \times (t+j)} TR(3+H)×(t+j)×(t+j),其中 H H H表示Co-relation中的头部实体类型数量,包含三种关系NA、Co-reference、Co-existence。让 X ∈ R ( t + j ) × d X \in \R^{(t+j) \times d} XR(t+j)×d作为注意力模块的输入嵌入, W r q , W r k , W q , W k , W v ∈ R d × d , M ∈ R ( 3 + H ) × d × d W_{rq},W_{rk},W_q,W_k,W_v \in \R^{d \times d} , M \in \R^{(3+H) \times d \times d} Wrq,Wrk,Wq,Wk,WvRd×d,MR(3+H)×d×d作为矩阵权重,我们通过以下公式计算关系增强注意力:
Q r = X W r q , K r = X W r k Q_r=XW_{rq},K_r=XW_{rk} Qr=XWrq,Kr=XWrk

S a = ∑ i = 1 3 + H Q r M [ i , : , : ] K r T ⋅ T [ i , : , : ] d + b i a s i S_a=\frac{\sum_{i=1}^{3+H}Q_rM[i,:,:]K_r^T \cdot T[i,:,:]}{\sqrt d}+bias_i Sa=d

i=13+HQrM[i,:,:]KrTT[i,:,:]+biasi

其中 S a S_a Sa表示关系增强注意力的得分矩阵, ⋅ \cdot 表示元素乘法。我们计算自注意力的得分,并按照以下方式和 S a S_a Sa结合:
Q = X W q , K = X W k , W v = X W v Q=XW_q,K=XW_k,W_v=XW_v Q=XWq,K=XWk,Wv=XWv

S b = Q K T d S_b=\frac{QK^T}{\sqrt d} Sb=d

QKT

O = ( S a + S b ) V O=(S_a+S_b)V O=(Sa+Sb)V

O O O代表的是attention模块的输出。和传统的Transformer结构类似,RAAT具有多个相同的块,层层堆叠。此外, T T T是可扩展的的,因为可以选择Co-relation的数量。RAAT可以适应输入长度的变化,这相当于句子和实体提及的总数。

4.5 事件记录生成

有了之前部分的输出,实体和句子的嵌入,这个ERG模块通常包含两个子模块:事件类型分类和事件记录解码器。

4.5.1 事件类型分类

给出一个句子的嵌入,我们每一个事件类型采用几个二分类预测来判断相应事件是否被识别。如果有任何分类器识别事件类型,那么将激活以下事件记录解码器,以迭代生成对应事件类型的每个参数。优化该分类的损失函数被定义为:
L p r e d = − ∑ i l o g ( P ( y i ∣ S ) ) L_{pred}=-\sum_{i}log(P(y_i|S)) Lpred=ilog(P(yiS))
其中 y i y_i yi表示第 i i i个事件类型的标签,如果事件类型为 i i i的事件记录,那么 y = 1 y=1 y=1,否则 y i = 0 y_i=0 yi=0S S S表示输入的句子嵌入。

4.5.2 事件记录解码器

为了迭代生成特定事件类型的每个参数,我们参考了基于实体的有向无环图(EDAG)方法。EDAG是一系列迭代,其长度等于特定事件类型的角色数。每次迭代的目标是预测特定事件角色的事件论元。每次迭代的输入都包含实体和句子嵌入。输出的预测参数将成为下一次迭代的输入的一部分。然而,与EDAG不同的是,我们用我们提出的RAAT结构(如图2所示的RAAT-2)替换了它的普通transformer部分。更具体地说,EDAG方法使用内存结构来记录提取的参数,并添加角色类型表示来预测当前迭代参数。然而,这个过程很难捕捉到记忆中的实体、候选论点和句子之间的依赖关系。在我们的方法中,RAAT结构可以通过DRE组件提取的关系三元组连接内存中的实体和候选参数,并且可以构造一个表示依赖关系的结构。详细地说,在预测当前迭代的事件参数之前,矩阵 T T T以上面所示的方式构造,以便将相关性集成到注意力计算中。提取参数后,将其添加到内存中,同时生成新的 T T T以适应下一次迭代预测。

因此,RAAT可以增强用于注意力计算的关系信号。RAAT-2具有与RAAT-1相同的结构,但参数独立。事件记录解码器损失函数的正式定义为:
L a = − ∑ v ∈ V D ∑ e l o g ( P ( y e ∣ ( v , s ) ) ) L_a=-\sum_{v \in V_D}\sum_{e}log(P(y_e|(v,s))) La=vVDelog(P(ye(v,s)))
其中 V D V_D VD代表的是事件记录图中的结点集合, v v v代表到目前为止提取的事件记录的时间路远, s s s代表语句和事件论元候选的嵌入, y e y_e ye表示当前步骤中论元候选词 e e e的标签。 y e = 1 y_e=1 ye=1代表的是 e e e对应的当前步事件角色对应的正确标注。反之, y e = 0 y_e=0 ye=0

4.6 模型训练

模型训练可以分为四个部分,我们利用多任务学习方法,联合四个对应的损失函数:
L = λ 1 L n e + λ 2 L d r e + λ 3 L p r e d + λ 4 L a L=\lambda_1 L_{ne}+\lambda_2 L_{dre}+\lambda_3 L_{pred}+\lambda_4 L_{a} L=λ1Lne+λ2Ldre+λ3Lpred+λ4La
其中 λ i \lambda_i λi表示平衡四个部分的损失函数权重。

5、实验

在本节中,我们报告了实验结果,以证明我们提出的方法的有效性。总之,实验可以回答以下三个问题:

  • ReDEE模型在多大程度上优于基线DEE方法?
  • ReDEE如何克服跨句子和多事件问题?
  • ReDEE的每个关键组件对最终性能的贡献程度如何?

5.1 数据集

ChiFinAnn和 DuEE-fin。

下载地址:https://aistudio.baidu.com/aistudio/competition/detail/46

5.2 基线模型和评价指标

基线模型:

  • DCFEE
  • Doc2EDAG
  • DE-PPN
  • GIT
  • PTPCG

评价指标:

  • recall
  • precision
  • F-score

5.3 设置

最大句子数量为128,句子最大长度为64.使用BERT编码器在命名实体识别,Roberta-chinese-wwm作为预训练语言模型,RAAT-1和RAAT-2拥有四层相同的块。

5.4 结果分析

5.5 消融实验

对三个变体进行分析:

  1. 在ESE部分将RAAT-1使用原始的transformer进行替换。
  2. 在事件记录生成部分将RAAT-2使用原始的transformer进行替换。
  3. 两个部分的RAAT均替换成原始的transformer。

6、结论

在本文中,我们针对跨句子和多事件问题,研究了文档级事件提取的挑战性任务。我们提出对事件论元之间的关系信息进行建模,并设计一个新的框架ReDEE。该框架具有一个新的RAAT结构,它可以结合关系知识。广泛的实验结果可以证明我们提出的方法的有效性,该方法在两个基准数据集上具有最先进的性能。未来,我们将更加努力加快训练和推理过程。

RAAT: Relation-Augmented Attention Transformer for Relation Modeling in Document-Level 论文解读相关推荐

  1. BERT gated multi-window attention network for relation extraction 用于关系抽取的BERT门控多窗口注意力网络

    BERT gated multi-window attention network for relation extraction 用于关系抽取的BERT门控多窗口注意力网络 Abstract 实体关 ...

  2. 自然语言处理模型:bert 结构原理解析——attention+transformer(翻译自:Deconstructing BERT)

    原文:Deconstructing BERT: Distilling 6 Patterns from 100 Million Parameters 关于transformer 和attention的机 ...

  3. 论文解读:Combining Distant and Direct Supervision for Neural Relation Extraction

    论文解读:Combining Distant and Direct Supervision for Neural Relation Extraction 夏栀的博客--王嘉宁的个人网站 正式上线,欢迎 ...

  4. 论文解读:《RELATION:基于结构的药物从头设计的深度生成模型》

    论文解读:<RELATION:A Deep Generative Model for Structure-Based De Novo Drug Design> 1.文章概述 2.迁移学习相 ...

  5. 论文解读:Are Noisy Sentences Useless for Distant Supervised Relation Extraction?

    论文解读:Are Noisy Sentences Useless for Distant Supervised Relation Extraction? 注:本文章初次编辑为2020年9月2日,最新编 ...

  6. 论文解读:Improved Neural Relation Detection for Knowledge Base Question Answering

    论文解读:Improved Neural Relation Detection for Knowledge Base Question Answering   本文解决KBQA中的子问题--Relat ...

  7. Predictive Attention Transformer 理解

    参考文献 Predictive Attention Transformer: Improving Transformer with Attention Map Prediction PA-transf ...

  8. 论文解读:Question Answering over Knowledge Base with Neural Attention Combining Global Knowledge Info...

    论文解读:Question Answering over Knowledge Base with Neural Attention Combining Global Knowledge Informa ...

  9. 论文解读:Attention is All you need

    论文解读:Attention is All you need 习翔宇 ​ 北京大学 软件工程博士在读 ​ 关注他 192 人赞同了该文章 Attention机制最早在视觉领域提出,2014年Googl ...

最新文章

  1. 个人建议:VSCode和WebStorm中的“关闭其他所有编辑器、关闭左侧编辑器、关闭右侧编辑器”快捷键这么设置shift+alt+w、shift+alt+[、shift+alt+],你会受益匪浅
  2. IBM又双叒叕要分拆了,IT基础设施部门将剥离,未来专注云计算和AI
  3. Metrics-server插件安装配置
  4. 在OpenPower720上安装SLES9(I)
  5. 结构体成员管理AVClass AVOption之2AVOption,设置选项值
  6. jsp,最常用的3个知识点
  7. docker镜像打包save,载入load,启动run
  8. Centos7查看网络配置
  9. 获取Linux命令源代码的方法
  10. 使用 Apache JMeter™工具进行性能测试
  11. 157. PHP 闭标签
  12. IDEA回到光标的上一次位置
  13. EnableQ在线问卷调查引擎在学校教学评估中的作用
  14. 人工智能与安全论坛:智能与安全的融合与对抗
  15. 表格中复制粘贴到其他位置的数据会携带引号等不可见字符,该怎么处理?
  16. java下一页按钮_如何仅使用Spring在Java中单击提交按钮后才能转到下一页
  17. 如何修改chrome账号密码自动填充的字体样式
  18. 《般若波罗蜜多心经》注解
  19. 黑马程序员-JS基础-移动端网页特效
  20. spring cloud 熔断hystrx

热门文章

  1. 利用snmp oid获取交换机型号版本
  2. mba和研究生的区别
  3. 【成为架构师课程系列】作为一名大数据架构师该掌握的技能清单:
  4. 华为android系统管理,安卓系统即将迎来封闭管理?华为首先发起,网友:流畅度更重要...
  5. 电力表采集的参数有哪些
  6. 诺基亚WP7手机或10月发布 搭载新版系统
  7. 佳能e478打印机怎么连接wifi
  8. Python Png转格式为Pdf。
  9. 【072】Breathe Machine-减压深呼吸训练
  10. 英魂之刃后台用Java,《英魂之刃》系统操作说明