Идея прозрачна - гораздо проще заключить, что два фрагмента текста имеют схожее значение, чем заполнить пропуски. Получив фрагмент предложения и попросив его предсказать следующие слова, алгоритм ищет в обучающем наборе предложения, похожие на этот фрагмент предложения, и использует найденное, чтобы помочь предсказать пропущенные слова. Например, модель может соответствовать цели, начиная с «Диккенс является автором ___» с обучающим предложением «Диккенс написал Оливера Твиста». Затем модель знает, что «Оливер Твист» может быть подходящим для добавления к цели.
Как это работает: авторы предлагают предварительно обученную модель, векторные представления обучающих предложений и алгоритм комбинирования информации при анализе тестового предложения. Их подход работает с любой предварительно обученной моделью нейронного языка, но в большинстве экспериментов они использовали трансформаторные сети.
kNN-LM начинает с генерации векторных представлений каждой последовательности в обучающем наборе. Затем он выполняет поиск в этих векторах векторных представлений k-ближайших соседей новой входной последовательности. Чем ближе вектор обучающей последовательности к входному вектору, тем сильнее он взвешивает следующий токен обучающей последовательности. Модель нейронного языка также напрямую предсказывает следующий токен для ввода. Затем он учитывает как предсказание k-ближайших соседей, так и предсказание языковой модели в окончательном решении. Гиперпараметр определяет, насколько тщательно он учитывает каждый из них.
Результаты: Протестировано на наборе данных статей в Википедии, kNN-LM набрал 15,79 балла в метрике perplexity, что более чем на 10 процентов лучше, чем у предыдущей современной модели.
Почему это важно: языковые модели, вероятно, не будут интерпретировать технические термины, встречающиеся, скажем, в протоколах NuerIPS, если они обучены в Википедии. kNN-LM позволяет им находить меньше связанных слов в обучающих данных, потенциально улучшая обобщение для непонятной темы.
No comments:
Post a Comment