rentainhe / what_I_have_read

Just for self-motivation
2 stars 0 forks source link

NLP中的下游任务 #4

Open rentainhe opened 3 years ago

rentainhe commented 3 years ago

所参考的文章:https://zhuanlan.zhihu.com/p/365357615

NLP任务整体上可以分为两个类型:

NLP的四种下游任务:

1. 句子对分类任务

数据集是Stanford Question Answering,该数据集已转换为二分类任务。 正例是(问题,句子)对,它们确实包含正确答案,而负例是同一段中的(问题,句子),不包含答案。


- STS-B

语义文本相似性基准(The Semantic Textual Similarity Benchmark)是从新闻头条和其他来源提取的句子对的集合。 它们用1到5的分数来标注,表示这两个句子在语义上有多相似。


- MPRC

Microsoft Research Paraphrase Corpus 是判断两个给定句子,是否具有相同的语义,属于句子对的文本二分类任务; 数据集是自动从在线新闻源中提取的句子对,并带有人工标注,以说明句子对中的句子在语义上是否等效。


- RTE

识别文本蕴含(Recognizing Textual Entailment)是类似于MNLI的二进制蕴含任务,但是训练数据少得多。


- SWAG

对抗生成的情境(Situations With Adversarial Generations) 任务是:给出一个陈述句子和4个备选句子, 判断前者与后者中的哪一个最有逻辑的连续性, 相当于阅读理解问题。

数据集包含113k个句子对完整示例,用于评估扎实的常识推理。 给定一个句子,任务是在四个选择中选择最合理的连续性。 其中,在SWAG数据集上进行微调时,每个输入序列都包含给定句子(句子A)和可能的延续词(句子B)的串联。


### 2. 单句子分类任务
- SST-2

斯坦福情感树库(Stanford Sentiment Treebank)是一种单句二分类任务,包括从电影评论中提取的句子以及带有其情绪的人类标注。


- CoLA

语言可接受性语料库(Corpus of Linguistic Acceptability)也是一个单句二分类任务,目标是预测英语句子在语言上是否“可以接受”。


### 3. 问答任务
问答任务属于**token级别**任务
在BERT中需要对输出的答案部分的每个位置都增加一个分类层,用来输出各个位置是答案开始和答案结束的概率,在计算Loss的时候计算开始Loss和结束Loss的均值Loss即可
- SQuAD v1.1

斯坦福问答数据集(Stanford Question Answering Dataset)是10万个问题/答案对的集合。 给定一个问题以及Wikipedia中包含答案的段落,任务是预测段落中的答案文本范围(start,end)。


阅读理解任务首先需要将问题和文本用“[SEP]”连接起来,并输入模型。然后,我们再将BERT最后一层向量输入到输出层。输出层最后输出的维度是 L*2,是个L行2列的矩阵,第1列为答案开头start的指针概率向量,第2列为答案结尾end的指针概率向量。

根据两者与真实答案对(start, end)之间的差值计算start_logit和end_logit,**最后求出总的start_logit和end_logit均值作为总得loss**,我们便可以进行梯度下降训练了。

### 4. 单句子标注任务
单句子标注任务属于token级任务(对于每个输入序列,计算模型中所有token输出的损失)
在BERT中需要对所有位置输出后增加一个分类层(全连接+softmax),用于输出最后的标注类别的概率

单句子标注任务也叫**命名实体识别任务**(Named Entity Recognition),就是**NER**,常见的NER数据集包括CoNLL-2003 NER等。该任务是指识别文本中具有特定意义的实体,主要包括人名、地名、机构名、专有名词等,以及时间、数量、货币、比例数值等文字。举个例子:“明朝建立于1368年,开国皇帝是朱元璋。介绍完毕!”那么我们可以从这句话中提取出的实体为:
1. 机构:明朝
2. 时间:1368年
3. 人名:朱元璋
rentainhe commented 3 years ago

NER任务的标注

它的每一行由一个字及其对应的标注组成,标注采用BIO(B表示实体开头,I表示在实体内部,O表示非实体),句子之间用一个空行隔开。 如果我们处理的是文本含有英文,则标注需采用BIOX,X用于标注英文单词分词之后的非首单词 比如:“Playing”在输入BERT模型前会被BERT自带的Tokenization工具分词为“Play”和“# #ing”,此时“Play”会被标注为“O”,则多余出来的“# #ing”会被标注为“X”。

例如: 标注 含义
B-ORG B 表示这个词是一个实体的开头
I-ORG I 表示这个字符是在一个实体的内部
O O 表示这个不是实体
O -
O -
1 B-TIME -
3 I-TIME -
6 I-TIME -
8 I-TIME -
I-TIME -
O -
O -
O -
O -
O -
O -
B-PER -
I-PER -
I-PER -
O -