《2-6 基于對比學習的文本生成方法.pdf》由會員分享,可在線閱讀,更多相關《2-6 基于對比學習的文本生成方法.pdf(30頁珍藏版)》請在三個皮匠報告上搜索。
1、基于對比學習的文本生成方法姓名 安晨鑫公司 復旦大學職位 碩士研究生|01動機為什么要引入對比學習02方法我們如何解決這些問題的03實驗5個生成任務,10個數據集04討論我們如何才能做的更好目錄CONTENT|01為什么要引入對比學習對比學習在文本生成中到底可以扮演一個什么樣的角色?為什么在文本生成上應用對比學習|1Contrastive Learning with Adversarial Perturbations for Conditional Text Generation ICLR 2021引入對比學習可以帶來 1)從表示學習學習中獲益,有價值的樣本可以幫助模型學到更有意義的特征和表示
2、 2)最近的研究1 表明對比學習可能是一個新的思路有助于緩解曝光偏差問題。曝光偏差(exposure bias)問題:指的是當前基于最大似然估計(MLE)訓練的生成模型存在著測試和訓練的不一致以至于損害模型的泛化性能。所謂曝光就是模型在訓練階段解碼器只曝光給了正確的輸入,而在測試階段模型不得不基于他自己生成的字符來預測由此形成了測試和訓練的偏差。應用對比學習可以緩解自回歸模型的曝光偏差問題|如何從對比學習的角度來嘗試解決這一問題?背景:對比學習的核心概念是要將正例拉近,負例推遠。正負樣本的選擇標準:以將質量高的人類寫的目標為正例,那么另外一些包含錯誤的序列就作為負例。緩解曝光偏差=將錯誤的樣本
3、和正確的樣本同時在訓練階段曝光給解碼器并利用對比學習的損失函數進行訓練讓模型去區別真實標簽那些包含錯誤的序列。一個簡單的方法Nave-CL|1.正負例構建:一個簡單的方法是選擇 SimCLR的方式,錨點-編碼器輸入(source sequence),正樣本-一般是人類寫的標準目標語句(ground truth),負樣本-同一個batch中隨機選擇其他的目標語句2.對比學習損失函數:!#3.訓練目標!$+!#4.解碼策略:普通的Beam search算法其他構造正負樣本的方法|Nave-CL 方法的一個明顯的缺點是從同一個batch中隨機選擇的目標序列 非常容易區別 的前人已經對做出了一些改進,
4、這些改進主要涉及到擾動標準目標序列1.SSMBA(離散空間):在離散空間添加擾動,如隨機mask一些詞讓一個用masked language model 將那些詞預測回去生成新的正樣本2.Dropout:使用dropout機制類似于SimCSE,將groundtruth輸入進帶有dropout機制的decoder兩次所得到的不同表示為一對正樣本3.CLAPS(目前效果最好的方法):在embedding空間對ground truth加擾動通過和原來的序列語義變化的大小作為劃分正負樣本的依據Batch size 與選出ground truth準確率之間關系目前基于對比學習的文本生成方法仍然存在瓶頸
5、|1)正負例構建:盡管之前的方法已經做出了一定的改進,但是對目標序列進行擾動并不能反映模型當前可能會出現的錯誤2)對比學習損失函數:對比學習損失函數的選擇也存在問題。InfoNCELoss 只區分正負但是會忽略掉負樣本之間的差異性3)解碼目標:僅僅是簡單的使用普通的beam search算法意味著這里存在著訓練目標和解碼目標的不一致|02如何解決問題針對目前基于對比學習的框架存在的問題我們能做些什么改進?我們的改進 CoNT:Contrastive Neural Text Generation|我們做了 3 件事1.來自模型預測的來自模型預測的對比學習對比學習樣例樣例2.三元組的對比三元組的對
6、比損失函數損失函數3.為對比學習的目標所設計為對比學習的目標所設計的解碼目標的解碼目標我們的改進 CoNT:Contrastive Neural Text GenerationIWSLT14 De-En 翻譯任務中的一個真實的例子Nave 方法中的解碼器輸入我們的方法中的模型輸入我們的改進 CoNT:Contrastive Neural Text Generation|2.三元組的對比學習損失函數 是包含 個對比學習%,&,樣本的pair集合 大小為 k(k-1)/2對于每個(,),+和-是由他們各自的bleu score決定的 分數高的在這個piar中就為中另外一個就為負3.解碼目標:語言模
7、型打分(NLL建模)+序列相似度(CL建模)1.對比學習樣例直接來自模型預測的結果:!,#$(|)我們的總體設計|03實驗經過我們加強過的對比學習框架是否足夠強大了?機器翻譯 IWSLT14 De-En,WMT16 Ro-En,WMT14 En-De|使用建模差異性的loss所帶來的收益使用不同正負樣本構造方法所帶來的差異文本摘要XSum,Multi-News|CoNT 大幅領先其他對比學習方法Earlier SOTA 只在pegasus large 之前最好的結果代碼注釋生成Python Java 和 數據到本文生成WikiBio|代碼注釋生成任務 給定一個函數輸出它的作用給定一個結構化的輸
8、入(infobox,table,xml等)輸出其自然語言描述數據到文本的生成-TOTTO|和3B model取得on-par performance僅僅使用220M的base model 常識生成-CommonGen|所有的leaderboard 我們均只提交了一次常識生成 給定一些關鍵詞 生成一個符合邏輯且通順的句子|04討論可能存在什么問題?可視化表示 模型學到了什么樣的表示|藍色的點 代表 同一個batch中的樣例,橘色代表是從模型分布中采樣出來的 綠色表示ground truth的 顏色越深代表和ground truth越相似序列相似度的權重 對模型最終性能的影響|圖1實驗的設置:正負
9、樣本相同,使用不同的loss圖2實驗的設置:CoNT和nave CL使用損失函數相同均為三元組對比。但是正負樣本相同分別來自模型預測和batch。MLE 為不做對比學習的baseline如何在你的代碼中使用對比學習|在訓練階段你需要在一個額外的loss在預測階段你需要略微修改一下之前的推理代碼CoNT的優缺點|在實際推理中,引入Contrastive learning幾乎不會帶來明顯的浮點數運算操作(FLOPs)因此不會造成更多能量的消耗(不費電),并且我們和MLE框架下訓練的模型推理時長幾乎是一模一樣的(不影響速度)因此在實際部署中基于Contrastive learning訓練的模型可以容
10、易地替換現有的使用MLE 訓練的模型但是CoNT 的一個明顯的缺點是:犧牲了訓練的速度 CoNT的訓練速度慢主要有三個方面訓練代碼分析|訓練代碼分析|訓練代碼分析|一些trade-off的方法|1.減小樣本中來自模型分布的樣本數量增大batch中的樣本數量2.在驗證集中對比學習的下降曲線在前1w步比較陡 可以考慮early stop利用序列的相似度進行協助解碼|Ground truth:leave that up to us Hypothesis1:leave that quiet to us Hypothesis2:lets take that quietly leaveletsthatitIf beam size=2takegoquietupthatthis僅僅在beam search結束后再引入序列相似度作為額外的打分和postgeneration reranking有點相似序列相似度其實并沒有特別影響search的過程這可能不是最優的。一個簡單的方法考慮每生成K 步就計算和source的similarity 來決定beam的取舍非常感謝您的觀看|