Dette er den første i en serie af indlæg, der illustrerer, hvad vores data team er op til, at eksperimentere med, og opbygning ‘under the hood’ på CitizenNet.
Dr. Arshavir Blackwell er CitizenNet er hjemmehørende Data Videnskabsmand. Han har været involveret i machineeb-skala machine learning og information hentning i over 10 flere år.
Hot tip: Klik på billederne for en større visning.,et af de første indlæg, vi offentliggjorde, talte på et højt niveau af det tekniske problem, som Citi .ennet forsøger at løse. I det væsentlige forsøger vi at forudsige, hvilke kombinationer af demografiske og interessemål der vil være interesseret i noget indhold.
på Citi .ennet-platformen opretter en bruger et projekt, der definerer (bredt) målgruppen, de stykker Facebook-indhold, de søger at promovere, og anden kampagne-og finansiel information.bag kulisserne bygger et robust forudsigelsessystem målene for projektet., Dette forudsigelsessystem trænes i tidligere adfærd, som det derefter bruger til at forudsige, hvordan et fremtidig (ukendt) projekt bedst kan målrettes. En af komponenterne i forudsigelsessystemet er en klassifikator, som i øjeblikket er et ensemble af både neurale netværk og tilfældige Skovklassifikatorer. Dette blogindlæg har til formål at illustrere det grundlæggende i disse metoder.
neuralt netværk
neurale netværk har længe været brugt i problemer som dette med mange data, mange variabler og muligheden for støj i dataene.
hvert indgangspunkt er en højdimensionel vektor., Det neurale netværk er organiseret i en række lag (se figur), hvor inputvektoren kommer ind på venstre side af netværket, som derefter projiceres til et “skjult lag.”Hver enhed i det skjulte lag er en vægtet sum af værdierne i det første lag. Dette lag projicerer derefter til et outputlag, hvor det ønskede svar vises.
netværket trænes med input og det ønskede output, hvilket i vores tilfælde er, om punktet repræsenterer et lavt klikfrekvens (CTR) eller højt Ctr-nøgleord., Derefter opstår træning: vægte ved både de skjulte og output lag justeres, så den faktiske output svarer til den ønskede output. Når det er trænet, skal det neurale netværk tage et nyt datapunkt og udsende enten et nul (lav CTR) eller et (høj CTR). Hvis klassifikatoren er usikker, vil den producere en værdi et sted imellem.
styrker og svagheder. Neurale netværk har en hel del fordele., Hvis vi har en masse input-og outputdata at lære, men ingen ID.om, hvad funktionen kortlægning af de to sammen er, kan netværket lære denne funktion uden at vi eksplicit skal give den. Neurale netværk er også gode med datasæt, der er støjende, eller hvor nogle input har manglende variabler., Imidlertid har neurale net også en vigtig ulempe ved mange andre tilgange: svaret, der fremgår af et neuralt netværks vægte, kan være vanskeligt at forstå (det fungerer muligvis, men vi ved ikke hvordan), og netværkets træning kan tage længere tid end visse andre metoder til maskinindlæring, såsom tilfældige skove, som vi nu vender os til.
tilfældige skove, en Ensemblemetode
den tilfældige skov (Breiman, 2001) er en ensembletilgang, der også kan betragtes som en form for nærmeste nabo forudsigelse.
ensembler er en kløft-og-erobre tilgang bruges til at forbedre ydeevnen., Hovedprincippet bag ensemble metoder er, at en gruppe af “svage elever” kan mødes for at danne en “stærk lærende”. Figuren nedenfor (taget herfra) giver et eksempel. Hver klassifikator, individuelt, er en “svag lærende,” mens alle klassifikatorer taget sammen er en “stærk lærende”.
de data, der skal modelleres, er de blå cirkler. Vi antager, at de repræsenterer en underliggende funktion plus støj. Hver enkelt elev er vist som en grå kurve. Hver grå kurve (en svag elev) er en rimelig tilnærmelse til de underliggende data., Den røde kurve (ensemblet “stærk lærende”) kan ses at være en langt bedre tilnærmelse til de underliggende data.
træer og skove. Den tilfældige skov starter med en standard maskinindlæringsteknik kaldet et “beslutningstræ”, som i ensemble svarer til vores svage lærer. I et beslutningstræ indtastes et input øverst, og når det krydser træet, bliver dataene bucketed i mindre og mindre sæt. For detaljer se her, hvorfra nedenstående figur er taget.
i dette eksempel rådgiver træet os, baseret på vejrforhold, om vi skal spille bold., For eksempel, hvis udsigterne er solrige, og fugtigheden er mindre end eller lig med 70, er det sandsynligvis OK at spille.
den tilfældige skov (se figuren nedenfor) tager dette begreb til det næste niveau ved at kombinere træer med begrebet et ensemble. Således, i ensemble vilkår, træerne er svage elever og tilfældig skov er en stærk lærende.
Her er, hvordan et sådant system trænes; for nogle antal træer T:
- prøve n tilfælde tilfældigt med udskiftning for at oprette en delmængde af dataene (se øverste lag af figuren ovenfor). Delmængden skal være omkring 66% af det samlede sæt.,
- ved hver node:
- For nogle tal m (se nedenfor) vælges m forudsigelsesvariabler tilfældigt fra alle forudsigelsesvariablerne.
- forudsigelsesvariablen, der giver den bedste split, ifølge en eller anden objektiv funktion, bruges til at udføre en binær splittelse på den pågældende knude.
- ved den næste knude skal du vælge en anden m-variabel tilfældigt fra alle forudsigelsesvariabler og gøre det samme.,
Afhængig af værdien af m, der er tre lidt forskellige systemer:
- Tilfældig splitter udvalg: m =1
- Breiman ‘ s bagger: m = totalt antal af indikator variabler
- Tilfældig skov: m << antallet af indikator variabler. Brieman foreslår tre mulige værdier for M:. m M, m M og 2 m m
kører en tilfældig Skov. Når et nyt input er indtastet i systemet, er det køre ned alle træerne., Resultatet kan enten være et gennemsnit eller vægtet gennemsnit af alle de terminale noder, der nås, eller, i tilfælde af kategoriske variabler, et stemmeflertal.
Bemærk, at:
- med et stort antal forudsigere vil det kvalificerede forudsigelsessæt være helt forskelligt fra node til node.
- jo større korrelation mellem træer er, desto større er den tilfældige skovfejlrate, så et pres på modellen er at have træerne så ukorrelerede som muligt.
- når m går ned, går både korrelation mellem træer og styrken af de enkelte træer ned., Så nogle optimale værdi af m skal opdages.
styrker og svagheder. Tilfældige skovkørsler er ret hurtige, og de er i stand til at håndtere ubalancerede og manglende data. Tilfældige svagheder i skoven er, at når de bruges til regression, kan de ikke forudsige ud over rækkevidden i træningsdataene, og at de kan over-fit datasæt, der er særligt støjende. Selvfølgelig er den bedste test af enhver algoritme, hvor godt det virker på dit eget datasæt.,
Test af vores kriterier for klassificering
for At forstå, hvordan vi teste klassificeringen, vi skal forklare flere begreber:
- cross-validering
- tærskler
- betyder præcision
- præcision ovenfor chance
Cross-validering
Vores klassificeringen test bør være økologisk gyldig. Det skal bevise vores klassificering under forhold så tæt som muligt på produktionsmiljøet.,
i produktionen er klassifikatoren uddannet på mange projekter, hvor vi kender CTRs, men virkelig vil vi gerne vide, hvordan klassifikatoren forudsiger CTRs for et nyt projekt, det aldrig har set før.
Vi tester vores klassifikator ved hjælp af en teknik kaldet “krydsvalidering”: træn klassifikatoren på alle projekter undtagen en. Selvfølgelig kender vi også de korrekte CTRs til dette hold-out projekt, så vi kan se, hvor godt klassifikatoren gør det uden at snyde ved at træne klassifikatoren på hold-out. Vi gør dette igen med hvert projekt. Se figuren nedenfor.,
Lad os sige, at vi har projekter gennem F. Vi tog en klassifikator på projekter A-E, og test på F. Så vi tog på A og C til F, og test på B. Vi gør det igen, holder hvert projekt, indtil vi tog på En gennem E og test på F. Hvert projekt er et emne i vores eksperiment, med emner fra A til F (se figur nedenfor).
endelig indsamler vi resultaterne fra hver krydsvalideringskørsel til statistisk analyse. Det eksperimentelle spørgsmål, vi ønsker at besvare: giver klassifikatoren os mere information om CTR end bare at gætte?,
tærskler
klassifikatoren forudsiger, om inputvektoren vil resultere i en lav eller høj CTR. Klassifikatorens output er et tal fra nul til en, give eller tage. Et nul forudsiger lav CTR, en forudsiger høj CTR. Men hvad gør vi, hvis klassifikatoren udsender en værdi imellem, siger en 0,4 eller en 0,6? Vi skal vælge en tærskel. Over denne værdi behandler vi klassificeringsudgangen som forudsigelse af høj CTR. Under denne værdi behandler vi klassificeringsoutputtet som forudsigelse af lav CTR.klassifikatoren er ikke perfekt, så nogle gange vil den lave fejl., Nogle gange vil klassifikatoren forkert forudsige, at et højt Ctr-element er lavt (en “miss”), og nogle gange vil klassifikatoren forkert forudsige, at et lavt Ctr-element er højt (en “falsk alarm”).
de følgende figurer viser en frekvensfordeling for klassificeringsudgangen for både lave og høje Ctr-elementer. Høje Ctr-elementer, i grønt, har en tendens til at resultere i en klassifikatorudgang mod 1. Lav Ctr elementer, i rødt, tendens til at resultere i klassifikator output mod 0. Bemærk, at afstanden mellem de to kurver i alle tre figurer forbliver uændret. Alt, der ændrer sig, er tærsklen.,
Antag, at vi har i alt 1.000 datapunkter, jævnt fordelt mellem lav og høj CTR. I ovenstående figur er vores tærskel ret høj (siger 0,85). Dette resulterer i en relativt lav falsk alarmhastighed (kun 50 elementer i alt er falske alarmer) og en temmelig høj miss rate (100 elementer, der er i sandhed høj CTR er savnet).
i figuren nedenfor, ved den laveste tærskel (siger 0,40), går vores falske alarmhastighed op til 100, og vores miss rate går ned til 75. Så når vi sænker vores tærskel, går vores falske alarmhastighed op fra 50 til 75 til 100, mens vores miss-sats går ned fra 100 til 90 til 75.,
Vi trækker tærsklen baseret på hvilken type fejl vi vil undgå flere, savner eller falske alarmer. En højere tærskel betyder flere fejl og færre falske alarmer. En lavere tærskel betyder det modsatte. Ændring af tærsklen ændrer ikke klassifikatorens underliggende nøjagtighed, det flytter bare fejlen rundt.
gennemsnitlig præcision
klassifikatorens effektivitet er afstanden mellem de to midler, som ikke varierer, når tærskelændringerne ændres. En måde at måle effektiviteten af klassifikatoren på er “præcisionen”., Præcision er antallet af virkelig korrekte elementer (“hits”) divideret med antallet af elementer, som klassifikatoren siger er korrekte (hits + falske alarmer).
i vores eksempel ovenfor har vi 1.000 datapunkter, hvoraf 500 er høje CTR. Vores klassifikator fanger korrekt 400 høje CTRs. Klassifikatoren angiver yderligere 50 point er høje CTRs, når de faktisk er lave CTRs. Det betyder, at vi har 50 falske alarmer. Disse resulterer i en præcision på 400/450 = 88.88% elementer, som klassifikatoren siger er korrekte (hits + falske alarmer).,
“gennemsnitlig præcision” tager højde for problemerne med at vælge en tærskel, nævnt ovenfor, ved at udføre denne beregning ved en række tærskler og tage gennemsnittet.
forbedring over Chance
Desværre er det i virkeligheden ikke så let som dette: projekter varierer meget i antallet af høje Ctr-nøgleord. Nogle projekter indeholder virkelig kun 15% høj CTR, mens andre er så høje som 80% eller 90%. Finanssektoren vil som eksempel altid have en lavere gennemsnitlig CTR end et populært Facebook-spil. Vi har brug for mere end gennemsnitlig præcision for at måle klassificeringsydelsen.,
Forestil dig, at vores klassifikator har en gennemsnitlig præcision på 95%. Selvom dette lyder godt, hvis projektet er 95% høj CTR, er det mindre imponerende. I dette tilfælde, hvis vi altid gættede, at noget var højt CTR, ville vi gøre så godt som klassifikatoren! Således skal vi rapportere den gennemsnitlige præcision efter at have trukket den sande procentdel af høje Ctr-elementer til det pågældende projekt. Vi kalder dette”middel præcision over chance”. I vores rapporter betyder en gennemsnitlig præcision på 10%, at klassifikatoren har en 10-punkts højere præcision end at gætte alene.,
resultater
i vores testsæt blev projekter, der havde en ægte høj CTR-værdi på 1 (Alle høje CTR) eller på mindre end 0,05 (mindre end 5% høj CTR), fjernet, hvilket resulterede i 72 projekter til yderligere analyse. Husk, at hvert projekt kan indeholde snesevis af målretningskombinationer, og hver målretningskombination kan indeholde hundreder af søgeord.
for det neurale netværk var den gennemsnitlige forbedring for klassifikatoren 0, 15 (Se tabel nedenfor). En parret t-test på resultaterne viste, t(71) = 7.72, p < 0.0001 (en p-værdi mindre end 0.,05 anses traditionelt for at være statistisk signifikant, hvilket betyder, at chancen for, at denne effekt skyldes tilfældigheder, er 1 ud af 20 eller mindre). Dette betyder, at den neurale netværksklassifikator viste en statistisk signifikant forbedring i detektering af høje Ctr-elementer sammenlignet med chance.
for den tilfældige skov var den gennemsnitlige forbedring for klassifikatoren 0,06 (se tabel nedenfor). En parret t-test på resultaterne viste, t(71) = 3.17, p < 0.003., Dette betyder, at den tilfældige skovklassifikator viste en statistisk signifikant forbedring i detektering af høje Ctr-elementer sammenlignet med chance.
ved sammenligning af den gennemsnitlige forbedring mellem de to klassifikatorer var forskellen 0, 09 til fordel for det neurale netværk. En parret t-test på resultaterne viste, t(71) = 3.63, p < 0.0006. Dette betyder, at den neurale netværksklassifikator viste en statistisk signifikant forbedring i detektering af høje Ctr-elementer sammenlignet med den tilfældige skovklassifikator.
begge klassifikatorer arbejder., Det neurale netværk er markant bedre end den tilfældige skov med 0, 09.
Betyder høj CTR | Betyder præcision i klassificeringen | Betyder forbedring | |
neurale netværk | 0.44 | 0.59 | 0.15 |
tilfældig skov | 0.44 | 0.50 | 0.,06 |
Frekvens Histogrammer
Denne figur viser et histogram hyppighed af den gennemsnitlige præcision forbedring i forhold til chancen for 72 projekter for neurale netværk:
Denne figur viser et histogram hyppighed af den gennemsnitlige præcision forbedring i forhold til chancen for 72 projekter for den tilfældige skov:
Neurale Netværk vs Random Forest
nedenstående graf sammenligner resultaterne af fire af neurale netværk med tre tilfældige skove., Det viser os, at der er stor variation i præcision mellem projekter, og at hver metode har tendens til at spore den anden med en korrelation på 0.8677.
ingen af metoderne kan siges at være bedre end den anden i alle tilfælde. Det skal stadig ses, om der er nogen systematik om hvorfor og hvor en metode er bedre end en anden.
som de næste to figurer skildrer, viser både neurale netværk og tilfældige skove lav variation over vores data i de fleste, men ikke alle tilfælde: Det vil sige for de fleste projekter, at omdirigering af klassifikatoren flere gange normalt resulterer i omtrent samme præcision., I de næste to figurer er de forskellige projekter i rækkefølge af stigende præcision i hvert tilfælde på x-aksen, og præcisionen er på y-aksen.
i den næste graf har vi trukket præcision af neurale netværkskørsler fra præcision af tilfældige skovkørsler for det samme projekt ud af i alt 123 projekter. I denne næste figur, de forskellige projekter, i rækkefølge af stigende præcision, er på x-aksen og præcision er på y-aksen.
hvad dette billede fortæller os er, at der i et så kompliceret rum vil være områder, der vil være vanskelige at modellere med kun en læringsmetode., Vi ved intuitivt, at neurale netværk og tilfældige skove er tilstrækkeligt forskellige algoritmer, men dette er et bevis på, at projekterne på venstre side af S-kurven står mere at vinde med Random Forest-metoden. Sådanne ensemble tilgange er undertiden den eneste måde at opnå svære at nå gevinster (vinderne af Netfli! – prisen havde et stort eksempel på en-de selv opkaldt deres hold efter det!)
disse resultater er dog kun foreløbige, så hold dig tunet for at se, hvad yderligere t !eaking giver! Kontakt os i dag for at lære mere.