Машинне навчання і Intel Xeon: рекомендаційна система для внутрішньоігрових покупок Tencent

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


— Конем ходи, вік волі не бачити!

Для того, щоб удосконалити способи взаємодії з користувачами, Tencent впровадила рекомендаційну систему. Ця система побудована на основі методів машинного навчання і покликана допомагати користувачам приймати рішення про внутрішньоігрових покупок.

Бізнес Tencent заснований на інтернеті. Компанія пропонує безліч сервісів, серед яких соціальна мережа, веб-портали, рішення для електронної комерції і онлайнові багатокористувацькі ігри. Тут ми розповімо про те, що собою являють рекомендаційні системи, про алгоритми машинного навчання, які використовує Tencent, і про те, як процесори сімейства Intel Xeon допомогли поліпшити продуктивність системи Tencent.

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

У випадку з Tencent, одне з застосувань рекомендаційної системи полягає в тому, щоб надати користувачу ігрові товари, що відповідають його потребам.

Рекомендаційна система створює список елементів з використанням таких методів: коллаборативная фільтрація, контентна фільтрація, гібридний підхід.

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

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

Гібридний алгоритм включає в себе все найкраще з двох вищеописаних підходів. Tencent, у своїй рекомендаційної системі, використовує алгоритм машинного навчання, заснований на логістичної регресії. Розповімо в двох словах про те, що це за алгоритм.

Логістична регресія
Логістична регресія – це статистичний метод прогнозного аналізу. Він є одним з найпопулярніших методів машинного навчання для бінарної класифікації. Така класифікація передбачає наявність двох класів. Наприклад, «виграш» або «програш», «так» або «ні», «істина» або «брехня», «1» або «0». Подібне, скажімо, відбувається, коли роблять ставки на скачках. Кінь або виграє гонку, або програє, тобто, є два класу: «виграш» і «програш». В даному випадку цільова (залежна) змінна ставка. Вона буде мати значення 1, якщо кінь виграє гонку, і 0 у протилежному випадку.

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


p – це ймовірність наявності події.
1-p – імовірність відсутності події.
β – ваги.
x – незалежні змінні.
В ході обчислень знаходять коефіцієнти β у вищенаведеній формулі для передбачення ймовірності виникнення події.

Рекомендаційна система Tencent і Intel Xeon E5 v4
Система машинного навчання Tencent аналізує величезні обсяги даних про поведінку гравців для того, щоб сформувати рекомендації про те, які ігрові предмети їм варто використовувати. Таким чином, потрібна серйозна обчислювальна потужність для максимального прискорення навчання моделі. Для обчислення коефіцієнтів логістичної регресії активно використовується DGEMM. DGEMM – це функція множення матриць для чисел з рухомою комою.

Система машинного навчання використовує функцію DGEMM допомогою бібліотеки Intel Math Kernel Library (Intel MKL). Процесори Intel Xeon E5 v4 підтримують набір інструкцій Intel Advanced Vector Extensions 2 (Intel AVX2). Intel MKL добре оптимізована, вона дозволяє досягти дуже високої продуктивності з використанням Intel AVX2. Бібліотека автоматично визначає нові можливості процесорів, і, якщо вона на це розрахована, користується ними. Тому, якщо в якомусь проекті задіяна Intel MKL, для забезпечення найкращого рівня продуктивності на нових процесорах досить підтримувати бібліотеку в актуальному стані.

Тестування продуктивності
Тут ми порівняємо продуктивність двопроцесорних систем при роботі з додатком, що реалізує алгоритм машинного навчання Tencent.

Перша система заснована на Intel Xeon E5-2699 v3 (2.3 ГГц, 18 ядер, 45 Мб кеш-пам'яті) і оснащена 128 Гб ОЗУ (DDR4-2133 МТ/с).

У другій використовуються процесори Intel Xeon E5-2699 v4 (2.2 ГГц, 22 ядра, 55 Мб кеш-пам'яті) і така ж, за обсягом і характеристиками, оперативна пам'ять.

Тестові машини встановлена Red Hat Enterprise Linux 7.2-kernel 3.10.0-327. Застосовується наступне ПО: GNU C Compiler Collection 4.8.2, OpenJDK 7, Spark 1.5.2, Intel MKL 11.3.

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


Порівняння продуктивності програми з використанням процесорів Intel Xeon E5-2699 v3 і v4.

Додаток підтримує масштабування, при виконанні на Intel Xeon E5-2699 v4, у якого більше ядер, воно здатне запустити більше паралельних процесів, ніж на Intel Xeon E5-2699 v3, що веде до зменшення часу навчання системи і зростання продуктивності.

А ось – результат випробувань на Intel Xeon E5-2699 v4 при відключеному і включеному наборі інструкцій Intel AVX2. Видно, що з AVX2 модуль розрахунку коефіцієнтів логістичної регресії працює на 44% швидше.


Порівняння продуктивності модуля розрахунку коефіцієнтів логістичної регресії на Intel Xeon E5-2699 v4 з відключеним і включеним Intel AVX2

Зверніть увагу на те, що наведені вище результати випробувань справедливі для конкретного набору програмного і апаратного забезпечення, вони, крім того, відображають результати оптимізації для процесорів Intel. Будь-які зміни в конфігурації здатні ці результати змінити. Те ж саме, в частині впливу конфігурації на результати, стосується і універсальних тестів продуктивності. Тому, приймаючи рішення про придбання обладнання коштує, по-перше, скористатися різними джерелами інформації про продуктивність, по-друге – враховувати те, як може вплинути на продуктивність комбінація, скажімо, якогось мікропроцесора і оперативної пам'яті або інших апаратних і програмних компонентів системи. Подробиці про продуктивність систем від Intel можна знайти на тут.

Висновки
Рекомендаційна система для внутрішньоігрових покупок вбудована в ігри Tencent. Оптимізація її продуктивності дозволяє прискорити процес прийняття рішень, що дає системі можливість швидше рекомендувати гравцям найбільш підходящі їм ігрові предмети. Бібліотека Intel MKL використовує набір інструкцій Intel AVX2, що веде до поліпшення продуктивності додатків, в яких вона використовується, на системах, оснащених процесорами Intel Xeon.
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.