Работа с текстом

Bag-of-Words

Самый простой способ представить текст: считаем количество вхождений каждого слова и записываем в вектор фиксированной длины (размер словаря). Порядок слов игнорируется.

Bag-of-Words не учитывает порядок слов и контекст. «Кот съел мышь» и «Мышь съела кота» дадут одинаковое представление.

TF-IDF

Взвешенный вариант Bag-of-Words. Слова, часто встречающиеся во всём корпусе (стоп-слова), получают меньший вес:

\[\text{tf-idf}(w, d) = \text{tf}(w, d) \cdot \text{idf}(w)\]

где:

  • \(\text{tf}(w, d)\) — сколько раз слово \(w\) встретилось в документе \(d\).
  • \(\text{idf}(w) = \log \frac{\ell}{\text{число документов, содержащих } w}\) — обратная документная частота.

N-граммы

Расширение Bag-of-Words: в словарь добавляются не только отдельные слова, но и последовательности из \(n\) слов. Биграммы (2-граммы) позволяют учесть словосочетания вроде «машинное обучение» или «случайный лес».

Local-Global Attention

Идея: глобальный attention лучше улавливает общий контекст, локальный — детали. Совмещение двух подходов даёт лучшее качество.

Архитектура

Размерности входа:

  • \(B\) — размер батча.
  • \(D\) — глубина эмбеддинга.
  • \(W, H\) — пространственные размерности карты признаков.

Вектор делится по глубине на количество голов. Для стабилизации градиентов \(\text{head\_dim}\) дополнительно нормируется на корень из размерности — аналогично механизму scaled dot-product attention в Transformer.

Обучение на временных рядах

При обучении на K-Fold можно ограничивать размер окна. Три основных подхода к предсказанию временных рядов:

Подход Идея
Прямой (Direct) Обучаем отдельную модель для предсказания каждого момента времени
Рекурсивный (Recursive) Обучаем одну модель, используем её предсказания как вход для следующего шага
Гибридный Совмещает прямой и рекурсивный подходы
← Назад к списку тем