這是論文的 PyTorch 實作:
MoEL:具有同理心的聽眾的混合體。林兆江、Andrea Madotto、Jamin Shin、徐鵬、Pascale Fung EMNLP 2019 [PDF]
此程式碼是使用 PyTorch >= 0.4.1 編寫的。如果您在工作中使用此工具包中包含的任何原始程式碼或資料集,請引用以下論文。 bibtex 列出如下:
@文章{lin2019moel, title={MoEL:善解人意的聽眾的混合體}, 作者={Lin、趙江和Madotto、Andrea和Shin、Jamin和Xu、Peng和Fung、Pascale}, 期刊={arXiv預印本arXiv:1908.07687}, 年={2019} }
先前對移情對話系統的研究主要集中在特定情緒下產生反應。然而,同理心不僅需要產生情緒反應的能力,更重要的是需要理解使用者的情緒並做出適當的回應。在本文中,我們提出了一種新穎的端到端方法來建模對話系統中的同理心:同理心聽眾的混合(MoEL)。我們的模型首先捕捉使用者情緒並輸出情緒分佈。基於此,MoEL 將輕柔地組合適當監聽器的輸出狀態,每個監聽器都經過最佳化以對某些情緒做出反應,並產生移情反應。同理心對話資料集的人類評估證實,MoEL 在同理心、相關性和流暢性方面優於多任務訓練基線。此外,對不同聽眾產生的回應的案例研究顯示了我們的模型的高度可解釋性。
聽眾注意力的視覺化:左側是上下文,後面是 MoEL 產生的回應。熱圖顯示了 32 位聽眾的注意力權重
檢查所需的套件或只需執行命令
❱❱❱ pip install -r requirements.txt
預先訓練的手套嵌入:資料夾 /vectors/ 內的glove.6B.300d.txt 。
速效
若要跳過訓練,請檢查Generation_result.txt 。
數據集
資料集(empathetic-dialogue)經過預處理並以 npy 格式儲存:sys_dialog_texts.train.npy、sys_target_texts.train.npy、sys_emotion_texts.train.npy,其中包含上下文(來源)、回應(目標)和情緒標籤的並行列表(附加標籤)。
訓練&測試
教育部
❱❱❱ python3 main.py --model experts --label_smoothing --noam --emb_dim 300 --hidden_dim 300 --hop 1 --heads 2 --topk 5 --cuda --pretrain_emb --softmax --basic_learner --schedule 10000 --save_path save/moel/
變壓器基線
❱❱❱ python3 main.py --model trs --label_smoothing --noam --emb_dim 300 --hidden_dim 300 --hop 2 --heads 2 --cuda --pretrain_emb --save_path save/trs/
多工 Transformer 基線
❱❱❱ python3 main.py --model trs --label_smoothing --noam --emb_dim 300 --hidden_dim 300 --hop 2 --heads 2 --cuda --pretrain_emb --multitask --save_path save/multi-trs/