Описание
Attentional Factorization Machine (AFM) — это сложная модель, разработанная для повышения производительности факторных машин путем изучения важности взаимодействий признаков с помощью сетей внимания. Этот репозиторий предлагает прямую реализацию модели AFM на TensorFlow, основанную на фундаментальных концепциях Factorization Machines (FM).
Проект основан на исследовательской статье "Attentional Factorization Machines: Learning the Weight of Feature Interactions via Attention Networks" Джуна Сяо, Хао Е, Сяннаня Хэ, Ханванга Чжана, Фэй Ву и Тат-Сэнга Чуа, представленной на IJCAI 2017. Реализация поддерживает как задачи регрессии, так и классификации, оптимизируя по RMSE.
Пользователи могут использовать этот код для воспроизведения результатов исследований или применения AFM к своим собственным наборам данных. Репозиторий предоставляет четкие инструкции по настройке среды, которая требует TensorFlow (версия 1.0.1), NumPy и Scikit-learn. Наборы данных должны соответствовать входному формату инструментария LibFM, с примером использования набора данных MovieLens для персонализированной рекомендации тегов.
Включенный быстрый пример демонстрирует, как сначала обучить модель FM для предварительного обучения, а затем использовать эти веса для обучения модели AFM. Этот подход позволяет напрямую сравнивать производительность стандартной FM и улучшенной AFM. Код также включает функциональные возможности для оценки обученных моделей на тестовых наборах данных.
Эта реализация особенно ценна для исследователей и практиков в областях рекомендательных систем, машинного обучения и глубокого обучения, которые стремятся повысить точность и интерпретируемость своих моделей, эффективно улавливая нюансы взаимодействий признаков. Механизм внимания позволяет модели динамически взвешивать важность различных пар признаков, что приводит к более точным прогнозам.
Главное о Attentional Factorization Machine
Реализация Attentional Factorization Machine (AFM) на TensorFlow
Поддерживает задачи регрессии и классификации
Оптимизирует по RMSE
Изучает вес взаимодействий признаков с помощью сетей внимания
Включает реализацию Factorization Machines (FM) для предварительного обучения
Использует one-hot encoding для преобразования векторов признаков
Совместим с форматом данных LibFM
Предоставляет пример использования с набором данных MovieLens
Включает скрипты для обучения и оценки
Кодовая база включает AFM.py, FM.py и LoadData.py
Поддерживает предварительное обучение модели
Начало работы с Attentional Factorization Machine
Настройка среды: Установите TensorFlow (v1.0.1), NumPy и Scikit-learn.
Подготовка набора данных: Отформатируйте данные в соответствии со спецификациями инструментария LibFM.
Обучение модели FM: Выполните `python FM.py` с указанным набором данных и параметрами для предварительного обучения.
Обучение модели AFM: Выполните `python AFM.py`, используя предварительно обученные веса FM.
Оценка модели: Запустите `python FM.py` или `python AFM.py` с флагом `--process evaluate`.
Варианты использования Attentional Factorization Machine
- Рекомендательные системы
- Рекомендация тегов
- Прогнозирование кликабельности (CTR)
- Изучение взаимодействий признаков
- Разработка моделей машинного обучения








