Articles

anbefaling brug Matrice Faktorisering

i en tid med digital verden, ser vi anbefaling i alle områder vejr det er e-handel hjemmeside eller Underholdning hjemmeside eller sociale netværkssider. Anbefaling giver ikke kun brugeren sit anbefalede valg (baseret på tidligere aktivitet), men det fortæller også om brugeradfærd (sentimental analyse eller emotion AI).

så lad os først forstå, hvilken anbefaling der er. Det er dybest set anbefale element til brugeren baseret på sin tidligere søgning/aktivitet.

Figur 1 – amason anbefaling

Figur 1 fortæller Amasons anbefaling baseret på tidligere gennemsøgningshistorik og tidligere søgninger. Så vi kan sige, at anbefaling dybest set forudsiger fremtidig adfærd baseret på tidligere adfærd. Der er to typer tilgange, der bruges i anbefalingssystem

1 – indholdsbaseret filtrering

2 – samarbejdsbaseret filtrering

indholdsbaseret filtrering-

det er baseret på ideen om at anbefale varen til bruger K, som ligner tidligere vare højt vurderet af K. grundlæggende koncept i indholdsbaseret filtrering er TF-IDF (Term frekvens — invers dokumentfrekvens), som bruges til at bestemme vigtigheden af dokument/ord/film osv. Indholdsbaseret filtrering viser gennemsigtighed i anbefalingen, men i modsætning til samarbejdsfiltrering kan den ikke arbejde effektivt for store data

samarbejdsbaseret filtrering

det er baseret på ideen om, at folk, der deler den samme interesse for bestemte slags elementer, også vil dele den samme interesse for en anden slags elementer i modsætning til indholdsbaseret, som dybest set er afhængige af metadata, mens det beskæftiger sig med aktivitet i det virkelige liv. Denne type filtrering er fleksibel til det meste af domænet (eller vi kan sige, at det er domænefrit), men på grund af koldstartproblem, data sparsity (som blev håndteret af matriksfaktorisering) denne type algoritme står over for et tilbageslag i nogle scenarier.

matriksfaktorisering kommer i rampelyset efter netfleks-konkurrencen (2006), da Netfleks annoncerede en præmiepenge på $1 million til dem, der vil forbedre dens rod gennemsnitlige kvadratpræstation med 10%. Et træningsdatasæt på 100.480.507 vurderinger, som 480.189 brugere gav til 17.770 film.

matriksfaktorisering er den samarbejdsbaserede filtreringsmetode, hvor matricen m*n nedbrydes til m*k og k*n . Det er dybest set anvendes til beregning af komplekse matrice drift. Opdeling af matrice er sådan, at hvis vi multiplicerer faktoriseret matrice, får vi original matrice som vist i figur 2. Det bruges til at opdage latente funktioner mellem to enheder (kan bruges til mere end to enheder, men dette vil komme under tensorfaktorisering)

figur 2: – Kilde

nedbrydning af matricer kan klassificeres i tre typer-

1 – LU nedbrydning — nedbrydning af matricer i L og U-matricer, hvor L er lavere trekantet matricer og U er øvre trekantede matricer, der generelt bruges til at finde koefficienten for lineær regression. Denne nedbrydning mislykkedes, hvis matricen ikke let kan nedbrydes

2 – matricen nedbrydning – nedbrydning af matricen i K og R, hvor K er firkantet matricen, og R er den øverste trekantede matrice (ikke nødvendig firkant). Anvendes til eigen systemanalyse

3-Cholesky nedbrydning – dette er den mest anvendte nedbrydning i maskinindlæring. Anvendes til beregning af lineær mindste kvadrat for lineær regression

Matrice faktorisering kan bruges i forskellige domæne såsom billedgenkendelse, anbefaling. Matricen, der bruges i denne type problemer, er generelt sparsom, fordi der er en chance for, at en bruger kun kan bedømme nogle film. Dimensionalitetsreduktion (for at vide mere om dimensionalitetsreduktion henvises til Forbandelse af dimensionalitet), nedbrydning af latent værdi

problemstilling

i tabel 1 har vi 5 brugere og 6 film, hvor hver bruger kan bedømme enhver film. Som vi kan se, at Henry ikke sats for Thor og Rocky ligeledes Jerry ikke sats for Avatar. I den virkelige verden scenario disse typer af matricer kan være meget sparsom matrice

vores problemstilling er, at vi er nødt til at finde ud af ratings for ikke – klassificerede film som vist i tabel 1

Table 1-Movie Dataset

som vores mål at finde bedømmelse af brugeren ved matrice faktorisering men før det er vi nødt til at gå gennem ental værdi nedbrydning (SVD), fordi matrice faktorisering og SVD er relateret til hver enkelt andet

SVD og matrice faktorisering

før vi går til dybden af SVD lad os først forstå, hvad der er K og transponere(K). Hvis vi udfører PCA på matricen K(tabel 1), får vi al brugervektoren. Senere kan vi sætte disse vektorer i kolonne af matrice U, og hvis vi udfører PCA på transponere(K), får vi al filmvektoren, der bliver kolonne for matrice M.

så i stedet for at udføre PCA på K og transponere(K) separat, kan vi bruge SVD, som kan udføre PCA på K og transponere(K) i et enkelt skud. SVD er grundlæggende faktoriseret matrice K i matricen U, matricen M og diagonal matricen:

hvor k er original matrice, U er brugermatrice,m er filmmatrice og den midterste er diagonal matrice

for enkelhedens skyld kan vi fjerne diagonal matrice i et stykke tid, så ny ligning bliver:

lad r er rating defineret for bruger U og element i, p er række af M for en bruger og K er kolonnen af transponere(u) for et bestemt element i. så ligning bliver:

Bemærk — Hvis k er tæt matrice værdi end m vil være egenvektor af K*transponere(k), tilsvarende værdi af u vil være egenvektor af transponere(k)*k men vores matrice er sparsom matrice vi kan ikke beregne u og m ved denne tilgang

så her er vores opgaven er at finde matricen m og u . En måde er at initialisere tilfældig værdi til M og U og sammenligne den med original Matrice K, hvis værdien er tæt på K end stop proceduren ellers minimere værdien af U og M, indtil de er tæt på K . Processen med denne type optimering kaldes gradient descent

figur 3: gradient descent rutediagram

så vores grundlæggende opgave er at minimere den gennemsnitlige kvadratfejlfunktion, som kan repræsenteres som :

As our main task is to minimize the error i.e. vi er nødt til at finde i hvilken retning vi skal gå for at vi skal differentiere det, derfor bliver ny ligning

div >

derfor vil den opdaterede værdi for P og u nu blive:

Where alpha is learning rate generally its value is very small as higher alpha can overshoot the minimum value.

Regularization in Recommendation

When we fit the model to the training data it returns some decision line . Baseret på denne beslutningslinje kan vi skelne fordelingen af data

figur 4: underfit vs overfit

i figur 2 er det første plot, hvor modellen er monteret lineært, mens den i andet plot er udstyret med polynomgrad. Ved første udseende ser det ud til, at andet plot er langt bedre end første plot, da det giver 99% nøjagtighed på træningsdata, men hvad hvis vi introducerer testdata, og det giver 50% nøjagtighed på testdata . Denne type problemer kaldes overmontering, og for at overvinde dette problem introducerer vi et koncept kaldet regulering.

da overmonteringsproblem er almindeligt i maskinindlæring, så der er to typer reguleringsmetode, som kan bruges til at fjerne overmontering

1 – L1 – regulering

2-L2-regulering

L1-regulering Tilføj lineær størrelse af koefficient som strafperiode, mens den i L2 tilføjer kvadratisk størrelse af koefficient til tabsfunktionen/fejlfunktionen (som diskuteret ovenfor). L1 returnerer sparsomme matricer, mens L2 ikke gør det. L1-regulering fungerer godt i funktionsvalg i sparsom matrice.

i anbefalingsdatasæt er der også store chancer for overfitting af data. Så for at fjerne overfittingsproblemet kan vi tilføje L2-regulering (da matricen allerede er sparsom, har vi ikke brug for L1-regulering her)i tabsfunktion, hvorfor ny ligning af tabsfunktion vil være:

igen kan vi finde gradient på Opdateret MSE og få opdaterede point ved at følge den samme tilgang som diskuteret ovenfor

en vigtig ting at overveje i ovenstående scenarie matricen P og K er ikke-negative, hvorfor disse typer faktorisering også kaldes ikke-negativ faktorisering. Som ikke-negativ faktorisering udtrækker automatisk information til ikke-negativt sæt vektor. NMF er meget udbredt i billedbehandling, tekst minedrift, analyse af høj dimensionelle data