- BrainTools - https://www.braintools.ru -
Большинство нейросетей работают с числами и читать как человек они не умеют, поэтому инженерами были придуманы способы помочь нейросети уловить не только смысл конкретного слова, но и всего предложения. Для достижения такой цели используется positional encoding, то есть помимо отдельных слов нейросети дают их порядок в тексте. В данной статье приведен сравнительный анализ чисто смысловых векторов, линейного базиса (порядковый номер слова), базиса Фурье (синусы и косинусы), комплексного (экспоненты) и полиномы Чебышева для кодирования двух английских фраз.
Архитектура Transformer (на которой работают нейросети от GPT-4 до LLaMA) обрабатывает все слова одновременно, следовательно, два предложения вида: «Cat eats mouse» и «Mouse eats cat» для нее равнозначны. Вот тут и приходит на помощь позиционное кодирование. В статье «Attention Is All You Need» (2017) исследователи из команды Google предложили использовать знаменитую тригонометрическую систему для кодирования положения слов. В своей работе я протестировала данную концепцию на других базисах и проанализировала результаты.
Методы исследования:
Только контент: модель не видит порядок слов;
Контент + линейный базис: модель видит только порядковый номер слова;
Контент + Фурье: волновые колебания, значения меняются плавно;
Контент + комплексные экспоненты: кодирование слова углом поворота вектора, чем дальше слово в предложении, тем сильнее повернут вектор;
Контент + полиномы Чебышева: ортогональные полиномы, часто используемые в теории приближений.
Все вычисления и графики делались на языке Python (PyTorch + matplotlib).
Первая тестовая фраза, вынесенная в заголовок, знаменательна тем, что это палиндром и слово «fall» здесь встречается как существительное и как глагол. Это делает проверку интереснее: как поможет позиционное кодирование отличить эти слова?
На картинке ниже изображены тепловые карты косинусного сходства между эмбеддингами слов с добавлением позиционного кодирования.
Расшифровка цветов:
🔴 Ярко‑красный (1.0) — Точное совпадение. Векторы идентичны (главная диагональ).
🔸 Оранжевый / Розовый (0.3 — 0.7) — Связь через смысл. Модель узнала одинаковые слова, но позиция развела их в пространстве.
⚪ Бежевый / Белый (0.0) — Нейтральность. Между словами нет ни лексической, ни позиционной связи.
🔵 Голубой / Синий (-0.2…-0.5) — Отторжение. Базис активно расталкивает и изолирует слова.
Проведем небольшой анализ и сделаем пару замечаний.
Первый график получился полностью симметричным (осевая и центральная симметрии [1]), так как модель воспринимала все слова одинаково уникальными. Одинаковые в написании, но разные по смыслу слова «fall» не различимы.
На втором графике видно, как убывает цвет от красного к синему (что означает уменьшение схожести векторов) при удалении положения слова от начала. Снова слова «fall» в начале и конце фразы одинаковы.
Третий график имеет более стабильное и плавное изменение цвета. Модель уловила некоторую связь между словами «fall» и «leaves», но интересующая нас пара (два «fall» ) так и осталась неразличимой.
Базис из комплексных экспонент изолировал слово «fall» от «leaves», а также не стал считать нашу пару (сущ. и глагол «fall») полностью идентичными.
Полиномы Чебышева тоже уловили несовпадение между этими словами. Заметим, что первое «fall» и «leaves» связаны меньше, чем последнее «fall» и «leaves». Это можно объяснить устойчивостью грамматической конструкции «leaves fall» (подлежащее + сказуемое). Отсутствие симметрии говорит о направленности базиса Чебышева: он отличает начало предложения и его конец.
Здесь нас, помимо палиндрома, будет интересовать связь слов «odd» (нечетный) и «even» (четный). Базисы и цвета аналогичны предыдущему примеру. Результат изображен на картинке ниже.
Перейдем к анализу результатов.
На первом графике слова «odd» и «even» моделью были распознаны как нейтральные (то есть связи нет). Но она нашла такие артефакты как «or» и «odd», а также развела по разные стороны «never» и «odd».
При добавлении линейного базиса появился градиент цветов от начала фразы к ее концу, зато модель распознала разницу между «odd» и «even».
Появление синусов и косинусов укрепило уверенность в связи «or» и «odd», а также добавила «or» и «never». Но, увы, разница между «odd» и «even» была утеряна.
Базис из комплексных экспонент «остудил» нашу карту (тепловая карта стала преимущественно синей, что говорит о более сильном взаимном отталкивании векторов), но ничего значимого, к сожалению, не вышло.
И вот наконец‑таки были разделены слова «odd» и «even» полиномами Чебышева. Также модель увидела сходство, вероятно из‑за одинаковых букв, слов «never» и «even».
На примере двух интересных фраз была показана работа разных моделей и их сравнение. Можно заметить, что некоторые свойства базиса «передаются» тепловой карте скалярного произведения (например, базис Фурье и плавность цветов; линейный базис и «убывание»). Любопытные результаты продемонстрировало применение полиномов Чебышева: они превзошли синусы/ косинусы по разделению антонимов. Насколько известно автору, базисы Фурье и экспонент превалируют в современных моделях из‑за их бесконечной периодичности. Это делает их удобнее на «длинных дистанциях» (см., напр., On the Interchangeability of Positional Embeddings in Multilingual Neural Machine Translation Models [2]), но на коротких многочлены Чебышева показали себя лучше (см., напр., Kolmogorov‑Arnold Networks: A Critical Assessment of Claims, Performance, and Practical Viability [3]).
Автор: Ir1na
Источник [4]
Сайт-источник BrainTools: https://www.braintools.ru
Путь до страницы источника: https://www.braintools.ru/article/34669
URLs in this post:
[1] симметрии: http://www.braintools.ru/article/3088
[2] On the Interchangeability of Positional Embeddings in Multilingual Neural Machine Translation Models: https://doi.org/10.48550/arXiv.2408.11382
[3] Kolmogorov‑Arnold Networks: A Critical Assessment of Claims, Performance, and Practical Viability: https://arxiv.org/abs/2407.11075
[4] Источник: https://habr.com/ru/articles/1072510/?utm_campaign=1072510&utm_source=habrahabr&utm_medium=rss
Нажмите здесь для печати.