Video: https://www.youtube.com/watch?v=tFBrqPPxWzE&feature=youtu.be
Slides: http://speech.ee.ntu.edu.tw/~tlkagk/courses/DLHLP20/TaskShort%20(v9).pdf
可以根据输入(One Sentence/Multiple Sentences)和输出(One Class/Class for each Token/Copy from Input/General Sequence)对NLP任务进行分类。
-
Part-of-Speech(POS)Tagging 词性标注任务
- Why POS?预处理。例如句子John saw the saw(John看见了锯子),对词性加以标注,连同词性一同输入下游任务(Down-stream Task)有助于模型分辨两个saw的意思,从而使任务完成得更好。而现在很多Down-stream Model(如Bert)本身就带有POS Tag的能力,此时就无须再做一个POS的预处理。
- Input:sequence;Output:class for each token
-
Word Segmentation 分词(especially for Chinese)
- 存在ambiguity:如“北京大学”是单独作为一个词汇还是切分为“北京”和“大学”两个词汇。
- 可以通过binary classification,对于输入中的每个token,输出Yes表示这是该token为一个词汇边界(boundary),如输入“北京大学简称北大”输出“NNNYNYNY”。
- Why Word Segmentation?预处理。以词汇作为处理单位,输入到下游任务中。然而BERT一类的模型在处理中文时仍是以字为处理单位,所以它很有可能在模型内部已具备分词的能力,因此是否需要对中文做分词的预处理仍是一个需要讨论的问题。
- Input:sequence;Output:class for each token
-
Parsing 语法解析(给定句子产生树状结构):
- Why Parsing:预处理。结果作为额外的feature同样可以用于下游任务。BERT中是否学到了Parsing同样是一个需要讨论的问题。
- Constituency Parsing
- Dependency Parsing
-
Coreference Resolution(指代消解:哪些词汇指的是同样的entity)
- Why Coreference Resolution:结果作为额外的feature作为下游任务的输入
-
Summarization 摘要
- Extractive Summarization:一篇文章包含多个句子,从中挑选若干句子拼接起来作为summary,也是一个Binary Classification的问题(Input:sequence;Output:class for each token,here a token is a sentence)。但该方法很难产生好的摘要。
- Abstractive Summarization:seq2seq(Input:long sequence;Output:short sequence),copy is encouraged,此时可采用Pointer Network的架构,使其有能力从原文中直接拷贝词汇到输出的摘要中。
-
Machine Translation
- Seq2seq
- Unsupervised Machine Translation是一个很关键的研究方向
- Input:sequence;Output:Sequence
-
Grammar Error Correction 语法纠错
- Seq2seq,copy is encouraged
- Input:sequence;Output:sequence
-
Sentiment Classification
- 如电影评价、商品评价
- Input:sequence;Output:class
-
Stance Datection 立场侦测
- 输入Post和Reply,大多数系统采用Support、Denying、Querying和Commenting(SDQC)四类标签
- Input:two sentences;output:a class
- 常被用于事实侦测(Veracity Prediction),如果第一时间的reply大多是Denying,那么这则post很有可能是假消息。还可以辅助输入其他信息(如Wikipedia),以输出新闻的真实性(True or False)。
-
Natural Language Inference(NLI)
- 给定前提(premise)、假设(hypothesis),判断能否由前提推出假设。输出包括三类:contradiction矛盾、entailment蕴含、neutral中立。
- Input:two sequences;output:a class
-
Search Engine
- 给定关键字、文章,输出两者是否有关系
- Input:two sequences;output:a class
-
Question Answering(QA)
- 输入question和knowledge source(有结构的资料库/无结构的文章),输出answer
- Input:several sequences;output:sequence
- 对于输入无结构的文章的场景,该任务通常又被称为Reading Comprehension
- Extractive QA:Answer in document,copy from input,该模型通常输出两个数字s和e,对应答案为从第s个单词到第e个单词。
-
Dialogue
- chatting:模型需要记录之前对话的记录
- Task-oriented:客服
‣ Natural Language Generation(NLG):指定Action,先根据对话得到action,再通过NLG将action转化为文字输出
‣ Policy & State Tracker:首先根据已发生的对话生成State(what has happened in this dialogue),其目的是仅记录与任务有关的信息,可视为生成摘要;再根据state决定现在要做的事情(Policy)即输出action,若此时的输出是有限的,则policy是一个分类的问题;再将action输入NLG生成下一段对话。
‣ Dialogue可经由Natural Language Understanding(NLU)进行预处理。
‣ 综上,该过程为【Dialogue(Preprocessing by NLU) -> State Tracker -> State -> Policy -> Action -> NLG -> Dialogue】
-
Natural Language Understanding(NLU)
- Intent Classification 目标分类,如provide information、ask questions等等
- Slot Filling:类似于POS Tagging任务,侦测每个token属于哪个slot
-
Knowledge Graph 知识图谱
- 由entity(node)、edge(relation)组成
- 如何抽取Knowledge Graph?Step1: Extract Entity Step2: Extract Relation
‣ 使用Name Entity Recognition(NER)抽取entity,类似于POS tagging、slot filling
‣ Relation Extraction:输入several sentences、entity1、entity2,输出relation,如果relation是有限的,则这是一个classification Problem; - 如何使用Knowledge Graph?Graph-based methods
-
General Language Understanding Evaluation(GLUE)
- https://glurbenchmark.com
- Chinese version:clue(https://www.cluebenchmarks.com)
- 评估机器整体而言了解人类的能力,集合了很多语言任务。
- 任务分成三大类:
‣ 判断语句是否出错(CoLA)、情感分类(SST-2)
‣ 给定两个句子,判断两个语句是否语义相同(MRPC、QQP、STS-B)
‣ NLI相关,对前提和假设之间进行三分类(MNLI、QNLI、RTE、WNLI)
-
Super GLUE
- https://super.gluebenchmark.com
- 包含八个任务,基本都与QA相关,属于分类问题
-
DecaNLP
- https://decanlp.com
- 由salesforce maintain,包含10个NLP任务,期待用同一模型解决这些任务,包含需要输出完整句子的任务,所有任务都可视为QA问题,从而有机会使用统一模型解决任务。