课程向:深度学习与人类语言处理 ——李宏毅,2020 (P17) -2

Overview of NLP Tasks

李宏毅老师2020新课深度学习与人类语言处理课程主页:
http://speech.ee.ntu.edu.tw/~tlkagk/courses_DLHLP20.html
视频链接地址:
https://www.bilibili.com/video/BV1RE411g7rQ
图片均截自课程PPT、且已得到李老师的许可:)



前言

在上一篇中(P17),我们讲解了 Speaker Verification 语者验证有关技术,输入语音,输出类别的模型。类似地,这样的模型可以用在很多不同的领域,如语音情绪判断、语音安全判断、语音关键词是否存在等等,而上一篇中我们只关注 语者验证,其他的应用大同小异,模型一样,都是语音分类问题。 .Speaker Verification 语者验证将从3个方面讲解:
1 Task Introduction
2 Speaker Embedding
3 End-to-end

到目前为止,我们讲解了很多与语音有关的任务,接下来要进入与文字有关的任务,也就是大家所熟知的NLP任务,请注意本篇类似科普类,不涉及任何技术模型等,可以用来归纳总结,而且李宏毅老师的分类清晰有序,还是很值得参考的。

而在本篇中,我们继续将讲述NLP任务概述,虽然NLP应用非常广泛、模型变化多端,但是总归起来来说,不脱以下几个变化:
文字->类别、文字->文字

在上一篇 P17-1中,我们已经概述了NLP任务,并已经讲解了8个NLP经典任务,接下来将继续讲解剩余的NLP任务。


2.9 Stance Detection 立场侦测

在这里插入图片描述

输入:two sequences
输出:four classes

有一个任务,叫做 Stance Detection 立场侦测。立场侦测通常做的是,给机器看一篇博文和评论,比如说“李宏毅是个型男”和后面的评论“他真的是个型男”,此时机器就要侦测这个回复对于这个博文的立场是什么?在本例中,这就是一个Support的立场。

这个立场可以分四类:(SDQC)

  1. Support:赞同
  2. Denying:反对
  3. Querying:疑问
  4. Commenting:说明

当然,这种立场侦测的问题没有那么容易,机器要有一定的语言理解能力才能解决。解法但是对于模型的角度而言,这就是一个四分类的问题,只不过要处理一下输入的两个sequence。

2.10 Veracity Prediction 事实侦测

在这里插入图片描述
输入:several sequences
输出:class

立场侦测这样的技术常常被应用在 Veracity Prediction,事实侦测。通常它做的事情就是让机器看一篇文章,比如一篇twitter,“今日清晨某市发生了一起重大案件”,那这个事请到底是真的还是假的呢?这个时候我们就需要 Veracity Prediction,事实侦测的模型来告诉我们说这则推送大概率是真的还是假的

那像这样的事实侦测,可以用机器学习的方法解吗。是可以的,有很多的文献研究,解法:输入一段文字,输出True/False,就是二分类问题。

但是,只看一篇twitter是远远不够做到事实侦测的,即使是人,也可能被假新闻误导认为是真新闻。所以有人提出要将对应的评论和互联网有关搜索的讯息等等都加入到模型的输入中。

2.11 Natural Language Inference (NLI)自然语言推理

在这里插入图片描述
输入:two sequences
输出:a class

Natural Language Inference (NLI)自然语言推理,它做的是根据给出的前提和假设进行判断假设在前提下的情况。

首先,给机器一个 primise,前提,如上图的“有一个人骑着一匹马,跳过了一架飞机”。接下来,再给出一个hypothesis,假设,如上图框中的“这个人在吃完晚饭”。简而言之就是,从这个前提有没有办法推得这个假设。本例显然是矛盾的。

解法:那怎么让机器做NLI呢?NLI听起来像是很难的任务,其中涉及了语言理解与逻辑推理等多种问题。不过今天往往就是一个端到端模型,输入两个句子,输出一个类别,三分类问题,这三个类别分别是:

  1. contradiction:矛盾,从前提不可能推到假设。
  2. entailment:蕴含,从前提很有可能推到假设。
  3. neutral:中立,无法判断从前提能否推到假设。

2.12 Search Engine 搜索引擎

在这里插入图片描述
输入:two sequences
输出:a class

Search Engine 搜索引擎,这个大家都很熟悉了。输入问题或者是关键词,输出有关的几篇文章。据说Bert已经应用在了Google搜索引擎中了

解法:像这种搜寻,如果要用机器学习的方法来解,需要一个模型,把你输入的搜寻问题或是关键字读入,并把一篇文章读进去,输出就是这篇文章和问题的关系程度,根据这个关系程度排序并依次展示给你。

但是,其实,搜索引擎是一个非常复杂的问题了,就模型而言,它是输入sequence输出class的类型。还有很多很多其他的问题,这不是我们这门课要讨论的。并且,请注意,我们是不能靠词频、相同词方法寻找相似文章的,因为有很多制作网页的商家会故意加重复关键词,即使它与文章不相关来增加点击率等,因此将NLP技术应用到搜索引擎中可以得到更人性化、更正确的搜索结果,如上图,左侧是Google没有用Bert之前的搜索结果,右图则是加了Bert的搜索结果,左侧文章其实是完全不相关的,只是因为与输入的问题有大量相同的词,而右侧的结果是更好的结果。

2.13 Question Answering (QA) 问答系统

2.13.1 Past solution

在过去,在End-to-End模型还不流行的时候,这种QA的系统通常类似下图,有很多各式各样的module,通常会有
Question Processing:问题处理模块。将输入的问题做处理,如提取问题中的关键词。
Document and Passage Retrival:文件和内容检索模块。通常有一个很大的数据库,将经过问题处理模块得到的如关键词进行数据库内的检索,将相似度大的讯息当作输出。
Answer Extraction:答案提取模块。文件和内容检索模块抽出的答案不一定是对的,所以要做答案提取模块的判断,比如说回答的应该是数字、人名等等,再根据这种输出类型挑选最终输出的答案。

即使是,Watson也是多模块处理QA问题,不过是将每个模块做的非常非常复杂,比如问题处理模块有一个问题分类,它将问题分成了2500多种等等复杂方法。

在这里插入图片描述

上图是过去在End-to-End模型还不风行的时候,人们常常使用的多模块模型来解决QA问题。

2.13.2 Today’s solutions

在这里插入图片描述

Reading comprehension 阅读理解

输入:several sequences
输出:sequence

而今天大多数的实际使用的QA模型就是如上图所示的结构,给QA模型输入问题和非结构化的文章,其中这些非结构化的文章可以由将问题通过搜索引擎搜索得到的相关文章给出。而且,如今我们还希望QA模型是能够处理来自类似网页的非结构化数据进行学习,也因此这也常被称为 Reading comprehension 阅读理解。同样今天的搜索引擎也不能保证搜索到的每一篇文章都是与问题相关的,因此,QA模型也要有筛选由搜索引擎给出的文章。解法:这也是一个seq2seq问题。

在这里插入图片描述

Extractive QA 抽取式问答系统

输入:several sequences
输出:two numbers

通常我们更常做的QA模型是 Extractive QA,给出模型一篇文章和一些问题,让模型输出问题的答案,且这些答案是分布在原文中,而且模型是强制copy的,它直接输出两个数字分别代表s和e(start起始位置、end终止位置),正确答案就是从s到e的所有词汇。

2.14 Dialogue 对话系统

对话系统,又分成两种:

  1. Chatting: 闲聊机器人(Open-domain开放领域对话系统)
  2. Task-oriented: 任务导向对话系统

2.14.1 Chatting 闲聊机器人

在这里插入图片描述
输入:several sequences
输出:several sequences

Chatting 闲聊机器人,用途与人闲聊,如cleverbot。解法:简单解决方法是seq2seq模型,但注意,多轮对话的问题,模型要记得对话的历史。

而且今天我们是希望,chatbot是能控制个性、同理心、博学多闻等等。

2.14.2 Task-oriented 任务导向对话系统

在这里插入图片描述
输入:several sequences
输出:several sequences

Task-oriented 任务导向对话系统。它所解决的是对话是为了帮人完成某件事请,比较常见的应用就是定票、定旅馆等,其实这个在Rasa中有比较成熟的框架来实现这种订票类。解法:seq2seq模型,将所有的对话历史输入到模型中,输出下一个应该询问的问题或完成任务的提示语。

而在这个模型中,又由很多的module组成:
(以订房为例)

  1. Natural Language Generation (NLG):自然语言生成。首先,要先定好机器可以做的 Action :如打招呼、询问房间日期问题、询问房间价格等等。之后,我们会将对话历史输入到模型中输出一个Action,根据这个Action通过NLG的方法变成一串人类理解的文字。当然,这里的NLG完全可以通过写好规则来实现,比如看到Greeting的Action就随机输出“hello | hi | how are you”中的一个。当然,如果模型过于复杂,人工设定机器所有可能的回复不切实际,也因此需要NLG的方法实现Action的人类语言化。
  2. Policy & State Tracker:同样,我们可以把处理历史对话记录的模型分成两个部分,Policy 和 State Tracker。State:这一个对话到目前为止总共发生了什么事情,对历史对话记录做总结。State做的就是让机器只需要关注重要的(订房有关的)讯息,如入住人数、日期、联系电话等等。而 State Tracker (several sequences -> sequence)读完现在的对话,把它的state抽取出来。有了这个State后,就可以通过Policy(sequence -> class),决定下一步机器该输出什么,比如现在还不知道入住人数是多少,那Policy就要提出入住人数的问题,是一个分类问题
  3. Natural Language Understanding(NLU):在过去,很多时候,是需要将原始的聊天历史经过NLU处理后再输入给模型。NLU在对话领域,通常指两个方面,如下图:
        1 Intent Classification,意图分类。输入句子,输出对应的一种Intent 意图
        2 Slot Filling,槽填充。定好一些slot,比如说入住日、退房日等等。给模型一个句子输出每一个token对应的类别,是否为其中一种slot

在这里插入图片描述

Task-oriented Overview 结构示意图

在这里插入图片描述
整个 Task-oriented 的结构 如上图所示。

2.15 Knowledge Graph 知识图谱

在这里插入图片描述
Knowledge Graph 知识图谱,是由node 和 edge,在知识图谱中每个node是一个entity 实体,edge是两个实体之间的relation关系。对于 Knowledge Graph 知识图谱 有两个主要的方向:

  1. 给模型一个知识图谱,模型该如何用整个图谱来解决对应的任务
  2. 能不能从大量的文字中,抽取出知识图谱

2.15.1 Name Entity Recognition (NER) 命名实体识别

在这里插入图片描述
输入:sequence
输出:class for each token

解法:那怎么把node也就是entity抽取出来呢?NER就是将一个句子中的每一个token输出一个类别,类似POS tagging词性标注。

那什么是 Name Entity 分类的实体呢?这个往往根据领域决定的,一般而言,实体分为人名、组织名、地名等等,可以人为增加想要增加的实体。

2.15.2 Relation Extraction 关系提取

在这里插入图片描述
输入:sequences(one or more than one) + two names
输出:class

解法:那怎么把edge也就是relation抽取出来呢?Relation Extraction 就是将一个主题句和两个需要判断的实体,输出这两个实体的关系。

III GLUE 模型评测

General Language Understanding Evaluation

过去往往就是一个NLP任务就设计一个模型,这种方法显然不够高效,不知道机器到底了解人类语言的能力,而如今希望一个模型可以解决多个NLP任务并评测模型效果,因此产生了GLUE,如下图所示。
在这里插入图片描述
在GLUE里面,有三大类,以颜色标记。

红色:前两个,文法错误 和 情感分类 ,是sequence->class
绿色:中间三个,同义句判断、文本匹配(文本是否相同)和 语义相似度 ,是two sequences->class
蓝色:后四个,均是NLI自然语言推理任务,是two sequences->class

但有了Bert和他的好朋友们之后,以及GLUE并没有涵盖更复杂的NLP任务,GLUE已经不够给BERT这类的模型做评测了,也因此产生了 Super GLUE,找了一些更难的任务来评测模型。

还有DecaNLP,10个NLP的任务,期待用同一个模型来解这10个任务。那怎么用同一个模型来解这些不同的NLP任务呢?**解法:**在 DecaNLP 原始论文中,将各式各样NLP的任务都看作QA问题,如摘要,就询问机器 “What is the summary of the document”等等。

  
本节视频过长,因此笔者将其分写了两篇,之后还会再出一篇只有文字的简略版总结。

猜你喜欢

转载自blog.csdn.net/qq_44574333/article/details/108288239
今日推荐