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



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

Development of automated system of search and granting media content recommendations basedon the preferences of other users.

Starushyk Artem Mykolajovych, student, FICT, NTUU “KPI”

Ukraine, Kiev

This article describes an automated system of search and granting media content recommendations based on individual profiling of users and Pearson correlation criterion as similarity measure.

Keywords: data analysis, recommendation system, Pearson correlation coefficient, collaborative filtering

Основна частина

Відомо [1], що кількість медіаконтенту різного типу стрімко зростає. Одночасно з цим зростає потреба у фільтруванні даних, відповідно до смаків та вподобань індивідуального користувача, що є основним завданням рекомендаційних систем.

Рекомендаційна система – підклас системи фільтрації даних, яка визначає об’єкти, яким користувач може надати перевагу. Однією із найпоширеніших стратегій створення рекомендаційних систем є колаборативна фільтрація [2] – один із методів визначення рекомендації, прогнозу для користувача в системі. Основне припущення колаборативної фільтрації полягає в тому, що користувачі, які однаково оцінювали будь-які об’єкти в минулому, схильні схожим чином оцінювати інші об’єкти в майбутньому. Існує два типи колаборативної фільтрації: user-based – в основі лежить пошук схожих користувачів та item-based – базується на пошуку схожих об’єктів.

Серед основник проблем рекомендаційних мереж варто виділити:

· проблема «лінивого користувача» – користувач хоче отримати рекомендацію здійснивши якомога меншу кількість дій, оцінивши найменшу достатню кількість об’єктів, тощо;

· проблема швидкодії – система повинна моментально реагувати назапити користувачів, тому алгоритм визначення рекомендацій повинен бути швидкимта ефективним;

· проблема мінливості – користувач може змінювати свою точку зору, переоцінювати будь-які об’єкти, що унеможливлює збереження отриманих до цього результатів, оскільки наступні будуть відрізнятися.

Розроблена система використовує гібридний user-based підхід, де користувачу пропонується заповнити спеціально створену анкету, для оцінки різних аспектів його вподобань. Користувач може як надавати, так і отримувати рекомендації. На основі подібності анкет користувач отримує рекомендації, які надали інші, найбільш подібні до нього користувачі.

Система розроблена з використанням мова програмування $C#$ та технології для створення веб-застосунків ASP.Net 5 MVC 6[3]. За замовчуванням дана технологія використовує шаблон проектування MVC (Model - View - Controller)[4], що полегшує розробку та тестування функціоналу. Доступ до бази даних здійснюється за допомогою Entity Framework – це об'єктно - реляційний модуль співставлення, що дозволяє розробникам .NET працювати з реляційними даними за допомогою об'єктів, спеціалізованих для доменів. Сама ж база даних створена з використанням підходу Code First – один із підходів в Entity Framework, де за допомогою програмного коду описується модель та анотація даних, а фреймворк автоматично створює базу даних на основі цього. За замовчуванням для авторизації використовується технологія ASP.Net Identity.

Основні архітектурні рішення в системі:

  • шаблон проектування MVC (Model - View - Controller) технологія ASP.Net використовує за замовчуванням. Model – опис структури і логіки даних в системі. Controller – центральна ланка архітектури, яка обробляє запит та надає відповідь. View – зовнішнє представлення даних.
  • Шаблон проектування Repository[5] для роботи з базою даних. Створено узагальнений CRUD[6] інтерфейс IRepositryT, TKey>, де Т – клас моделі з якою працює репозиторій, TKey – тип первинного ключа. CRUD – (англ. create, read, update, delete) – чотири базові операції для роботи із персистентними сховищами даних[7] створення, зчитування, редагування, видалення. Класи-репозиторії реалізують даний інтерфейс відповідно до особливостей моделі, з якою вони працюють.
  • ASP.Net 5 MVC 6 має вбудований контейнер інверсії управління (Inversionof Control, IoC), що значно полегшує реалізацію принципу інверсії залежностей, оскільки не потрібно підключати сторонні бібліотеки для впровадження залежностей (Dependency injection, DI). Наприклад в програмному коді системи в конструктори контролерів передаються потрібні інтерфейси, а вибір відповідної реалізації покладається на IoC контейнер. Це дозволяє збільшити гнучкість системи,забезпечити слабку зв’язність об’єктів, полегшити підтримку, розширення тазаміну елементів в системі;
  • використовується асинхронна модель методів контролерів, для раціонального використання потоків при роботі з базою даних. Методи дій контролера повертають значення _Task_IActionResult_> та позначені ключовим словом async;
  • для формування анкети, визначення рекомендацій та обчислення міри подібності створено узагальнені інтерфейси IQuestionary, IRecommendationManager, IMeasure та їх реалізації. Залежності впроваджені в IoC контейнер.

Для запобігання підробки запитів використовуються токени, за допомогою функції ValidateAntiForgeryToken() та атрибута _[_ValidateAntiForgeryToken].

Алгоритм надання рекомендацій користувачу наступний:

1) перевірка на наявність анкети:

  • якщо анкета є – перейти до пункту 2;
  • якщо анкета немає – перейти до процедури заповнювання анкети;

2) дані з анкети представити у вигляді одновимірного масиву, де кожен елемент – це числове значення відповіді;

3) порівняти дані поточного користувача з даними інших користувачів з анкетами, оцінивши їх подібність за допомогою коефіцієнта кореляції Пірсона[8];

4) виділити найбільш подібних користувачів та відобразити рекомендації, які вони надали.

Для оцінки подібності профілів користувачів використовується коефіцієнт кореляції Пірсона, який якісно оцінюється за шкалою Чеддока[9]. Подібність масивів виведених даних визначається за наступним алгоритмом:

1) розрахунок середніх значень:

\[\bar{x}=\frac{\sum{{x}_{i}}}{n},\bar{y}=\frac{\sum {{y}_{i}}}{n}\]

де, ${{x}_{i}}$та ${{y}_{i}}$ – і-ті елементи масивів оцінок користувачів, n – потужність масивів;

2) розрахунок дисперсій:

\[{{S}^{2}}(x)=\frac{\sum{x}_{i}^{2}}{n}-{{\bar{x}}^{2}},{{S}^{2}}(y)=\frac{\sum{y}_{i}^{2}}{n}-{{\bar{y}}^{2}}\]

де, ${{x}_{i}}$ та ${{y}_{i}}$ – і-ті елементи масивів оцінок користувачів, $\bar{x}$ та $\bar{y}$ – середні значення масивів, n – потужність масивів;

3) розрахунок середньоквадратичних відхилень:

\[{{\sigma}_{x}}=\sqrt{{{S}^{2}}(x)},{{\sigma }_{y}}=\sqrt{{{S}^{2}}(y)}\]

де,${{S}^{2}}(x)$ та ${{S}^{2}}(y)$– дисперсії для масивів оцінок;

4) розрахунок коефіцієнта кореляції Пірсона:

\[{{r}_{xy}}=\frac{\sum({{x}_{i}}-\bar{x})({{y}_{i}}-\bar{y})}{n{{\sigma }_{x}}{{\sigma }_{y}}}\]

де, ${{x}_{i}}$ та ${{y}_{i}}$ – і-ті елементи масивів оцінок користувачів, $\bar{x}$ та $\bar{y}$ – середні значення масивів, ${{\sigma }_{x}}$ та ${{\sigma }_{y}}$ –середньоквадратичні відхилення, n – потужність масивів;

5) оцінка отриманого коефіцієнту за шкалою Чеддока(таблиця 1);

Таблиця 1 – Шкала Чеддока

6) на основі отриманих даних відбираються користувачі для яких якісна міра кореляції «помітна», «висока» та «дуже висока», тобто коефіцієнт кореляції Пірсона має значення від 0,5 і вище.

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

Перевага алгоритму:

- простота реалізаціїта розуміння;

- не потребує великих затрат обчислювальної потужності та додаткової пам’яті;

Недоліки алгоритму:

- час роботи прямо пропорційний кількості зареєстрованих користувачів із наявними анкетами.

Особливістю реалізованої системи є те, що анкета користувача містить конкретний перелік питань, що дозволяє в загальному оцінити його вподобання та контролювати проблему «лінивого користувача». Система надає рекомендації, створені іншими користувачами, тобто результат базується не лише на «холодному розрахунку», а також і на людському факторі. З технологічної точки зору систем кросплатформенна, що дозволяє розробляти та розгортати її на платформах Windows, Mac, Linux.

Висновки

Відомо напевне, що кількість даних медіаконтенту з часом лише збільшуватиметься, атому тема рекомендаційних мереж залишатиметься актуальною, як для окремих користувачів, так і для медіа гігантів, таких як Netflix, Last.fm, IMDb тощо. Тому нові підходи, методи, проміжні ланки, критерії з’являтимуться з високою частотою, що сприятиме розвитку даної теми.

В роботі було описано розробку автоматизованої системи надання та пошуку рекомендацій медіаконтенту з використанням user-based підходу на основі індивідуальних профілів користувачів з використанням критерію кореляції Пірсона, як міри подібності.

Перелік посилань

  1. Основы медиарекламного бизнеса [Електронний ресурс] – Режим доступу: http://vi\-minsk.com/business/publications/86/

  2. Н.С. Лєсна. Методи пошуку та фільтрації інформації з використанням колаборативної фільтрації - / Н. С. Лєсна, С. М. Гайдамака // Системи обробки інформації. - 2013. - № 5. - c. 80-82.

  3. The ASP.Net Site [Електронний ресурс] – Режим доступу: http://www.asp.net/

  4. Справочник «Паттерны проектирования» [Електронний ресурс] – Режим доступу: http://design\-pattern.ru/patterns/mvc.html

  5. Справочник «Паттерны проектирования» [Електронний ресурс] – Режим доступу: http://design\-pattern.ru/patterns/repository.html

  6. Techopedia [Електроннийресурс] – Режим доступу: https://www.techopedia.com/definition/25949/create\-retrieve\-update\-and\-delete\-crud

  7. Techopedia [Електронний ресурс] – Режим доступу: https://www.techopedia.com/definition/8842/persistence\-computing

  8. J.L. Rodgers and W. A. Nicewander. Thirteen ways to look at the correlationcoefficient - №1 Feb. 1988. - pp. 59-66

  9. R. E. Chaddock.Principles and methods of statistics - №7 Apr. 2014. – pp. 39-40
  • Рецензент: к.т.н., доц. каф. АУТС НТУУ "КПІ" Катін П.Ю.
May 24, 2016