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