Positional encoding или как нейросеть «читает» текст

от автора

Большинство нейросетей работают с числами и читать как человек они не умеют, поэтому инженерами были придуманы способы помочь нейросети уловить не только смысл конкретного слова, но и всего предложения. Для достижения такой цели используется positional encoding, то есть помимо отдельных слов нейросети дают их порядок в тексте. В данной статье приведен сравнительный анализ чисто смысловых векторов, линейного базиса (порядковый номер слова), базиса Фурье (синусы и косинусы), комплексного (экспоненты) и полиномы Чебышева для кодирования двух английских фраз.


Архитектура Transformer (на которой работают нейросети от GPT-4 до LLaMA) обрабатывает все слова одновременно, следовательно, два предложения вида: «Cat eats mouse» и «Mouse eats cat» для нее равнозначны. Вот тут и приходит на помощь позиционное кодирование. В статье «Attention Is All You Need» (2017) исследователи из команды Google предложили использовать знаменитую тригонометрическую систему для кодирования положения слов. В своей работе я протестировала данную концепцию на других базисах и проанализировала результаты.

Методы исследования:

  1. Только контент: модель не видит порядок слов;

  2. Контент + линейный базис: модель видит только порядковый номер слова;

  3. Контент + Фурье: волновые колебания, значения меняются плавно;

  4. Контент + комплексные экспоненты: кодирование слова углом поворота вектора, чем дальше слово в предложении, тем сильнее повернут вектор;

  5. Контент + полиномы Чебышева: ортогональные полиномы, часто используемые в теории приближений .

Все вычисления и графики делались на языке Python (PyTorch + matplotlib).

Fall leaves as soon as leaves fall

Первая тестовая фраза, вынесенная в заголовок, знаменательна тем, что это палиндром и слово «fall» здесь встречается как существительное и как глагол. Это делает проверку интереснее: как поможет позиционное кодирование отличить эти слова?

На картинке ниже изображены тепловые карты косинусного сходства между эмбеддингами слов с добавлением позиционного кодирования.

Расшифровка цветов:

  • Ярко-красный (1.0) — Точное совпадение. Векторы идентичны. Означает сравнение слова самого с собой в одной и той же позиции (главная диагональ).

  • Оранжевый / Розовый (0.3 – 0.7) — Связь через смысл. Модель распознает одинаковые слова (например, первое и последнее «fall»), но позиционный базис развел их векторы в пространстве из-за разных мест в тексте.

  • Бежевый / Белый (0.0) — Нейтральность. Векторы ортогональны. Между словами нет ни лексической, ни позиционной связи, они независимы друг от друга.

  • Голубой / Синий (-0.2 – -0.5) — Отторжение. Позиционное кодирование активно расталкивает векторы в противоположные стороны, изолируя слова (например, отделяя центральное «soon» от краев предложения).

Тепловая карта скалярного произведения 1

Тепловая карта скалярного произведения 1

Проведем небольшой анализ и сделаем пару замечаний.

  • Первый график получился полностью симметричным (осевая и центральная симметрии), так как модель воспринимала все слова одинаково уникальными. Одинаковые в написании, но разные по смыслу слова «fall» не различимы.

  • На втором графике видно, как убывает цвет от красного к синему (что означает уменьшение схожести векторов) при удалении положения слова от начала. Снова слова «fall» в начале и конце фразы одинаковы.

  • Третий график имеет более стабильное и плавное изменение цвета. Модель уловила некоторую связь между словами «fall» и «leaves», но интересующая нас пара (два «fall» ) так и осталась неразличимой.

  • Базис из комплексных экспонент изолировал слово «fall» от «leaves», а также не стал считать нашу пару (сущ. и глагол «fall») полностью идентичными.

  • Полиномы Чебышева тоже уловили несовпадение между этими словами. Заметим, что первое «fall» и «leaves» связаны меньше, чем последнее «fall» и «leaves». Это можно объяснить устойчивостью грамматической конструкции «leaves fall» (подлежащее + сказуемое). Отсутствие симметрии говорит о направленности базиса Чебышева: он отличает начало предложения и его конец.

Never odd or even

Здесь нас, помимо палиндрома, будет интересовать связь слов «odd» (нечетный) и «even» (четный). Базисы и цвета аналогичны предыдущему примеру. Результат изображен на картинке ниже.

Тепловая карта скалярного произведения 2

Тепловая карта скалярного произведения 2

Перейдем к анализу результатов.

  • На первом графике слова «odd» и «even» моделью были распознаны как нейтральные (то есть связи нет). Но она нашла такие артефакты как «or» и «odd», а также развела по разные стороны «never» и «odd».

  • При добавлении линейного базиса появился градиент цветов от начала фразы к ее концу, зато модель распознала разницу между «odd» и «even».

  • Появление синусов и косинусов укрепило уверенность в связи «or» и «odd», а также добавила «or» и «never». Но, увы, разница между «odd» и «even» была утеряна.

  • Базис из комплексных экспонент «остудил» нашу карту (тепловая карта стала преимущественно синей, что говорит о более сильном взаимном отталкивании векторов), но ничего значимого, к сожалению, не вышло.

  • И вот наконец-таки были разделены слова «odd» и «even» полиномами Чебышева. Также модель увидела сходство, вероятно из-за одинаковых букв, слов «never» и «even».

Также сравнение было запущено на фразе: «Are we not pure? No, sir! Panama’s moody Noriega brags. It is garbage! Irony dooms a man—a prisoner up to new era», которая интересна как длинный палиндром. Полный анализ этой фразы выходит за рамки статьи и остается для самостоятельного изучения, но сама карта наглядно демонстрирует, как позиционное кодирование распределяет векторы в пространстве на длинных предложениях.

Вывод

На примере двух интересных фраз была показана работа разных моделей и их сравнение. Можно заметить, что некоторые свойства базиса «передаются» тепловой карте скалярного произведения (например, базис Фурье и плавность цветов; линейный базис и «убывание»). Любопытные результаты продемонстрировало применение полиномов Чебышева: они превзошли синусы/ косинусы по разделению антонимов. Насколько известно автору, базисы Фурье и экспонент превалируют в современных моделях из-за их бесконечной периодичности. Это делает их удобнее на «длинных дистанциях» (см., напр., On the Interchangeability of Positional Embeddings in Multilingual Neural Machine Translation Models), но на коротких многочлены Чебышева показали себя лучше (см., напр., Kolmogorov-Arnold Networks: A Critical Assessment of Claims, Performance, and Practical Viability).

ссылка на оригинал статьи https://habr.com/ru/articles/1072510/