Вопрос или проблема
Моя цель – предсказать наиболее подходящий ответ на высказывание из группы из 21 потенциального ответа. (Я не уверен, что “вопрос” называется высказыванием, хотя.)
Пример:
Высказывание: Как ты сегодня?
Ответы: Ответ1, 2, …, 21.
У меня есть файл для обучения в этом формате:
Высказывание:
Ответы: Хороший ответ, неправильный ответ1, неправильный ответ2,…, неправильный ответ20.
Моя проблема
Впервые нам нужно сделать предсказание из группы возможных ответов, и, следовательно, это форма MCQ.
Какие-либо идеи, как я мог бы начать решать проблему?
Что я сделал
На данный момент единственное, что я сделал, это выбрать ответы из 21 возможного ответа, которые имели наивысшую косинусную схожесть с высказыванием. (То есть без учителя). Это не так уж плохо (24% против 1/21 случайно), но я уверен, что есть способы сделать что-то действительно лучше.
Что я не хочу делать сначала
Использовать генеративную модель, которая предсказывает полное предложение. Я хочу выбрать лучшего кандидата среди 21 ответа и использовать файл для обучения, который позволит нам проводить обучение с учителем.
Поскольку ответы меняются в зависимости от различных вопросов, ваша проблема не подходит для “обычных” проблем классификации.
И из-за текстовой природы вашего ввода/вывода регрессия тоже не подходит.
Это заставляет меня подумать, что K-NN – хороший способ использовать обучение с учителем.
У меня нет хорошей ссылки на это, но этот подход имеет смысл для меня:
1) Вложите как вопросы, так и ответы в одно и то же пространство (например, используя TF/IDF и PCA).
2) Для нового (невидимого) вопроса найдите ближайшие помеченные вопросы (из обучающей выборки), используя K-NN.
3) Получите ответы соседних вопросов.
4) Используйте K-NN (или другой метод на основе расстояния), чтобы найти ближайшего соседа в невидимых вариантах ответов на вопрос.
Ответ или решение
Модели извлечения ответов (Retrieval-based Model) в NLP: Подходы и Решения
Ваша задача заключается в предсказании наиболее подходящего ответа из набора из 21 возможного ответа на основе заданной фразы (в данном случае "выражения" или "предложения" — эта терминология вполне уместна в контексте NLP). Вы описали ситуацию, где текущее решение приводит к 24% точности, что значительно лучше случайного выбора, однако есть потенциал для улучшения.
1. Понимание задачи
Вы стремитесь создать модель, которая будет извлекать наиболее подходящий ответ из набора, используя требования супервайзорного обучения. Исходные данные, которые у вас есть, представляют собой пары "выражение – ответы", где для каждого выражения указаны правильные и неправильные ответы.
2. Обзор предложенного подхода
Ваше текущее решение на основе косинусного сходства использует методы безучебного обучения, что можно улучшить за счет применения различных техник NLP и методов машинного обучения.
3. Подходы к решению задачи
3.1. Подготовка данных
Перед тем как приступить к обучению модели, важно правильно обработать ваши данные:
- Токенизация и очищение текстов: Разделите тексты на токены, удалите лишние символы и приведение к нижнему регистру.
- Векторизация: Используйте TF-IDF для преобразования текстов в векторы. Это позволит учитывать важность слов в контексте всего корпуса.
3.2. Векторизация и далее
- Эмбеддинги: Вы можете использовать более продвинутые методы векторизации, такие как Word2Vec или BERT, которые позволяют создавать более качественные эмбеддинги для слов и фраз.
- Создание эмбеддингов для вопросов и ответов: Постройте эмбеддинги как для выражений, так и для возможных ответов, чтобы они находились в одном векторном пространстве.
3.3. Модели извлечения (Retrieval Models)
Разделите процесс на следующие шаги:
Шаг 1: Использование K-NN для поиска соседей.
- Для нового выражения выполните поиск "ближайших" выражений из обучающего набора с помощью K-NN.
Шаг 2: Получение ответов у соседей.
- Сыщите ответы, соответствующие найденным соседям. Это позволит вам выделить лучшие варианты ответов.
Шаг 3: Сравнение ответов.
- Используйте K-NN или другие методы (например, Siamese Networks) для сопоставления новых выражений с возможными ответами.
3.4. Модель предсказания
Вы можете рассмотреть возможность применения логистической регрессии или алгоритма случайного леса после векторизации ответов. Модели классификации могут значительно улучшить точность предсказаний, если они обучены на данных с правильными и неправильными ответами.
4. Оценка и Тестирование
Не забывайте уделить внимание метрикам оценки:
- Точность: Доля правильно предсказанных ответов.
- Полнота и F1-меры: Можно использовать для оценки качества предсказаний, особенно если данные разбалансированы.
5. Итог
В качестве финальной рекомендации: используйте комбинацию методологии K-NN, продвинутую векторизацию и интеграцию моделей, чтобы улучшить производительность вашей системы. Постоянно экспериментируйте с различными архитектурами и методами обучения, чтобы найти наиболее подходящее решение для вашей задачи.
Систематический подход к изучению данных и выбору методов гарантирует, что вы получите лучший результат на своей задаче выбора наиболее подходящего ответа.