Система рекомендацій для сервісу аудіокниг

Автор: Бородін Михайло Валерійович
Кваліфікаційний рівень: магістр
Спеціальність: Системи штучного інтелекту
Інститут: Інститут комп'ютерних наук та інформаційних технологій
Форма навчання: денна
Навчальний рік: 2020-2021 н.р.
Мова захисту: англійська
Анотація: Магістерська кваліфікаційна робота 57 ст., 23 рис., 3 формули, 30 використаних джерел. Завданням магістерської кваліфікаційної роботи є дослідження та створення системи рекомендацій аудіокниг на основі існуючого сервісу аудіокниг Bbook, що є онлайн-бібліотекою аудіокниг. Сервіс надає персоналізовані підбірки користувачам мабільного застосунку. Збір даних для обробки і генерації рекомендацій відбувається з декількох джерел, що дає змогу динамічно збільшувати обсяги даних та масштабувати систему відповідно до зростання популярності сервісу. Використовуються дані про наявний набір книг у сервісі Bbook. Книги можуть бути розділені за категоріями, жанрами, та мати будь-які додаткові атрибути. Крім того книга повинна містити як текстову версію так і аудіо-файли. Сервіс аудіокниг Bbook має дані про користувачів, та їх уподобання відносно жанрів літератури. Ці дані збираються під час реєстрації і використовуються поки в системи недостатньо інформації для більш детальних рекомендацій. Під час використання сервісу користувачі генерують набір даних рейтингів, який є ключовим для системи рекомендацій. Системи рекомендацій – це системи з пошуку та фільтрації інформації, що будують рейтинг об’єктів (наприклад, аудіокниг, фільмів, музики або новин), яким користувач може надати перевагу [1]. Рейтинг може будуватися відносно активності користувача або відносно подібності до інших об’єктів. Якщо користувач ставить оцінку певному об’єкту, то наступного разу система може враховувати це та показати подібні об’єкти, якщо користувач оцінив позитивно, або показати менше, якщо негативно. Серед основних підходів при організації рекомендаційних систем можна : колаборативна фільтрація та фільтрація за змістом. Але на практиці їх часто поєднують для кращого результату [2]. Великі компанії, такі як Amazon, Youtube, Spotify, Netflix та інші, давно використовують власні системи рекомендацій для підвищення активності користувачів та збільшення доходів. Так, наприклад, користувачі сервісів Airbnb та Zillow можуть отримати змогу знаходити схожі оголошення про житло, а UberEats пропонує релевантні страви та ресторани. Навіть невелике збільшення точності алгоритмів може значно підвищити прибуток компанії. Саме тому в 2003 році у Netflix було оголошено змагання ціллю якого була оптимізація існуючого рішення. Переможцю, який зможе підвищити показник точності на 10 відсотків була гарантована премія у один мільйон доларів США. Отже, можна уявити реальну вигоду від впровадження систем рекомендацій для корпорації. Адже для тих сервісів, що переходять до використання систем рекомендацій характерна поява наступного циклу зворотнього зв’язку. Користувачі генерують більше даних, що веде до кращих рекомендацій і відповідно - більшої кількості нових користувачів. Після чого цикл повторюється. Персональні рекомендації забезпечують максимальне використання інформації про користувача, а особливо про історію його активності. Одним із перших був підхід до фільтрації на основі вмісту. При такому підході опис товару (вмісту) порівнюється з уже відомими інтересами користувача, які були отримані з його попередніх оцінок. Чим більше товар відповідає цим уподобанням, тим вищий потенційний інтерес користувача. Очевидною вимогою тут є те, що всі товари в каталозі повинні мати опис. На жаль, цю вимогу не завжди легко виконати, якщо служба не створює ці продукти самостійно. Наприклад, не всі на платформі Netflix створюються у власній студії Netflix, тому у них може не бути конкретного формату опису, характерного для цих фільмів. У останні роки помітно зростає кількість сервісів, метою яких є спрощення розробки за допомогою використання готових рішень та автоматизації рутинних операцій. Це призводить до зменшення порогу входження в певну технологію та збільшення кількості розробників. Google є однією з компаній, що активно просувають створення інструментів розробки та онлайн сервісів для автоматизації реалізації типових задач розробки програмних застосунків [18]. Одним з таких сервісів є Firebase, що надає готові рішення для реалізації авторизації користувача, бази даних реального часу, та спрощує роботу з хмарними обчисленнями. З сторони розробника це значно зменшує кількість часу та зусиль, необхідних для розробки певного функціоналу застосунків. За декілька років існування сервіс Firebase отримав досить широку популярність та отримав своє місце у Google екосистемі розробки. Однією з переваг сервісу є можливість експорту згенерованих користувачами Firebase Analitycs даних у необробленому форматі для власноручної обробки та аналізу цих даних. У той же час, на жаль на даний момент немає готового рішення яке б дозволило розробникам легко будувати власні систему рекомендацій на основі даних, експортованих з Firebase та впроваджувати їх у свої застосунки з мінімальними зусиллями. У процесі роботи над дипломним проектом було взято за основу існуючий сервіс аудіокниг, що був побудований з використанням сервісу Firebase, після чого було проведено інтеграцію системи рекомендацій та адаптацію існуючого інтерфейсу під використання нового функціоналу рекомендацій.