Разработка мобильной рекомендательной системы на основе нейросетевого анализа изображений

Построение модели пользователя в рекомендательных системах. Решение задачи таргетированной рекламы. Разработка прототипа мобильной рекомендательной системы на основе нейросетевого анализа изображений. Алгоритм предсказания интересов пользователя.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 28.11.2019
Размер файла 7,3 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http: //www. allbest. ru/

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ

ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ

«НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ

«ВЫСШАЯ ШКОЛА ЭКОНОМИКИ»

Факультет информатики, математики и компьютерных наук

Программа подготовки бакалавров по направлению 09.03.04 Программная Инженерия

ВЫПУСКНАЯ КВАЛИФИКАЦИОННАЯ РАБОТА

Разработка мобильной рекомендательной системы на основе нейросетевого анализа изображений

Дёмочкин Кирилл Владиславович

Рецензент: Приглашенный преподаватель

Шимко Алексей Андреевич Научный руководитель:

Доктор технических наук, профессор

кафедры ИСиТ, Савченко Андрей Владимирович

Нижний Новгород, 2019

СОДЕРЖАНИЕ

  • ВВЕДЕНИЕ
    • ГЛАВА 1. ОБЗОР ЛИТЕРАТУРЫ
      • 1.1 Описание предметной области
      • 1.2 Рекомендательные системы
      • 1.3 Обзор мобильных платформ
      • 1.4 Анализ библиотек глубокого обучения
      • 1.5 Обзор алгоритмов машинного обучения
      • 1.6 Сверточные нейронные сети для мобильных приложений
      • 1.7 Задача классификации набора изображений
      • 1.8 Обзор алгоритмов классификации набора изображений
      • 1.9 Нейронный агрегационный блок
    • ГЛАВА 2. ПРОТОТИП СИСТЕМЫ ОПРЕДЕЛЕНИЯ ИНТЕРЕСОВ ПОЛЬЗОВАТЕЛЯ
      • 2.1 Предложенная нейросетевая модель
      • 2.2 Архитектура приложения
    • ГЛАВА 3. РЕЗУЛЬТАТЫ ЭКСПЕРИМЕНТАЛЬНЫХ ИССЛЕДОВАНИЙ
      • 3.1 Описание наборов данных
      • 3.2 Классификация набора изображений
      • 3.3 Результаты экспериментов
      • 3.3.1 Amazon Product Data
      • 3.3.2 Amazon Fashion
  • ЗАКЛЮЧЕНИЕ
  • СПИСОК ЛИТЕРАТУРЫ

ВВЕДЕНИЕ

В последние годы современные решения в области мобильных рекомендательных систем набирают все большую популярность среди пользователей мобильных устройств. По мере развития технологий машинного обучения и компьютерного зрения на открытой платформе Android создаются обширные мобильные приложения, которые так или иначе позволяют достигать поставленных целей. Новейшие разработки в сфере рекомендательных систем находят применение в качестве платформы для индивидуальной рекламы для пользователей мобильных устройств.

Нередко потенциальные покупатели не обращают внимания на встречающуюся им рекламу из-за того, что контент этой рекламы не соответствует их потребностям. Стало быть, рекламным компаниям крайне невыгодно оплачивать контекстную рекламу, которая не привлекает новых клиентов, а иногда, напротив, негативно влияет на репутацию фирмы. В связи с этим одной из важнейших задач рекомендательных систем является предоставление релевантных предложений для конкретного пользователя на основании его интересов. Следовательно, сведения о категориях товаров, которые интересны определенному пользователю могут быть использованы в качестве основного источника информации для предсказания значимости того или иного товара для конкретного пользователя. Эти сведения могут быть получены с помощью коммерческого приложения, которое анализирует содержимое галереи пользователя. Например, обрабатывая фотографии различных предметов одежды, система выдает пользователю информацию о магазинах с ассортиментом, соответствующим именно его интересам.

Для решения задачи таргетированной рекламы в системах умного ритейла были созданы решения на основании алгоритмов анализа истории покупок пользователя. Например, компания «Amazon» использует предиктивную систему для рекомендаций товаров, смысл работы которой заключается в анализе товаров, находящихся у них в корзине. То есть пользователю предлагается приобрести товары, которые часто покупаются вместе с теми продуктами, которые они уже выбрали. Еще одним примером является рекомендательная система, которая является частью сервиса Google Maps, позволяющая пользователю подобрать места для отдыха и шопинга, основываясь на исторических данных о посещённых пользователем заведениях. Такие системы обладают существенным недостатком, а именно: они не используют визуальную информацию о предложениях, которые заинтересовали пользователя. Поэтому проблема создания визуальной рекомендательной системы остается актуальной темой для исследования в сфере компьютерного зрения и машинного обучения.

В отличие от традиционных подходов к классификации интересов пользователя по косвенным сведениям, о товарах, таких как брэнд или цена, визуальные

Для предсказания достаточно, чтобы система могла динамически агрегировать набор изображений исходя из полезности каждой отдельной фотографии [2, 44, 55]. В связи с этим в данной работе проблема предсказания интересов пользователя рассматривается как задача классификации набора изображений на основе обучаемой агрегации признаков, полученных из этих изображений [29, 56].

На данный момент в области компьютерного зрения преобладают алгоритмы на основе глубоких сверточных нейронных сетей в связи с высокой скоростью их работы, а также с их точностью классификации изображений по сравнению с классическими алгоритмами [11, 24, 25].

Наиболее популярные архитектуры используют вычислительно сложную операцию свертки, которая требует наличия дорогостоящих графических ускорителей или вычислительных кластеров. В то же время современные рекомендательные системы должны работать в режиме реального времени на мобильных устройствах с ограниченной мощностью и памятью. Исходя из указанных ограничений в данной работе в первую очередь сделан фокус на создание архитектуры, специально созданной для данной задачи.

Таким образом, целью данной работы является разработка прототипа мобильного приложения для классификации интересов пользователя по изображениям в галерее его мобильного устройства на основании сверточных нейронных сетей с применением нейронного блока агрегации с механизмом внимания, раннее успешно применявшемся для решения задачи классификации видео [27, 43, 56].

Для достижения цели, определенной выше, требуется выполнить ряд задач:

· Провести аналитический обзор литературы по построению модели пользователя в рекомендательных системах на основе агрегации векторов характерных признаков.

· Разработать прототип визуальной рекомендательной системы для Android OS.

· Спроектировать архитектуру модели и алгоритм предсказания интересов пользователя.

· Экспериментально показать эффективность по точности классификации и по размеру предложенного подхода по сравнению с традиционными методами.

Данная исследовательская работа организована следующим образом: в первой главе проведен аналитический обзор литературы с рассмотрением существующих алгоритмов классификации набора изображений. Во второй главе будет сформулирована математическая задача распознавания набора изображений, где предложен алгоритм предсказания интересов пользователя.

В данной части работы также описана общая архитектура предлагаемой системы и модели сверточных нейронных сетей, обученных для классификации набора изображений.

Практическая реализация алгоритма на мобильной платформе и результаты экспериментальных исследований представлены в заключительном разделе.

рекомендательный нейросетевой алгоритм пользователь

ГЛАВА 1. ОБЗОР ЛИТЕРАТУРЫ

1.1 Описание предметной области

Ежедневно люди сталкиваются с рекламой. Каждый бизнес пытается завладеть вниманием своей целевой аудитории, чтобы выделиться на фоне аналогичных предложений среди конкурентов. Таким образом, для повышения эффективности рекламы необходимо предлагать товары, которые наиболее точно соответствуют интересам конкретного пользователя. Именно таргетированные предложения помогают решать данную проблему.

Термин «таргетированная реклама» означает вид рекламы, в котором предложения выдаются пользователю на основании информации об этом пользователе. Следовательно, реклама такого вида для каждого пользователя будет индивидуальная, что повышает шансы положительного отклика. С точки зрения онлайн-магазинов существуют различные способы таргетирования целевой аудитории, но все они так или иначе используют информацию о пользователе, полученную в момент регистрации, а также исторические данные о покупках пользователя. На основании этих данных и строится представление об интересах потенциального покупателя.

Более сложной является задача создания таргетированной рекламы для пользователей мобильных устройств без прямых сведений об истории покупок и доступа к профилю пользователя. Для решения возникшей проблемы была разработана система с использованием алгоритмов машинного обучения и компьютерного зрения. Важной идеей данного решения является использование визуальной информации для получения сведений об интересах пользователя. Также данный подход в полной мере позволяет воспользоваться информацией с фотографий, находящихся в галерее мобильного устройства.

Таким образом, определение интересов пользователя по набору изображений является важной задачей для создания прибыльной таргетированной рекламной кампании. Соответственно, требуется система, которая могла бы с достаточной точностью и скоростью классифицировать категории товаров, интересующих пользователя. В связи с тем, что эксплуатация системы предполагается в первую очередь на мобильных устройствах, ключевым моментом является использование алгоритмов, не требующих больших вычислительных мощностей.

1.2 Рекомендательные системы

Ключевую роль в рекомендательных системах играет процесс построения модели пользователя (англ. user model) [5, 37]. Традиционно для построения модели пользователя используются знания о предпочтениях пользователей, извлеченных из взаимодействий пользователей с товарами, например, оставленные после покупки рейтинги [13]. К таким системам относятся рекомендательные системы на основе алгоритмов коллаборативной фильтрации (collaborative filtering) [6, 30]. Примером такого алгоритма является алгоритм разложения матриц (англ. matrix factorization), который был успешно использован победителями престижного конкурса Netflix Prize [49]. Основной идеей алгоритма является представление большой, но разреженной матрицы взаимодействий пользователей и рекомендуемых вещей в виде произведения нескольких меньших по размеру, но значительно более плотных матриц (Рис. 1). В данной схеме моделью пользователя является вектор-строка в матрице пользователей с соответствующим индексом.

Рис. 1 Схема работы алгоритма разложения матриц

В современных реализациях рекомендательных систем используются алгоритмы на основе искусственных нейронных сетей. Таким образом, авторы [33, 48] предлагают напрямую обучать нейросетевую модель предсказывать рейтинг в таблице при помощи комбинации полносвязных слоев и слоев эмбедингов (англ. embedding) (Рис. 2).

Рис. 2 Схема работы алгоритма разложения матриц на основе глубокого обучения

В последние годы все большее внимание уделяется изучению рекомендательных систем, которые используют визуальные признаки, полученные из изображений товаров в процессе моделирования предпочтений пользователей. Особенно актуальна данная проблема для рекомендательных систем одежды. В [28, 31, 46] предлагается подход, достигающий превосходных (англ. state-of-the-art) результатов в задаче персональных рекомендаций, который моделирует визуальные предпочтения пользователей и тем самым позволяет интерпретировать пользовательские предпочтения тех или иных стилей и визуальных атрибутов одежды. Авторы [9, 19, 45] также использовали глубокие сверточные сети для извлечения эстетических признаков (англ. aesthetic features) для моделирования предпочтений пользователей и дальнейших рекомендаций на основании извлеченных признаков. Авторы [44] предложили использовать признаки, извлеченные из набора фотографий одежды пользователя для генерации уникальных персональных предложений при помощи конкурирующих сетей.

1.3 Обзор мобильных платформ

В первую очередь требуется выбрать платформу для разработки мобильного приложения. По исследованиям, проведенным в последние годы, две операционные системы делят рынок мобильных устройств - Android и iOS. На 2018 год более 70% пользователей выбирают мобильную платформу Android и более 15% - iOS. Экосистема Apple [4] широко известна среди разработчиков благодаря своей простоте использования и большому количеству пользователей. Приложения для iOS могут разрабатываться только с устройств на Mac OS при помощи языков программирования Objective-C и Swift. SDK необходимый для разработки приложений для операционной системы iOS является платным.

В свою очередь, компания Google предоставляет открытую платформу Android на базе ядра Linux. Приложения для Android разрабатываются в бесплатной среде разработки Android Studio [3] на языках программирования Java и Kotlin [22].

Для разработки прототипа мобильного приложения была выбрана операционная система Android по следующим причинам: все компоненты, необходимые для разработки приложения являются бесплатными, Android OS является основной операционной системой для широкого спектра мобильных устройств, Android имеет встроенную поддержку библиотеки TensorFlow для запуска алгоритмов компьютерного зрения.

1.4 Анализ библиотек глубокого обучения

В современном мире существует множество различных библиотек для реализации алгоритмов глубокого обучения. Среди многообразия фреймворков стоит выделить два: TensorFlow и PyTorch. Библиотека для автоматического дифференцирования TensorFlow была представлена компанией Google в 2015 году [39] и сразу же завоевала популярность среди разработчиков благодаря своей универсальности, обширному функционалу и оптимизации для индустриальных проектов. Однако TensorFlow имеет существенные недостатки, а именно не интуитивный интерфейс и достаточно ограниченную возможность отладки процесса обучения. Зачастую TensorFlow используют вместе с библиотекой для глубокого обучения Keras [20], которая предоставляет высокоуровневый API к низкоуровневым бэкендам, таким как TensorFlow, что значительно упрощает процесс разработки. Альтернативой TensorFlow является PyTorch, представленный компанией Facebook в 2017 году [34]. Основным отличием PyTorch от TensorFlow является то, что в нем используется динамический граф вычислений, что позволяет разработчикам пошагово отлаживать прямой проход по графу и существенно ускоряет процесс разработки. Одним из основных преимуществ TensorFlow относительно PyTorch является возможность оптимизации и запуска обученных моделей на мобильных устройствах с помощью специализированного движка TensorFlowLite [40].

В разработке алгоритмов, описанных в данной работе, были использованы обе библиотеки: на первоначальном этапе эксперименты были проведены при помощи библиотеки PyTorch, а после того, как была найдена подходящая конфигурация системы, она была перенесена на TensorFlow для интеграции в мобильное приложение. Обученная модель в дальнейшем была конвертирована в специальный формат, подходящий для запуска в TensorFlowLite.

1.5 Обзор алгоритмов машинного обучения

В современном мире для решения задач интеллектуального анализа больших данных благодаря быстроразвивающейся ветви компьютерных наук - машинному обучению, были разработаны различные алгоритмы кластеризации, классификации, детектирования и т. д. В последние десять лет машинное обучение бурно развивается благодаря появившимся графическим ускорителям, а также огромным объемам данных, которые необходимы для успешного обучения моделей компьютерного зрения. Наиболее популярным на данный момент подходом в сфере машинного обучения являются искусственные нейронные сети [11].

Искусственные нейронные сети

Изначально искусственная нейронная сеть задумывалась как математическая модель взаимодействия нейронов в коре головного мозга. Сама нейронная сеть представляет собой систему соединенных и взаимодействующих между собой искусственных нейронов. Каждый такой нейрон прост по структуре и состоит всего из трех элементов: набор взвешенных связей с другими нейронами, суммирующий оператор и функция активации, которая добавляет нелинейность в выходной сигнал. Будучи соединенными определенным образом в обширную, управляемую сеть [25], простые нейроны могут решать достаточно сложные задачи классификации, кластеризации и прогнозирования. На рис. 1 представлен пример искусственной нейронной сети с входным слоем, одним скрытым слоем и выходным слоем.

Рис. 3 Схема искусственной нейронной сети

Выход k-го нейрона слоя i+1 рассчитывается по формуле (1),

(1)

где wj(k) вес связи между нейроном xk(i+1) с нейроном xj(i) в предыдущем слое. Благодаря своей структуре такая искусственная нейронная сеть получила название «Полносвязная нейронная сеть» (англ. Fully connected neural network).

Однако традиционная модель полносвязной нейронной сети не обладала достаточной мощностью, чтобы эффективно решать задачи обработки изображений из-за присущей им высокой размерности пространства возможных значений.

Глубокие сверточные нейронные сети

Специально для решения задачи распознавания образов была разработана концепция сверточных нейронных сетей Яном Лекуном [24], но из-за нехватки вычислительных мощностей и недостаточных объемов данных для обучения сверточные нейронные сети не нашли широкого распространения до 2012 года, когда Алекс Крижевски при помощи архитектуры, основанной на сверточных нейронных сетях, выиграл ImageNet - соревнование по распознаванию образов на изображениях [23] и повысил точность классификации с 74% до 85%. В настоящее время сверточные нейронные сети активно применяются для решения задач поиска по фотографиям и их упорядочивания, для рекомендации товаров и прочего.

Класс архитектур, основанных на сверточных нейронных сетях (СНС) объединяет наличие некоторых общих последовательных операций, а именно сама операция свертки (англ. convolution), которая заключается в применении к входному сигналу некоторого фильтра (ядра свертки) посредством перемещения фильтра по входному изображению, где в каждой позиции производится поэлементное перемножение пикселей в области входного изображения на элементы матрицы-фильтра с дальнейшим суммированием этих результатов и записи их в соответствующие ячейки матрицы выходного сигналa. С ростом количества фильтров в слое растет качество распознавания и вычислительная сложность слоя.

Второй общей операцией для всех моделей на основе СНС является операция субдискретизации (англ. Pooling) также известная как слой подвыборки, которая отвечает за уменьшение пространственной размерности карт активаций, полученных в результате операции свертки. Слой подвыборки позволяет достичь инвариантности активаций для схожих входных сигналов, отличающихся только незначительными изменениями в расположении объектов на изображениях. Наиболее распространенными операциями субдискретизации являются «максимальная подвыборка» (англ. max pooling), когда в выходной сигнал попадает элемент с наибольшей активацией из области входного сигнала, покрытой фильтром и «средняя подвыборка» (англ. average pooling), когда в выходной сигнал записывается среднее значение активаций элементов под фильтром.

Не менее важной частью СНС являются функции активации, которые позволяют моделировать нелинейные связи между признаками. Традиционно применялись такие функции активации как сигмоидa (2) и гиперболический тангенс (3),

(2)

(3)

Обе эти функции активации имеют существенный недостаток в том, что их производная для значений |х|>2 близка к нулю, следовательно, процесс обучения происходит крайне медленно или же вообще не происходит. В связи с этим в последнее время в качестве функции активации используют в основном ReLU (Rectified Linear Unit) (4) [10] и ее модификации .

(4)

Основным преимуществом ReLU перед прочими функциями активации является ее свойство пропускать градиент, не заглушая его.

Последним, наиболее распространенным общим блоком для построения архитектур на основе СНС, является батч нормализация (англ. batch normalization). Батч нормализация была разработана в 2015 г. Сергеем Йоффе для решения проблемы ковариативного сдвига (англ. covariate shift) [17], когда в процессе обучения распределение активаций нижних слоев сильно изменяется из-за изменения параметров этих слоев и тем самым замедляет обучение верхних слоев сети, так как они должны постоянно подстраиваться под новое распределение активаций входного сигнала. Эта проблема особенно сильно влияет на глубокие нейронные сети, так как незначительные изменения в первых слоях усиливаются на каждом следующем слое и создают сильные отклонения в последних слоях. Батч нормализация добавляет операцию нормализации (5) на выходе слоя после функции активации.

(5)

Таким образом, становится возможным использование более высокой скорости обучения (англ. learning rate), что ускоряет процесс обучения и делает его более устойчивым. Также батч нормализация является регуляризатором, т. е. позволяет моделям лучше обобщать выученные признаки для обработки сигналов, не присутствующих в тренировочной выборке.

Подводя итоги, хочется подчеркнуть, что архитектуры на основе СНС на данный момент являются наиболее распространёнными для решения задач, связанных с обработкой изображений благодаря меньшему количеству обучаемых параметров, по сравнению с полносвязными нейронными сетями, устойчивости к сдвигам и поворотам входного изображения, наличия больших открытых наборов изображений, а также возможности ускорения с помощью графических процессоров.

1.6 Сверточные нейронные сети для мобильных приложений

Одним из главных недостатков СНС является их высокая вычислительная сложность. Исследователи часто пренебрегают размером и скоростью моделей, а также ресурсами, необходимыми для их обучения. Так, для обучения моделей промышленного масштаба зачастую требуется множество дорогостоящих графических процессоров и большое количество времени. В связи с этим, в мобильных приложениях чаще всего алгоритмы машинного обучения запускаются на удаленных мощных серверах, а в приложении отображается только результат вычислений. Для реализации такого подхода необходимо наличие стабильного быстрого интернет-соединения, что не всегда возможно. Также многие пользователи против того, чтобы их персональные данные обрабатывались вне их мобильного устройства. Для решения обозначенных проблем были разработаны специализированные алгоритмы для запуска на мобильных девайсах и встроенных микроконтроллерах, не требующие наличия мощных графических процессоров и больших объемов памяти [35].

Существует несколько таких оптимизированных под мобильные устройства архитектур, в которых авторы постарались сохранить точность классификации при сокращении вычислительной сложности моделей. Например, разработчики модели MobileNet [14] предложили заменить дорогостоящую операцию свертки на операцию разделяемой свертки (англ. depthwise separable convolution), в которой сначала происходит независимая свертка каждого из каналов входного изображения, а затем поканальная свертка результата n фильтрами 1 на 1, где n - глубина выходного сигнала.

Авторы [16] предложили альтернативное решение - модель SqueezeNet. В своей работе они исследовали возможность снижения количества параметров и размеров модели при сохранении точности классификации на уровне AlexNet - архитектуры, выигравшей ImageNet в 2012 г.

Для ускорения порцесса обучения была разработана методика переноса обучения (англ. transfer learning) [32], когда глубокая СНС сначала долгое время предобучается на большом объеме данных на мощных серверах сторонних разработчиков, например, такие модели предоставляет компания Google. Затем, предобученная модель может быть дообучена (англ. fine-tuned) на небольшом наборе изображений для необходимых в конкретной задаче классов за короткие сроки без доступа к высокопроизводительным серверам.

1.7 Задача классификации набора изображений

Задача многозначной классификации набора изображений заключается в следующем: требуется поступающему на вход набору изображений поставить в соответствие один или несколько из D>1 классов (категорий). Предполагается, что на каждом изображении представлен один объект, а для обучения задано N наборов { Xn(m)}, m=1,2.,,, Mn, из Mn изображений, каждому из которых соответствует бинарный вектор y размерности D, в котором элемент с индексом d равняется 1, если набор принадлежит классу d, и 0 в противном случае. В качестве примера такой задачи можно рассматривать предсказание наиболее интересных для пользователя категорий продуктов (оценки апостериорных вероятностей заинтересованности пользователя товарами из каждой категории) на основании множества изображений продуктов, которые связаны с данным пользователем (просмотрены или заказаны им ранее).

В настоящей работе рассматриваются две характерные особенности таких задач. Во-первых, каждому набору изображений может ставиться в соответствие несколько различных классов, то есть должна решаться задача многозначной (англ. multi-label) классификации, например, в случае, когда пользователю интересна более чем одна категория товаров. Во-вторых, зачастую накладываются дополнительные ограничения на реализацию системы с использованием типовых мобильных устройств, поэтому применяемые нейросетевые модели должны целиком помещаться в оперативную память устройства и не использовать чрезмерно сложные в вычислительном плане алгоритмы.

Таким образом, цель настоящей работы состоит в комбинировании известных подходов взвешенной агрегации на основе механизма внимания (англ. attention) [29, 43], использованных ранее в задачах обработки текстов и классификации видеопоследовательностей [38, 42], для реализации вычислительно эффективного алгоритма многозначной классификации набора изображений. Для повышения эффективности по затратам памяти используются методы сжатия полносвязных слоев, основанные на представленном в архитектуре SqueezeNet модуле Fire [16] и масштабируемом внимании с покомпонентным произведением (англ. Scaled Dot product attention), предложенном в архитектуре Transformer [41]. Полученные результаты и сделанные по ним выводы рассчитаны на широкий круг специалистов в области компьютерного зрения.

1.8 Обзор алгоритмов классификации набора изображений

Задача математической классификации множества изображений возникает во многих интеллектуальных системах, например, при распознавании объектов на видео или в рекомендательных системах [42, 2], в которых происходит классификация интересов пользователя по набору фотографий товаров, купленных или просмотренных им ранее. Для решения подобных задач все большее развитие получают методы агрегации векторов признаков [43], извлеченных из изображений с помощью современных СНС.

В традиционных методах распознавания видеопоследовательностей [52] на первом этапе обычно каждое изображение представляется в виде вектора признаков, извлеченного с выхода одного из последних слоев глубокой СНС. Далее может использоваться ансамбль классификаторов каждого изображения из набора кадров. Шахнарович и др. [36] предположили, что вектор признаков каждого кадра распределен нормально, и использовали дивергенцию Кульбака-Лейблера для измерения расстояния между распределениями. Несколько важных работ по распознаванию видео основаны на обучении метрик (анфл. metric learning). Например, Жу и др. [15] обучили метрики для оценки близости между одним изображением и набором, а также близости между двумя наборами.

Для ускорения процедуры классификации признаки каждого изображения могут объединяться в один вектор с использованием, например, усреднений (пулинга, англ. pooling) типа average/max pooling. Кроме того, в последнее время все чаще используются методы взвешенной агрегации с обучаемыми весами. Так, Eigen-PEP представление [26] интегрирует визуальную информацию из всех изображений, используя частичное усреднение с помощью вероятностной модели эластичных частей (elastic part). Затем такое промежуточное представление сжимается с помощью анализа главных компонент. Канциани и Кулурциелло представили архитектуру CortexNet [7] с целью получения робастных и устойчивых представлений изменяющихся во времени видео сигналов. Мих и др. [29] победили на престижном конкурсе Youtube 8M Large-Scale Video Understanding challenge 2017 за счет использования методов обучаемого пулинга (Soft Bag-of-words, Fisher Vectors, NetVLAD) и нового шлюза контекста (англ. context gating) для извлечения зависимостей между разными классами. Интересные результаты в задаче распознавания лиц на видео получены Yang и др., которые в работе [43] предложили обучение весов кадров в агрегационном модуле, состоящего из последовательно соединенных двух блоков внимания.

Таким образом, методы обучаемой агрегации векторов признаков для классификации набора изображений использовались, прежде всего, как один из перспективных вариантов решения задач видеоанализа и простого (не многозначного) распознавания образов. Поиску способов их обобщения для многозначной классификации и построения вычислительно эффективных алгоритмов классификации на примере анализа интересов пользователя в рекомендательных системах и будет уделено внимание в настоящей статье.

1.9 Нейронный агрегационный блок

В настоящей работе для решения задачи предлагается следующий двухэтапный алгоритм. На первом этапе применяется традиционный подход с переносом обучения (англ. transfer learning) [32] для извлечения характерных признаков, состоящий в добавлении классификатора к базовой глубокой СНС, предварительно обученной на большом объеме данных, например ImageNet. В частности, с учетом наложения указанных во введении ограничений на возможности реализации системы на мобильном устройстве, в данной работе применяется СНС MobileNet [14]. При этом предлагается разбить все множество из N наборов изображений на два непересекающихся подмножества размера N1 и N2. Набор изображений из первого подмножества будет использоваться для дообучения (англ. fine-tuning) СНС. Получившаяся дообученная модель затем используется для извлечения векторов признаков xn размерности К для каждого изображения из второго набора размера N2.

На втором этапе предлагается вычислить итоговый вектор признаков xn размерности K, описывающего n-й набор, как взвешенную сумму векторов признаков xn(m) каждого изображения:

Обычно применяются одинаковые веса, что приводит к традиционному усреднению векторов признаков (англ. average pooling). Однако в настоящей работе мы рассматриваем способы обучения весов на основе нейро-агрегационного модуля с использованием механизма внимания, который был изначально использован для распознавания лиц на видео [43]:

где q - обучаемый вектор весов размерности K. В работе [43] предлагалось последовательно соединить два слоя внимания (7) таким образом, что после первого слоя значение вычисленного согласно (6) агрегированного вектора признаков набора изображений подавалось на вход полносвязного слоя с функцией активации tanh (гиперболический тангенс) и весами W

После этого вновь используется механизм внимания (6)-(7), но уже с использованием полученного вектора q1:

Использование второго каскадного блока внимания (8)-(10) как на рис. 2 приводит к увеличению размера модели на K(K+1) параметров, поэтому с целью снижения количества параметров были реализованы оба варианта нейро-агрегационного модуля: только с одним слоем внимания (6)-(7) и с двумя слоями (6)-(10).

Рис. 4 Нейронный агрегационный блок

ГЛАВА 2. ПРОТОТИП СИСТЕМЫ ОПРЕДЕЛЕНИЯ ИНТЕРЕСОВ ПОЛЬЗОВАТЕЛЯ

2.1 Предложенная нейросетевая модель

В настоящей работе исследовались модификации нейро-агрегационного модуля с помощью линейного оператора сжатия пространства признаков с помощью обучаемой матрицы весов Ws размерности S*D, где S<K:

после чего для генерации весов внимания в (7) вместо xn(m) используются значения полученного сжатого вектора признаков sn(m):

В результате количество параметров S(2K+S+2)+K оказывается на K(K+D)-S(S+D) ниже по сравнению с нейро-агрегационным модулем с 1 слоем внимания (6)-(7). Для дополнительного снижения размерности возможно использование сжатых векторов признаков sn(m) не только для определения весов внимания (12), но и для получения агрегированного вектора признаков (6) размерности S<D.

Наконец, был реализован нейро-агрегационный модуль с двумя каскадными слоями внимания, в которых после сжатия (11)-(12) применялся линейный оператор расширения пространства признаков:

с подстановкой полученных весов wn1(m) (15) в оценку (10) итогового вектора признаков набора изображений.

Дополнительно к рассматриваемым способам агрегации векторов признаков каждого изображения на основе механизма внимания в настоящей работе применяется контекстный шлюз (англ. context gating, CG) [29]:

где у - логистическая сигмоида, _ - операция покомпонентного умножения векторов, а W(CG) и b(CG) - параметры слоя CG. В результате значения элементов вектора признаков будут увеличены, если корреляция этих признаков в одном наборе является достаточно высокой. И, наоборот, для признаков с низкой корреляцией значения итогового вектора снижаются.

Таким образом, предложенная в настоящей работе модель показана на Рис. 5. В ней агрегированные векторы признаков (7) набора изображений подаются на вход полносвязного слоя. Так как целевые классы в векторе y могут содержать несколько классов объектов из-за того, что объект может принадлежать больше, чем одному классу, на выходном слое для получения D оценок вероятностей того, что класс с индексом d является значимым для входного набора, используется функция активации логистической сигмоиды.

Рис. 5 Архитектура предложенной модели

2.2 Архитектура приложения

Приложение реализовано на языке Kotlin от компании JetBrains. Также используются Amazon Product Search API и Google Maps API/ Google Places API для получения информации об интересующих товарах и магазинах, где продаются товары из интересующих категорий.

Основным компонентом приложения является движок TensorFlowLite для запуска моделей на основании нейронных сетей на мобильных устройствах. Для использования TensorFlowLite необходимо сконвертировать обученную модель из формата хранения весов .h5 в оптимизированный формат хранения графа вычислений вместе со всеми весами под названием FlatBuffer. Эта операция конвертирует все обучаемые веса в константы и удаляет из графа вычислений узлы, необходимые только на этапе обучения, тем самым уменьшая размер модели и ускоряя ее.

Прототип приложения, примеры работы которого изображены на Рис. 6, реализует следующий функционал: классификация набора изображений, рекомендация товаров в онлайн магазине «Amazon» и рекомендация ближайших магазинов на карте. UML диаграмма со структурой основных классов приложения находится на Рис. 7.

Рис. 6 Примеры работы приложения

При загрузке приложения в память устройства загружаются модели для извлечения признаков и для классификации изображений, также выделяются буферы для входных данных и для результатов работы моделей. Классификация изображений происходит следующим образом: по нажатию пользователем кнопки классификации на главном экране формируется набор изображений, который передается в классификатор, где происходит преобразование изображения в байтовый формат данных, необходимый для работы интерпретатора моделей TensorFlowLite, и сам вызов интерпретатора. Диаграмма процесса работы классификатора отображена на Рис. 8.

Рис. 7 UML диаграмма классов приложения

Рис. 8 Процесс классификации изображений

Для просмотра рекомендаций магазинов пользователь может нажать соответствующую кнопку, после чего произойдет цепочка асинхронных событий. Сначала будет отправлен запрос на загрузку компонента графического интерфейса, отвечающего за отображение карты. После получения сигнала о готовности карты с помощью встроенного геолокационного сервиса запрашивается последняя известная локация пользователя. После получения локации происходит несколько запросов в Google Places API для получения релевантных магазинов поблизости для каждой распознанной категории. Когда все результаты готовы к отображению, маркеры с координатами и названиями всех рекомендованных магазинов располагаются на карте и запускается анимация карты, которая приближает окно с фрагментом карты и центрирует его на локации первого магазина. Процесс рекомендации магазинов представлен на Рис. 9.

Рис. 9 Процесс отображения рекомендаций магазинов на карте

Для поиска в онлайн магазине Amazon посылается строка запрос с распознанными категориями и результаты поиска отображаются во встроенном WebView. Пользователь может нажать на товар, чтобы перейти на страницу покупки товара в браузере. Процесс поиска в Amazon изображен на Рис. 10.

Рис. 10 Процесс поиска товаров в магазине Amazon

ГЛАВА 3. РЕЗУЛЬТАТЫ ЭКСПЕРИМЕНТАЛЬНЫХ ИССЛЕДОВАНИЙ

3.1 Описание наборов данных

Эксперименты проводились на наборе данных Amazon Fashion Data [19] (Рис.6), в котором находятся изображения товаров одежды. Результирующий набор данных содержит 160 000 записей о 40 000 уникальных пользователей, которые взаимодействовали с 20 000 уникальными товарами из D=65 категорий («Кросовки», «Джинсы», «Куртки» и т.п.). Для каждого пользователя имеются данные о том, какие товары покупал этот пользователь. Количество товаров на пользователя Mn варьируется от 5 до 40 (в среднем у одного пользователей - 8 купленных товаров).

Дополнительные эксперименты были проведены на подмножестве набора данных Amazon Product Data «Home and Kitchen» 5-core (в котором находятся только те продукты, с которыми взаимодействовали как минимум 5 уникальных пользователей и только те пользователи, которые взаимодействовали как минимум с 5 продуктами. Результирующий набор данных содержит 547700 записей о 66519 уникальных пользователей, которые взаимодействовали с 28237 уникальными товарами из D=1000 категорий («Товары для приготовления», «Контейнеры для хранения», «Кофе» и т.п.). Для каждого пользователя имеются данные о том, какие товары покупал этот пользователь. Количество товаров на пользователя Mn варьируется от 5 до 40 (в среднем у одного пользователей - 8 купленных товаров).

Каждому пользователю был присвоен эталонный (англ. ground-truth) вектор y размерности D, в котором элемент с индексом d равен 0, если пользователь не взаимодействовал ни с одним товаром из категории d, в противном случае соответствующий элемент вектора y был установлен равным 1.

Рис. 11 Примеры изображений из набора данных Amazon Fashion и Amazon Product Data

3.2 Классификация набора изображений

Все алгоритмы реализованы с использованием библиотеки Keras. На этапе предварительной обработки изображения приводились к размеру 224х224 пикселя, а значения пикселей приводились к диапазону [-1;1]. Сначала на 70% (N1=112000) изображений, выбранных наугад, была дообучена базовая модель MobileNet v1. В связи с тем, что каждый товар принадлежит всего нескольким категориям, целевые векторы получаются разреженными, поэтому для уменьшения несбалансированности классов при обучении в качестве целевой функции использовалась взвешенная перекрестная энтропия с весом положительного класса, равным 8. В процессе обучения сначала были зафиксированы веса 22 первых слоёв, после чего модель дообучалась с помощью оптимизатора ADAM [21] со скоростью обучения (англ. learning rate), равной 0.001 и параметрами beta1 = 0.9, beta2 = 0.999 в течение 10 эпох. После этого веса всех слоев дообучались еще 20 эпох со скоростью обучения, равной 0.0001.

После того, как выделенные на предпоследнем слое MobileNet векторы признаков размерности K=1024 всех изображений пользователя объединяются в один вектор xn (5), производится предсказание значимости категорий с помощью полносвязного слоя с сигмоидальной функцией активации. Для обучения предложенной сети (Рис. 3) использовалось 90% от второго подмножества исходного набора данных размера N_2=48000, а на других 10% изображений тестировались алгоритмы после обучения. В качестве целевой функции также использовалась взвешенная перекрестная энтропия с весом положительного класса, равным 2. Модель обучалась с помощью оптимизатора ADAM со скоростью обучения, равной 0.001 и с параметрами beta_1 = 0.9, beta_2 = 0.999.

В качестве базового метода агрегации в (5) было выбрано традиционное усреднение индивидуальных векторов признаков с равными весами, после чего получившийся средний вектор классифицировался с помощью логистической регрессии. Кроме того, были реализованы три вида агрегации с их различными конфигурациями: 1) один слой внимания (1-Layer Attention) (6)-(7); 2) один слой внимания с сжатием пространства признаков (Squeezed 1-Layer Attention) до размерности S=128 (11)-(12); и 3) два слоя внимания (6)-(15) с операторами сжатия и расширения пространства признаков (Squeeze/Expand 2-Layers Attention) (14)-(15). Для этих подходов были проведены дополнительные эксперименты по добавлению перед финальным классификатором полносвязного (fully-connected, FC) слоя с функцией активации ReLU и с числом выходом, равным 256; применению оператора сжатия (13) к агрегированному вектору (Squeezed Outputs, SO); а также добавлению шлюза контекста (context gating, CG) (16) на агрегированном векторе признаков. При сравнении методов агрегации для каждого из тестовых пользователей оценивались D вероятностей его предпочтения каждого товара, после чего выбирались k наиболее вероятных категорий.

3.3 Результаты экспериментов

3.3.1 Amazon Product Data

В Табл 1. представлены значения точности precision@k и полноты recall@k для наиболее точных моделей, выбранных из каждой группы проведенных экспериментов. Лучшие результаты выделены жирным шрифтом. Среди протестированных подходов наиболее приемлемым для реализации в мобильных приложениях оказалась агрегация с одним слоем внимания с линейным сжатием пространства признаков (12)-(14) и сжатием агрегированного вектора (13) за счет небольшого количества параметров и F1-меры, которая превзошла почти все остальные методы агрегации. Можно заметить, что наличие дополнительного полносвязного слоя приводит к повышению F1-меры на 0.09 и 0.22 относительно такого же модуля без полносвязного слоя и базового усреднения, соответственно. Стоит отметить, что без дополнительного полносвязного слоя модели со сжатым агрегированным вектором не удалось повысить точность по сравнению с базовым усреднением. С другой стороны, модели с полносвязным слоем показали идентичные результаты (F1-мера превышает 0.87 для k>10) вне зависимости от того, добавлялся ли context gating (16).

Рис. 12 Точность и полнота методов агрегации

3.3.2 Amazon Fashion

Зависимость F1-меры от k для агрегации с одним слоем внимания (6)-(7) продемонстрирована на Рис.12. Можно заметить, что наличие дополнительного полносвязного слоя не приводит к повышению F1-меры относительно такого же модуля без полносвязного слоя, соответственно.

Рис. 13 Зависимость F1-меры от количества рекомендаций k для агрегации с одним слоем внимания

На Рис. 13 представлена зависимость F1-меры от количества рекомендаций k для экспериментов с сжатием одного слоя внимания. Стоит отметить, что лучший результат показала модель без сжатого агрегирования с context gating. С другой стороны, модели с полносвязным слоем показали схожие результаты (F1-мера превышает 0.55 для k>5) вне зависимости от того, добавлялся ли context gating.

Рис. 14 Зависимость F1-меры от количества рекомендаций k при сжатии одного слоя внимания

На Рис. 14 приведены результаты экспериментов для двух слоев внимания с операторами сжатия и расширения пространства признаков. Здесь наличие полносвязного слоя не дает существенного прироста в F1-мере, хоть и добавляет K2 параметров.

Поэтому наиболее полезной с точки зрения точности и затрат памяти конфигурацией является модель с двумя слоями внимания без context gating, но с дополнительным полносвязным слоем, которая характеризуется F1-мерой 0.58.

Рис. 15 Зависимость F1-меры от количества рекомендаций k для агрегации с двумя слоями внимания с операторами сжатия и расширения пространства признаков

Важным аспектом предложенного подхода является маленький размер полученных моделей, что позволяет полностью загружать их в память устройства при загрузке приложения без значительных затрат ресурсов или потери производительности, заметных для пользователя. Полная информация о размере моделей, скорости их работы и количестве параметров находится в.

Рис. 16 Размер, количество обучаемых параметров и скорость работы моделей.

ЗАКЛЮЧЕНИЕ

В настоящей работе рассмотрены методы классификации набора изображений для задач рекомендации товаров пользователям по изображениям, взятым из галереи их мобильного устройства. Проведен теоретический анализ литературы по теме рекомендательных систем и классификации наборов изображений. Описанные алгоритмы имплементированы на практике. Рассмотрено множество моделей СНС, в том числе специально оптимизированных для мобильных устройств. Реализован прототип рекомендательной системы для товаров одежды на платформе Android.

Экспериментально показано, что агрегация с помощью одного слоя внимания с линейным оператором сжатия пространства признаков достигается F1 мера, в два раза превышающая F1 меру традиционной классификации среднего вектора признаков (Рис 13). При этом размер получившейся нейросетевой модели составляет всего 3 Мб (16 Мб вместе с предобученной СНС MobileNet v1) (Табл. 1), что позволяет использовать предложенный подход для запуска даже на слабых мобильных устройствах. Таким образом, можно заключить, что все поставленные задачи были успешно выполнены, а цель исследования достигнута:

· По результатам аналитического обзора литературы были выделены наиболее перспективные способы построения модели пользователя при помощи агрегации векторов характерных признаков на основе нейро-агрегационного модуля.

· Разработан алгоритм классификации интересов пользователя по набору изображений на основе модификаций нейро-агрегационного модуля. Предложенный алгоритм реализован в виде прототипа программной системы на мобильной платформе Android.

· Проведены экспериментальные исследования по классификации наборов изображений на открытых данных Amazon Fashion. Показано, что предложенный подход работает в два раза лучше (F1@10=0.58 для предложенного подхода против F1@10=0.29 для традиционного подхода) чем традиционное усреднение векторов признаков. Было установлено, что алгоритм сжатия пространства признаков перед подсчетом весов агрегации не ведет к значительным потерям в качестве, позволяя при этом сократить количество обучаемых параметров и, следовательно, объем результирующей модели в 2 раза (781 000 обучаемых параметров для предложенного подхода против 1 570 024 обучаемых параметра для подхода без сжатия пространства признаков).

Основным направлением для дальнейшего исследования является сравнительный анализ эффективности предложенного метода и традиционных рекомендательных систем, таких как коллаборативная фильтрация и факторизационные машины [12].

Следует отметить, что данное исследование было представлено на 3-ей зимней школе по аналитике данных в лаборатории ЛАТАС [8] и на IV международной конференции «Информационные технологии и нанотехнологии» (ИТНТ-2019) [18]. Также в печати находится статья с результатами данного исследования, принятая в «Записки научных семинаров» ПОМИ РАН [53]. Статья с последними разработками была отправлена на 8-ую международную конференцию «Анализ Изображений, Социальных Сетей и текстов» (AIST 2019) [1].

Исходный код приложения, а также код для обучения моделей был выложен в открытый доступ [54].

Работа была выполнена в рамках научно-учебной группы «Анализ мультимедийных данных» [51] и научно-учебной группы «Анализ мультимедийных данных пользователей мобильных устройств» [50].

СПИСОК ЛИТЕРАТУРЫ

1. AIST 2019 [Электронный ресурс]: https://aistconf.org/

2. Andreeva, E. Extraction of Visual Features for Recommendation of Products via Deep Learning / E. Andreeva, D.I. Ignatov, A. Grachev, A. Savchenko // Proceedings of International Conference on Analysis on Images, Social Networks and Texts - AIST, 2018.

3. Android [Электронный ресурс]: https://developer.android.com/

4. Apple iOS [Электронный ресурс]: https://developer.apple.com/ios/

5. Beel J. Research paper recommender system evaluation: a quantitative literature survey / J. Beel, S. Langer, M. Genzmehr, B. Gipp, C. Breitinger, A. Nurnberger // Proceedings of the International Workshop on Reproducibility and Replication in Recommender Systems Evaluation - ACM, 2013. - 15-22 с.

6. Bokde D. Matrix factorization model in collaborative filtering algorithms: A survey / D. Bokde, S. Girase, D. Mukhopadhyay // Procedia Computer Science - Elsevier, 2015. - T. 49. - 136-146 с.

7. Canziani A. Cortexnet: a generic network family for robust visual temporal representations / A. Canziani, E. Culurciello // arXiv preprint arXiv:1706.02735, 2017

8. DA 2018 [Электронный ресурс]: https://nnov.hse.ru/en/latna/conferences/da2018

9. De Barros Costa E. Understanding and personalising clothing recommendation for women / E. de Barros Costa, H. J. B. Rocha, E. T. Silva, N. C. Lima, J. Cavalcanti // World Conference on Information Systems and Technologies - Springer, 2017. - 841-850 с.

10. Glorot, X. Deep sparse rectifier neural networks. / X. Glorot, A. Bordes, Y. Bengio // Proceedings of the fourteenth international conference on artificial intelligence and statistics - AIStats, 2011. - 315-323 с.

11. Goodfellow, I. Deep learning. / I. Goodfellow, Y. Bengio, A. Courville // MIT Press, 2016.

12. Herlocker, J.L. Evaluating collaborative filtering recommender systems / J.L Herlocker, J.A. Konstan L.G. Terveen, J.T. Riedl // ACM Transactions on Information Systems - TOIS, 2004. - T. 22, №. 1. - 5-53 с.

13. Hidasi, B. Parallel Recurrent Neural Network Architectures for Feature-rich Session-based Recommendations / B. Hidasi, M. Quadrana, A. Karatzoglou, D. Tikk // Proceedings of the 10th ACM Conference on Recommender Systems, 2016. - 241-248 с.

14. Howard, A.G. Mobilenets: Efficient convolutional neural networks for mobile vision applications / A.G. Howard, M. Zhu, B. Chen, D. Kalenichenko, W. Wang, T. Weyand, H. Adam // arXiv preprint arXiv:1704.04861, 2017.

15. Huang Z. Learning euclidean-to-riemannian metric for point-to-set classification / Z. Huang, R. Wang, S. Shang, X. Chen // Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 2014. - 1677-1684 с.

16. Iandola, F. N. SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and< 0.5 MB model size / F. N. Iandola //arXiv preprint arXiv:1602.07360, 2016.

17. Ioffe, S. Batch normalization: Accelerating deep network training by reducing internal covariate shift. / S. Ioffe, C. Szegedy // arXiv preprint arXiv:1502.03167, 2015.

...

Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.