Козиев Илья (kelijah) wrote,
Козиев Илья
kelijah

Category:

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

Сравнение выполнялось по 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.
Tags: bert, chatbot, elmo, embeddings, vector space model, чатбот
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

  • 0 comments