Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Faktorisering av sparsomme interaksjonsmatriser ved bruk av singulærverdidekomponering | Dyp personalisering gjennom matrisefaktorisering
Market Basket Analysis og Anbefalingssystemer

Faktorisering av sparsomme interaksjonsmatriser ved bruk av singulærverdidekomponering

Sveip for å vise menyen

Oversikt over SVD

Note
Definisjon

Singular Value Decomposition, eller SVD, er en kraftig matematisk teknikk for å dekomponere en matrise i tre enklere matriser.

I anbefalingssystemer brukes SVD ofte til å analysere og komprimere store, sparsomme bruker–vare-interaksjonsmatriser, og avdekker skjulte mønstre og relasjoner.

Matematisk forklaring

Gitt en matrise A (for eksempel en bruker–vare-interaksjonsmatrise), faktoriserer SVD denne i tre matriser: U, Σ og V^T. Forholdet kan beskrives som:

A = U Σ V^T
  • U er en matrise der kolonnene er de venstre singulærvektorene;
  • Σ (Sigma) er en diagonal matrise som inneholder singulærverdiene;
  • V^T er transponatet av en matrise der kolonnene er de høyre singulærvektorene.

Denne dekomponeringen gjør det mulig å tilnærme den opprinnelige matrisen ved å bruke kun de mest signifikante singulærverdiene og vektorene, noe som er spesielt nyttig i høy-dimensjonale, sparsomme datasett.

Rolle i anbefalinger

I anbefalingssystemer er bruker–vare-matriser vanligvis sparsomme, med mange manglende oppføringer (for eksempel produkter som ikke er vurdert). SVD hjelper ved å avdekke latente egenskaper som forklarer observerte interaksjoner. Ved å rekonstruere matrisen med et redusert antall singulærverdier, kan man predikere manglende verdier—altså estimere hvordan en bruker kan komme til å vurdere et produkt de ennå ikke har interagert med. Dette muliggjør personlige anbefalinger basert på antatte preferanser, ikke bare eksplisitte data.

Bruk av SVD på en sparsom bruker–vare-matrise

Anta at du har en bruker–vare-matrise der rader representerer brukere og kolonner representerer varer. Mange oppføringer mangler (eller er satt til null), noe som representerer ukjente brukerpreferanser. Ved å bruke SVD kan du redusere matrisen til dens essensielle komponenter og bruke rekonstruksjonen til å estimere manglende verdier, som deretter kan benyttes til å generere anbefalinger.

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. Hvilken matrise i SVD inneholder singularverdiene som fanger opp viktigheten til hver latente egenskap?

2. Hva er hovedformålet med å bruke SVD på en bruker–vare-matrise i anbefalingssystemer?

question mark

Hvilken matrise i SVD inneholder singularverdiene som fanger opp viktigheten til hver latente egenskap?

Velg det helt riktige svaret

question mark

Hva er hovedformålet med å bruke SVD på en bruker–vare-matrise i anbefalingssystemer?

Velg det helt riktige svaret

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 4. Kapittel 2

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Seksjon 4. Kapittel 2
some-alt