Hvordan iTunes Genius virkelig virker

Lige siden indslaget debuterede i 2008, har der været en masse spekulation om, hvordan iTunes Genius udfører sin afspilningslisteopbyggende magi. Nu har en ingeniør hos Apple, der arbejder på iTunes Genius-teamet, afsløret nogle fristende spor -en sjælden afsløring for det berygtede hemmelighedsfulde selskab.





Rekapitulerer, hvad Steve Jobs tidligere har sagt om iTunes Genius, skriver Apple-ingeniør Erik Goldman i sin indlæg på Quora at udgangspunktet for Genius-tjenesten er en pakke med brugsdata – hvilke sange en bruger har i hans eller hendes bibliotek (og formodentlig hvor ofte han eller hun spiller dem) – sendt fra iTunes-applikationen, som er foldet til en større database over brugere og sange.

Dybest set sammenlignes dit bibliotek af spor med alle de andre Genius-brugeres sporbiblioteker. Apple kører derefter et sæt tidligere hemmelige algoritmer, som Goldman beskrev som ligetil anbefalingsalgoritmer svarende til dem, der bruges af andre tjenester som f.eks. Netflix når det foreslår film, som en bruger kan se nu eller tilføje til sin quene, for at generere statistik for hver sang. Disse statistikker beregnes globalt med jævne mellemrum og gemmes i en cache, bemærker Goldman, fordi data om ligheden mellem to sange ændrer sig langsomt – det antages, at den eneste grund til, at det overhovedet ændrer sig, er på grund af den ændrede smag hos publikum, og introduktionen af ​​nye numre og kunstnere.

Goldman joker med, at hvis han fortalte dig, hvordan Genius fungerer, ville han være nødt til at dræbe dig (eller i det mindste have en gruppe politibetjente plyndre din hjerne for at hente Apples retmæssige ejendom), men han fortsætter med at beskrive, hvordan programmet alligevel fungerer.

For at afdække en del af, hvordan iTunes Genius fungerer, siger Goldman, skal du se på informationshentningsalgoritmer, især dem, der udnytter vektor-rum-modellen. Men før du kan sammenligne faktorer, såsom hyppigheden af ​​en bestemt kunstner eller genre i en brugers bibliotek eller afspilningslister, på tværs af iTunes-biblioteker via en Vector-Space-model, har du brug for en smart måde at definere den faktor, der giver tingene mere vægt der virkelig betyder noget.



En enkel måde at korrekt vægte faktorer til sammenligning er det, der er kendt som term frekvens-omvendt dokumentfrekvens (tf-idf). Det er simpelthen en måde at sammenligne, hvor ofte en bestemt faktor forekommer i et enkelt dokument (eller sang eller bibliotek), med hvor ofte denne faktor forekommer i en større krop, såsom summen af ​​alle iTunes-biblioteker, der er gemt af Genius-serverne. Således vil en faktor, der forekommer temmelig ofte i en given brugers bibliotek – for eksempel en affinitet til et obskurt indy-bånd – have en tendens til at være en mere kraftfuld determinant, medmindre det også sker ret ofte i det samlede datasæt – som ville være tilfældet, hvis faktoren var en affinitet for Beatles.

Når du har sorteret dine tf-idf-vægte, kan du repræsentere dem i en vektorrumsmodel som vektorer.

I dette eksempel (høflighed Wikipedia ) to forskellige dokumenter (eller sange) har alle deres forskellige tf-idf-vægte repræsenteret som en enkelt vektor (f.eks. d1), som derefter kan sammenlignes med et andet dokument/vektor (f.eks. d2) og en forespørgsel (q) – som f.eks. af disse to sange ligner mest den, jeg lige har klikket på knappen 'genius' for. Uanset hvilken vinkel der er tættest på din forespørgselsvektor, er mere ens.



Goldman graver dybere ned i iTunes Genius-systemet og fortæller om dets brug af latent-faktor-algoritmer. Latent-faktor-algoritmer, især, har en tendens til at fungere meget godt på enorme datasæt med et enormt antal dimensioner og en masse støj, siger Goldman.

Latente faktorer er det, der ryster ud, når du laver en bestemt form for statistisk analyse, kaldet en faktoranalyse , på et sæt data, og leder efter de skjulte, usete variabler, der forårsager variationen i alle de forskellige variabler, du undersøger. Lad os sige, at variabiliteten i et dusin forskellige variabler viser sig at være forårsaget af kun fire eller fem skjulte variable - det er dine latente faktorer. De får mange andre variable til at bevæge sig i mere eller mindre låsetrin.

At opdage de skjulte eller latente faktorer i dit datasæt er en praktisk måde at reducere størrelsen af ​​det problem, du skal beregne, og det virker, fordi mennesker er forudsigelige: Folk, der kan lide Emo-musik, er triste, og triste mennesker kan også lide lydsporene til filmversioner af vampyrromaner, der handler om længsel osv. Du kan måske tænke på det som det matematiske udtryk for en stereotype – kun det virker.



Hvis du vil gå rigtigt i dybden med dette emne, foreslår Goldman, at du læser papirerne det kom ud af Netflix-prisen på millioner dollar, som blev vundet af en kombination af hold ledet af ingeniører fra AT&T. Deres udfordring var at forbedre Netflixs anbefalingsmotor, og en af ​​deres primære innovationer var at reducere beregningsintensiteten af ​​de algoritmer, der blev brugt i anbefalingsmotorer.

Tidligere var mængden af ​​beregning, der krævedes for at foretage en parvis sammenligning af to genstande i Netflix's (og formentlig Apples) bibliotek skaleret som en kvadratisk funktion af antallet af sammenligninger, der skal udføres. Men AT&T-teamet fandt ud af, hvordan man omskriver en grundlæggende algoritme for at få problemet til kun at skalere lineært med mængden af ​​involverede data. Så uanset hvad Apples nye datacenter er for, er det nok ikke for at beregne Genius-resultater.

skjule