Dies ist die PyTorch-Implementierung des Artikels:
MoEL: Mischung einfühlsamer Zuhörer . Zhaojiang Lin , Andrea Madotto, Jamin Shin, Peng Xu, Pascale Fung EMNLP 2019 [PDF]
Dieser Code wurde mit PyTorch >= 0.4.1 geschrieben. Wenn Sie in Ihrer Arbeit Quellcodes oder Datensätze aus diesem Toolkit verwenden, zitieren Sie bitte das folgende Dokument. Der Bibtex ist unten aufgeführt:
@article{lin2019moel, title={MoEL: Mischung einfühlsamer Zuhörer}, Autor={Lin, Zhaojiang und Madotto, Andrea und Shin, Jamin und Xu, Peng und Fung, Pascale}, journal={arXiv preprint arXiv:1908.07687}, Jahr={2019} }
Frühere Forschungen zu empathischen Dialogsystemen konzentrierten sich hauptsächlich auf die Generierung von Reaktionen auf bestimmte Emotionen. Empathie erfordert jedoch nicht nur die Fähigkeit, emotionale Reaktionen hervorzurufen, sondern, was noch wichtiger ist, das Verständnis der Benutzeremotionen und die entsprechende Reaktion. In diesem Artikel schlagen wir einen neuartigen End-to-End-Ansatz zur Modellierung von Empathie in Dialogsystemen vor: Mixture of Empathetic Listeners (MoEL). Unser Modell erfasst zunächst die Emotionen des Benutzers und gibt eine Emotionsverteilung aus. Auf dieser Grundlage kombiniert MoEL sanft die Ausgabezustände der entsprechenden Listener, die jeweils für die Reaktion auf bestimmte Emotionen optimiert sind, und erzeugt eine einfühlsame Reaktion. Menschliche Bewertungen des Datensatzes zu empathischen Dialogen bestätigen, dass MoEL die Basislinie des Multitasking-Trainings in Bezug auf Empathie, Relevanz und Sprachkompetenz übertrifft. Darüber hinaus zeigt die Fallstudie zu generierten Antworten verschiedener Zuhörer eine hohe Interpretierbarkeit unseres Modells.
Die Visualisierung der Aufmerksamkeit auf die Zuhörer: Die linke Seite ist der Kontext, gefolgt von den von MoEL generierten Antworten. Die Heatmap veranschaulicht die Aufmerksamkeitsgewichte von 32 Zuhörern
Überprüfen Sie die benötigten Pakete oder führen Sie einfach den Befehl aus
❱❱❱ pip install -r requirements.txt
Einbettung vorab trainierter Handschuhe : handschuh.6B.300d.txt im Ordner /vectors/.
Schnelles Ergebnis
Um das Training zu überspringen, überprüfen Sie bitte generation_result.txt .
Datensatz
Der Datensatz (empathetic-dialogue) wird vorverarbeitet und im NPY-Format gespeichert: sys_dialog_texts.train.npy, sys_target_texts.train.npy, sys_emotion_texts.train.npy, das aus einer parallelen Liste von Kontext (Quelle), Antwort (Ziel) und Emotionsbezeichnung besteht (zusätzliches Etikett).
Schulung und Test
MoEL
❱❱❱ 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/
Transformator-Grundlinie
❱❱❱ 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/
Basislinie des Multitask-Transformers
❱❱❱ 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/