🎬 Рекомендувач Відео — Матрична Факторизація Наживо
Спостерігайте, як рекомендувач на основі колаборативної фільтрації вивчає приховані фактори користувачів і відео за допомогою справжньої матричної факторизації методом градієнтного спуску, збігаючись до персоналізованих рейтингів у міру надходження оцінок.
Про Рекомендувач Відео
Реальні відеоплатформи рекомендують контент мільйонам користувачів, ніколи не читаючи ні транскрипту, ні тегів жодного відео — вони покладаються на колаборативну фільтрацію: патерн того, хто що оцінив або переглянув. Ця симуляція будує справжню, придатну до запуску версію цієї ідеї. Синтетична спільнота з 24 користувачів оцінює синтетичний каталог із 32 відео у восьми прихованих жанрах, створюючи розріджену матрицю оцінок, у якій приблизно 80-85% клітинок порожні. Модель матричної факторизації — та сама родина алгоритмів (Funk-SVD, SVD++), що виграла Netflix Prize — ініціалізується малими випадковими прихованими векторами для кожного користувача й кожного відео, а потім тренується справжнім стохастичним градієнтним спуском: кожна епоха перемішує спостережені оцінки, обчислює поточну похибку прогнозу для кожної й підштовхує відповідний вектор користувача, вектор відео та члени зміщення, щоб зменшити цю квадратичну похибку, з L2-штрафом, що стримує перенавчання.
Верхній графік проєктує живі K-вимірні вектори факторів на дві головні компоненти (обчислені справжньою степеневою ітерацією над коваріацією факторів кожного кадру), тож ви можете спостерігати, як користувачі й тематично схожі відео зближуються виключно на основі патернів оцінок — моделі ніколи не надається жодна мітка жанру. Нижній графік відстежує справжній RMSE тренування епоха за епохою. Налаштуйте вимірність прихованого простору, швидкість навчання та силу регуляризації, щоб побачити їхній вплив на швидкість збіжності й кінцеву похибку, транслюйте нові оцінки, щоб симулювати живу платформу, і оберіть будь-якого користувача, щоб побачити, як оновлюються його живі топ-N рекомендації в міру продовження тренування.
Часті питання
Що таке матрична факторизація в контексті рекомендаційних систем?
Матрична факторизація трактує матрицю оцінок користувач-об'єкт як (переважно порожню) і апроксимує її добутком двох набагато менших матриць: матриці факторів користувачів U та матриці факторів об'єктів V, де кожен рядок — короткий вектор прихованих чисел. Прогнозована оцінка для користувача u і відео i — це скалярний добуток їхніх двох векторів плюс члени зміщення користувача й об'єкта та глобальне середнє. Оскільки вектори факторів спільні для всіх оцінок користувача, модель може узагальнювати на відео, які цей користувач ніколи не оцінював, що є всією суттю колаборативної фільтрації: не потрібні жодні теги контенту чи метадані, лише патерн того, хто що оцінив.
Як насправді працює цикл тренування стохастичного градієнтного спуску тут?
Кожну епоху список спостережених трійок (користувач, відео, оцінка) перемішується й обробляється по одній. Для кожної трійки модель обчислює свою поточну прогнозовану оцінку, бере похибку (фактичне мінус прогноз) і підштовхує вектор користувача, вектор об'єкта та обидва члени зміщення на малий крок у напрямку, що зменшує цю окрему похибку, масштабований швидкістю навчання. Член регуляризації L2 водночас стискає кожен фактор до нуля, щоб боротися з перенавчанням на користувачах чи відео з дуже малою кількістю оцінок. Повторення цього протягом багатьох епох — це справжній стохастичний градієнтний спуск із міні-пакетом розміру один на реальній функції втрат квадратичної похибки, яку використовують класичні алгоритми на кшталт Funk-SVD і родини SVD++, що виграла Netflix Prize.
Чому точки користувачів і відео рухаються на діаграмі простору факторів?
Діаграма розсіювання — це жива проєкція на дві головні компоненти (обчислена справжньою степеневою ітерацією над коваріацією поточних векторів факторів) справжніх K-вимірних векторів, які оновлюються градієнтним спуском. У міру того як тренування зменшує похибку реконструкції, користувачі, які схоже оцінюють схожі відео, притягуються один до одного в просторі факторів, а відео, які подобаються схожим наборам користувачів, теж притягуються одне до одного — навіть попри те, що моделі ніколи не повідомляли жодних міток жанру. Кольори на квадратах відео показують справжній (прихований) жанр лише для того, щоб ви могли візуально перевірити, що модель справді виявила схожі кластери лише з оцінок.
Що показує крива RMSE тренування і чому вона виходить на плато?
Середньоквадратична похибка (RMSE) переобчислюється кожну епоху для кожної спостереженої оцінки з використанням щойно оновлених факторів, тож крива є прямою, чесною мірою того, наскільки добре модель наразі реконструює дані, які вона справді бачила. Спочатку вона швидко падає, поки градієнтний спуск коригує випадково ініціалізовані фактори, а потім вирівнюється, коли модель наближається до найкращого підбору, який дозволяють обрана прихована вимірність і сила регуляризації. Збільшення прихованої вимірності K зазвичай дозволяє RMSE впасти далі (більша здатність представляти смаки), тоді як збільшення регуляризації λ обмінює вищий RMSE тренування на фактори, які менш схильні перенавчатися на розріджених, зашумлених оцінках.
Як потокова передача нової оцінки змінює рекомендації?
Натискання «Потокова оцінка» негайно додає одне свіжозгенероване спостереження (користувач, відео, оцінка) до розрідженого тренувального набору, імітуючи реальну платформу, де нові оцінки надходять безперервно. Це не скидає модель: наступні епохи SGD включатимуть цей новий доказ разом із усіма старими оцінками, підштовхуючи відповідні вектори користувача й відео, а протягом наступних кількох епох — зсуваючи топ-N список прогнозів цього користувача та прогнози всіх інших для цього відео теж, оскільки власний вектор факторів відео змістився.
Що таке проблема холодного старту і як ця симуляція її ілюструє?
Проблема холодного старту — це складність зробити гарні рекомендації для користувача чи об'єкта з малою кількістю або без спостережених оцінок, оскільки колаборативна фільтрація має майже жодного сигналу, з якого можна вивчити змістовний вектор факторів. У цій симуляції розрідженість приблизно 80-85% (більшість клітинок користувач-відео неоцінені) означає, що деякі користувачі й відео починають із дуже малою кількістю спостережених оцінок, тож їхні вектори факторів залишаються близько до малої випадкової ініціалізації, а їхній член зміщення домінує в прогнозі; лише в міру надходження більшої кількості оцінок для цього користувача чи відео їхня позиція на діаграмі простору факторів змістовно рухається, а прогнози загострюються.
Як це порівнюється зі справжніми виробничими рекомендаційними системами?
Виробничі системи таких сервісів, як Netflix, YouTube і Spotify, використовують ту саму основну ідею — вивчені приховані фактори, треновані оптимізацією на основі градієнта на неявному чи явному зворотному зв'язку — але в набагато більшому масштабі (сотні мільйонів користувачів та об'єктів), часто в поєднанні з глибокими нейронними кодувальниками, додатковою інформацією (час перегляду, пристрій, час доби), наближеним пошуком найближчих сусідів для обслуговування та окремими етапами переранжування. Ця симуляція точно відтворює математичне ядро — розріджені оцінки, приховані фактори, справжній SGD із квадратичною похибкою та регуляризацією L2 — з невеликим синтетичним набором даних, тож весь процес навчання, від випадкової ініціалізації до збіжності, можна спостерігати в реальному часі.
Розріджена матриця оцінок 24 користувачі × 32 відео факторизується на приховані вектори для кожного користувача й відео, тренується епоха за епохою справжнім стохастичним градієнтним спуском на квадратичній похибці реконструкції плюс регуляризація L2; жива PCA зі степеневою ітерацією проєктує вивчені фактори у 2D, а другий графік відстежує справжній RMSE тренування в міру збіжності.
3D · рушій Three.js / WebGL · ціль 60 кадрів/с · працює повністю на клієнті, без встановлення