Побудова рекомендаційної системи відео за допомогою класу моделей Word2Vec

Дослідження алгоритму побудови моделей класу Word2Vec. Побудова рекомендаційної системи на основі моделі SkipGram класу Word2Vec та дослідження результатів її роботи. Структура даних підготовленого датасету. Побудова веб-додатку рекомендаційної системи.

Рубрика Программирование, компьютеры и кибернетика
Вид статья
Язык украинский
Дата добавления 30.05.2021
Размер файла 608,6 K

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

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

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

ПОБУДОВА РЕКОМЕНДАЦІЙНОЇ СИСТЕМИ ВІДЕО ЗА ДОПОМОГОЮ КЛАСУ МОДЕЛЕЙ WORD2VEC

Мазурік Олексій Юрійович, студент

Національного технічного університету України

«Київський політехнічний інститут

імені Ігоря Сікорського»

Анотація

Досліджено алгоритм побудови моделей класу Word2Vec. Побудовано рекомендаційну систему на основі моделі SkipGram класу Word2Vec та досліджені результати її роботи.

Ключові слова: рекомендаційні системи, прогнозування, нейронні мережі, word2vec.

Аннотация

Мазурик Алексей Юрьевич, студент Национального технического университета Украины «Киевский политехнический институт имени Игоря Сикорского»

ПОСТРОЕНИЕ РЕКОМЕНДАТЕЛЬНОЙ СИСТЕМЫ С ПОМОЩЬЮ КЛАССА МОДЕЛЕЙ WORD2VEC

Исследован алгоритм построения моделей класса Word2Vec. Построено рекомендательную систему на основе модели SkipGram класса Word2Vec и исследованы результаты ее работы.

Ключевые слова: рекомендационные системы, прогнозирование, нейронные сети, word2vec.

Summary

Mazurik Oleskii, Student of the National Technical University of Ukraine «Igor Sikorsky Kyiv Polytechnic Institute»

BUILDING A RECOMMENDER SYSTEM USING WORD2VEC MODELS

The algorithm for building Word2Vec models was investigated. A recommender system based on the SkipGram model of Word2Vec class was constructed and the results of its work were investigated.

Key words: recommendation systems, forecasting, neural networks, word2vec.

Постановка задачі

Рекомендаційні системи з'явилися на сучасному ринку ІТ як механізм для заміни статичному списку рекомендацій при пошуку або покупках на веб-сайтах. Ці системи формують рейтинговий перелік об'єктів (товарів, фільмів, музичних композицій) на основі різних критеріїв: релевантність, популярність, історія оцінок тощо.

Але, незважаючи на те, що рекомендаційні системи досить недавно з'явилися на ринку, вже існує безліч способів їх покращити. З розвитком досліджень у сфері Big Data та Machine Learning, все більше компаній починає використовувати нейронні мережі для покращення якості рекомендацій. Використовуються всі дані, які користувач залишає на сайті -- історія переглядів, кліків, оцінок тощо. Зараз набуває популярність алгоритм побудови моделі Word2Vec (алгоритм пошуку семантичних зв'язків між словами). Його починають використовувати для пошуку семантичних зв'язків між різними типами медіа-даних. Саме експеримент з дослідження можливості використання цього алгоритму для медіа-даних буде основним предметом дослідження даної роботи [5].

Поняття Word Embeddings. Основним інструментом сучасної обробки текстів наразі є розподілені представлення слів (distributed word representations, вони ж word embeddings), графічне інтуїтивне представлення яких можна побачити на рисунку

В цих представленнях кожному слову ставиться у відповідність вектор із дійсних чисел, елемент евклідового простору Rd для якогось й (зазвичай кілька сотень). Ці вектори далі служать входами для наступних моделей, а базове припущення полягає в тому, що геометричні відношення в просторі Ял будуть відповідати семантичним відношенням між словами, наприклад, найближчі сусіди слова в цьому просторі виявляються його синонімами або іншими тісно пов'язаними словами і т.д. [2]

Рис. 1 Графічне представлення слів у 3-вимірному просторі [1]

Ідея Word2Vec. Основне завдання даного алгоритму полягає в побудові нейронної мережі, яка буде за заданим словом у середині речення (вхідне слово) шукати слова поряд та обирати одне випадковим чином. Мережа буде обчислювати ймовірність кожного слова зі словника стати цим «близьким» словом до того, яке ми обрали. Коли мова йде про «близькість», то мається на увазі параметр алгоритму «розмір вікна». Типовий розмір вікна може бути 2, який означає, що 2 слова до та 2 слова після даного будуть «близькими» до даного [3].

Рис. 2 Побудова тренувальних прикладів для мережі [3]

Нейронна мережа буде вивчати статистику кількості зустрічальності кожної з пар. Отже, для прикладу, нейронна мережа ймовірно буде мати набагато більше прикладів типу «United» -- «States», ніж «United» -- «Roads». Тож, після тренування якщо на вхід подано слово «United», то на виході ймовірності для слів «States» та «America» будуть у рази вищими, ніж для слова «Roads».

Рис. 3 Архітектура нейронної мережі моделі Word2Vec [3]

Архітектура нейронної мережі для Word2Vec. По-перше, неможливо подати слово на вхід до нейронної мережі як String. Необхідно знайти спосіб репрезентації його у якийсь тип ідентифікатору. Щоб цього досягти необхідно спочатку побудувати словник з наших тренувальних документів. Нехай ми вже маємо словник із 10000 унікальних слів [3].

Далі ми закодуємо кожне слово (наприклад «trees») як one-hot вектор за допомогою алгоритму OHE (One-Hot Encoding). Цей вектор буде містити 10000 координат (по одній координаті для кожного слова зі словника). На позиції, що відповідає за слово «trees» буде стояти 1, на всіх інших -- 0.

Виходом нейронної мережі буде звичайний вектор з 10000 координатами, в якому будуть міститися для кожного слова зі словника ймовірності того, що випадково взяте слово буде знаходитись поряд з даним.

У прихованих шарах немає функції активізації, але вихідні нейрони використовують softmax. Коли відбувається тренування мережі на парах слів, вхідним словом буде one-hot вектор, що презентує це слово, а вихідним очікується також one-hot вектор, що представляє вихідне слово. Але при прогоні слова через мережу насправді ми отримуємо вихідний вектор, який є розподілом ймовірностей (набором чисел з плаваючою комою) [3].

Підсумки моделі Word2Vec. Отже, якщо два різних слова мають дуже схожі «контексти» (слова, що дуже ймовірно з'являться коло них), тоді наша модель має на виході дуже схожі результати для цих двох слів. І одним зі способів нашою моделлю цього досягти -- це видати на виході подібні векторні представлення слів. Тож, якщо два слова мають схожий контекст, то наша мережа намагатиметься видати схожі векторні представлення слів для них.

Побудова рекомендаційної системи. Надана теоретична інформація Word2Vec та архітектура типової нейронної мережі для моделі Skipgram підводить до думки, що ID відео можна використовувати в якості слів, а сессії користувачів як речення або документи. Тому, теоретично, ця ідея має спрацювати схожим чином.

Підготовка даних

Для побудови нейронної мережі рекомендацій необхідно зібрати гарний дата- сет з сесіями користувачів, який можна буде використовувати для навчання нейронної мережі. Після проведення роботи з пошуку такого набору даних було вирішено використовувати набір даних з сервісу Kaggle.

Знайдений набір містить в собі анонімізовані активні сесії переходів користувачів за різними відеофайлами. Виглядає він як показано на рисунку 4.

Сесія користувача

Рис. 4 Структура даних підготовленого датасету

рекомендаційний модель алгоритм система

Побудова SkipGram моделі Videoid2Vec за до-помогою PyTorch.

Пропустивши блок з імпортом бібліотек і даних звичайна модель для побудови embeddings для рекомендації схожих відео матиме наступні параметри:

*emb_size: Розмір векторного представлення.

*emb_dimention: Розмірність простору embedding, зазвичай -- 32.

*u_embedding: Векторне представлення цен-трального відео.

*v_embedding:

Векторне представлення для сусідніх відео у сесії.

Ініціалізація моделі буде застосована для двох шарів нейронної мережі, що лежить в основі рекомендаційної системи. На цьому етапі будуть ініціалізовані ваги нейронів на прихованому шарі та на вихідному

Векторне представлення (u_embedding) центрального відео -- це рівномірний розподіл в проміжку [-0.5/em_size, 0.5/emb_size], де вектори сусідніх відео (v_embedding) будуть заповнені нулями [6].

Тренування моделі SkipGram

Процес тренування полягає в поділу вхідних даних на пари відео для тренування моделі. Після формування таких пар формуються набори (batches) відео для створення кількох епохів тренування, оскільки неможливо одночасно обробити велику кіклькість даних. Код тренування представлений на рисунку.

Звичайно, для запуску даного коду та ефективній роботі необхідно використовувати ресурси GPU, тому недивно, що для їх задіяння було використано бібліотеку CUDA.

Побудова веб-додатку рекомендаційної системи

Отже, після опрацювання всіх вхідних даних ми побудували векторне представлення у 32-мірному просторі для кожного відео. Такий словник вже можна використовувати для побудови рекомендаційної системи. Звичайно, що її структура буде надзвичайно простою. На вхід буде подаватися відео з корпусу відео, а на виході ми матимемо 50 схожих відео. Схожі відео будуть обиратися з корпусу відео шляхом пошуку найближчого -- існує безліч інструментів пакету PyTorch для цього.

Простий веб-додаток для наочної демонстрації ефективності експерименту було побудовано за допомогою фреймворку Flask (back-end) та React/Redux (front-end). Результат побудови додатку можна побачити на рисунку 7.

Результати роботи рекомендаційної системи.

Після побудови додатку було проведено тестування системи. 90 % корпусу відео було надано для тренувальних цілей, а 10 % -- для тестування. Це звичайний крок при побудові експериментів глибокого навчання. Графік на рисунку 3.15 демонструє результати тестування, а саме на якій позиції виявилися рекомендовані відео відносно тестового прикладу. Тобто, якщо позиція відео в рекомендації збігається з тестовою, то конкретна колонка, що відповідає за дану позицію, буде збільшена на 1. Якщо позиція >= 50 -- останню колонку буде збільшено на 1.

Рис. 5 Код прямого ходу нейронної мережі моделі SkipGram

Рис. 6 Код тренування моделі SkipGram (SkipGramTrainer)

Рис. 7 Приклад веб-додатку рекомендацій коротких відео

Рис. 8 Графік очікуваної позиції відео в рекомендаціях

Як можна побачити з даного графіку (рис. 8) ми отримали дуже гарний результат, оскільки дуже багато даних вдалося рекомендувати правильним чином. Звичайно, те, що остання колонка виявилася досить великою не є дуже добрим знаком. Але це лише є знаком того, що ми просто не вгадали позицію відео.

Подальший розвиток дослідження рекомендаційних систем. Звичайно, як можна побачити, дана модель вже поводить себе належним чином -- рекомендації є релевантними. Дану тему можна розвивати нескінченно, покращуючи якість рекомендацій. Для цього, по-перше, можна збільшити корпус відео та краще розпаралелити навчання. По-друге, можна використовувати більше даних, оскільки окрім ID відео можна використовувати як мета-інформацію, так і сам контент відео. Тоді задача з NLP алгоритмів буде ускладнена Computer Vision складовою, що, звичайно, збільшує час розробки, але, в теорії, може покращити якість рекомендацій [4].

Висновки

Було побудовано рекомендаційну систему для великого корпусу відео на основі SkipGram моделі. Після побудови моделі було створено рекомендаційну систему, вбудовану у веб-додаток, створений за допомогою Flask (back-end API) та React/Redux (UI front-end) для наочної демонстрації результатів дослідження. З результатів роботи рекомендаційної системи було зроблено висновок, що система поводить себе коректно, рекомендації -- релевантні. Тому можна використовувати поточне рішення для різного роду медіа-платформ для збільшення конверсії тощо.

Література

1. Hu S. Video2Vec: Learning semantic spatio-temporal embeddings for video representation / S. Hu, Y. Li, B. Li. // International Conference on Pattern Recognition (ICPR). 2016. № 23. С. 811-816.

2. Распределенные представления слов: word2vec. / С. Николенко, А. Кадурин, Е. Архангельская // Распределенные представления слов: word2vec // Глубокое обучение. Погружение в мир нейронных сетей. 2018. Санкт-Петербург. С. 285-305.

3. Word2Vec Tutorial -- The Skip-Gram Model [Електронний ресурс].

4. Word2Vec Tutorial Part 2 -- Negative Sampling [Електронний ресурс].

5. Listing Embeddings for Similar Listing Recommendations and Real-time Personalization in Search Ranking [Електронний ресурс].

6. PyTorch. Documentation [Електронний ресурс].

Размещено на Allbest.ru

...

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

  • Побудова моделі процесів системи. Відображення користувачів і їхніх функцій, підметів автоматизації в прив'язці до структури системи. Відображення структури інформаційних та фізичних об'єктів системи та їх взаємозв’язків. Побудова моделі станів системи.

    курсовая работа [125,2 K], добавлен 03.10.2008

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

    курсовая работа [4,3 M], добавлен 05.12.2012

  • Використання комп'ютерного моделювання. Особливості проектування моделі автоматичної системи управління технологічним процесом. Визначення кількості пропущених через відмову даних та часу знаходження системи в загальмованому стані. Опис алгоритму моделі.

    контрольная работа [501,7 K], добавлен 13.01.2014

  • Дослідження складної системи "Велосипед" з елементами, з'єднаними детермінованим зв'язком. Побудова цільової функції для оптимізації системи, визначення її надійності та вартості приросту надійності її елементів. Блок-схема процесу функціонування системи.

    курсовая работа [99,0 K], добавлен 01.03.2014

  • Поняття об’єктно-орієнтовного програмування, поява відносин класів. Структури як складені типи даних, побудовані з використанням інших типів. Область дії класу і доступ до його елементів. Конструктор та деструктор класу. Розробка базового класу STRING.

    курсовая работа [280,9 K], добавлен 19.08.2010

  • Проектування бази даних: визначення об’єктів, структура таблиць, побудова схеми даних, забезпечення цілісності даних, створення певних відношень між таблицями, створення запитів, побудова форм, оформлення об’єктів. Розробка інструкції користувача.

    курсовая работа [1,9 M], добавлен 19.09.2014

  • Розробка ігрового додатку за технологією IDE Visual Studio та WPF. Опис вхідної та вихідної інформації. Назва та призначення модулів програми. Основні поля класу, необхідні для ігрової логіки. Блок-схема алгоритму гри. Інструкція з експлуатації системи.

    курсовая работа [1,3 M], добавлен 02.06.2015

  • Розробка інформаційної системи для автоматизації, підвищення ефективності та спрощення роботи відділень та приймальної комісії. Опис основних класів, варіантів взаємодії системи. Процес авторизації реєстратора. Процес створення запиту в системі.

    курсовая работа [694,9 K], добавлен 16.12.2014

  • Побудова інформаційної системи, що буде слугувати для автоматизації процесу захисту персональних даних клієнтів банку. Вибір методу проектування архітектури та моделі функціонування системи. Перелік масивів, використовуваних під час розв’язання задачі.

    дипломная работа [1,8 M], добавлен 02.06.2017

  • Програмне забезпечення та шляхи автоматизації інформаційної системи управління школи. Побудова імітаційної моделі управлінських процесів за допомогою ППЗ MS Project. Розробка бази даних "Школа". Дослідження автоматизованого робочого місця секретаря.

    курсовая работа [210,9 K], добавлен 10.11.2012

  • Реалізація операцій ініціалізації (завдання початкових властивостей), запису класу у файл та читання класу з файлу. Функції інформаційної системи "Фермерське господарство", модулі створення та перегляду файлу, додавання даних в файл, пошуку даних.

    курсовая работа [4,9 M], добавлен 16.03.2012

  • Підхід до побудови користувацького інтерфейсу об’єкту проектування. Інтернет-проекти на основі AJAX технології. Побудова діаграми сценаріїв користування. Оцінка програмного забезпечення веб-сервера. Програмування авторизації та реєстрації користувачів.

    дипломная работа [290,1 K], добавлен 15.12.2013

  • Історія створення мови С#. Аналіз алгоритмів кодування даних. Розробка системи в середовищі Visual Studio 2008 Express. Схема шифрування алгоритму DES. Дослідження алгоритму RC2. Приклади хешів RIPEMD-160. Програмна реалізація основних процедур системи.

    дипломная работа [1,7 M], добавлен 25.10.2012

  • Програмування математичної моделі довільної ланки хіміко-технологічної системи та дослідження її динамічних характеристик. Система Mat Lab – середовище програмування. Побудова програмними засобами кривих перехідних процесів, логарифмічних характеристик.

    курсовая работа [551,3 K], добавлен 12.01.2011

  • Узагальнена структурна схема інформаційної системи та алгоритми її роботи. Проект бази даних. Інфологічне проектування і дослідження предметної області. Розробка інфологічної моделі предметної області. Розробка композиційної, логічної системи бази даних.

    курсовая работа [861,7 K], добавлен 21.02.2010

  • Проблеми побудови цілісної системи захисту інформації з обмеженим доступом для малого підприємства. Основні етапи планування та моделювання комплексної системи захисту інформації, негативні чинники, що можуть завадити проведенню якісної її побудови.

    статья [131,1 K], добавлен 27.08.2017

  • Аналіз відомих підходів до проектування баз даних. Ієрархічна, мережева та реляційна моделі представлення даних, їх особливості. Концептуальне проектування: приклад документів, побудова ER-діаграми, модель "сутність-зв'язок". Побудова фізичної моделі.

    курсовая работа [541,5 K], добавлен 29.01.2013

  • Визначення множини вхідних та вихідних лінгвістичних змінних нечіткої системи керування змішувачем. Аналіз побудови системи нечіткого виведення, розгляд його етапів, аналіз наукового та технічного застосування. Аналітичне рішення тестового прикладу.

    курсовая работа [412,6 K], добавлен 17.05.2012

  • Створення у середовищах BPwin 4.0 (за допомогою функціональної методології IDEF0) та Enterprise Architect 7.0 (методологія UML) моделі системи "Відкриття нового підприємства по виготовленню цегли". Побудова діаграм класів, діяльності та декомпозиції.

    контрольная работа [2,7 M], добавлен 18.08.2010

  • Структура деревооброблювальної фабрики. Нормалізація відносин і побудова ER-діаграм. Показники економічної ефективності інформаційної системи. Розрахунок витрат на створення і експлуатацію системи на підприємстві. Інструкція по роботі з програмою.

    курсовая работа [3,6 M], добавлен 30.05.2012

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