Классификация интентов в чатботе - сравнение моделей ELMO, BERT и char-level linear sklearn

Sep 06, 2019 11:05

Сравнение выполнялось по f1 weighted метрике на датасете с ~5100 сэмплов через 8-фолдовую кросс-валидацию. Чуть больше 70 интентов с большим дисбалансом.

Финальные результаты:

LinearSVC ~0.77
BERT        ~0.815
ELMo        ~0.817

Базовая модель использует символьные шинглы длиной от 2 до 6 символов и LinearSVC для классификации. Выбор классификатора и параметры векторизации делались через grid search. Исходный код доступен тут.

Классификатор на базе BERT использует многоязычную модель из проекта Deep Pavlov. Векторы от BERT поступают в однослойную нейросетку. Параметры и архитектура сетки подбиралась через grid search. Исходник тренера доступен тут. Я не выкладываю его в реп, так как получающаяся модель еще никак не используется в самом чатботе.

Классификатор на базе ELMO аналогичен BERT, только используется ELMOEmbedder из проекта Deep Pavlov. Исходник тренера доступен тут.

При этом модель на LinearSVC намного менее требовательна к ресурсам при обучении и инференсе, поэтому я пока не хочу подцеплять в чатботе более качественную ELMo.

bert, vector space model, chatbot, elmo, embeddings, чатбот

Previous post Next post
Up