陈洪辉 郑建明 蔡 飞 韩 毅
1 (国防科技大学系统工程学院 长沙 410073)
2 (国防科技大学气象海洋学院 长沙 410073)
关系抽取[1](relation extraction, RE)通过识别非结构化文本中实体之间的关系类别,获取信息三元组(头实体,关系,尾实体).例如,给定上下文句子“Newton was served as the president of the Royal Society”,对于头实体Newton 和尾实体Royal Society,关系抽取模型可以识别出这2 个实体之间包含“member of ”关系.关系抽取任务是自然语言处理中的一项基础任务,可以支撑大量下游任务,例如:知识图谱补全[2]、问答系统[3]、对话生成[4],等.传统的关系抽取方法(基于高斯核[5-6]、基于特征[7]以及基于神经网络[8]等)依赖大量标注数据实现模型的收敛.然而,在现实应用中,新的实体和关系类别不断涌现,标注足够训练数据的速率远远赶不上新类别的涌现速率[9-10]①例如,FewRel[9]是2018 年标注的大型关系抽取数据集,它从Wikidata[10]中抽取100 种关系类别.然而,这个数量远少于当时920 种类别的数据量.更为严峻地,Wikidata 中无标注关系类别数量到现在为止已经增长到6 000 余种.,使得关系抽取任务陷入少样本困境.
针对该挑战,现有模型普遍采用元学习(meta learning)的训练范式[11-14].其核心在于将数据丰富的关系类别分解成一系列N-类K-样本(N-wayK-shot)的元任务,用以模拟数据匮乏的应用场景,如图1 所示.通过元任务训练,关系类别间的元知识得以获取,进而快速泛化到数据匮乏的关系类别中.尽管元学习的范式取得了明显的进展,但它们仅仅侧重于标注数据,而少样本任务中由于标注数据量稀少导致的过拟合风险仍然存在.为了应对该风险,神经雪球(neural snowball, NS)模型[15]着眼于现实应用中广泛存在且容易获得的无标注数据.该模型将元学习和自助采样相结合,通过将现有标注数据中的知识迁移到无标注数据中,为无标注数据打上伪标签,从而实现标注数据量的持续增加.由此,神经雪球模型不仅可通过元学习破除传统关系抽取模型难以解决少样本的局限性,还可通过对无标注数据的知识迁移极大提升标注数据量,显著降低模型过拟合的风险.
Fig.1 Example of 3-way 2-shot relation extraction meta task图1 3-类别2-样本关系抽取元任务的示例
然而,回溯神经雪球模型,我们发现其存在2 种缺陷:
1)当无标注数据打伪标签时,神经雪球模型是通过一个固定相似度阈值来判定无标注数据是否属于特定关系类别.可是不同关系类别在相似度阈值的选择上存在差异.如图2 所示,当相似度阈值固定在0.60 时,虽然可以很好地区分“board member”和“owned by”这2 种关系,但却无法辨别“publisher”和“item operated”的关系.因此,设定固定阈值会不可避免地打错标签,使得新入选的无标注数据包含噪声.
Fig.2 Similarity scores in unlabeled data图2 无标注数据相似度得分
2)神经雪球模型对新入选的无标注数据予以相同的置信度,并将其纳入关系抽取模型的训练当中.然而,这种不加区分的训练,会进一步放大噪声数据的影响,势必会造成关系分类器的性能偏移.
针对上述2 种缺陷,本文提出一种基于适应性自训练的少样本关系抽取模型(adaptive self-training relation extraction, Ada-SRE).具体地,对于缺陷1),我们从模型无关的元学习[16](model-agnostic meta-learning,MAML)中得到启发,提出一种自适应阈值模块.不同于传统的有监督学习,MAML 通过模型无关的元任务训练来获取模型参数的梯度停靠点.由此,即使在只有少量的新关系样本的情况下,模型也能实现快速泛化.借助于MAML 的快速泛化能力,自适应阈值模块同样可通过元任务训练去学习关系阈值的梯度停靠点.当出现新的关系类别时,能够通过较少的梯度更新获取最适合当前关系类别的阈值.值得注意的是,MAML 仅仅适用于标注数据,而自适应阈值模块面向的则是无标注数据,用于确定特定关系类别的阈值选择.对于缺陷2),我们提出一种基于梯度反馈的赋权策略,该策略通过梯度反向传播计算费雪信息矩阵(Fisher information matrix),获取对新加入的无标注数据的权重分配.其中,置信度低的无标注数据权重低,从而降低噪声数据的影响.
我们在公开的少样本关系抽取数据集上进行一系列的实验分析.实验结果证明在少样本场景下,与基准模型相比,Ada-SRE 取得明显的性能提升.此外,无标注数据预测分布证明自适应阈值模块在提升召回率的同时有效降低噪声数据的引入,而消融实验证明各个模块的有效性.
本节首先介绍传统的关系抽取模型的原理与算法;
接着分析少样本环境下的关系抽取任务,并讨论现有模型的利弊.
关系抽取致力于识别在给定句子中的2 个实体间的关系.传统关系抽取建模属于有监督学习,需要大量标注数据进行训练[1],它们可以划分为3 种类别:基于高斯核[5-6]、基于特征[7]以及基于神经网络[8].其中,基于高斯核的关系抽取模型主要设计一组核函数计算2 个关系示例之间的相似度.这些核函数包含句法序列核[17]、句法树核[18]、句法依赖树核[19]、依赖图路径核[20]以及句法组合树核[21].而基于特征的关系抽取模型关注于为关系分类器生成一组特征,例如:词特征[22]、句法特征[23]以及语义特征[24].不同于需要人工参与的基于高斯核和基于特征的方法,基于神经网络的关系抽取模型关注于利用神经网络抽取关系特征实现端到端训练(end-to-end training),例如:卷积神经网络[25]、图卷积神经网络[26]、递归神经网络[27]等.
然而,这些传统的关系抽取模型无法应对不断涌现的新关系类别和标注样本匮乏的困境.本文聚焦于解决少样本关系抽取建模问题.
少样本关系抽取建模一般是通过元学习的训练范式得以实现.其中,每个元任务(或称之为片段)包含一个支撑集和一个查询集,如图1 所示,元任务利用支撑集获取关系知识,并在查询集上进行验证对网络参数进行更新.
这一训练范式可以划分为基于度量[13,28-29]、基于模型[30-31]和基于优化[16,32-33]的3 种模式.具体地,基于度量的元训练模型通过设计度量准则衡量支撑集和查询集之间的相似度;
基于模型的元训练模型聚焦于设计模型的结构实现少样本任务;
而基于优化的元训练模型尝试初始化网络参数,使得模型能在一步或者几步的梯度更新过程中快速拟合到新任务上.常用的元学习模型已经能在少样本关系抽取任务上得到应用并取得较好的性能,例如:图神经网络[12]、神经注意力元学习网络[14]、原型网络[13]和元网络[11].此外,Gao 等人[34]应用混合注意力机制突出重要示例和特征.Ye 等人[35]利用子图分析查询集和支撑集之间的交互匹配信息,并且采用注意力机制聚合支撑示例从而计算关系原型.Soares 等人[36]采用点积来衡量向量相似度.Qu 等人[37]利用一个全局关系图谱指引每个关系原型的计算.
然而,这些元学习模型在关系抽取建模中对于无标注数据并未很好地利用.虽然神经雪球模型[15]利用自助采样技术对关系抽取任务中的无标注任务进行初步探索,但是人为手动的阈值以及不加区分的无标注数据,促使我们对神经雪球模型做进一步改进,并提出一种基于适应性自训练的少样本关系抽取模型.
本节首先介绍对于少样本关系抽取任务的相关定义;
接着对于神经雪球模型中存在的2 个缺陷,分别提出2 种相应的策略,也就是自适应阈值模块和基于梯度反馈的赋权策略.
2.1.1 任务定义
给定一个句子示例x,它是由1 组词序列和1 对标记的头尾实体eh,et组成,关系抽取任务致力于通过句子示例x预测这对头尾实体eh,et之间的关系标签r.因为要衡量关系抽取模型对于新关系类别的抽取能力,遵循神经雪球模型中的任务设定(不同于传统的有监督学习和元学习模式).给定一组大规模标注的关系抽取数据集DL,一组新关系类别标注数据集Ds(标注样本的数量较少,遵循N-类K-样本范式)和对应的查询集Dq,一组无标注数据集Du,本文的目的是要检验关系抽取模型能否从包含现有关系类型、新关系类型以及未知关系类型的查询集中准确定位Dq中关系类别的能力.
2.1.2 神经雪球模型
为了应对这种应用困境,Gao 等人[15]提出神经雪球模型.如图3 所示,神经雪球模型一共分为预训练和新关系类别样本收集2 个阶段.其中,预训练阶段:关系孪生网络和关系分类器共同在DL进行预训练获取在旧类别上的关系抽取能力.而新关系类别增量阶段可划分为4 个步骤.
Fig.3 Neural snowball model图3 神经雪球模型
相同头尾实体可能蕴含相同关系类别[15],基于这个假设,我们通过Ds中的实体对对Du进行检索,符合该假设的无标注数据聚合形成候选集A1.具体地:
1)利用关系孪生网络对候选集A1中的示例进行相似度排序,选取前k1个示例.此外,过滤出相似度小于阈值 α的示例,获得初选的示例.
2)利用初选的示例对关系分类器进行微调,提升关系分类器识别新关系类别的能力.
3)利用微调后的关系分类器从Du中再次选择前k2个示例,并且过滤出预测分数小于阈值 β的示例,获得候选集A2.
4)重复步骤2)~3),直到从Du中再也找不到可标注的示例.
对于新关系类别样本收集阶段,我们可以清楚地发现,阈值的选择是决定无标注数据抽取质量的关键.然而,如图2 所示,不同关系类别的相似度阈值的选择存在极大差异.以固定阈值简单地确定数据的标签并不能挖掘无标注数据的潜能.例如:过高的阈值选择降低无标注数据的标注召回率,并不能增加新关系类别的样本数量;
而过低的阈值选择又增加噪声数据标签的可能性,毒害关系孪生网络和关系分类器.另外,对于所引入的无标签数据,神经雪球模型施以相同的置信度,增加了噪声样本影响模型性能的风险.
鉴于这2 种缺陷,本文针对固定阈值问题,提出自适应阈值模块为每个关系类别获取相应阈值;
而对于相同置信度问题,提出基于梯度反馈的赋权策略,减少噪声数据的影响.
在标注样本较少的情况下,无法利用传统的有监督学习直接获得每个关系类别对应的阈值.不过,元学习可以通过少量样本准确定位测试样本所对应的标签,这为我们提供解决该缺陷的一种思路.
具体地,在模型无关的元学习中,MAML 通过学习模型的未知标签的泛化能力,获得标签的通用梯度停靠点.因此,当遇到新关系类别时,MAML 可以通过该梯度停靠点和少量的标注样本,快速泛化到新关系类别对应的模型权重.因此,本文将标签阈值类比于MAML 中的梯度,致力于学习所有类别的通用阈值停靠点,使得模型能够在少量样本情况下,快速泛化到未知标签的最佳阈值点.
正式地,假设阈值 α和关系分类器fC在第t步的参数为wt,通过相似度计算,可以将无标注数据集Du分割成2 部分,即Du→Dse+Duns,其中Dse是已选集合而Duns是未选集合.接下来,对于新入选的Dse,可以用来更新fC的参数wt,即
其中 λw是参数学习率,是关系分类器在参数wt下的损失函数,而wt+1是时刻t+1关系分类器更新后的参数.
接下来,通过在查询集Dq的损失函数计算,可以确定阈值 α的更新方向,即
其中 λα是阈值 α的学习率.值得注意的是,当(Dq)<(Dq)时,说明已选集合Dse对关系分类器fC有促进作用.因此,阈值α应该进一步减小,扩大已选集合Dse;
反之,(Dq)>(Dq)则说明过小的阈值α导致已选集合Dse中充满噪声,需要进一步增大阈值 α,降低Dse的噪声率.
以上是阈值 α的一种软更新策略,基于这一准则,还可以采用一种硬更新策略.具体而言,将未选集合Duns按照相似度从大到小排列,获得降序未选集合;
将已选集合Dse按照相似度从小到大排列,获得升序已选集合.因此,阈值硬更新策略可表示为
其中TP(·)是定位函数,它在样本序列中定位第P个样本,返回其相似度大小.
最后,基于式(1)~(3)并结合MAML 的训练范式,可以在少量样本的参与下,为每个关系类别标签快速获得其对应的阈值.
将自适应模块的训练过程总结,如算法1 所示.
算法 1.自适应阈值模块训练算法.
其中Lαi()表示在阈值 αi下输入为的损失函数.
虽然自适应阈值模块可以解决不同标签的相似度阈值的选择,但是对新入选的Dse无差别相信会增大噪声数据的影响.因此,基于梯度反馈的赋权策略致力于获取Dse的权重,降低噪声数据的影响.
假定Dse={s1,s2,…,sn},其中si表示入选的第i个无标注示例.根据定义,费雪信息矩阵可以衡量对参数估计的准确程度.从另一个角度,可以由此确定所入选的无标注示例对参数估计的贡献程度.因此,改进费雪信息矩阵用于确定无标注示例si的权重mi.具体地,首先用无标注示例si更新fC的参数w,即
之后,基于更新后的参数集合wi,利用查询集Dq计算权重,即
其中SW是 当前关系分类模型的参数集合.进一步地,将获得的权重序列进行归一化可以获得无标注示例的归一化权重序列,即
特别地,在测试阶段时,当没有查询集可供梯度反馈时,从支撑集Ds中随机选取10%的示例用于梯度反馈.
本文遵循神经雪球模型[15]中的数据集设定,采用FewRel[9]和Re-TACRED[38]作为实验数据集.其中,FewRel 从维基百科中共抽取100 种关系类别,每种关系类别包含70 000 个示例.同时,FewRel 将自身划分成3 个子集,分别为64 类别的训练集、16 类别的验证集以及20 类别的测试集.与之相比,Re-TACRED 则是从一个大规模关系抽取数据集中改进所得,它包含91 467 个句子,分布于40 种关系类别中.同样地,通过类别划分,Re-TACRED 可以划分为30 类别的训练集、5 类别的验证集以及5 类别的测试集.
此外,为了获得更为公正的评价,本文仍然采用神经雪球模型中收集到的大规模无标注语料库,它包含899 996 个示例和464 218 对实体对.同样地,我们进一步将训练集分割成训练集A和训练集B.在训练阶段,用训练集A作为DL.然后,在每步评价中,从验证集和测试集中无放回采样1 种关系作为新关系r,并选择k个示例作为种子组成Ds,而查询集Dq是从训练集B和验证/测试集中采样得到的.值得注意的是,Dq不仅包含DL中标签数据丰富的关系类别,还可能来源于支撑集Ds中样本数目较少的关系类别,以及先前训练不存在的关系类别.这种设定相较于传统的少样本关系抽取更具有挑战性,而且更加符合现实世界的应用,因为在现实世界语料库并不会局限于一定关系数量或类别.
为了验证基于Ada-SRE 在少样本关系抽取建模上的性能,本文选择8 种具有挑战性的方法作为基准模型.
1)基于分布式语义的自举关系抽取(bootstrapping relationship extractors with distributional semantics,BREDS)[39]模型是原始雪球(snowball)模型[40]的变形,它通过词嵌入进行模式选择;
2)微调分类器(fine-tuning classifier, FC)[15]是通过微调关系分类器所获得的;
3)关系孪生网络(relational siamese network, RSN)[15]在预测查询集时,通过孪生网络计算与查询集中示例标签的相似度大小;
4)远监督(distant supervision, DS)模型[15]是通过关系孪生网络和关系分类模型进行采样的关系抽取模型;
5)增量元自训练关系抽取(incremental meta selftraining relation extraction, MetaSRE)模型[41]采用一种元学习网络以防止模型因标签噪声而导致的漂移,并通过迭代自训练增强其鲁棒性;
6)多重引用图(multiple reference graph, MRefG)模型[42]通过构建包含实体、动词以及语义引用在内的引用图,以实现语义和词法层面有效链接标注数据和无标注数据;
7)神经雪球(neural snowball, NS)模型[15]是对传统雪球模型的改进,结合关系孪生网络和关系分类模型二者神经网络特点;
8)本文提出的基于适应性自训练的少样本关系抽取模型(Ada-SRE),包含软更新(Ada-SRES)和硬更新(Ada-SREH)策略.
类似文献[15],在验证集上进行参数调节.其中编码器,应用BERT[5]作为基础编码器进行研究.至于模型微调,在网格搜索后,我们采用训练轮数为50 次,批次大小为10,学习率为0.05,而负样本损失系数为0.2.在BERT[5]上微调采用相同的参数,除了学习率和负样本系数分布分别设为0.01 和0.5.在神经雪球过程中,每个阶段从无标注数据集加入的示例同样设定为5.但是不同于文献[15]中的人为阈值设定,我们每次利用自适应阈值模块进行计算,其中学习率分别设定为λw=0.005,λin=0.001,λout=0.001.此外,对于硬更新策略,我们将更新步数设定为1.
本文将分别从5 个实验问题用于验证模型的有效性.
1)在总体性能方面,Ada-SRE 是否可以超过现有的基准模型;
2)添加自适应阈值模块后,关系孪生网络的性能能否获得提升;
3)随着迭代步数的增加,Ada-SRE 是否都能保持对于神经网络模型的优势;
4)当应用硬更新于自适应阈值模块,定位函数TP(·)中位置参数P是否对模型性能产生影响;
5)对于自适应阈值模块和基于梯度反馈赋权模块,哪一模块对Ada-SRE 的性能影响更大.
我们将在第4 节对这5 个研究问题依次分析,探讨少样本场景下关系抽取性能.
根据实验问题,本节依次进行实验分析与讨论.
表1 和表2 分别展示了少样本关系抽取模型在数据集FewRel 和Re-TACRED 上的整体性能.整体而言,随着种子示例的增加,所有模型的精确率、召回率以及F1 值(F1 score)都得以提升.这说明种子示例的增加,增强了模型的有监督信号,进而使得模型性能也有所提升.特别地,Ada-SRE 模型在任意种子示例的参与下仍能取得最好的模型性能,这证明Ada-SRE 模型的有效性.
Table 1 Results of Few-Shot Relation Extraction Models on FewRel表1 少样本关系抽取模型在FewRel 上的结果%
在基准模型当中,传统基于统计性指标的BREDS 在众多模型中表现最为欠佳.这是因为传统的有监督模型在样本量较少的情况下,无法规避在测试集中的过拟合风险.FC 和RSN 虽然可以取得较为可观的召回率,然而无差别地引入无标注数据,反而会引入噪声数据,相对应的精确率也会不可避免地降低.而NS 是众多基准模型中表现最为突出的一个,获得了最佳的精确率和F1 值.
将最优基准模型NS 和Ada-SRE 加以比较,我们不难发现,无论是什么评价指标,Ada-SRE 都更胜一筹,获得全面提升,在召回率方面的提升尤为显著.Ada-SRE 在种子示例为5,10 和15 时,在FewRel 和Re-TACRED 上分别取得了36.6%,16.5%,23.8%和33.20%,25.16%,29.38%的性能提升.这说明Ada-SRE 可以高质量地从无标注数据集中收集新的训练示例,在一定程度上避免了NS 由于固定阈值和同等权重等因素带来的负面影响.此外,在Ada-SRE 中,软更新在种子示例较少的情况下表现更佳,硬更新则是在种子示例较多的情况下有更优性能.
为了检验在NS 和Ada-SRE 中关系孪生网络的抽取能力,在FewRel 上随机采样1 个关系以及所属关系的5 个类别作为支撑集,而余下的数据作为查询集.将训练过的NS,Ada-SRES和Ada-SREH中的关系孪生网络抽取出来,分别作为查询集中的每个示例计算相似度大小,并且采用P@N(precision at top-N)作为评价指标.
从表3 中可以看出,任意一个模型的孪生网络在训练后,只要给定5 个种子示例都能达到一定的分类准确度.特别地,在测试集P@5 列中,所有模型都可以达到80%以上的分类性能.这说明每增加5 个示例,其中至少有4 个示例是准确的,而这也是我们每次从无标注数据集选5 个示例的原因.
Table 3 RSN Results of Different Models表3 不同模型关系孪生网络的结果%
此外,相比于NS 的关系孪生网络,添加自适应阈值和梯度反馈模块的Ada-SRE 的关系孪生网络可以取得更好的分类效果,这进一步证明选择合适阈值和合适权重的有效性.
为了进一步分析迭代步数对于NS 和Ada-SRE 的影响,在FewRel 中随机选取1 个新加入的关系chairperson,并基于5 个种子示例分析迭代步数对模型分类性能的影响.由于空间所限制,这里只展现1 种关系的分类性能.图4 中分别展现各个模型在不同迭代步数下精确率和召回率的变化.
Fig.4 Model performance on different iteration steps图4 不同迭代步数的模型性能
总体而言,随着迭代步数的增加,各个模型的精确率和召回率也随之增加.特别地,召回率的增长尤为明显,NS 从起初的召回率为0 到迭代5 次后增长到接近60%.而召回率的提升也进一步带动模型在精确率方面的提升.而随着迭代步数增长到5,召回率的提升也渐缓,这说明模型从无标注数据集挖掘的信息也逐渐趋向于饱和.
此外,将NS 与Ada-SRE 相比可以发现,无论是在精确率还是召回率方面,Ada-SRE 始终保持着对NS的领先地位.特别地,Ada-SRE 在初始召回率比NS领先近20%,这也证明Ada-SRE 在提升无标注数据集召回质量方面的有效性.而至于软硬更新之间的差异,Ada-SRES也能保持对Ada-SREH的微弱领先.
在Ada-SREH中,定位函数TP(·)中位置参数P对模型性能的影响很大.因此,分析位置参数P对模型的F1 值的影响.
从表4 中可以看出,无论有多少种子示例的参与,当位置参数P=1 时,Ada-SREH的性能都达到最优.特别地,当位置参数P上升到2 时,Ada-SREH性能开始急剧下降.这种现象可能是因为当迭代步数一定时,模型从无标注数据集中挖掘信息的能力已经达到极限,这时定位2 个以上的无标注数据集会不必要地引入多余的噪声,造成模型性能的下降.
Table 4 F1 Score of Ada-SREH Under Different P表4 不同P 下Ada-SREH 的F1 值%
为了验证哪一个模块对模型性能影响更大,将模型的各个子模块去除或者替换成Ada-SRE 中原有的模块,用符号“--”表示.例如:“Ada-SRES--weight”表示应用软更新策略的Ada-SRE 去除梯度反馈模块,而将每个无标注示例视为同等重要.特别地,无论是什么样的更新策略,去除自适应阈值模块之后,Ada-SRE 都只剩下梯度反馈模块,因此我们都将其表示为“Ada-SRE--threshold”.
然后,在种子示例为5,10,15 时分别检验模型的性能,总结于表5.从表5 中可以发现,Ada-SRES和Ada-SREH同时去除梯度反馈模块之后,模型性能都会获得相应的下降,这证明梯度反映模块的有效性.另外,当只保留自适应阈值模块后,软更新策略始终会优于硬更新策略.除此之外,当模型去除自适应阈值模块,也就是只保留梯度反馈模块,模型的性能下降得尤为明显.这一现象反映在提升少样本关系分类性能方面,自适应阈值模块相比于梯度反映模块能够发挥更大的作用.
Table 5 F1 Score on Ablation Study表5 消融实验下的F1 值%
本文聚焦于现实应用中广泛存在的少样本关系抽取任务,通过分析现有神经雪球模型在设计中存在的缺陷,提出适应性自训练算法Ada-SRE 进行改进.针对神经雪球模型设定统一固定阈值的缺陷,本文基于元学习的思想提出自适应阈值模块,能够为每个关系类别提供合适的阈值选择.而针对神经雪球模型对入选的无标注示例施以相同置信度问题,本文提出基于梯度反馈的赋权策略,为每个入选的示例提供特定的权重,避免噪声数据的干扰.此外,通过在2 个公开数据集上进行实验分析,发现Ada-SRE 能够取得优于当前最优的神经雪球模型更好的实验结果.
在未来的工作,我们将从2 个方面开展工作:一方面,将探究本该入选但低于阈值的无标注示例和入选示例的关系,在保持模型精确率的同时,进一步提升模型的召回率;
另一方面,鉴于提示学习(prompt learning)在少样本领域的快速发展,将探究提示学习在无标注数据参与下的关系抽取任务上的应用.
作者贡献声明:陈洪辉提出了模型的算法思路和实验问题;
郑建明基于提出的实验问题完成实验并撰写论文;
蔡飞负责论文的修改和校对,并提出指导意见;
韩毅参与了论文校对和实验数据分析整理工作.
扩展阅读文章
推荐阅读文章
恒微文秘网 https://www.sc-bjx.com Copyright © 2015-2024 . 恒微文秘网 版权所有
Powered by 恒微文秘网 © All Rights Reserved. 备案号:蜀ICP备15013507号-1