【数据应用技巧】NLP领域的预训练之风

案例来源:@AI科技评论 @集智翻译组 @人工智能LeadAI

案例地址:https://mp.weixin.qq.com/s/NCLkZqdmqY9lm5BhyEcLXQ;https://www.sohu.com/a/233269391_395209;https://arxiv.org/pdf/1801.06146.pdf;http://wemedia.ifeng.com/64207141/wemedia.shtml;https://baijiahao.baidu.com/s?id=1607601183904724013&wfr=spider&for=pc;http://www.igeek.com.cn/article-1176781-2.html

 

0. 背景:ImageNet带来了数据预训练的风,通过在ImageNet数据集上训练得到的网络权重,可以迁移学习到较少标注集较高标注成本的领域。这股思想也进入了NLP领域,本文介绍几种预训练方法。

目前NLP领域的预训练方法有:

    1)word2vec

    2)ULMFit

    3)ELMo

    4)Open AI Transformer

    对标ImageNet,目前NLP领域的主流标注数据集有:

    1)斯坦福问答数据集(SQuAD):10万多对问答对

    2)斯坦福自然推理语料库(SNLI):57万对英语句子对

    3)WMT:4千万对 英语-法语 翻译句子对

    4)WikiTest-2:维基百科文本

    这些语料库都有一定的缺陷(如人工标注员倾向于通过否定的方式创造新的句子对),不一定同ImageNet一样,可以表征所有自然语言处理的问题空间,削弱了使用这些语料库提取特征的泛化能力

 

1. word2vec

    1)预训练获得词嵌入,然后将词嵌入作为特征输出神经网络的第一层。是一种浅层网络的特征表示方法,类比于cv中对浅层神经元对物体边缘的表示

 

2. ULMFit(Universal Language Model Fine-tuning)

    1)LM pre-training:在大型语料库上训练word的表达

    2)LM fine-tuning:在特定语料上训练word在深层网络中的表达

    3)Classifier fine-tuning:上层分类器

 

3. ELMo(Embeddings from Language Models,深层语境化词表征)

    1)特点:

        a. 输入是字符而不是词,因此可以利用子字词单元来计算有意义的表征,即使对于词典外的词也是如此

        b. 词向量不是一成不变的,而是根据上下文不同而变化。如“我买了富士康生产的苹果”与“我吃了一个富士苹果”中“苹果”并不是一个事物

    2)方法:首先在大文本语料库上预训练了一个深度双向语言模型(biLM),然后把根据它的内部状态学到的函数作为词向量。语言模型的不同层对单词上的不同类型信息进行编码(例如,词语标注由biLSTM的较低层完成预测,而词义消歧在较高层中更好地编码)。 把所有层连接起来,可以自由组合各种文字表征,以提高下游任务的性能表现

 

4. Open AI Transformer

    1)在大规模数据集上用无监督的方式训练一个transformer模型(参:https://blog.csdn.net/allwefantasy/article/details/50663524)

    2)在小规模有监督数据集上进行微调

 

5. NLP预训练展望:

    1)可以用主流语言语料库做预训练,迁移学习到标注资源特别匮乏的小语种

    2)文本中的常识性信息,有一些不能从文本上下文中获得,而是要结合外部额外信息,这也是进一步优化预训练能力的点

 

你可能感兴趣的:(数据应用技巧)