Kodu kinnistamine sarnaste kodusoovituste jaoks

autor Sangdi Lin

Joonis 1: Sarnased kodusoovitused Zillow kohta

Soovitussüsteemid sõltuvad kvaliteetsete soovituste õppimisel andmete allikana sageli kasutajate kaasamisest. Vastupidiselt sellistele veebisaitidele nagu Amazon, Netflix ja Airbnb on suur hulk Zillow külastavaid kasutajaid aga uued kasutajad või kasutajad, kellel pole registreeritud kontot. Need uued kasutajad võivad olla esmakordsed koduostjad, uued üürnikud, veebiturgude jaoks uued koduostjad, kohaliku eluasemeturu suhtes uudishimulikud reisijad või inimesed, kes kasutavad kinnisvarainformatsiooni saamiseks Zillowt. Nende kasutajate jaoks mängib sarnane kodukarussell igal avalehel (näiteks joonise 1 paremal küljel näidatud) huvitavat sisu käsitledes ja nende kogemusi täiustades. Kuna kasutajad väljendavad oma huvi, klõpsates ühel kodul, võimaldab sarnane kodukarussell kasutajatel Zillow'is seotud kirjeid otse uurida, ilma et peaksite naasma otsingulehele või valima filtreid.

Otsustada, kas kaks kodu on sarnased, pole nii lihtne, kui see võib tunduda. Sisu seisukohast saab kodu kirjeldada erinevate struktureeritud atribuutide ja struktureerimata atribuutidega, näiteks piltide loetlemisega ja kirjeldusega. Struktureeritud atribuudid hõlmavad selliseid koduomadusi nagu asukoht, hind, suurus, maja tüüp, magamistoa ja vannitoa arv ning naabruskonna omadused. Sarnasuse arvutamine erinevat tüüpi ja skaala tunnuste järgi võib olla üksi keeruline probleem. Kui kasutaja võrdleb kahte kodu, võivad erinevad struktureeritud ja struktureerimata atribuudid olla erineva tähtsusega ja üksteisega suhelda. Näiteks 200 täiendavat ruutjalga elamispinda võib San Franciscos asuva korteri jaoks olla suur erinevus, kuid Phoenixi maja puhul pole see nii oluline. Sooviksime, et meie sarnane kodusoovituste mudel "mõtleks" ja võrreldaks kodusid kasutaja vaatenurgast.

Teine viis sarnaste kodude modelleerimiseks on kasutaja-üksuse kaasamise (“koostöö”) andmete, näiteks kaudse kasutajate tagasiside (nt klõpsud ja salvestamine) kasutamine, nagu ka ühiselt filtreerimise korral Airbnbi kasutatava kirje kinnistamise meetod [ 1] ja Yahoo välja töötatud toote kinnistamise meetod [2]. Intuitsioon seisneb selles, et kodud, millele sarnased kasutajad klõpsavad, on sarnased. Neil mudelitel pole aga lihtne käsitleda uusi loendeid, mis moodustavad olulise osa Zillow aktiivsetest kirjetest. Alates 2012. aasta keskpaigast kuni 2018. aasta alguseni on aastaaegade kaupa sujuvamaks muudetud uute kirjete arv 500 000 [3, 4]. Sellisel populaarsel turul nagu Seattle võib kuum kodu mõne päeva jooksul turult eemal olla. Seetõttu on sellise elava koduga seotud turu jaoks nagu Zillow väga oluline käsitleda üksuste külmkäivitusprobleeme sarnastes kodusoovitustes.

Selles blogipostituses tutvustame kodu kinnistamise mudelit, kasutades sügavate närvivõrkude abil sarnaseid kodusoovitusi. Meie mudel kasutab nii koostöö- kui ka sisuteavet. Täpsemalt õpitakse neurovõrgul põhinevat kaardistamisfunktsiooni siseruumist manustamisruumini ja õppimist juhendavad kasutajate kaasamisandmed. Veelgi olulisem on see, et meie mudel suudab üksuse külmkäivituse probleemiga tõhusalt toime tulla.

Meie meetod

Koduesindus Skip-Gram manustustega

Neuraalvõrgu mudelid vajavad sisendina arvulisi esitusi. Seetõttu peame leidma numbrilise esituse kõigi kategooriliste koduatribuutide jaoks. Sellistel kategoorilistel funktsioonidel nagu postiindeks on kõrge kardinaalsus, nii et ühe kuumusega kodeerimine võib põhjustada koduesinduse suure mõõtme ja koondamise ning põhjustada koolituse ajal lisakulutuskulusid. Nende probleemide lahendamiseks rakendasime vahele jäetud grammi mudelit [5], et õppida nende kategooriliste tunnuste tõhusat esitust (manustamist).

Skip-grammi mudelit on looduskeele jaoks edukalt rakendatud sõnaesituse õppimisel. Selle üldistamine mis tahes järjestikuste andmete suhtes on intuitiivne. Võtame näitena postiindeksifunktsiooni, nagu on näidatud joonisel 2. Analoogselt loodusliku keele domeeniga käsitleme unikaalset postiindeksit sõnastikus sõnana, kasutaja tellitud klõpsamisi erinevate sihtnumbrite kohal kui „ lause ”ja erinevate kasutajate sihtnumbrijadade kogumine korpusena. Skip-grammi mudel on koolitatud nii, et praegune postiindeks kujutab endast postiindekside ennustamist, mida sama kasutaja klõpsas seansi läheduses, st joonisel 2 näidatud „kontekstiaknas“.

Joonis 2: Skip-grammi mudeli rakendamine postiindeksijadade jaoks

Skip-grammine esitus on mõistlik, kuna selle madalama mõõtme kujutise kauguse mõõt peegeldab erinevate kategooriliste väärtuste lähedust. Seda fakti illustreerivad soojuskaardid joonisel 3, mis kujutavad Seattle'i piirkonna mitme postiindeksipiirkonna manustamisvektorite koosinuslikku sarnasust vastavalt postiindeksitega 98101 (vasakul) ja 98116 (paremal).

Joonis 3: sarnasus Seattle'i sihtnumbrite ja 98101 (kesklinna piirkond, tähistatud vasakul) ning Seattle'i sihtnumbrite ja 98116 (Seattle'i lääneosa piirkond, tärniga tähistatud paremal) vahel, jättes vahele grammi manustamise.

Sarnasel viisil õpime vektorkategooriaid muude kategooriliste tunnuste jaoks, sealhulgas tsoneeringutüüp, koolipiirkond, linnapiirkond, maja tüüp ja muud. Joonis 4 näitab t-SNE 2-D visuaale vastavalt postiindeksite ja tsoonitüübi õpitud esinduste jaoks. t-SNE [6] on kõrgemõõtmeliste andmete visualiseerimistehnika, mis kaardistab sarnased andmepunktid 2D- või 3D-ruumis lähestikku asuvatesse asukohtadesse. Näiteks postiindeksid 988 ** ja 989 ** on kõik koosinusliku sarnasuse tõttu joonisel 4 joonistatud vasakpoolsel joonisel vasakpoolsesse ülanurka. Kui väljaõpe on tehtud, saab neid esitlusi tulevikus otsida tabelisse, et neid tulevikus kiiremini otsida.

Joonis 4: t-SNE kujutised 2D ruumis postiindekside (vasakul) ja tsoneerimistüüpide (paremal) jaoks Washingtoni osariigis.

Joonis 5: Kodu kujutamine sisus vektorruumis

Kategooriliste tunnuste õpitud esindused ühendatakse numbriliste tunnustega, et moodustada iga kodu jaoks lõplik sisuvektori esitus, nagu näidatud joonisel 5. Seda esitust kasutatakse sügava närvivõrgu mudeli sisendina. Numbriliste atribuutide, näiteks hinna ja suuruse korral, millel on jaotused viltu, võivad mõned eeltöötlusetapid, sealhulgas logi teisendus ja min-max skaleerimine (joonis 6), parandada närvivõrgu mudeli jõudlust. Lisaks võime tulevikus kaasata struktureerimata sisust ekstraheeritud funktsioone, näiteks pilte ja loendikirjeldusi, nagu on näidatud joonisel 5.

Joonis 6: Numbriliste tunnuste eeltöötluse näide. Vasakul: hinna histogramm enne eeltöötlemist. Paremal: hinna histogramm pärast kvantilõikamist, logi teisendamist ja min-max skaleerimist

Siiami võrk

Siiami võrguarhitektuuri abil õpime kaardistamise funktsiooni sisupõhisest vektoriruumist (joonis 5) manustavasse vektoriruumi, kus koosinusliku sarnasuse saab otse arvutada.

Joonis 7: Siiami võrgu arhitektuur

Siiami võrgu ehitamiseks juhitakse ui ja uj-ga tähistatud kodupaaride tunnusjooned identsete alamvõrkude kaudu, mis koosnevad mitmest täielikult ühendatud kihist. Iga alamvõrk kaardistab oma kodu madala mõõtmega manustamisruumi (nt N = 25), nagu on kirjeldatud joonisel 7.

Uues väljundruumis soovime, et kahe kodu erinevust mõõdetaks nende koosinuskauguse järgi:

Neuraalvõrgu parameetrid on optimeeritud nii, et selles uues manustamisruumis on sarnastel kodudel väiksemad koosinuskaugused ja erinevatel kodudel on suuremad vahemaad. Selliste võrkude väljaõppe juhendamine tuleneb kaasklõpsamise või „koostööl põhinevast” teabest, mis sisaldub kasutajate klikivoo andmetes. Treeningandmete konstrueerimiseks eeldame, et kodupaarid, mida sama kasutaja klõpsas läheduses asuvatel seanssidel (<= 10 minutit) teatud kontekstiaknas (nt akna suurus = 3), on suhteliselt sarnasemad ja märgistatud positiivsetena, samas kui kodud, millele ükski kasutaja kunagi sel viisil klõpsanud ei ole, on vähem sarnased ja märgistatud negatiivideks (nagu näidatud joonisel 8).

Joonis 8: Positiivsete ja negatiivsete kodude ankurdamiskodude ekstraheerimise illustreerimine kasutaja klõpsuandmetest (kontekstiakna suurus = 3, läheduses asuva seansi piirang: <= 10 minutit)

Kaotusfunktsioonid

Siiami võrgu treenimisel võetakse sageli arvesse kahte järgmist kaotusefunktsiooni.

Kontrastiline kaotus optimeerib otse kosinuse vahekauguse absoluutväärtuse kodupaaride vahel nii, et koosinuskaugus oleks miinimumini positiivsete paaride korral, kuid maksimeeritud negatiivsete paaride korral.

kus

Olgu C kodude koguarv. Ülaltoodud positiivsete ja negatiivsete määratluste kohaselt tähistab Ci iga kodu i jaoks positiivsete kodude komplekti, mis on kokku pandud kõigi kasutajate klõpsuvoogudest. Yij on kodupaarile eraldatud silt (i, j), positiivne, kui j ∈ Ci, ja negatiivne, muul juhul. Dij on koduse koosluse sarnasus kodu i ja kodu j vahel uues manustamisruumis. Positiivne varu m (vahemikus 0 kuni 2) võimaldab koolitusel keskenduda väljakutsuvatele juhtumitele (rasked negatiivid).

Kolmikute kaotamiseks loetakse kodude kolmikut (i, jp, jn), kus jp ∈ Ci, jn ∉ Ci. Absoluutse distantsi optimeerimise asemel maksimeerib kolmikute kaotus negatiivse paari (i, jn) ja positiivse paari (i, jp) vahemaade erinevuse. Suhtelise olulisuse optimeerimise idee sarnaneb Bayesi isikupärastatud edetabeli (BPR) eesmärkfunktsiooniga [7], mis on osutunud kaudse tagasiside modelleerimisel tõhusaks. Siin on marginaalil m sarnane mõju kui kontrastse kaotuse korral.

Mõlema kaotusefunktsiooniga treenides võeti iga täheldatud positiivse paari jaoks proovid 5 negatiivsest paarist.

Sarnased kodusoovitused külmkäivituse üksustega

Pärast kõigi kodude kinnistamisruumi kaardistamist taandub sarnane kodusoovitus lihtsa lähima naabri otsingule, mis põhineb koosinuskaugusel manustamisruumis. Meie mudel võib hõlpsalt lisada soovitustesse mis tahes uusi loendeid. Kui loendisse kantakse uus kodu, saame uue kirje numbrilise esituse loomiseks otsida kõigi kategooriliste atribuutide eelarvutatud esindused. Järgmisena kaardistab eelkoolitatud närvivõrk siseruumi numbrilise esituse kodu manustamisruumiga, kus saab arvutada koosinusliku sarnasuse. Joonisel 9 toodud diagramm võtab kokku uute kirjete käsitlemise sammud.

Joonis 9: Sarnaste kodusoovituste töövoog koos uute kirjetega

Hindamine

Sarnased kodusoovituse algoritmid pakuvad sarnast kodukarusselli igal Zillow avalehel. Tõhus sarnane kodusoovitus peaks ajendama kasutajaid kaasama, pakkudes kasulikke juhiseid elamuturu uurimiseks. Arvestades kodu, mille kasutaja on vaadanud varases sessioonis, sooviksime, et soovitaja paigutaks soovitatud sarnaste kodude komplektis silmnähtavalt need kodud, mida kasutaja soovib hilisemates sessioonides uurida. Seetõttu koostasime võrguühenduseta hindamiseks klikipõhise asjakohasuse mõõdiku. Testimiskuupäeval, keskendudes nende esimesele vaadatud kodule, uurime, kuidas on iga kasutaja tulevased klõpsud järjestatud sarnaste kodude loendis. Keskmine NDCG erinevatel pingeridade positsioonidel annab võrguühenduseta hindamismeetri erinevate meetodite võrdlemiseks.

Võrdlesime pakutud manustamismeetodit kolme teise meetodiga, mille oleme Zillows välja töötanud:

  1. Algmudel: lihtne koosinusliku sarnasus, mis arvutatakse otse joonisel 5 näidatud sisusvektoriruumi koduesinduste põhjal (kontrollimata).
  2. Lineaarne mudel: kahe kodu vahelise kauguse mõõtmine omadustepõhiste erinevuste kaalutud kombinatsioonina. Kaalud õpitakse kaasklikkide andmete põhjal (juhendatud).
  3. Juhuslik mets: meetodi 2 mittelineaarne versioon, mis on treenitud samade omadustepõhiste erinevuste tunnuste komplekti alusel (juhendatud).

Hindasime erinevaid mudeleid kasutaja sündmuste andmete põhjal WA-olekus. Kõiki juhendatud mudeleid koolitati kasutaja üritustel nädal enne testimiskuupäeva. Joonisel 9 vasakpoolsel graafikul on NDCG mõõdikud kujutatud suhtena NDCG @ 1 algtaseme meetodist. Parempoolsel joonisel võrreldakse erinevate juhendatud meetodite NDCG tõsteid algtaseme meetodiga (lihtne koosinusliku sarnasus).

Meie tulemused näitavad, et kasutaja kaasklõpsamise andmete jälgimine põhjustas NDCG-mõõdikute olulise tõusu võrreldes algtaseme meetodiga. Peamine põhjus on see, et kasutajate klikkimustrid annavad olulisi signaale, näiteks millised atribuudid on olulised ja kuidas nad üksteisega suhtlevad. Kõigi juhendatud meetodite seas edestab kavandatud Siiami manustamismeetod nii lineaarset kui ka RF-mudelit. Lisaks näitab kolmikute kaotamine meie rakenduse jaoks Siami võrgu treenimisel väikest eelist kontrastse kaotuse ees. Parima mudeli, kolmikute kaotusega treenitud siiami manustamismudeli korral saavutas NDCG @ 10 märkimisväärset tõusu 21% võrreldes algtaseme meetodiga.

Joonis 9: Erinevate sarnaste kodusoovituste meetodite võrdlus NDCG mõõdikute (vasakul) ja NDCG tõstmise osas võrreldes algtaseme meetodiga (paremal).

Kas manustamine on tähendusrikas?

Sellele küsimusele vastamiseks visualiseerime Washingtoni osariigi kodude 25-mõõtmelise manuse 2D-ruumis t-SNE-ga. Kõigil t-SNE joonistel fig 10 kujutatud graafikutel tähistab iga punkt kodu ja iga punktipaari vaheline lähedus peegeldab kosmose sarnasust kodu kahe kodu vahel, milles ruumi on. Värvisime punktid iga krundi ühe võtmefunktsiooni (log) skaala järgi (log). Mida suurem on värviliste klastrite struktuur, seda suurem on spetsiifilise omaduse tähtsus manustamisruumis. Siinne idee on üsna sarnane meie eelmisele ajaveebipostitusele, kus ühiste filtreerimisfaktorite visualiseerimiseks kasutati iseorganiseeruvaid kaarte. Joonisel 10 on atribuudid esitatud olulisuse järjekorras, tuginedes signaalile struktuuris. Manustamisvisuaalide põhjal näeme, et manustamisel on kõige olulisem tegur asukoht (pikkus ja laius), millele järgneb kodu hind ja kodu suurus. Siiski peame märkima, et mõned omadused võivad olla olulised ka keerukate koostoimete tõttu teistega, mida allpool toodud visualiseerimiste kaudu ei pruugi otseselt täheldada.

Joonis 10: t-SNE 2D visualiseerimisvõimalused Washingtoni osariigi kirjete manuste jaoks, värvitud mõne valitud koduatribuudi skaala järgi. Pange tähele, et hind, suurus (ruutmeetri järgi) ja Zillow päevad on loodusliku palgi skaalal.

Järeldus

Selles blogipostituses tutvustame Zillow sarnaste kodusoovituste jaoks sügavat õppepõhist kirjendamise kinnistamismeetodit, kasutades Siiami võrku. Meie manustamismudel kasutab nii koostöö- kui ka sisuteavet, modelleerib atribuutide keerulist interaktsiooni ja tegeleb tõhusalt külmkäivitusega üksustega. Võrguühenduseta hindamine on näidanud meie manustamismeetodi tugevat toimimist asjakohaste kodude pindamisel kasutajatele sarnaste kodusoovituste kaudu. Võrguühenduseta tulemuste põhjal töötame praegu Siiami võrgumudeli abil järgmise põlvkonna sarnase kodusoovitusmootori toiteks Zillow'is.

Suur tänu kogu Zillow personaliseerimismeeskonnale selle projekti toetamise eest. Eriline tänu Eric Ringgerile, Ondrej Lindale ja Egor Klevakile selle blogipostituse soovituste ja tagasiside eest.

Kui leiate, et see töö on huvitav ja soovite oma andmeteadust ja masinõppe oskusi rakendada meie suuremahulises, rikkalikus ja pidevalt arenevas kinnisvara andmekogumis, võtke ühendust. Võtame tööle!

Viide

[1] Grbovic, Mihajlo jt. “Manuste loendimine otsingutulemuste edetabelis.” 13. märts 2018, Airbnb Engineering & Data Science @Medium.

[2] Grbovic, Mihajlo jt. „E-kaubandus postkastis: tootesoovitused mastaabis.” Teadmiste avastamise ja andmete kaevandamise rahvusvahelise ACM SIGKDD 21. konverentsi toimetised. ACM, 2015.

[3] Gudell, Gudell. “Inventar on maas, kuid nimekirju ei ole”, 2017. aasta juuni turuaruanne, Zillow Group, avaldamise kuupäev: 20. juuli 2017, https://www.zillow.com/research/june-2017-market-report-15956 /

[4] Ringger, Eric jt. „Kodu leidmine: suuremahuline soovitus elaval turul.” ComplexRec 2018

[5] Mikolov, Tomas jt. „Sõnade ja fraaside hajutatud esindused ja nende kompositsioonilisus.” Neurutöötlussüsteemide areng. 2013.

[6] Maaten, Laurens van der ja Geoffrey Hinton. “Andmete visualiseerimine t-SNE abil.” Ajakiri Machine Learning Research 9.Nov (2008): 2579–2605.

[7] Rendle, Steffen jt. “BPR: Bayesise isikupärastatud edetabel kaudse tagasiside põhjal.” Tehisintellekti ebakindluse 25. konverentsi toimetised. AUAI Press, 2009.

Algselt avaldati veebisaidil www.zillow.com 17. oktoobril 2018.