NAACL'19 論文「神経応答生成における多様性と関連性の共同最適化」のコード/データ
SpaceFusion は、さまざまなデータセットでトレーニングされたさまざまなモデルによって学習された非構造化潜在空間を調整して構造化するために提案された、正規化されたマルチタスク学習パラダイムです。特に興味深いのは、生成された応答の関連性と多様性を共同で最適化するために SpaceFusion を使用するニューラル会話モデリングへの応用です。
その他のドキュメント:
NAACL'19 での私たちの論文 (長い口頭)。
NAACL'19で発表されたスライド。
直観とその意味について議論するために MSR ブログを公開しました
私たちのフォローアップ作品、EMNLP'19 での StyleFusion
EMNLP'20 における最新の対話評価/ランキング モデル DialogRPT
コードは 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} }