Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Факторизація розріджених матриць взаємодій за допомогою сингулярного розкладу | Глибока персоналізація через матричну факторизацію
Аналіз кошика покупок і системи рекомендацій

Факторизація розріджених матриць взаємодій за допомогою сингулярного розкладу

Свайпніть щоб показати меню

Огляд SVD

Note
Визначення

Сингулярне розкладання або SVD — потужний математичний метод для розкладання матриці на три простіші матриці.

У контексті рекомендованих систем SVD часто використовується для аналізу та стиснення великих розріджених матриць взаємодії користувач-товар, виявляючи приховані закономірності та зв'язки.

Математичне пояснення

Нехай дана матриця A (наприклад, матриця взаємодії користувач-товар), SVD розкладає її на три матриці: U, Σ та V^T. Взаємозв'язок можна описати так:

A = U Σ V^T
  • U — матриця, стовпці якої є лівими сингулярними векторами;
  • Σ (Сігма) — діагональна матриця, що містить сингулярні значення;
  • V^T — транспонована матриця, стовпці якої є правими сингулярними векторами.

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

Роль у рекомендаціях

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

Застосування SVD до розрідженої матриці користувач-товар

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

123456789101112131415161718192021222324252627282930
import numpy as np # Example sparse user-item matrix (0 indicates missing/unknown rating) user_item_matrix = np.array([ [5, 3, 0, 1], [4, 0, 0, 1], [1, 1, 0, 5], [0, 0, 5, 4], [0, 1, 5, 4], ]) # Filling missing values (0) with the mean of non-zero elements for SVD mean_value = user_item_matrix[user_item_matrix != 0].mean() filled_matrix = np.where(user_item_matrix == 0, mean_value, user_item_matrix) # Performing SVD U, sigma, VT = np.linalg.svd(filled_matrix, full_matrices=False) # Keeping only top 2 singular values for dimensionality reduction k = 2 U_k = U[:, :k] sigma_k = np.diag(sigma[:k]) VT_k = VT[:k, :] # Reconstructing the matrix using only top k components approx_matrix = np.dot(np.dot(U_k, sigma_k), VT_k) print('Original matrix with missing values filled:') print(np.round(filled_matrix, 2)) print('\nApproximated matrix (using top 2 singular values):') print(np.round(approx_matrix, 2))

1. Яка матриця у SVD містить сингулярні значення, що відображають важливість кожної прихованої ознаки?

2. Яка основна мета застосування SVD до матриці користувач-товар у рекомендованих системах?

question mark

Яка матриця у SVD містить сингулярні значення, що відображають важливість кожної прихованої ознаки?

Виберіть правильну відповідь

question mark

Яка основна мета застосування SVD до матриці користувач-товар у рекомендованих системах?

Виберіть правильну відповідь

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 4. Розділ 2

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Секція 4. Розділ 2
some-alt