深度学习在自然语言处理方面的运用有哪些?

深度学习在自然语言处理方面的运用有哪些?,第1张

深度学习在自然语言处理中的应用已经非常广泛,可以说横扫自然语言处理的各个应用,从底层的分词、语言模型、句法分析等到高层的语义理解、对话管理、知识问答、聊天、机器翻译等方面都几乎全部都有深度学习的模型,并且取得了不错的效果。可以参看ACL2017年的accepted papers list。Accepted Papers, Demonstrations and TACL Articles for ACL 2017。从这里可以看到大部分论文都使用了深度学习的模型。那为什么深度学习在自然语言中取得这么大的进步呢。一、从数据上看,经过前些年互联网的发展,很多应用都积累到了足够量的数据。当数据量增大,以SVM、CRF等为代表的浅层模型,因为模型较浅,无法对海量数据中的非线性关系进行建模,所以不能带来性能的提升。相反,以CNN、RNN为代表的深度模型,能够随着模型复杂性的增加,对数据进行更精准的建模,从而得到更好的效果。二、从算法上看,深度学习也给自然语言处理的任务带来了很多好处。首先,word2vec的出现,使得我们可以将word高效的表示为低维稠密的向量(distributed representation),相比于独热表示表示(one-hot-representation),这一方面一定程度上缓解了独热表示所带来的语义鸿沟的问题,另一方面降低了输入特征的维度,从而降低了输入层的复杂性。其次,由于深度学习模型的灵活性,使得之前比较复杂的包含多流程的任务,可以使用end to end方法进行解决。比如机器翻译任务,如果用传统的方法,需要分词模块、对齐模块、翻译模块、语言模型模块等多个模块相互配合,每个模块产生的误差都有可能对其他模块产生影响,这使得原来的传统方法的构建复杂度很大。在机器翻译使用encoder-decoder架构后,我们可以将源语言直接映射到目标语言,从而可以从整体上优化,避免了误差传递的问题,而且极大的降低了系统的复杂性。深度学习虽然是把利器,但是并不能完全解决自然语言中的所有问题,这主要是由于不同于语音和图像这种自然界的信号,自然语言是人类知识的抽象浓缩表示。人在表达的过程中,由于背景知识的存在会省略很多的东西,使得自然语言的表达更加简洁,但这也给自然语言的处理带来很大的挑战。比如短文本分类问题,由于文本比较简短,文本所携带的信息有限,因此比较困难。像这样的问题,当样本量不够时,如何将深度学习方法和知识信息进行融合来提升系统的性能,将是未来一段时间内自然语言处理领域研究的主要问题。

司法人员经常考虑使用rule-based和symbol-based方法解决任务,NLP研究者主要考虑data-driven和embedding方法。

在这篇文章中就主要讨论Legal AI的历史、现况、和未来的研究方向。

进行了一些试验来对现有的工作进行更有深度的分析,分析他们的优缺点,并揭示一些未来的研究方向。

可解释性强的symbolic models的效率不高,embedding-methods有更好的性能,但通常没有好的解释性,在一些道德相关的问题上有比较大的问题:经典性别和种族偏见。

我们总结了symbol-based methods和embedding-based方法共同面临的三个主要的挑战:

本文的研究贡献主要如下:

字和词嵌入很重要。

直接从司法案情描述中学习出专业词汇很困难。为了克服这种困难,可以同时捕捉 语法信息 司法知识

knowledge graph methods在司法领域很有前景,但是在实际使用之前,还是有两个主要的挑战:

这两种挑战让LegalAI通过embedding进行知识建模不平凡(non-trivial)。研究者在未来会尝试去克服这些困难。

预训练的语言模型(Pretrained language model,PLM)比如BERT,最近集中于很多NLP的领域。鉴于预训练模型的成功,在LegalAI中使用预训练模型是一个很合理很直接的选择。但是在司法文本中,这里还有一些不同,如果直接使用这些PLM会导致不好的性能。这些不同就来自于司法文本中所包含的术语和知识。为了解决这些问题,Zhong(2019)提出了一个中文司法文档的预训练模型,包括民事和(civil)刑事(criminal)案件的文档。针对司法领域设计的PLM给LegalAI任务提供了一个更有质量的baseline系统。我们在实验中对比不同的BERT模型应用于LegalAI任务。

对于在未来探索LegalAI中的PLM,研究者可以把目标放在整合knowledge进入PLM。整合knowledge进入预训练模型可以帮助推理司法概念之间。很多工作已经做了,去把general domain融入模型。

symbol-based methods也被叫做structured prediction methods。

符号化的司法知识包括:事件(events)和关系(relationship),这些可以提供可解释性。

深度学习方法可以用于提高symbol-based methods的性能。

信息提取(information extraction,IE)已经被广泛地在NLP中被研究。IE强调从文本中提取有价值的信息,一些技术比如:实体识别(entity recognition),关系提取(relation extraction),事件提取(event extraction)。

为了更好的使用司法文本,研究者尝试使用本体论(ontology)或者全球一致性(global consistency)在LegalAI的命名实体识别(named entity recognition)任务中。为了从司法文本中提取关系和事件,研究者尝试去使用不同的方法,包括:人工规则(hand-crafted rules),CRF(不知道这是啥),联合模型比如SVM,CNN,GRU,或者(scale-free identifier network)(不知道这是啥)。

现存的工作已经做出了很大努力去改善IE的效果,但我们需要跟多的注意力放在怎么好好利用这些提取出来的信息。这些提取出来的符号有司法基础(legal basis)而且可以对司法应用提供可解释性。所以我们不能只把目标定在方法的性能。在这里我们展示两个利用提取出的符号来提高LegalAI可解释性的例子:

在未来的工作中,我们需要更多注意,应用提取的信息在LegalAI任务中。这些信息的利用取决于特定任务的要求,而且这些信息可以提供更多的可解释性。

除了NLP中的共同的symbol,LegalAI有独有的symbol,称作legal elements。提取legal element专注于提取一些关键元素,比如:某个人是不是被杀了,或者某个东西是不是被偷了。这些元素是犯罪活动(crime)的基本组成元素,而且我们可以基于这些元素,直接给犯罪者定罪。利用这些元素,不仅可以给判决预测任务带来直接的监管信息,而且可以让模型的预测结果更加可解释。

从这个例子可以看出,提取元素可以决定判决结果。这些元素对于下游任务很有用。

为了更深度分析基于元素的symbol,Shu(2019)构造了用于提取元素的三个数据集:离婚纠纷,劳工纠纷,贷款纠纷。这些数据集需要我们检测相关元素是否被满足,并把这个任务规范化为一个多标签的分类任务。为了展示现存方法在element extraction上的性能,我们进行了一系列实验,如下表格所示。

我们实现了NLP中几个经典的encoding模型,为了检验elemetnt extraction。包括TextCNN,DPCNN,LSTM,BiDAF,BERT。我们用了两种不同的BERT预训练参数(原始BERT、用中文司法文档训练的BERT:BERT-MS)。从这个结果中可以看到,在广泛领域(general domain)上的预训练模型效果不如在特定领域(domain-specific)训练的预训练模型,这就是在LegalAI中推进PLM的必要性。paper的以下部分,我们就会使用在legal documents上预训练的BERT来达到一个更好的表现。

从目前的element extraction的结果来看,现存的方法已经达到了一个很好的性能,但是在相关的应用上仍然不够。这些元素可以被看作是预先定义好的legal knowledge并且帮助下游任务。怎么改善element extraction也是需要进一步研究。

介绍几个典型的应用:

Legal Judgment Prediction

Similar Case Matching

Legal Question Answering

Legal Judgment Prediction 和Similar Case Matching可以看作民事法律(Civil Law)和普通法系(Common Law System,英美法系,普通法系)判决的核心功能。Legal Question Answering可以给不懂法律的人提供咨询服务。因此探究这三个任务可以基本上涵盖LegalAI的大部分方面。

Legal Judgment Predction(LJP)在民事法律体系中很中国要。在民事法律体系中,判决结果是基于事实和法律条文。LJP主要关心怎么通过 事实描述 和民法中 相关条文 ,来预测判决结果。

下面将介绍LJP方面的研究进展,和未来的研究方向。

早期的工作包括:使用统计和数学方法在特定场景下分析司法案件。同时结合数学方法和司法规则让预测结果具有可解释性。

为了LJP的进展,Xiao(2018)提出了一个大规模的中文刑事判决预测数据集,C-LJP(c指chinese)。这个数据集包含268 million个司法文档,是一个LJP的有效的benchmark。C-LJP包含三个子任务:相关文章relevant articles,应用的指控applicable charges,刑期term of penalty。前两个可以被formalize为多标签分类任务,最后一个是回归任务。英文的LJP也有,但是规模比较小。

随着NLP发展,研究者开始考虑在LJP中使用NLP任务。这些工作可以分为两个主要方向:1 使用更新的模型提高性能:Chen(2019)用门机制提高预测刑期(term of penalty)的性能,Pan(2019)提出使用多尺度(multi-scale)的attention,来处理含有多个被告的案件。除此之外,其他的研究者探究怎么使用legal knowledge和LJP的一些属性。Luo(2017)在fact和law articles之间使用attention来帮助预测可应用的指控(applicable charges)。Zhong(2018)使用拓扑图来利用不同LJP不同任务之间的关系。Hu(2018)整合了是个可辩别的(discriminative)司法属性(legal attributes)来帮助预测低频率的指控。

一系列在C-LJP上的实验

实验结果:

可以看到很多模型在预测高频率指控(high-frequency charges)和文章(articles)中达到了很好的性能。 但是在低频率的标签上表现不好,表现为micro-F1和macro-F1之间有很大的差距。

Hu(2018)展示了把few-shot learning应用于LJP。然而他们的模型需要额外的人工添加一些属性信息,这就导致很费劲,而且难以在其他的数据集上应用。除此之外,我们发现BERT的性能不够好,因为在一些模型参数较少的模型上没有什么提升。主要的原因是司法文本的长度一般较长,但是BERT最长的文本长度是512。根据统计数据,最长的司法文本长度是5w多字,15%文档场都超过了512。因此LJP需要一些文本理解(document understanding)和推理技术(reasoning technique)。

虽然embedding-based方法已经有很好的效果了,但是在LJP中我们需要结合embedding-based和symbol-based。拿TopJudge作为一个例子,这个模型规范化LJP任务中(symbol-based part)的拓扑序, 并使用TextCNN用于编码fact description。 (有点好奇这个TopJudge里是怎么通过symbol-based搞一个拓扑序的?对模型是怎么样有用的。)通过结合symbol-based和embedding-based,TopJudge达到了一个很好的效果。通过对比TextCNN和TopJudge可以发现加judgements 的顺序(order)可以提升性能。

为了更好的LJP性能。 一些挑战需要研究者来探索:

在使用Common Law System(这好像可以解释为卷宗法律系统,通过相似的案件来判案)的国家中,比如美国,加拿大,印度,判决决策是通过相似案件和有代表性的(representative)案件来进行的。因此,怎么识别出相似的案件,时Common Law System中所最需要的。

为了更好的预测Common Law System的判决结果,Similar Case Matching(SCM)成了LegalAI的一个重要的话题。SCM中对于相似度(similarity)的定义也是多种多样。SCM需要从不同的信息粒度(information of different granularity)来建模(modeling)案件之间的关联(relationship),比如事实级别(fact-level),事件级别(event-level),和元素级别(element-level)。换一种话说,就是SCM是语义匹配的一种特殊形式(semantic matching),这个对于提取司法信息(legal information retrieval)有帮助。

传统的IR方法集中于使用统计方法来衡量term-level 的相似性,比如TF-IDF。除此之外,其他研究者还尝试利用元信息(meta-information),来捕捉语义相似度。许多机器学习方法也被应用于IR,比如SVD或者矩阵分解(factorization),随着深度学习发展,多层感知机(multi-layer perceptron),CNN,RNN也被应用于IR。

已经有一些LegalIR的数据集:COLIEE,CaseLaw,CM。COLIEE和CaseLaw都被用于从大的语料库中提取最相关的文章。CM中的数据样例提供了三个司法文档用于计算相似度。这些dataset都提供了一个benchmark。许多研究者专注于建立易用的司法搜索引擎(legal search engine,司法版google)。

以计算语义级别(semantic-level)的相似度为目标,深度学习方法被用于LegalIR。Tran(2019)提出了一个CNN-based model,结合了文档级别(document-level)和句子级别(sentence-level)的池化(pooling),在COLIEE上达到了SOTA的效果。

为了对当前的LegalIR进展有一个更好的理解视角,我们使用CM(Xiao 2019)来进行实验。CM包含8964个三元组,每个三元组包含三个司法文档(A, B, C)。CM的任务就是分辨出B和C哪个更接近A。我们实现了几个不同类型的baseline:

我们发现,能够捕捉语义信息的模型性能超过了TF-IDF,但是应用到SCM还不够。如Xiao(2019)所说,主要的原因是司法人员认为数据集中的elements定义了司法案件之间的相似度。司法人员会比较看重两个案件是否有相关的元素(elements)。只考虑term-level和semantic-level的相似度是不足够的。

更深的SCM研究有以下几个方向需要努力:

Legal Question Answering(LQA):司法方面的问答系统。

司法专业人员的一个很重要的任务是向不懂法的人提供可靠的、高质量的司法咨询服务。

LQA中,问题的形式会有比较大的变化:有的问题强调对于司法概念的解释,有的问题主要考虑对于特定案件的分析。另外,从专业人员和非专业人员口中表达专业词汇可能会有差别。这些问题给LQA带来了很多挑战。

LegalAI中有很多数据集,Duan(2019)提出CJRC,一个司法阅读理解数据集,和SQUAD 20有相似的格式,包括span extraction(不懂),yes/no questions,unanswerable questions。另外COLIEE包含500个yes/no questions。另外,律师资格考试(bar exam)对于律师来说是一个很重要的考试,因此律师资格考试数据集会比较难,因为需要专业的司法知识和技能。

除了这些数据集之外,研究者还用了很多方法在LQA上。rule-based systems在早期的研究中效果显著。为了更好的性能,研究者利用更多的信息,比如概念解释(explanation of concepts)或者把相关文档格式化为图(formalize relevant documents as graph)来帮助推理。机器学习和深度学习方法比如CRF,SVM,CNN也用于LQA。但是,大多数现存方法只在小数据集上进行了实验。

我们选择JEC-QA来作为实验的数据集,因为这是从律师资格考试中收集到的最大的数据集,保证他的困难程度。JEC-QA包含了28641个多项选择、多项回答问题,还包含了79433个相关的文章来帮助回答问题。JEC-QA把问题分为知识驱动问题(knowledge-driven questions, KD-Questions)和案件分析问题(case-analysis questions),并且提供了人类的表现。我们实现了几个有代表性的QA模型,包括BiDAF、BERT、Co-matching、HAF,这些实验结果在表6中呈现。

对比发现,这些模型不能在回答这些司法问题上跟回答open-domain的问题时有一样好的效果。在LQA上,模型和人类之间有巨大的差距。

为了有更好的LQA方法,这里有几个困难需要克服:

除了这篇文章中的,还有其他的LegalAI任务:司法文献概述(legal text summarization),从司法合同中进行信息提取(information extraction from legal contracts)。不管怎样,我们都能够应用embedding-based方法来提高性能,结合symbol-based方法提高可解释性。

三个主要的挑战:

未来的研究者可以主要结合embedding方法和symbol方法解决这三个挑战。

对于一些任务,还没有数据集,或者数据集不够大。我们可以尝试构建规模大、质量高的数据集,或者使用few - shot / zero - shot learning方法来解决这些问题。

视频画面风格分类:故事型,情感型,感人型,走心型,搞笑型,教育型。视频的画面风格包括画面调整,美颜,人像调整,好莱坞动景特效等多个方面。调整画面风格,就好像在一群穿黑白衣服中,那个穿红色衣服的人,既突出了自己视频的特点,还能让人留下深刻的印象 。

第一种:搞笑幽默类。现在的社会压力那么大,工作一天的人们最喜欢的就是各种欢快的短视频,欢乐的东西既能缓解压力又能让人忘记时间,一刷可以刷上好几个小时。搞笑类的视频也有很多细分,比如说段子类,情景类,模仿类,恶搞类等等。

第二种:美妆类。经常刷短视频的朋友们应该知道,最具流量的网红大咖们就是从美妆开始的,具体的咱就不多说了,相信大家一定都想到了那位。即使现在也有不少明星的化妆师入驻抖音,都是很受欢迎的。如果你也有这方面的特长,也可以发挥一下。

第三种:时尚颜值类。无论是在哪些方面,美的事物总是会受到大家的追捧,爱美是人的天性。而颜值这一块儿也一直备受瞩目。

第四种:才艺展示类。在短视频发展至今已经有很多大神凭借自己的高深技艺,赢得了粉丝与流量,无论什么行业,只要你有一技之长,那么就可以靠短视频来吸引大家的关注。

第五种:治愈疗伤类。这种视频在短视频上也是很受欢迎的,这种和前面提到的搞笑类都是可以缓解大部分人生活中的压力的,喜欢看这种可以治愈心灵的视频的观众还是很多的。

第六种:正能量类。很多网友还是很希望通过视频,吸收到很多正能量,而且有很多正能量的视频,能够引起大家的共鸣,鼓励大家在生活中做一个积极向上的人。

首先,如何构建一个完整的机器学习项目呢?

主要有以下几个步骤:

个人认为这里最重要的是第5步,特征工程。

何为特征工程呢?顾名思义,就是对原始数据进行一系列工程处理,将其提炼为特征,作为输入供算法和模型使用。

本质上讲,特征工程是一个表示和展现数据的过程;实际工作中,特征工程的目的是去除原始数据中的杂质和冗余,设计更高效的特征以刻画求解的问题与预测模型之间的关系。

好的特征工程可以 ①降低模型复杂度,减小过拟合;②提升模型泛化性能;③加快模型训练和预测速度。

为什么必须要进行特征工程呢?在实际任务中,我们接收到的数据往往是高维,非线性,高噪声的,比如一张256256像素3(RGB通道数)的,如果我们不特征提取,那么就需要把这196608个特征都使用上,对于分类器来讲,这是必然会造成过拟合的。事实上对于一张来说,它关键的信息也就那么几个部位,同时你完全可以采用一种压缩的方法把它们用更小的图像展示出来,输入到训练网络中。本质上来讲,图像压缩也就是一种特征工程。

对于文本这样的非结构化数据来讲呢(、音频、文本、视频都是非结构化数据)?

文本分类的核心都是如何从文本中抽取出能够体现文本特点的关键特征,抓取特征到类别之间的映射。所以特征工程很重要,可以由四部分组成:

文本表示是自然语言处理中的基础工作,文本表示的好坏直接影响到整个自然语言处理系统的性能。文本向量化是文本表示的一种重要方式。文本向量化就是讲文本表示成一系列能够表达文本语义的向量。

词袋模型是最早的以词语为基本处理单元的文本向量化方法。

词袋法(Bag Of Words,BOW) 基于这样一个朴素的思想:对训练集词库中的每一个词构建唯一的 独热向量(One-hot) 表示,每个单词用 00000010000000 表示,向量的长度为词库的长度,对于每个词表示出的one-hot向量,只有一个特定位置是1,其余都是0。

对于一篇文本而言,同样用一个1dim(dim表示词数量)向量来表示,其中每个元素表示词典中相关元素在文档中出现的次数。(也有的词袋模型中只要出现该词就置1,否则置0,除了0和1没有其他数字)

例如有如下两个文档:

①引入词频: 顾名思义,这是文本的词袋表示向量不再是普通的 00102100了,相应位置上的词权重不再是该文本中某个词的数量,而是该词语在整个 语料库 上的词频。改进后的文本词袋表示如 0 0 67 0 187 43 0 0

②引入tf-idf: 这是较常见的做法: Tf-Idf ,即 词频-逆文档频率。

TF-IDF有两层意思,一层是"词频"(Term Frequency,缩写为TF),另一层是"逆文档频率"(Inverse Document Frequency,缩写为IDF)。 是一种用于信息检索(information retrieval)与文本挖掘(text mining)的常用加权技术。

TF-IDF基于这样一个朴素的思想: 某个词的重要性与它在文件中出现的次数呈正比,与它在语料库中出现的次数呈反比。

IDF的常用计算公式如下图

这里D为语料库中总文档数,D(i)为语料库中出现词i的文档数量,注意这里 分母+1 ,这是采用了 拉普拉斯平滑 ,避免有部分新的词没有在语料库中出现过从而导致分母为0的情况出现。 此外,注意这里用到了log函数 ,即对idf的值取了对数。

至于为什么tf和idf是相乘而不是相加,idf为什么要取对数,拉普拉斯平滑方法的选择,这些都是经过大量理论推导和实验研究的,具体细节此处不表。

最后,需要注意的是,同一个词,在同一语料库下的不同文档中,它的tf-idf值是不同的:准确的来讲,是idf值相同,但tf值不同,因为词频的计算是依据特定文档的。

③引入N-gram

针对词袋模型无法表达语序这样的缺陷,有人提出了N-gram模型。本质上来讲,N-gram是一种语言模型,我们这里只是借用了它的思想,即为了解决词袋模型不考虑语序关系的问题,我们构建了一个大小为N的词滑动窗口进行新的表征。其实词袋模型就是一个 1-Gram模型 举例来说,对于一句话

其对应的词袋模型为:

对应的2-gram模型为:

其他的话本质上还是和词袋模型相同:N-gram模型的缺点是会造成更高的时空开销,维度也更加稀疏了。

关于N-gram在语言模型上的知识以后再表。

其他方法亦可另见《python自然语言处理实战:核心技术与算法》P85:tf-idf算法、TextRank算法、LSA/LSI/LDA算法

文本表示是自然语言处理中的基础工作,文本表示的好坏直接影响到整个自然语言处理系统的性能。文本向量化是文本表示的一种重要方式。文本向量化就是讲文本表示成一系列能够表达文本语义的向量。

当前阶段,对文本向量化的大部分研究都是通过词向量化来实现的。与此同时,也有相当一部分研究者将文章或者句子作为文本基本处理单元,提出了doc2vec和ste2vec技术。

基于embedding的词表示,其核心思想是: 上下文相似的词,其语义也相似。 这就是著名的 词空间模型(word space model) ,词向量通常使用神经网络模型训练得到,神经网络模型就是根据上下文与目标词之间的关系进行建模。

word2vec glove fasttext

word2vec改进→doc2vec:word2vec丢失了文本的语序信息,而文本的语序包含了重要信息。 doc2vec 主要有两个模型: DM和DBOW 模型,DM和CBOW模型相对应,可以根据上下文词向量和段向量预测目标词的概率分布;DBOW与Skip-gram相对应,只输入段向量,预测从段落中随机抽取的词组概率分布。总体而言,doc2vec是word2vec的升级,不仅提取了文本的语义信息,而且提取了文本的语序信息。

关于word2vec篇幅有点大,我们不在这里讲了,移步 此处

cnn rnn

NN的好处在于能end2end实现模型的训练和测试,利用模型的非线性和众多参数来学习特征,而不需要手工提取特征。CNN善于捕捉文本中关键的局部信息,而RNN则善于捕捉文本的上下文信息(考虑语序信息),并且有一定的记忆能力。

欢迎分享,转载请注明来源:浪漫分享网

原文地址:https://hunlipic.com/qinggan/931381.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-07-11
下一篇2023-07-11

发表评论

登录后才能评论

评论列表(0条)

    保存