Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Harvojen Interaktiomatriisien Faktorisointi Yksittäisarvohajotelman Avulla | Syvä Personointi Matriisihajotelman Avulla
Market Basket -analyysi ja suositusjärjestelmät

Harvojen Interaktiomatriisien Faktorisointi Yksittäisarvohajotelman Avulla

Pyyhkäise näyttääksesi valikon

SVD:n yleiskatsaus

Note
Määritelmä

Singular Value Decomposition eli SVD on tehokas matemaattinen menetelmä, jolla matriisi hajotetaan kolmeen yksinkertaisempaan matriisiin.

Suositusjärjestelmien yhteydessä SVD:tä käytetään usein suurten, harvaan täytettyjen käyttäjä-tuote-interaktiomatriisien analysointiin ja tiivistämiseen, jolloin voidaan paljastaa piileviä rakenteita ja yhteyksiä.

Matemaattinen selitys

Kun annetaan matriisi A (esimerkiksi käyttäjä-tuote-interaktiomatriisi), SVD hajottaa sen kolmeen matriisiin: U, Σ ja V^T. Yhteys voidaan esittää seuraavasti:

A = U Σ V^T
  • U on matriisi, jonka sarakkeet ovat vasemmanpuoleisia singulaarivektoreita;
  • Σ (Sigma) on diagonaalimatriisi, joka sisältää singulaariluvut;
  • V^T on matriisin transpoosi, jonka sarakkeet ovat oikeanpuoleisia singulaarivektoreita.

Tämän hajotelman avulla alkuperäinen matriisi voidaan approksimoida käyttämällä vain merkittävimpiä singulaarilukuja ja -vektoreita, mikä on erityisen hyödyllistä korkean ulottuvuuden ja harvan datan tapauksissa.

Rooli suosituksissa

Suositusjärjestelmissä käyttäjä-tuote-matriisit ovat tyypillisesti harvoja, ja niissä on paljon puuttuvia arvoja (esimerkiksi arvioimattomia tuotteita). SVD auttaa paljastamaan piileviä ominaisuuksia, jotka selittävät havaitut interaktiot. Rekonstruoimalla matriisi pienemmällä määrällä singulaarilukuja voidaan ennustaa puuttuvia arvoja—eli arvioida, miten käyttäjä mahdollisesti arvioisi tuotteen, johon hän ei ole vielä tutustunut. Tämä mahdollistaa yksilölliset suositukset pääteltyjen mieltymysten perusteella, ei pelkästään eksplisiittisen datan avulla.

SVD:n soveltaminen harvaan käyttäjä-tuote-matriisiin

Oletetaan, että käytössä on käyttäjä-tuote-matriisi, jossa rivit edustavat käyttäjiä ja sarakkeet tuotteita. Monet arvot puuttuvat (tai ovat nollia), mikä kuvaa tuntemattomia käyttäjäpreferenssejä. SVD:tä soveltamalla matriisi voidaan pelkistää olennaisiin osiin ja rekonstruoinnin avulla arvioida puuttuvat arvot, joita voidaan käyttää suositusten tuottamiseen.

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. Missä SVD:n matriisissa ovat singulaariarvot, jotka kuvaavat piilevien ominaisuuksien merkitystä?

2. Mikä on SVD:n ensisijainen tarkoitus käyttäjä-tuote-matriisille suositusjärjestelmissä?

question mark

Missä SVD:n matriisissa ovat singulaariarvot, jotka kuvaavat piilevien ominaisuuksien merkitystä?

Valitse oikea vastaus

question mark

Mikä on SVD:n ensisijainen tarkoitus käyttäjä-tuote-matriisille suositusjärjestelmissä?

Valitse oikea vastaus

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 4. Luku 2

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Osio 4. Luku 2
some-alt