论文地址:微软MT-DNN论文《Multi-Task Deep Neural Networks for Natural Language Understanding》
谷歌的BERT在各个NLP任务(GLUE、SQuAD、命名实体识别、SWAG)上的表现都很好,但是BERT在词向量的预训练的第二阶段只使用了单个任务进行模型fine-tune,我们自然而然地会问:Fine-tune阶段使用多任务同时对网络参数进行微调效果会不会更好?。
微软研究院在2019年发布的论文《Multi-Task Deep Neural Networks for Natural Language Understanding》就做了这方面的实验。论文提出了一个假设:在单一领域的数据集上使用单一的任务训练模型限制了模型的泛化。MT-DNN提供的思路是:利用多任务之间的约束来避免单一任务上的过拟合问题,从而提高模型的泛化能力。文章中使用的多任务是相似的,作者任务机器能够像人一样在相似的任务中获取到相关的经验,比如会滑雪的人就能比较容易的学会滑冰,对机器来说也就是能够使用更少的训练数据是模型获得相同的效果。
(1)MT-DNN在8/9的GLUE1任务中取得了SOAT成绩,其中未达到SOAT成绩的原因是数据集存在问题。这8个数据集(任务)可以归纳分为以下四种类别:
任务 | 数据集 |
---|---|
Single sentence classification | CoLA:情感分类 SST-2:判断句子是否符合语法要求 |
Text similarity score | STS-B:两句话的相似性 |
Pairwise Text classification | RET、MNLI:判断两句话的关系(emtaiment, controdictional, neutral) QQP, MRPC:判断那两句话是否具有相同的语义 |
Relevence ranking | QNLI:判断问答句子对的相关性 |
(2)通过这种多任务训练得到的模型能够很好的适用于其他未见过的相似任务,即使只有很少的带标注的数据。因为MT-DNN底层使用的是BERT(Base)的网络,所以这种相似任务之间的适用性的提高可以确定由多任务的fine-tune带来的。实验表明即使只使用原始数据集的0.1%、1%样本,同样能够获得不错的准确率。下面是MT-DNN模型和BERT两个模型在SNLI数据集上的表现:
模型 | 0.1% | 1% | 10% | 100% |
---|---|---|---|---|
BERT | 51% | 82% | 90% | 94% |
MT-DNN | 82% | 88% | 91% | 96% |
mkdir blog
cd ./blog
source 'https://rubygems.org'
gem 'github-pages',group: :jekyll_plugins
sudo apt install ruby ruby-dev
sudo gem install bundler
bundle install
到nokogiri时终止了安装,搜索网上的问题解决办法后,发现是一些第三方依赖库没有安装,linux下在终端中输入以下命令,在手动安装nokogiri,成功!
sudo apt-get install libz-dev libiconv-hook1 libiconv-hook-dev
sudo gem install nokogiri -v '1.8.4'
bundle install
bundle exec jekyll serve
[TOC]
Issued by and valid in the PPSC Lab.Directed by Prof.MH.Perng