⼤规模⽆监督预训练语⾔模型与应⽤(上)
文章目錄
- 1 單詞作為語言模型的基本單位的缺點(diǎn)
- 2 character level modeling
- 3預(yù)訓(xùn)練句子向量
- 3.1 skip-thought
- 3.2 InferSent
- 3.3 句子向量評(píng)價(jià)數(shù)據(jù)集
- 4 預(yù)訓(xùn)練文檔向量
- 5 ELMO
1 單詞作為語言模型的基本單位的缺點(diǎn)
單詞量有限,遇到?jīng)]有見過的單詞只能以UNK表示。
模型參數(shù)量太大。
對(duì)于很多語?,例如英語來說,很多時(shí)候單詞是由?個(gè)subword拼接?成的。
可能的解決方案:subword ; wordpiece
2 character level modeling
Ling et. al, Finding Function in Form: Compositional Character Models for Open Vocabulary Word Representation
?BiLSTM把單詞中的每個(gè)字?encode到?起。
Yoon Kim et. al, Character-Aware Neural Language Models
使用CNN,將一個(gè)單詞經(jīng)過模型變成一堆的character。
使?subword作為模型的基本單元。subword是將一個(gè)單詞分成幾個(gè)子單詞
Compositional Morphology for Word Representations and Language Modelling
imperfection = im + perfect + ion
perfectly = perfect + ly
Byte Pair Encoding
Neural Machine Translation of Rare Words with Subword Units
參考博客:url
1 有一張字母表。所有鍵盤能打印出來的,都算字母。
2 在訓(xùn)練數(shù)據(jù)集中,找出每一個(gè)單詞。
例如:我們?cè)荚~表如下:
{'l o w e r ': 2, 'n e w e s t ': 6, 'w i d e s t ': 3, 'l o w ': 5}
每個(gè)字母中間加上空格。
3 將一個(gè)單詞中經(jīng)常出現(xiàn)在一起的字符,統(tǒng)計(jì)出來。key是單詞拆分層字母,value是出現(xiàn)次數(shù)。
第一步發(fā)現(xiàn) s和t同時(shí)出現(xiàn)次數(shù)最高,所以單詞表中w i d e s t 變成了 w i d e st。(st挨在一起)
接著又發(fā)現(xiàn)e st 出現(xiàn)次數(shù)最高…
這樣做的好處是可以控制詞表大小,迭代一次,增加一個(gè)單詞。
理論上來講,所有的單詞都可以使用單詞表中的詞查找出來。例如 happiest 可以等于 h a p p iest。過LSTM的時(shí)候,其embedding等于 emb(h), emb(a), emb§, emb§, emb(i), emb(est)。
查找代碼實(shí)現(xiàn):huggingface transformers,找bert相關(guān)代碼。
中文詞向量
騰訊有公開的版本。詞向量這樣的方法不再流行。
Is Word Segmentation Necessary for Deep Learning of Chinese Representations?
大牛 Jiwei Li Shannon.AI
不需要了
3預(yù)訓(xùn)練句子向量
文本分類:
- 文本通過某種方式變成一個(gè)向量:wordavg,lstm,cnn
- 最后是一個(gè)linear layer 300維的句子向量
- 過一個(gè)softmax,做分類
訓(xùn)練一個(gè)和Resnet一樣的東西,能夠取代從文本到向量的這一段。然后應(yīng)用到其他任務(wù)中。
有很多人提出了一些實(shí)現(xiàn)方法。
3.1 skip-thought
Kiros et. al, Skip-Thought Vectors
skip-thought與skip-gram的思想相似。兩個(gè)句?如果總是在同?個(gè)環(huán)境下出現(xiàn),那么這兩個(gè)句?可能有某種含義上的聯(lián)系。用中心句預(yù)測(cè)上一句和下一句。
如何把句子map成一個(gè)向量:compositional model,RNN, LSTM, CNN, WordAvg, GRU
論文中,把中心句用一個(gè)GRU作為編碼器編碼了,使?編碼器最后?個(gè)hidden state來表示整個(gè)句?。然后使?這個(gè)hidden state作為初始狀態(tài)來解碼它之前和之后的句?。用了解碼器。前一句和后一句的解碼器不同。
解碼器在這里是語言模型。編碼器的hidden state參與了每一個(gè)門的計(jì)算。
我們就可以把encoder當(dāng)做feature extractor了。
類似的工作還有fastsent。
3.2 InferSent
論文:Supervised Learning of Universal Sentence Representations from Natural Language Inference Data
給定兩個(gè)句?,判斷這兩個(gè)句?之間的關(guān)系
entailment 承接關(guān)系
neutral 沒有關(guān)系
contradiction ?盾
(non_entailment)
3.3 句子向量評(píng)價(jià)數(shù)據(jù)集
SentEval : SentEval: An Evaluation Toolkit for Universal Sentence Representations
句子任務(wù):句子分類sentiment;句子相似度SNLI
senteval的framework:使用你的模型將句子變成向量,senteval會(huì)幫你評(píng)分。
這個(gè)方法被GLUE替換了。刷GLUE榜單。
4 預(yù)訓(xùn)練文檔向量
基本不做了。事實(shí)上研究者在句?向量上的各種嘗試是不太成功的。主要體現(xiàn)在這些預(yù)訓(xùn)練向量并不能?常好地提升。
模型在各種下游任務(wù)上的表現(xiàn),?們?多數(shù)時(shí)候還是從頭開始訓(xùn)練模型。
Learning Deep Structured Semantic Models for Web Search using Clickthrough Data:用文檔向量和查詢向量計(jì)算相關(guān)性,用搜索結(jié)果排序。
5 ELMO
ELMO paper: https://arxiv.org/pdf/1802.05365.pdf
contextualized word vectors:這是word2vector的加強(qiáng)版。
目前發(fā)現(xiàn)word2vector效果不夠好。
contextualized word vectors真的有用。
Deep contextualized word representations震驚朋友圈的文章。
先說任務(wù)名稱:
SQuAD:QA的任務(wù) 斯坦福大學(xué)收集的數(shù)據(jù)集
SNLI:句子相似性
SRL:
coref:一個(gè)名字一個(gè)代詞,指的是不是同一個(gè)主體
NER:命名實(shí)體識(shí)別
SST-5:斯坦福,情感分類5分類數(shù)據(jù)集
baseline +ELMO之后分值大幅提升。
ELMO是什么?
是從語言模型學(xué)到的embedding。
ELMO有三層。第一層是character CNN,第二層和第三層是LSTM。
EMLO就是對(duì)三層做加權(quán)平均,得到contextural word vector。
使用方式是:
訓(xùn)練文本->ELMO->詞向量->下游任務(wù)
γ\gammaγ和sss是可以作為參數(shù),參與訓(xùn)練的。
總結(jié)
以上是生活随笔為你收集整理的⼤规模⽆监督预训练语⾔模型与应⽤(上)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [Leetcode][第329题][JA
- 下一篇: K/3 MRP运算数据不准的原因及解决方