NLP(二十):相似問句生成--機器人的“標准問”庫之Query生成


一、Query生成的目的及意義?

在問答系統任務(問答機器人)中,我們往往會人為地配置一些常用並且描述清晰的問題及其對應的回答,我們將這些配置好的問題稱之為“標准問”。當用戶進行提問時,常常將用戶的問題與所有配置好的標准問進行相似度計算,找出與用戶問題最相似的標准問,並返回其答案給用戶,這樣就完成了一次問答操作。

但是人為配置“標准問”庫是一個耗時耗力的過程,並且生成高質量而具有總結概括性質的問題會給運營人員帶來極大的負擔。如果我們可以自動生成一些Query,供運營人員去選擇的話,無疑於會給運營人員減輕很大的負擔。簡單地來說,就是創造與選擇的區別,選擇比創造要簡單地多。

二、Query生成方法有哪些?

Query生成方法主要有兩大類,一種是規則的方法,另一種就是模型的方法。而每種方法其實又包含兩個方面。如果我們已經人為地配置過一些query了,但是量比較少時,可以根據已有的query去生成query。

規則的方法是比較簡單的,但是生成的問題會比較單一。一般通過詞典或NER技術,識別出已有query的關鍵詞或重要詞匯,然后將其中的關鍵詞做替換或者通過模板將關鍵詞套入,最終生成新的問題。如表1所示。

然而,規則方法的核心是規則的歸納與總結,這通常是比較麻煩地事情;往往需要人看過大量數據后(需要很多人力),才能構造出比較優秀的規則,但規則之間有時也會有沖突。

模型的方法一般是用過Seq2Seq模型,根據所給問題去生成新的問題。模型方法相較於規則方法來說,生成的問題會更多樣化,陳述不會一成不變;並且會生成一些具有概述性質或者更加具體的問題,供運營人員的選擇更多。如表2所示。

三、GPT2模型

目前,Seq2Seq模型有很多,包括LSTM、Transform、GPT、UniLM、GPT2、MASS等等。而GPT2模型在生成問題上表現優秀,因此使用GPT2模型訓練了一個Query2Query的模型去擴充我們現有的“標准問”庫。

GPT2_ML的項目開源了一個具有15億參數的中文版的GPT2開源模型,我們在此模型基礎上進行微調。

三軍未動,糧草先行。模型未練,數據先行。我們的數據來自百度相似問句對,共有220多萬相似問對。具體訓練參數如表3所示。

問題生成的效果如表4所示。

具體測試代碼及模型,見github。

cd scripts/
python3 interactive_conditional_samples.py -model_config_fn ../configs/mega.json -model_ckpt /iyunwen/lcong/model/model.ckpt-850000 -top_p 5.0 -eos_token 102 -min_len 7 -samples 5 -do_topk True

結果:

四、預訓練權重與代碼

1、代碼

https://github.com/JasonZhangXianRong/QueryGeneration

2、權重

百度網盤

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM