Namų įterpimai, skirti panašioms namų rekomendacijoms

sukūrė Sangdi Lin

1 paveikslas: Panašios „Zillow“ namų rekomendacijos

Rekomendacijų sistemos dažnai pasikliauja vartotojų įsitraukimu kaip duomenų šaltiniu, kad galėtų mokytis aukštos kokybės rekomendacijų. Tačiau, priešingai nei tokiose svetainėse kaip „Amazon“, „Netflix“ ir „Airbnb“, daug „Zillow“ lankančių vartotojų yra nauji vartotojai arba vartotojai, kurie neturi registruotos paskyros. Šie nauji vartotojai gali būti pirmą kartą įsigyjantys namus, nauji nuomininkai, namų pirkėjai, pradedantys naudotis internetinėse prekyvietėse, keliautojai, kuriems įdomu sužinoti apie vietinę būsto rinką, arba žmonės, kurie naudojasi „Zillow“ norėdami gauti informacijos apie nekilnojamąjį turtą. Šiems vartotojams panaši namų karuselė kiekviename namų informacijos puslapyje (tokia, kokia parodyta 1 paveikslo dešinėje pusėje) vaidina svarbų vaidmenį kuriant įdomų turinį ir gerinant jų patirtį. Kai vartotojai išreiškia susidomėjimą spustelėdami vieną namą, panaši namų karuselė suteikia vartotojams galimybę tiesiogiai tyrinėti susijusius „Zillow“ sąrašus, negrįžtant į paieškos puslapį ar pasirenkant filtrus.

Nuspręsti, ar du namai yra panašūs, nėra taip paprasta, kaip gali pasirodyti. Turinio požiūriu namus galima apibūdinti įvairiais struktūrizuotais atributais ir nestruktūruotais atributais, tokiais kaip vaizdų sąrašas ir aprašymas. Į struktūrizuotus atributus įeina tokios namų savybės kaip vieta, kaina, dydis, namo tipas, miegamojo ir vonios kambario skaičius bei apylinkių ypatybės. Kaip apskaičiuoti panašumą pagal skirtingų tipų ir skalių ypatybes, ji gali būti sudėtinga problema. Kai vartotojas lygina du namus, skirtingi struktūrizuoti ir nestruktūruoti atributai gali turėti skirtingą svarbą ir sąveikauti vienas su kitu. Pvz., 200 papildomų kvadratinių pėdų gyvenamojo ploto gali būti didelis skirtumas bute San Fransiske, bet ne taip svarbu namuose Finikse. Norėtume, kad mūsų panašus namo rekomendacijų modelis „mąstytų“ ir palygintų namus iš vartotojo perspektyvos.

Kitas panašių namų modeliavimo būdas yra vartotojo duomenų įtraukimo („bendradarbiavimo“) duomenų, tokių kaip numanomi vartotojo atsiliepimai (pvz., Paspaudimai ir išsaugojimas), panaudojimas, kaip bendro filtravimo atveju, „Airbnb“ naudojamas įtraukimo į sąrašą metodas [ 1], ir „Yahoo“ sukurtas produkto įdėjimo metodas [2]. Intuicija slypi tame, kad namai, kuriuos spustelėjo panašūs vartotojai, yra panašūs. Tačiau šiems modeliams nėra paprasta tvarkyti naujus sąrašus, kurie sudaro didelę dalį aktyvių „Zillow“ sąrašų. Nuo 2012 m. Vidurio iki 2018 m. Pradžios desezonalizuotas ir išlygintas mėnesio naujų akcijų skaičius yra beveik 500 000 [3, 4]. Tokioje populiarioje rinkoje kaip Sietlas karštas namas per kelias dienas gali būti išparduotas. Todėl tokiose gyvybingose ​​su namu susijusiose vietose, kaip „Zillow“, labai svarbu atkreipti dėmesį į prekių šaltojo paleidimo problemas panašiose namų rekomendacijose.

Šiame tinklaraščio įraše pristatome namų įterpimo modelį, naudodami gilųjį nervų tinklą, kad pateiktume panašias namų rekomendacijas. Mūsų modelis pasitelkia tiek bendradarbiavimo, tiek turinio informaciją. Tiksliau tariant, išmokstama neuroninio tinklo atvaizdavimo funkcija nuo turinio erdvės iki įterpimo vietos, o mokymąsi prižiūri vartotojų įsitraukimo duomenys. Dar svarbiau, kad mūsų modelis sugeba efektyviai išspręsti gaminio šaltojo paleidimo problemą.

Mūsų metodas

Namų reprezentacija naudojant „Skip-Gram“ įterpimus

Neuroninių tinklų modeliams įvesti reikia skaitmeninių atvaizdų. Todėl turime rasti visų kategorinių namų atributų skaitinius atvaizdus. Kategorinės funkcijos, tokios kaip pašto kodas, pasižymi dideliu kardinalumu, todėl vienas karštas kodavimas gali sukelti didelių matmenų ir nereikalingumo reprezentaciją namuose ir sukelti papildomų skaičiavimo išlaidų mokymo metu. Norėdami išspręsti šias problemas, pritaikėme praleidžiamo gramo modelį [5], kad išmoktume veiksmingą šių kategorinių ypatybių vaizdavimą (įdėjimą).

Skip-gram modelis buvo sėkmingai pritaikytas natūraliajai kalbai mokantis žodžių. Jos apibendrinimas su bet kokiais nuosekliaisiais duomenimis yra intuityvus. Paimkime pašto indekso funkciją kaip pavyzdį, kaip parodyta 2 paveiksle. Panašiai kaip natūralios kalbos sritis, unikalų pašto kodą mes laikome „žodyne“ kaip „žodį“, vartotojo įsakymus spustelėję skirtingus pašto kodus kaip „ sakinys “, o pašto kodų sekų, surinktų iš skirtingų vartotojų kaip„ korpusą “, rinkimas. Praleidžiamo gramo modelis yra apmokytas taip, kad dabartinis pašto kodas būtų numatytas pagal pašto kodus, kuriuos tas pats vartotojas spustelėjo netoliese sesijoje, t. Y. „Konteksto lange“, parodytame 2 paveiksle.

2 paveikslas: Skip-gram modelio taikymo pašto kodo sekoms iliustracija

Skip-gram atvaizdavimas yra protingas, nes atstumas, matuojant šį mažesnį matmenį, parodo skirtingų kategorinių reikšmių artumą. Šį faktą iliustruoja 3 paveiksle pateikti šilumos žemėlapiai, kuriuose pavaizduotas kosinuso panašumas tarp kelių pašto kodų regionų Sietlo srityje įterpimo vektorių, atitinkamai, pašto indeksai 98101 (kairėje) ir 98116 (dešinėje).

3 paveikslas: Sietlo pašto kodų ir 98101 (miesto centro zona, pažymėta žvaigždute kairėje) ir Sietlo pašto kodų su 98116 (vakarinis Sietlo rajonas, pažymėtas žvaigždute dešinėje) panašumas, remiantis skip-gram įdėjimais.

Panašiu būdu mes išmokstame vektorinius kitų kategorijų požymius, įskaitant zonavimo tipą, mokyklos rajoną, miesto regioną, namo tipą ir kt. 4 paveiksle pateiktos „t-SNE 2-D“ vizualizacijos atitinkamai išmoktoms pašto kodų ir zonavimo rūšims. t-SNE [6] yra didelių matmenų duomenų vizualizacijos technika, pagal kurią panašūs duomenų taškai žymimi vietose, esančiose arti 2D ar 3D erdvės. Pavyzdžiui, 988 ** ir 989 ** pašto kodai dėl didelio kosinuso panašumo yra priskiriami viršutiniam kairiajam kairiosios briaunos kampui (4 pav.). Išmokę šiuos vaizdus, ​​jie gali būti saugomi paieškos lentelėje, kad ateityje galėtų greitai jas rasti.

4 pav. „T-SNE“ vizualizacijos 2D erdvėje pašto kodams (kairėje) ir zonavimo tipams (dešinėje) Vašingtono valstijoje.

5 pav. Namo vaizdas turinio vektoriaus erdvėje

Išmoktos kategorinių požymių reprezentacijos sujungiamos su skaitmeninėmis savybėmis, kad būtų sudarytas kiekvieno namo galutinis turinio vektoriaus vaizdas, kaip parodyta 5 paveiksle. Šis vaizdas naudojamas kaip gilaus neuroninio tinklo modelio įvestis. Skaitmeniniams atributams, tokiems kaip kaina ir dydis, kurie pasiskirstė pasiskirstę, kai kurie išankstinio apdorojimo veiksmai, įskaitant žurnalo transformaciją ir min-max mastelį (6 paveikslas), gali pagerinti neuroninio tinklo modelio našumą. Be to, ateityje galime įtraukti iš nestrukturuoto turinio išgaunamas funkcijas, tokias kaip vaizdų sąrašas ir sąrašo aprašymas, kaip parodyta 5 paveiksle.

6 paveikslas. Skaitinių ypatybių apdorojimo pavyzdys. Kairėje: kainos histograma prieš apdorojant. Dešinėje: kainos histograma po kiekybinio iškarpymo, žurnalo transformacijos ir min-max mastelio

Siamo tinklas

Mes naudojame Siamo tinklo architektūrą, kad išmoktume atvaizdavimo funkciją iš turinio vektorinės erdvės (5 pav.) Į įterpimo vektorinę erdvę, kur kosinuso panašumą galima tiesiogiai apskaičiuoti.

7 paveikslas: Siamo tinklo architektūra

Norint sukurti Siamo tinklą, namų poros, pažymėtos ui ir uj, bruožų vaizdai yra perduodami per tapačius potinklinius tinklus, susidedančius iš kelių visiškai sujungtų sluoksnių. Kiekvienas potinklis apibūdina savo namus mažų matmenų įterpimo erdvėje (pvz., N = 25), kaip aprašyta 7 paveiksle.

Naujoje išvesties erdvėje norime, kad dviejų namų skirtumai būtų išmatuoti pagal kosinuso atstumą:

Neuroninio tinklo parametrai yra optimizuoti taip, kad šioje naujoje įterpimo erdvėje panašūs namai turi mažesnius kosinuso atstumus, o skirtingi namai - didesnius atstumus. Tokių tinklų mokymo priežiūrą užtikrina bendro paspaudimo arba „bendradarbiavimo“ informacija, esanti vartotojų paspaudimų srauto duomenyse. Norėdami sudaryti mokymo duomenis, darome prielaidą, kad namų poros, kurias tas pats vartotojas spustelėjo netoliese esančiose sesijose (<= 10 minučių) tam tikrame kontekstiniame lange (pvz., Lango dydis = 3), yra santykinai panašesnės ir pažymėtos kaip teigiamos, tuo tarpu namai, kurių niekada nespaudė nė vienas vartotojas, yra mažiau panašūs ir pažymimi kaip neigiami (kaip parodyta 8 pav.).

8 paveikslas: Teigiamų ir neigiamų namų ištraukimo iš inkarinių namų iš vartotojo paspaudimų srauto duomenų iliustracija (konteksto lango dydis = 3, netoliese esančios sesijos apribojimas: <= 10 minučių)

Praradimo funkcijos

Mokant Siamo tinklą, dažnai atsižvelgiama į šias dvi nuostolių funkcijas.

Kontrastinis praradimas tiesiogiai optimizuoja kosinuso atstumo tarp namų porų absoliučiąją vertę, kad kosinumo atstumas būtų sumažintas teigiamoms poroms, o maksimalus - neigiamoms poroms.

kur

Tegul C reiškia bendrą namų rinkinį. Remiantis aukščiau pateiktu teigiamų ir neigiamų apibrėžimų apibrėžimu, kiekvienam namui i Ci žymi teigiamų namų rinkinį, sukauptą iš visų vartotojų paspaudimų srautų. Yij yra namų porai paskirta etiketė (i, j), teigiama, jei j ∈ Ci, o kita - neigiama. Dij yra namų i ir namų j kosinuso panašumas naujoje įterpimo erdvėje. Teigiama paklaida m (nuo 0 iki 2) suteikia mokymui galimybę sutelkti dėmesį į sudėtingas situacijas (sunkias neigiamas).

Dėl trigubos netekties laikomas namų trigubas (i, jp, jn), kur jp ∈ Ci, jn ∉ Ci. Užuot optimizavę absoliutų atstumą, tripleto praradimas padidina atstumų skirtumą tarp neigiamos poros (i, jn) ir teigiamos poros (i, jp). Santykinės svarbos optimizavimo idėja panaši į Bajeso personalizuoto reitingo (BPR) tikslo funkciją [7], kuri pasirodė veiksminga modeliuojant netiesioginį grįžtamąjį ryšį. Čia paraštė m turi panašų poveikį kaip ir prieštaringi nuostoliai.

Treniruotėse atliekant abi praradimo funkcijas, kiekvienoje stebimoje teigiamoje poroje buvo paimta 5 neigiamos poros.

Panašios namų rekomendacijos su šalto paleidimo elementais

Pažymėjus visus namus įterpimo erdvėje, panaši namo rekomendacija sumažinama iki paprasčiausios artimiausios kaimynės paieškos, remiantis kosinuso atstumu įterpimo erdvėje. Mūsų modelis gali lengvai įtraukti visus naujus sąrašus į rekomendacijas. Kai tik įrašomi nauji namai, mes galime ieškoti iš anksto apskaičiuotų visų kategorinių atributų atvaizdų, kad būtų sukurtas naujojo sąrašo skaitinis atvaizdas. Toliau iš anksto apmokytas neuroninis tinklas susieja skaitmeninį vaizdą turinio erdvėje su namų įterpimo erdve, kur galima apskaičiuoti kosinuso panašumą. 9 paveiksle pateikta schema apibendrina naujų sąrašų tvarkymo veiksmus.

9 paveikslas: Panašių namų rekomendacijų su naujais įrašais darbo eiga

Vertinimas

Panašūs namų rekomendacijų algoritmai sukuria panašią namų karuselę kiekviename „Zillow“ pagrindinės informacijos puslapyje. Veiksmingas panašus namų patarėjas turėtų paskatinti vartotojus įsitraukti teikiant naudingas rekomendacijas būsto rinkos tyrimui. Aptardami namus, kuriuos vartotojas apžiūrėjo ankstyvoje sesijoje, mes norėtume, kad tie namai, kuriuos vartotojas mėgsta tyrinėti vėlesnėse sesijose, būtų žymiai svarbesni kaip rekomenduojamų panašių namų rinkinys. Todėl sukūrėme paspaudimais pagrįstos atitikties metriką, kad būtų galima įvertinti neprisijungus. Testavimo dieną, sutelkdami dėmesį į pirmą kartą apžiūrėtą namą, mes išnagrinėsime, kaip kiekvieno vartotojo būsimi paspaudimai yra išdėstomi rekomenduojamų panašių namų sąraše. Vidutinis NDCG skirtingose ​​reitingo pozicijose suteikia neprisijungus prie vertinimo metodiką, skirtą palyginti skirtingus metodus.

Mes palyginome siūlomą įterpimo metodą su 3 kitais metodais, kuriuos sukūrėme „Zillow“:

  1. Pradinis modelis: paprastas kosinuso panašumas, apskaičiuojamas tiesiogiai iš namų atvaizdų turinio vektoriaus erdvėje, parodytoje 5 paveiksle (neprižiūrimas).
  2. Linijinis modelis: matuojamas atstumas tarp dviejų namų kaip svertinis atributų skirtumų derinys. Svoriai išmokami iš duomenų, gautų spustelėjus duomenis (prižiūrimi).
  3. Atsitiktinis miškas: netiesinė 2 metodo versija, treniruojama naudojant tas pačias atributų skirtumų savybes (prižiūrima).

Įvertinome įvairius modelius, remdamiesi vartotojo įvykių duomenimis WA būsenoje. Visi prižiūrimi modeliai buvo mokomi vartotojo renginiuose likus savaitei iki bandymo datos. 9 paveikslo kairiajame paveikslėlyje NDCG metrika pavaizduota kaip santykis su NDCG @ 1, palyginti su pradiniu metodu. Dešiniajame paveiksle lyginami skirtingų kontroliuojamų metodų NDCG keltuvai, palyginti su pradiniu metodu (paprastas kosinuso panašumas).

Rezultatai rodo, kad prižiūrint vartotojų bendrai spustelėtų duomenų duomenis, NDCG metrika žymiai padidėjo, palyginti su pradiniu metodu. Pagrindinė priežastis yra ta, kad vartotojų paspaudimų modeliai suteikia svarbių signalų, pavyzdžiui, kokie atributai yra svarbūs ir kaip jie sąveikauja tarpusavyje. Tarp visų prižiūrimų metodų siūlomas Siamo įterpimo metodas pralenkia tiek linijinį, tiek RF modelį. Be to, tripleto praradimas rodo nedidelį pranašumą, palyginti su kontrastingais praradimais mokant Siamo tinklą mūsų programai. Geriausias modelis - Siamo įterpimo modelis, ištreniruotas praradus tripletą -, palyginti su pradiniu metodu, NDCG @ 10 padidino 21%.

9 paveikslas: Įvairių panašių namų rekomendacijų metodų palyginimas su NDCG metrika (kairėje) ir NDCG padidėjimas, palyginti su pradiniu metodu (dešinėje).

Ar įterpimai yra prasmingi?

Norėdami atsakyti į šį klausimą, vizualizuojame Vašingtono valstijos 25 dimensijų įterpimus 2D erdvėje su t-SNE. Kiekviename iš 10 pav. Pateiktų t-SNE brėžinių kiekvienas taškas žymi namus, o artimumas tarp kiekvienos taškų poros atspindi kosinuso panašumą tarp dviejų namų, esančių namuose. Taškus nudažėme pagal kiekvieno logotipo pagrindinių elementų (rąstų) skalę (rąstą). Kuo didesnė spalvotų grupių struktūra, tuo didesnė specifinės savybės reikšmė įterpimo erdvėje. Idėja čia yra gana panaši į ankstesnį mūsų tinklaraščio įrašą, kuriame buvo naudojami savarankiškai organizuojantys žemėlapiai vizualizuoti bendradarbiavimo filtravimo veiksnius. 10 paveiksle atributai parodyti svarbumo tvarka, atsižvelgiant į signalą struktūroje. Iš įdėtųjų vizualizacijų pastebime, kad vieta (ilguma ir platuma) yra svarbiausias įterpimų veiksnys, o po to nurodoma namo kaina ir namo dydis. Tačiau turėtume atkreipti dėmesį, kad kai kurios savybės taip pat gali būti svarbios dėl sudėtingos sąveikos su kitomis, kurios gali būti tiesiogiai nepastebėtos per toliau pateiktas vizualizacijas.

10 paveikslas: „t-SNE 2D“ vizualizacijos įtraukiant įterptines dalis Vašingtono valstijoje, nuspalvintos kai kurių pasirinktų namų atributų skalėmis. Atminkite, kad kaina, dydis (kv. M.) Ir dienos „Zillow“ yra natūralaus rąsto skalėje.

Išvada

Šiame tinklaraščio įraše pristatome gilųjį mokymąsi pagrįstą įtraukimo metodą, naudojant Siamo tinklą, kad pateiktume panašias namų rekomendacijas „Zillow“. Mūsų įterpimo modelyje naudojama tiek bendra informacija, tiek turinio informacija, modeliuojama sudėtinga atributų sąveika ir efektyviai tvarkomi šaltojo paleidimo elementai. Neprisijungęs vertinimas pademonstravo puikų mūsų įterpimo metodo efektyvumą, kai vartotojams siūlome atitinkamus namus, teikdami panašias namų rekomendacijas. Remdamiesi neprisijungusiais rezultatais, šiuo metu dirbame naudodamiesi Siamo tinklo modeliu, kad maitintume naujos kartos panašų namų rekomendacijų variklį „Zillow“.

Labai ačiū visai „Zillow“ personalizavimo komandai už paramą šiam projektui. Ypatinga padėka Ericui Ringgeriui, Ondrejui Lindai ir Egorui Klevakui už pasiūlymus ir atsiliepimus apie šį tinklaraščio įrašą.

Jei jums šis darbas įdomus ir jei norėtumėte pritaikyti savo duomenų mokslo ir mašinų mokymosi įgūdžius mūsų didelio masto, turtingame ir nuolat tobulėjančiame nekilnojamojo turto duomenų rinkinyje, susisiekite su mumis. Mes samdome!

Nuoroda

[1] Grbovic, Mihajlo ir kt. „Įterpimų įtraukimas į paieškos reitingą“. 2018 m. Kovo 13 d., „Airbnb Engineering & Data Science @Medium“.

[2] Grbovic, Mihajlo ir kt. „El. Prekyba gautuosiuose: produktų rekomendacijos mastu.“ 21-osios ACM SIGKDD tarptautinės žinių atradimo ir duomenų gavybos konferencijos pranešimai. ACM, 2015 m.

[3] Gudelis, Gudelis. „Inventorius netenka, bet sąrašų nėra“, 2017 m. Birželio mėn. Rinkos ataskaita, „Zillow Group“, paskelbimo data: 2017 m. Liepos 20 d., Https://www.zillow.com/research/june-2017-market-report-15-156 /

[4] Ringgeris, Ericas ir kt. „Ieškokite savo namų: Didelio masto rekomendacijos energingoje rinkoje“. „ComplexRec 2018“

[5] Mikolovas, Tomas ir kt. „Pasiskirstytos žodžių ir frazių reprezentacijos bei jų kompozicija.“ Pažanga naudojant neuronines informacijos apdorojimo sistemas. 2013 metai.

[6] Maatenas, Laurensas van der ir Geoffrey Hintonas. „Duomenų vizualizavimas naudojant„ t-SNE “.“ Machine Learning Research Journal 9.Nov (2008): 2579–2605.

[7] Rendle, Steffen ir kt. „BPR: Bajeso personalizuotas reitingas pagal netiesioginį grįžtamąjį ryšį.“ 25-osios dirbtinio intelekto netikrumo konferencijos pranešimai. „AUAI Press“, 2009 m.

Iš pradžių paskelbta www.zillow.com 2018 m. Spalio 17 d.