2. 长沙理工大学 综合交通运输大数据智能处理湖南省重点实验室, 长沙 410114;
3. 湖南数定智能科技有限公司, 长沙 410013
2. Hunan Provincial Key Laboratory of Intelligent Processing of Big Data on Transportation, Changsha University of Science and Technology, Changsha 410114, China;
3. Hunan Date-driven AI Technology Co. Ltd., Changsha 410113, China
关键词通常是一段简短的和总结性的内容,能够描述较长文本中的主题信息[1]。高质量的关键词能够为用户提供高度浓缩和有价值的信息。关键词抽取是自然语言处理任务中一个重要的组成部分,在信息检索、问答系统、文本摘要和文本分类等任务上发挥着重要作用。由于具有重大现实意义,因此自动关键词抽取受到了广泛关注和研究[2-4]。
因为科学出版物容易被公众获取,所以许多科学出版物数据集经常被用来测试关键词抽取算法[5]。大多数已经存在的关键词抽取算法通常使用2个步骤[3,6]抽取科学论文的关键词:第1步是将待抽取关键词的内容分为多个文本块,这些文本块作为候选关键词;第2步是对候选关键词按照对文本内容的重要性来进行排序。
随着网络信息的快速发展,在微博和推特上,短文本推文逐渐成为人们的主要信息来源。如何从海量的网络短推文中快速获得所需要的关键信息变得越来越重要,一些研究人员[7-8]已经开始研究如何从短文本(例如推特)中抽取关键词。
本文研究从法律问题中自动抽取关键词,法律问题属于短文的类别。图 1是从法律问题中抽取关键词的例子。法律领域问答系统能使人们更容易地获得法律信息。关键词有助于问答系统更好更快地理解问题背后的用户意图,因此关键词抽取技术对法律问题解答系统十分重要。
相比从长文本中抽取关键词,从短文本中抽取关键词的研究更加困难。首先,在短文本中,许多语言学特征和统计特征无法使用。传统的关键词抽取方法是基于词出现和共现的次数来判断词的重要性,无法获取内容中的隐含语义。其次,两步关键词抽取方法(候选关键词生成和候选关键词排序)只能够抽取那些已经在原文本中出现过的短语作为关键词。然而在法律问题的短文本中对应的关键词并不会在原文本中一模一样地出现,例如在图 1中,关键词“受益人”“信用卡诈骗”“抢劫罪构成标准”和“抢劫罪量刑标准”并没有在原问题文本中出现。
综上所述,当关键词在文档中以略微不同的连续顺序或者同义词形式出现时,传统的方法将不能准确地抽取关键词。然而在法律问答系统中,问题是由普通用户提交的而不是由法律专家提交的,由于专业领域的限制,普通用户提交的问题文本口语化程度比较高,他们不会使用如图 1所示的“受益人”“信用卡诈骗”“抢劫罪构成标准”和“抢劫罪量刑标准”等专业的法律词汇。用传统的基于两步的算法直接从原文本中抽取关键词将不能生成正式的法律术语。本文提出一种根据问题的语义信息来抽取关键词的方法,将关键词抽取看作生成问题而非简单的抽取问题。对于一个法律问题,人们首先阅读问题文本,获得对问题文本内容的基本理解,然后将问题文本内容总结为一个个的关键词,这些关键词可能是没有在原文本中出现过的词。除了语义理解之外,人们也会根据句法特征来选取文本中最重要的部分作为关键词。因此,需要通过一个模型来获取语义信息,然后自动生成关键词。
受到Cho等[9]在机器翻译上和Vinyals等[10]在句法分析上运用基于神经网络的序列到序列模型取得很好的实验效果的启发,本文提出了一种基于强化学习的序列到序列模型来对法律问题自动生成关键词。在该模型中,用户提交的法律问题首先被编码器转换成固定长度的向量。然后,解码器解码该向量获得关键词。通常,序列到序列模型使用交叉熵进行训练时,是按照顺序来生成关键词,但是在关键词抽取任务中,关键词的前后顺序对于最终结果不会有太大影响,因此在本文中用强化学习[11]来训练提出的模型。
1 相关工作目前已经有许多关键词抽取算法,通常分为2个步骤。第1步是利用一些启发式规则生成关键词候选集。Liu等[3]提出去除停用词、抽取指定词性的词(如名词、形容词等),Medelyan等[4]提出抽取在维基百科(Wikipedia)等重要语料库中的n-gram和按照事先制定好的规则抽取n-gram或者名词短语等。第2步是计算在候选关键词集中的每个候选关键词在文本中作为准确关键词的可能性。在此步骤中广泛使用的方法是有监督机器学习方法和无监督机器学习方法。在有监督机器学习方法中,抽取关键词任务被转化为二元分类问题。Frank等[2]采用朴素Bayes训练分类器和Turney等[1]采用决策树训练分类器。基于无监督机器学习的关键词抽取方法有Mihalcea等[12]提出的计算候选关键词之间的关联性的基于图的排序方法和Liu等[3]提出的利用聚类的KeyCluster方法。
这些采用机器学习的算法如TF-IDF和TextRank[12]等,都使用了大量的文本内部特征。然而在抽取法律问题(短文本)关键词的任务上,这类特征极少,利用这类特征提取关键词十分困难。
有一些学者已经开始研究如何从短文中抽取关键词,例如Zhang等[8]提出了一种联合循环神经网络模型对短文本进行关键词抽取。但是这些模型并不能抽取原文本中没有出现过的关键词。在短文本中,并不是所有的关键词都会在原文本中出现。为了解决这个问题,本文把关键词抽取转化为关键词生成,基于序列到序列模型并在解码器网络中加入强化学习来优化训练,以序列的形式生成关键词,从而能够总结那些没有在原文本中出现过的词语来作为关键词。
2 方法 2.1 方法概述典型的基于循环神经网络(recurrent neural network,RNN)的编码器—解码器通常由2个RNN组成,分别作为编码器和解码器。在本文模型中,对编码器和解码器进行联合训练以最大化给定源序列的目标序列的奖励。本文方法是在解码器中用强化学习插入编码器—解码器框架,如图 2所示。图 2中“SOS”为句子开始标识。整个系统的输入是一个句子,它首先被编码器转换成相应的向量表示。然后,这些向量表示被馈送到解码器以生成关键词。正如前言所提到的,关键词的顺序对于关键词抽取这一任务是无关紧要的,只需关注生成关键词的正确性。因此,本文使用强化学习来优化外部奖励模型而不是提供每个时间步骤的监督标签。
2.2 基于循环神经网络的编码器—解码器
基于RNN的编码器—解码器主要用于序列到序列学习[9]。在编码器—解码器的框架中,分为编码过程和解码过程。在编码过程中,每个时刻向编码器(encoder)输入一个词,隐含层就会根据式(1)而变化,当输入到最后一个词xs时,RNN编码就会最终将源序列X = [x1, x2, …, xs]转换成编码表示c。因为RNN会把前面每一步的输入信息都保存,所以向量c能够包含源序列X的所有信息。用式(1)来描述编码过程:
$ {h_t} = f\left( {{x_t}, {h_{t-1}}} \right), \mathit{\boldsymbol{c}} = Ø \left( {{h_1}, {h_2}, \ldots, {h_t}} \right). $ | (1) |
其中ht是t时刻的RNN隐藏状态,c可以被看为X抽象表示的上下文向量。在源序列X被编码后,编码过程结束。进入到解码过程,RNN解码器就将被压缩上下文向量c展开到目标序列Y = [y1, y2, …, ys]中,解码器(decoder)在t时刻的隐含状态st是由st-1、yt-1、c共同决定的,yt是由st、yt-1、c共同决定。解码过程可以通过式(2)来描述:
$ \left\{ \begin{array}{l} {S_t} = f({y_{t-1}}, {\rm{ }}{s_{t-1}}, {\rm{ }}\mathit{\boldsymbol{c}}), \\ p({y_t}|{y_{ < t}}, X) = g({s_t}, {y_{t-1}}, \mathit{\boldsymbol{c}}). \end{array} \right. $ | (2) |
其中:St是t时刻的RNN的隐含状态, yt是t时刻的预测目标词, f和g都是激活函数,其中g函数一般是softmax。
在解码器的设计上,每个时刻都是用了相同的上下文向量c,有研究人员提出可以在不同时刻输入不同的上下文向量。引入了注意力机制的解码器,就是将向量c改为ct′,表示t′时刻的上下文向量。那么在t′时刻,解码器的隐含状态为
$ {s_{t\prime }} = f({y_{t\prime-1}}, {\rm{ }}{s_{t\prime-1}}, {\rm{ }}{c_{t\prime }}). $ | (3) |
取编码器隐含状态ht的加权平均来设计不同的上下文向量ct′,即:
$ {c_{t\prime }} = \sum\limits_{t = 1}^T {{a_{tt\prime }}{h_t}} . $ | (4) |
其中att′表示权重,与当前时刻编码器的隐含状态ht以及上一个时刻的解码器隐含状态st′-1有关,即:
$ {a_{tt\prime }} = {\rm{softmax}}(a(s({s_{t\prime-1}}, {\rm{ }}{h_t}))). $ | (5) |
选取不同的函数a,可以得到不同的注意力机制。
2.3 强化学习强化学习是环境状态映射到动作的学习,目的是使智能体(agent)在与环境交互过程中获得最大的累计奖励。强化学习的过程就是智能体根据当前所处的状态,做出动作,得到回报,转移到新的状态。这个过程会一直重复持续下去,直到到达终止状态。这个过程是Markov决策过程,即下一个时刻的状态有且仅和当前时刻所处的状态和将要做出的动作有关。在本文的任务中,seq2seq模型被认为是一个智能体。本文用p来表示从智能体生成的关键词。一个关键词抽取系统可以表示为由智能体生成的一系列关键词。本文将生成的关键词视为根据策略执行的动作,这个策略是由编解码器的循环神经网络模型定义的。优化网络参数以最大限度地提高策略搜索的累计奖励。
强化学习算法主要分为基于值函数的算法[13]和基于策略梯度的算法[14]。基于策略梯度的算法比基于值函数的Q-学习算法更适合本文场景。因为在改变目标并调整为最大化总奖励的策略之前,可以使用已经产生合理响应的极大似然估计方法(maximum likelihood estimate,MLE)来初始化参数基于RNN的编码器—解码器。另一方面,Q-学习算法是直接估计每个行动的预期奖励,这可能与MLE目标有着数量级的差距,因此MLE不适合参数初始化。基于策略梯度的算法能够直接优化策略的预期总奖励,并直接在策略空间中搜索最优策略。
2.3.1 动作A为智能体可以执行的动作的集合,动作at∈A表示在t时刻智能体做出的动作。动作a是问题的关键词序列。由于可以生成任意长度的序列,动作空间是无限的。
2.3.2 状态P为所有状态的集合,pi-1∈P表示在t时刻智能体所处的状态。当前的状态由先前生成的关键词pi-1决定。通过将pi-1送到RNN编码器模型中,之前的解码被进一步转换为矢量表示[15]。
2.3.3 策略策略是在当前状态pt选择做出动作at,由于执行了动作at,智能体会转移到下一个状态pt+1,同时会得到来自环境的奖赏r(a)。策略采用RNN编码器—解码器即PRL(pi|pi-1)的形式,并由其参数定义。
2.3.4 奖励与监督学习计算每一步骤的损失不同,本文设计评估标准来计算每个行动获得的奖励。最终奖励函数描述如下:
$ r\left( a \right) = \frac{{{b_r}}}{{{N_s}}}. $ | (6) |
其中: r(a)表示动作a的奖励,Ns是输出序列的长度, br的定义为
$ {b_r} = \left\{ \begin{array}{l} 1, \;\;a \in T且不重复;\\ 0, \;其他。\end{array} \right. $ | (7) |
其中T表示目标序列集合。
即使产生的关键词序列顺序与训练集的顺序不同,奖励函数也会为产生正确关键句的动作给出高分。由于输出序列的长度是不确定的,为了使奖励标准化,本文将最终奖励除以序列的长度。如果模型生成重复的关键字,就会对动作加以惩罚。
3 实验将本文模型在一个真实存在的数据集上进行关键词抽取,并对比和分析实验结果。本文模型使用PyTorch工具在NVIDIA TITAN X GPU上训练,使用Adam[16]学习规则更新实验配置中的梯度。
3.1 数据集和评估指标 3.1.1 数据集实验所用的数据集WF是从一个主流的中国法律社区问题答案网站(www.51wf.com)获得的,该网站包含法律问题和由用户协作注释的关键词。
WF中例子的数量、问题的短语数量、关键短语的数量、每个问题的单词平均数量和每个例子的关键短语平均数量分别为60 812、18 000、10 302、11.9和3.2。
3.1.2 评估指标本文使用准确率来度量模型的精确度,用召回率来度量模型的完整性,用F值(精确度和召回率的调和平均数)来评估关键词抽取方法的性能。对于资源,用To表示准确的关键词,Te表示抽取的关键词,用To∩Te表示正确抽取的关键字。精确度p,召回率r和F值定义如下:
$ p = \frac{{\left| {{T_{\rm{o}}} \cap {T_{\rm{e}}}} \right|}}{{\left| {{T_{\rm{o}}}} \right|}}, \;r = \frac{{\left| {{T_{\rm{o}}} \cap {T_{\rm{e}}}} \right|}}{{{T_{\rm{e}}}}}, \;F = \frac{{2pr}}{{p + r}}. $ | (8) |
实验中,使用GRU[17]作为模型单元。单元数量设置为256,批量大小为256,最大时间步长T为10,因此每个问题最多可预测10个关键词。当在验证集中得到最佳结果时,停止训练。
3.3 方法比较将几种基线方法来与本文方法进行对比,以评估本文方法的有效性。TF-IDF和TextRank[12]这2种方法从问题中抽取可能的关键短语并对它们进行排名,分数随着问题中的关键词短语频率增加而增加。RNN和CopyRNN这2种方法基于序列到序列模型来抽取可能的关键字。RNN是基于具有交叉熵损失的基本序列到序列模型。CopyRNN[18]是在RNN中引入了一个拷贝机制。
3.4 实验结果实验结果如表 1所示。表 1表明基于序列到序列的方法比TF-IDF和TextRank有更好的性能。主要原因是:1)准确标准中的许多关键词不匹配原文本的任何连续子序列;2)中文分词存在一些错误,而关键词可能由多个中文词组成。
方法 | 精确度 | 召回率 | F |
TF-IDF | 0.466 5 | 0.519 5 | 0.491 6 |
TextRank | 0.597 7 | 0.623 1 | 0.610 1 |
RNN | 0.760 9 | 0.788 5 | 0.774 5 |
CopyRNN | 0.755 1 | 0.761 8 | 0.758 4 |
本文 | 0.778 4 | 0.806 6 | 0.792 3 |
值得强调的是,RNN的性能比CopyRNN的更好。这意味着引入拷贝机制对模型性能的提高没有帮助。通过分析表 2的数据,发现该数据集中的许多关键短语不能通过复制模式生成。
序号 | 问题 | 关键词 | 生成的关键词 |
1 | 冒用他人信用卡法律如何量刑? | 信用卡诈骗信用卡 | 信用卡信用卡诈骗 |
2 | 危险驾驶罪和交通肇事罪有什么联系和区别? | 交通肇事罪危险驾驶罪 | 危险驾驶罪交通肇事罪 |
3 | 购买的宝马车是套牌车报警会以诈骗罪立案吗? | 诈骗罪立案 | 合同诈骗罪 |
4 | 敲诈勒索罪的概念及构成是什么? | 敲诈勒索罪构成敲诈勒索罪 | 敲诈勒索罪 |
5 | 涉嫌挪用公款罪被关北京市第一看守所此罪在刑法及司法解释上是怎样规定的? | 北京市第一看守所 | 北京市第一看守所挪用公款罪 |
在精确度、召回率和F值方面,本文方法表现均优于其他4种方法。这主要得益于本文模型使用强化学习的优化方法而不是交叉熵学习的方法。结果表明本文方法能够有效用于关键词抽取。
表 2给出了本文模型生成的关键词的一些例子以及测试集中问题的关键词。在问题1里,关键词是“信用卡诈骗”“信用卡”,而生成的关键词是“信用卡”“信用卡诈骗”。在问题2里,关键词是“交通肇事罪”“危险驾驶罪”,而生成的关键词是“危险驾驶罪”“交通肇事罪”。这表明本文模型能够忽略关键词的顺序。表 2中主要错误的原因是:1)对问题理解得不充分(见问题3);2)生成的关键词不完整(见问题4);3)标注的关键词不正确(见问题5)。
4 结论本文提出了一个基于神经网络的序列到序列模型来抽取法律问题中的关键词,并在序列到序列模型中引入了增强学习,使模型能够在序列级别上预测短语。在真实法律领域的数据集上与主流方法进行了对比,证明本文方法是一种有效的关键词抽取技术,可以生成准确性较高的关键词。
[1] |
TURNEY P D. Learning algorithms for keyphrase extraction[J]. Information Retrieval Journal, 2002, 2(4): 303-336. |
[2] |
FRANK E, PAYNTER G W, WITTEN I H, et al. Domain-specific keyphrase extraction[C]//International Joint Conference on Artificial Intelligence. San Francisco, CA: Morgan Kaufmann Publishers, 1999, 2: 668-673.
|
[3] |
LIU Z, LI P, ZHENG Y, et al. Clustering to find exemplar terms for keyphrase extraction[C]//Conference on Empirical Methods in Natural Language Processing. Stroudsburg, PA: Association for Computational Linguistics, 2009: 257-266.
|
[4] |
MEDELYAN O, FRANK E, WITTEN I H. Human-competitive tagging using automatic keyphrase extraction[C]//Proceedings of the 2009 Conference on Empirical Methods in Natural Language Processing. Stroudsburg, PA: Association for Computational Linguistics, 2009: 1318-1327.
|
[5] |
HASAN K S, NG V. Automatic keyphrase extraction: A survey of the state of the art[C]//Proceedings of the 52nd Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers). Stroudsburg, PA: Association for Computational Linguistics, 2014, 1: 1262-1273.
|
[6] |
WANG M, ZHAO B, HUANG Y. PTR: Phrase-based topical ranking for automatic keyphrase extraction in scientific publications[C]//International Conference on Neural Information Processing. Berlin: Springer, 2016: 120-128.
|
[7] |
BELLAACHIA A, AL-DHELAAN M. Ne-rank: A novel graph-based keyphrase extraction in twitter[C]//Proceedings of the 2012 IEEE/WIC/ACM International Joint Conferences on Web Intelligence and Intelligent Agent Technology- Volume 1. IEEE Computer Society, NJ: IEEE, 2012: 372-379.
|
[8] |
ZHANG Q, WANG Y, GONG Y, et al. Keyphrase extraction using deep recurrent neural networks on Twitter[C]//Proceedings of the 2016 Conference on Empirical Methods in Natural Language Processing. Stroudsburg, PA: Association for Computational Linguistics, 2016: 836-845.
|
[9] |
CHO K, VAN MERRIENBOER B, GULCEHRE C, et al. Learning phrase representations using rnn encoder-decoder for statistical machine translation[C]//Proceedings of the 2014 Conference on Empirical Methods in Natural Language Processing. Stroudsburg, PA: Association for Computational Linguistics, 2014: 1724-1734.
|
[10] |
VINYALS O, KAISER Ł, KOO T, et al. Grammar as a foreign language[C]//Advances in Neural Information Processing Systems. Cambridge, MA: MIT Press, 2015: 2773-2781.
|
[11] |
RANZATO M, CHOPRA S, AULI M, et al. Sequence level training with recurrent neural networks[J/OL].(2015-11-20). https://arXiv.org/abs/1511.06732.
|
[12] |
Mihalcea R, Tarau P. Textrank: Bringing order into text[C]//Proceedings of the 2004 Conference on Empirical Methods in Natural Language Processing. Stroudsburg, PA: Association for Computational Linguistics, 2004: 404-411.
|
[13] |
MNIH V, KAVUKCUOGLU K, SILVER D, et al. Playing atari with deep reinforcement learning[J/OL]. (2013-12-19). https://arXiv.org/abs/1312.5602.
|
[14] |
SUTTON R S, MCALLESTER D A, SINGH S P, et al. Policy gradient methods for reinforcement learning with function approximation[C]//Advances in Neural Information Processing Systems. Cambridge, MA: MIT Press, 2000: 1057-1063.
|
[15] |
LI J, GALLEY M, BROCKETT C, et al. A diversity-promoting objective function for neural conversation models[J/OL].(2015-10-11). https://arXiv.org/abs/1510.03055.
|
[16] |
KINGMA D P, BA J. Adam: A method for stochastic optimization[J/OL].(2014-12-22). https://arXiv.org/abs/1412.6980.
|
[17] |
CHUNG J, GULCEHRE C, CHO K H, et al. Empirical evaluation of gated recurrent neural networks on sequence modeling[J/OL].(2014-12-11). https://arXiv.org/abs/1412.3555.
|
[18] |
MENG R, ZHAO S, HAN S, et al. Deep keyphrase generation[C]//Proceedings of the 55th Annual Meeting of the Association for Computational Linguistics. Vancouver, Canada: Association for Computational Linguistics, 2017: 582-592.
|