Это реализация статьи на PyTorch:
MoEL: Смесь чутких слушателей . Чжаоцзян Линь , Андреа Мадотто, Джамин Шин, Пэн Сюй, Паскаль Фунг EMNLP 2019 [PDF]
Этот код был написан с использованием PyTorch >= 0.4.1. Если вы используете в своей работе какие-либо исходные коды или наборы данных, включенные в этот набор инструментов, пожалуйста, дайте ссылку на следующий документ. Бибтекс указан ниже:
@article{lin2019moel, title={MoEL: Смесь чутких слушателей}, автор={Линь, Чжаоцзян и Мадто, Андреа и Шин, Джамин и Сюй, Пэн и Фунг, Паскаль}, журнал={препринт arXiv arXiv:1908.07687}, год={2019} }
Предыдущие исследования систем эмпатического диалога в основном были сосредоточены на генерировании ответов на определенные эмоции. Однако эмпатия требует не только способности генерировать эмоциональные реакции, но, что более важно, требует понимания эмоций пользователя и адекватного ответа. В этой статье мы предлагаем новый комплексный подход к моделированию эмпатии в диалоговых системах: смесь эмпатических слушателей (MoEL). Наша модель сначала фиксирует эмоции пользователя и выводит распределение эмоций. Основываясь на этом, MoEL будет мягко комбинировать выходные состояния соответствующих слушателей, каждое из которых оптимизировано для реагирования на определенные эмоции, и генерировать эмпатический ответ. Человеческие оценки набора данных эмпатических диалогов подтверждают, что MoEL превосходит базовый уровень многозадачного обучения с точки зрения эмпатии, актуальности и беглости речи. Кроме того, тематическое исследование сгенерированных ответов разных Слушателей показывает высокую интерпретируемость нашей модели.
Визуализация внимания слушателей: левая сторона — это контекст, за которым следуют ответы, генерируемые MoEL. Тепловая карта иллюстрирует вес внимания 32 слушателей.
Проверьте необходимые пакеты или просто запустите команду
❱❱❱ pip install -r requirements.txt
Встраивание предварительно обученных перчаток : glove.6B.300d.txt внутри папки /vectors/.
Быстрый результат
Чтобы пропустить обучение, проверьте файл Generation_result.txt .
Набор данных
Набор данных (эмпатический-диалог) предварительно обрабатывается и сохраняется в формате 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/
Базовый вариант многозадачного трансформатора
❱❱❱ 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/