NAACL'19 論文「Jointly Optimizing Diversity and Relevance in Neural Response Generation」的代碼/數據
SpaceFusion 是一種正規化的多任務學習範式,旨在對齊和建構透過在不同資料集上訓練的不同模型學習到的非結構化潛在空間。特別令人感興趣的是它在神經對話建模中的應用,其中 SpaceFusion 用於聯合優化生成響應的相關性和多樣性。
更多文件:
我們在 NAACL'19 上的論文(長,口頭)。
NAACL'19 上展示的幻燈片。
我們發表了MSR部落格來討論直覺和意義
我們的後續工作,StyleFusion at EMNLP'19
我們最新的對話評估/排名模型 DialogRPT,在 EMNLP'20 上
程式碼使用 Python 3.6 和 Keras 2.2.4 進行測試
我們提供了腳本來產生 Reddit 並處理 Switchboard 資料集以及此儲存庫中的玩具資料集以進行偵錯。
請查看此處以了解更多詳情。
訓練 SpaceFusion 模型: python src/main.py mtask train --data_name=toy
視覺化學習到的潛在空間: python src/vis.py --data_name=toy
要與經過訓練的模型互動: python src/main.py mtask interact --data_name=toy --method=?
,其中方法可以是greedy
、 rand
、 sampling
或beam
。我們在論文中使用了rand
要產生用於使用經過訓練的模型進行測試的假設: python src/main.py mtask test --data_name=toy
評估產生的假設python src/eval.py --path_hyp=? --path_ref=? --wt_len=?
,它輸出論文中定義的精確度、召回率和 F1。您可能需要先使用-len_only
執行此命令,以找到合適的wt_len
,以最小化假設和參考的平均長度(標記數量)之間的差異。
main.py
是主文件
model.py
定義了 SpaceFusion 模型(請參閱class MTask
)和一些基線
vis.py
定義了我們用來視覺化和分析潛在空間的函數
dataset.py
定義資料饋送器
shared.py
定義預設超參數
如果此儲存庫啟發了您的工作,請引用我們的 NAACL 論文:)
@article{gao2019spacefusion, title={Jointly Optimizing Diversity and Relevance in Neural Response Generation}, author={Gao, Xiang and Lee, Sungjin and Zhang, Yizhe and Brockett, Chris and Galley, Michel and Gao, Jianfeng and Dolan, Bill}, journal={NAACL-HLT 2019}, year={2019} }