Uyga o'xshash tavsiyalar uchun uy qurilishi

Sangdi Lin tomonidan

1-rasm: Zillow-ga o'xshash uy tavsiyalari

Tavsiya tizimlari ko'pincha yuqori sifatli tavsiyalarni o'rganish uchun ma'lumot manbai sifatida foydalanuvchilarning jalb qilinishiga ishonadilar. Biroq, Amazon, Netflix va Airbnb kabi veb-saytlardan farqli o'laroq, Zillow-ga tashrif buyurgan ko'plab foydalanuvchilar yangi foydalanuvchilar yoki ro'yxatdan o'tgan hisob qaydnomasi bo'lmagan foydalanuvchilar. Bu yangi foydalanuvchilar birinchi marta uy sotib oluvchilar, yangi ijarachilar, onlayn bozorlarda yangi uy sotuvchilari, mahalliy uy-joy bozori bilan qiziquvchilar yoki ko'chmas mulk to'g'risida ma'lumot olish uchun Zillow-dan foydalanayotgan odamlar bo'lishi mumkin. Ushbu foydalanuvchilar uchun har bir uy tafsilotlari sahifasida (masalan, 1-rasmning o'ng tomonida ko'rsatilgan) o'xshash uy karuseli qiziqarli tarkibni topish va tajribasini yaxshilashda muhim rol o'ynaydi. Foydalanuvchilar o'zlarining qiziqishlarini bitta uyga bosish orqali bildirishadi, shunga o'xshash uy karuseli foydalanuvchilarga Zillow-da qidiruv sahifasiga yoki filtrlarni tanlashga qaytmasdan to'g'ridan-to'g'ri bog'liq ma'lumotlarni qidirishga imkon beradi.

Ikkita uyning o'xshashligini aniqlash, ko'rinishi mumkin bo'lgan darajada oddiy emas. Tarkib nuqtai nazaridan, uyni turli xil tuzilgan atributlar va tasvirlangan rasmlar va tavsiflar kabi tuzilmagan atributlar tavsiflashi mumkin. Tuzilgan atributlarga uyning joylashuvi, narxi, hajmi, uy turi, yotoqxona va hammom soni va mahalla xususiyatlari kabi xususiyatlar kiradi. Turli xil turlari va o'lchovlari xususiyatlaridan qanday o'xshashlikni hisoblash qanday qiyinchilik tug'dirishi mumkin. Agar foydalanuvchi ikkita uyni taqqoslasa, har xil tuzilgan va tuzilmagan atributlar farq qilishi va bir-biri bilan o'zaro munosabatda bo'lishi mumkin. Masalan, 200 kvadrat metrlik yashash maydoni San-Frantsiskodagi kondom uchun katta farq bo'lishi mumkin, ammo Feniksdagi uy uchun unchalik muhim emas. Bizga o'xshash uyni tavsiya qilish modelimiz "o'ylash" va uylarni foydalanuvchi nuqtai nazaridan taqqoslashni istardik.

O'xshash uylarni modellashtirishning yana bir usuli - bu foydalanuvchi elementlari bilan ("birgalikda") ma'lumotlardan foydalanish, masalan, foydalanuvchilarning aniq bo'lmagan fikr-mulohazalari (masalan, chertish va tejash), shuningdek, birgalikda filtrlashda, Airbnb tomonidan ishlatiladigan ro'yxatga kiritish usulida. 1] va Yahoo [2] tomonidan ishlab chiqilgan mahsulotni ichki joylash usuli. O'xshash foydalanuvchilar bosgan uylar o'xshashdir. Biroq, ushbu modellar Zillow-dagi faol ro'yxatlarning muhim qismini tashkil etadigan yangi ro'yxatlarni ko'rib chiqish oson emas. 2012 yilning o'rtalaridan 2018 yil boshiga qadar, oylik yangi, ro'yxatga olinmagan, tekislangan oylik ro'yxat soni 500K atrofida [3, 4]. Sietl kabi mashhur bozorda issiq uy bir necha kun ichida bozorga chiqarilishi mumkin. Shu sababli, uyning shunga o'xshash tavsiyalarida sovuqni ishga tushirish bilan bog'liq muammolarni hal qilish Zillow singari jonli uy-joy bozori uchun juda muhimdir.

Ushbu blog postida uyga o'xshash tavsiyalar uchun chuqur neyron tarmog'idan foydalangan holda uyga ichki ko'rinish modelini taqdim etamiz. Bizning modelimiz hamkorlikdagi va tarkibiy ma'lumotlardan foydalanadi. Aniqrog'i, neyron tarmoqqa asoslangan xaritalash funktsiyasi tarkibiy makondan tortib ichki maydongacha bo'lgan xaritaga o'tish funktsiyasini o'rganadi va o'rganishni foydalanuvchilar tomonidan olingan ma'lumotlar boshqaradi. Eng muhimi, bizning modelimiz mahsulotni sovuq ishga tushirish muammosini samarali hal qila oladi.

Bizning usulimiz

Skip-Gram joylashtirilgan uy vakolatxonasi

Neyron tarmoq modellari ularning kirishlari sifatida raqamli vakolatlarni talab qiladi. Shuning uchun, biz uyning barcha toifaviy atributlari uchun raqamli vakilliklarni topishimiz kerak. Pochta kodi kabi kategoriya xususiyatlari yuqori kardinallikka ega, shuning uchun bitta issiq kodlash uyning vakolatxonasida yuqori o'lchovlilik va ortiqcha xarajatlarga olib kelishi mumkin va mashg'ulot paytida qo'shimcha hisoblash xarajatlarini keltirib chiqarishi mumkin. Ushbu muammolarni hal qilish uchun biz ushbu kategoriyaviy xususiyatlarning samarali tasvirlanishini (ichki ko'rinishini) o'rganish uchun skip-gram modelini [5] qo'lladik.

Skip-gram modeli so'zlarni vakillik asosida o'rganish uchun tabiiy tilda muvaffaqiyatli qo'llanildi. Uni har qanday ketma-ket ma'lumotlarga umumlashtirish intuitivdir. 2-rasmda ko'rsatilgandek zip kodi xususiyatini olaylik. Tabiiy til domeniga o'xshash, biz noyob pochta kodini "lug'at" da "so'z" sifatida ko'rib chiqamiz, foydalanuvchining turli xil pochta indekslarini "bosish" sifatida ko'rib chiqamiz. "jumla" va "korpus" sifatida turli foydalanuvchilarning pochta kodlari to'plamlari. Skip-gram modeli o'rgatiladi, chunki joriy indeks indeksining ko'rinishi 2-rasmda ko'rsatilgan "kontekst oynasi" ichidagi o'sha foydalanuvchi sessiyada yaqinroq bosgan ZIP-kodlarni bashorat qilishi mumkin.

Shakl 2: Skip-gramma modelini pochta kodi ketma-ketligiga tatbiq etish to'g'risidagi illyustratsiya

Skip-gramm tasviri mantiqiydir, chunki ushbu pastki o'lchovli tasvirning masofa o'lchovi turli kategoriya qiymatlari orasidagi yaqinlikni aks ettiradi. 3-rasmda Sietl hududidagi bir nechta pochta indekslari vektorlari orasida 98101 (chapda) va 98116 (o'ngda) pochta kodlari orasidagi kosinaviy o'xshashlik ko'rsatilgan 3-rasmdagi issiqlik xaritalari misolida ko'rsatilgan.

3-rasm: Sietl pochta kodlari va 98101 (shahar markazida, chap tomonda ko'rsatilgan) va Sietl pochta indekslari va 98116 (o'ng tomonda joylashgan Sietlning g'arbiy qismi, o'ng tomonda joylashgan) skip-grammontaj asosidagi o'xshashlik.

Xuddi shu tarzda, biz boshqa kategoriya xususiyatlari, shu jumladan rayonlashtirish turi, maktab tumani, shahar viloyati, uy turi va boshqalar uchun vektorli tasvirlarni o'rganamiz. 4-rasmda T-SNE 2-D ingliz tilida ingl. Tizimlari indekslangan indekslarning pochta kodlari va rayonlashtirish turlarini ko'rsatmoqda. t-SNE [6] - bu 2D yoki 3D makonda bir-biriga yaqin joylashgan joylarga o'xshash ma'lumotlar nuqtalarini xaritaga keltiradigan yuqori o'lchamli ma'lumotlarning vizualizatsiyalash usuli. Masalan, 988 ** va 989 ** pochta kodlari kosinaning yuqori o'xshashligi tufayli 4-rasmda chap uchastkaning yuqori chap burchagida joylashgan. O'qitilganidan so'ng, ushbu tasvirlar kelajakda tezkor ma'lumot olish uchun qidiruv jadvalida saqlanishi mumkin.

4-rasm: Vashingtondagi shtatda (chapda) va rayonlashtirish turlarida (o'ngda) 2D bo'shliqda t-SNE vizualizatsiyasi.

5-rasm: Tarkib vektor maydonida uyning tasviri

Tasnifiy xususiyatlar bo'yicha o'rganilgan rasmlar 5-rasmda ko'rsatilgandek har bir uy uchun yakuniy tarkib vektorli vakillikni hosil qilish uchun raqamli xususiyatlar bilan biriktirilgan. Ushbu vakillik chuqur neyron tarmoq modeli sifatida ishlatiladi. Kesilgan taqsimotga ega bo'lgan narx va o'lcham kabi raqamli atributlar uchun ba'zi qayta ishlov berish bosqichlari, shu jumladan loglarni o'zgartirish va min-max miqyosi (6-rasm), neyron tarmoq modelining ish faoliyatini yaxshilashi mumkin. Bundan tashqari, kelajakda biz 5-rasmda ko'rsatilgandek, tuzilmagan tarkibdan olingan xususiyatlarni, masalan, rasm rasmlari va ro'yxat tavsifi kabi xususiyatlarni birlashtira olamiz.

Shakl 6: Raqamli xususiyatlarni qayta ishlashga misol. Chapda: qayta ishlov berishdan oldin narx gistogrammasi. O'ng tomonda: kvant kesish, jurnalni o'zgartirish va min-max miqyosidan keyin gistogramma narxi

Siam tarmog'i

Biz tarkibiy vektor maydonidan (5-rasm) kosinos o'xshashligini to'g'ridan-to'g'ri hisoblash mumkin bo'lgan joylashtiriladigan vektor bo'shlig'igacha xarita funktsiyasini o'rganish uchun Siamma arxitekturasidan foydalanamiz.

7-rasm: Siam tarmog'ining arxitekturasi

Siam tarmog'ini qurish uchun, ui va uj bilan belgilangan bir juft uyning o'ziga xos tasvirlari bir nechta to'liq ulangan qatlamlardan tashkil topgan bir xil pastki tarmoqlardan o'tadi. Har bir quyi tarmoq o'z uyini 7-rasmda tasvirlanganidek, past o'lchovli ichki makonga joylashtiradi (masalan, N = 25).

Yangi chiqadigan ichki makonda, ikkita uy orasidagi tafovutni kosin masofasi bilan o'lchashlarini istaymiz:

Neyron tarmog'ining parametrlari optimallashtirilgan bo'lib, ushbu yangi ichki makonda shunga o'xshash uylarning kosin masofalari kichikroq va o'xshash uylar katta masofalarga ega. Bunday tarmoqlarni o'qitish ustidan nazorat klik-klik yoki foydalanuvchilarning bosish oqimi ma'lumotlaridagi "birgalikda" ma'lumotlar orqali amalga oshiriladi. O'quv ma'lumotlarini tuzish uchun, biz bir foydalanuvchi tomonidan yaqin sessiyalarda (<= 10 minut) ma'lum bir kontekst oynasida (masalan, deraza o'lchami = 3) bosgan juftliklar nisbatan o'xshashroq va pozitiv deb belgilangan deb taxmin qilamiz. Hech qachon biron bir foydalanuvchi tomonidan bosilmagan uylar bir-biriga o'xshash emas va salbiy deb ko'rsatilgan (8-rasmda ko'rsatilgan).

8-rasm: Musbat va manfiy uylarni langar uyiga foydalanuvchining klik oqimining ma'lumotlaridan olish haqidagi illyustratsiya (kontekst oynasi hajmi = 3, yaqin atrofdagi seans cheklovi: <= 10 daqiqa)

Yo'qotish funktsiyalari

Siyam tarmog'ini o'qitishda quyidagi ikkita yo'qotish funktsiyalari ko'rib chiqiladi.

Qarama-qarshi yo'qotish juftlik uylari orasidagi kosin masofasining mutlaq qiymatini to'g'ridan-to'g'ri optimallashtiradi, shunda musbat juftliklar uchun kosin masofasi minimallashtiriladi, ammo salbiy juftliklar uchun maksimal darajada.

qayerda

S harfi uylarning umumiy to'plamini bildirsin. Ijobiy va salbiy tomonlarning yuqoridagi ta'rifiga binoan i har bir uy uchun Ci barcha foydalanuvchilarning bosish oqimlaridan yig'ilgan ijobiy uylar to'plamini bildiradi. Yij - bu uyali juftlik uchun berilgan yorliq (i, j), agar ijobiy bo'lsa ∈ Ci va manfiy bo'lsa. Dij - bu yangi ichki makonda i va uy j o'rtasidagi kosinaviy o'xshashlik. Ijobiy margin m (0 dan 2 gacha) mashg'ulotni qiyin holatlarga (qattiq salbiy holatlarga) qaratishga imkon beradi.

Tripletlarning yo'qolishi jp ∈ Ci, jn ∉ Ci bo'lgan uylarning uchlik miqdorini hisoblaydi (i, jp, jn). Mutlaq masofani optimallashtirish o'rniga, uchlik yo'qolishi salbiy juftlik (i, jn) va musbat juftlik (i, jp) orasidagi masofa farqini maksimal darajada oshiradi. Nisbiy ahamiyatlilikni optimallashtirish g'oyasi Bayesian Personalized Ranking (BPR) ob'ektiv funktsiyasiga [7] o'xshaydi, u yashirin fikrlarni modellashtirishda samarali bo'ldi. Bu erda m marj kontrastli yo'qotish kabi ta'sir ko'rsatadi.

Ikkala yo'qotish funktsiyalari bilan mashq qilayotganda biz kuzatgan har bir ijobiy juftlik uchun 5 ta salbiy juftlik tanlangan.

Sovuq boshlanadigan narsalar bilan o'xshash uy tavsiyalari

Uylarning barcha joylarini ichki makon bilan xaritadan o'tkazgandan so'ng, uyga o'xshash tavsiyalar ichki makonda kosin masofasiga asoslanib, eng yaqin qo'shnini qidirishga tushiriladi. Bizning modelimiz osongina har qanday yangi tavsiyalarni tavsiyalarga kiritishi mumkin. Har doim yangi uy ro'yxatga olinganida, biz yangi ro'yxat uchun raqamli vakillik yaratish uchun barcha kategoriya atributlari bo'yicha hisoblangan vakilliklarni qidirishimiz mumkin. Keyinchalik, oldindan tayyorlangan neyron tarmog'i tarkibiy makondagi sonli vakillikni kosinaning o'xshashligini hisoblash mumkin bo'lgan uy ichki ichki makoniga xaritalashadi. 9-rasmdagi diagrammada yangi ro'yxatlarni ko'rib chiqish bosqichlari keltirilgan.

9-rasm: Yangi ro'yxatlar bilan uyga o'xshash tavsiyalar uchun ish oqimi

Baholash

Shunga o'xshash uyni tavsiya qilish algoritmlari har Zillow-ning uy tafsilotlari sahifasida xuddi shunday uy karuselini quvvatlaydi. Uyning samarali o'xshash tavsiya etuvchisi uy-joy bozorini o'rganish bo'yicha foydali ko'rsatmalar berib, foydalanuvchi ishtirokini boshqarishi kerak. Dastlabki seansda foydalanuvchi tomonidan ko'rilgan uyni hisobga olsak, tavsiya etuvchidan foydalanuvchi keyingi sessiyalarda o'rganishni ma'qul ko'radigan uylarni tavsiya etilgan o'xshash uylar to'plamida aniqroq belgilashini xohlaymiz. Shuning uchun, biz oflaynda baholash uchun kliklarga asoslangan tegishli metrikani yaratdik. Sinov kunida, ularning birinchi ko'rgan uylariga e'tibor qaratib, har bir foydalanuvchining bo'lajak bosishlari tavsiya etilgan o'xshash uylar ro'yxatida qanday joylashtirilganligini ko'rib chiqamiz. O'rtacha NDCG turli darajadagi pozitsiyalarda turli usullarni taqqoslash uchun oflayn baholash metrikasini taqdim etadi.

Biz taklif qilingan ichki o'rnatish usulini Zillow-da ishlab chiqilgan 3 ta usul bilan taqqosladik:

  1. Boshlang'ich model: 5-rasmda ko'rsatilgan (nazorat qilinmagan) tarkib vektor maydonidagi uyning vakolatidan to'g'ridan-to'g'ri hisoblangan kosinaga o'xshashlik.
  2. Chiziqli model: atribut-oqilona farqlarning vaznli birikmasi sifatida ikkita uy orasidagi masofani o'lchash. Og'irliklar kliklash ma'lumotlaridan o'rganiladi (nazorat qilinadi).
  3. Tasodifiy o'rmon: 2-usulning chiziqli bo'lmagan versiyasi, xuddi shu xususiyatlar bo'yicha farqlash xususiyatlarining bir xil to'plamida o'qitiladi (boshqariladi).

Biz WA holatida foydalanuvchi hodisasi ma'lumotlari asosida turli xil modellarni baholadik. Barcha nazorat qilinadigan modellar sinov kunidan bir hafta oldin foydalanuvchi tadbirlarida o'qitildi. 9-rasmdagi chap chiziqda NDCG o'lchovlari asosiy usulning NDCG @ 1 ga nisbati sifatida ko'rsatilgan. To'g'ri uchastka turli xil boshqariladigan usullarning NDCG ko'taruvchilarini asosiy usul bilan taqqoslaydi (oddiy kosin o'xshashligi).

Bizning natijalarimiz shuni ko'rsatadiki, foydalanuvchi tomonidan bosilgan ma'lumotlarning nazorati NDCG o'lchovlarini asosiy usulga nisbatan sezilarli darajada ko'tarilishiga olib keldi. Asosiy sabab shundaki, foydalanuvchilarning bosish usullari muhim belgilar va ular bir-biri bilan qanday munosabatda bo'lishlari kabi muhim signallarni beradi. Barcha nazorat qilinadigan usullar qatorida, taklif qilingan Siamma ichki o'rnatish usuli ham chiziqli, ham RF modelidan ustundir. Bundan tashqari, uchlik yo'qotish, bizning dasturimiz uchun siam tarmog'ini o'qitishda qarama-qarshi yo'qotishlardan ozgina ustunlikni ko'rsatadi. Eng yaxshi model, uchlik yo'qotish bilan o'rgatilgan siamning ichki modeli, NDCG @ 10-da asosiy usul bo'yicha 21% sezilarli ko'tarishga erishdi.

9-rasm: NDCG o'lchovlari (chapda) va NDCG ko'tarish bo'yicha uyga o'xshash turli xil usullarni taqqoslash (o'ngda).

O'rnatish ma'nosi bormi?

Bu savolga javob berish uchun biz t-SNE bilan 2D maydonda Vashington shtatidagi uylar uchun 25 o'lchovli ichki qismlarni tasavvur qilamiz. 10-rasmdagi t-SNE uchastkalarida har bir nuqta uyni anglatadi va har bir juftlik orasidagi yaqinlik uyning ichki makonidagi ikkita uy o'rtasidagi kosin o'xshashligini aks ettiradi. Biz har bir uchastkadagi uyning asosiy xususiyatlaridan birini (log) shkalasi bo'yicha nuqta bilan bo'yab qo'ydik. Rangli klasterlardagi tuzilish qanchalik ko'p bo'lsa, ichki makonda o'ziga xos xususiyatning ahamiyati shunchalik katta bo'ladi. Bu erdagi fikr bizning blogimizdagi avvalgi postimizga juda o'xshaydi, u erda "Self Organizing Maps" qo'shma filtrlash omillarini ingl. 10-rasmda, atributlar strukturadagi signalga asoslanib, ahamiyatlilik tartibida ko'rsatilgan. O'rnatish vizualizatsiyasidan, joylashuv (uzunlik va kenglik) ichki qismda eng muhim omil bo'lib, undan keyin uyning narxi va uyning o'lchami ko'rinishini kuzatamiz. Ammo shuni ta'kidlash kerakki, ba'zi xususiyatlar boshqalar bilan murakkab o'zaro bog'liqlik tufayli ham muhim bo'lishi mumkin, ular quyidagi vizualizatsiyalar orqali bevosita kuzatilmaydi.

10-rasm: ba'zi tanlangan uy atributlari ko'lami bilan bo'yalgan Vashington shtatidagi tijorat SNE 2D vizualizatsiyasi. E'tibor bering, Zillowda narx, o'lcham (sqft) va kunlar tabiiy jurnal shkalasida.

Xulosa

Ushbu blog postida biz Zillow-da uyga o'xshash tavsiyalar uchun Siam tarmog'idan foydalanib, chuqur o'rganishga asoslangan ro'yxatga kiritish usulini taqdim etamiz. O'rnatish modelimiz birgalikda va tarkibiy ma'lumotlardan foydalanadi, atributlar o'rtasidagi murakkab o'zaro ta'sirlarni yaratadi va "sovuq boshlang'ich" elementlaridan samarali foydalanadi. Oflayn baho uyga o'xshash tavsiyalar orqali foydalanuvchilarga tegishli uylarni topishda bizning ichki o'rnatish usulimizning kuchli ishlashini namoyish etdi. Oflayn natijalarga asoslanib, hozirda Zillow-da uy qurilishi bo'yicha tavsiya etilgan dvigatellarning keyingi avlodini quvvatlantirish uchun Siam tarmoq modelidan foydalanish ustida ishlamoqdamiz.

Ushbu loyihani qo'llab-quvvatlagani uchun Zillow-dagi barcha shaxsiylashtirish guruhiga katta rahmat. Ushbu blog postiga taklif va mulohazalari uchun Erik Ringger, Ondrej Linda va Egor Klevakga alohida minnatdorchilik bildiramiz.

Agar siz ushbu ishni qiziqarli deb hisoblasangiz va ma'lumot va ilm-fan bo'yicha bilimlarni ko'nikmalarimizni bizning keng ko'lamli, boy va doimiy ravishda rivojlanib borayotgan ko'chmas mulk ma'lumotlari to'plamimizga qo'llamoqchi bo'lsangiz, iltimos, murojaat qiling. Biz yollaymiz!

Malumot

[1] Grbovich, Mixaylo va boshqalar. "Qidiruv reytingida embedlarni ro'yxati." 13 mart 2018 yil, Airbnb Engineering & Data Science @Medium.

[2] Grbovich, Mixaylo va boshqalar. "O'zingizning qutingizga elektron tijorat: miqyosda mahsulot bo'yicha tavsiyalar." ACM SIGKDD 21-Xalqaro bilimlarni aniqlash va ma'lumotlarni qidirish bo'yicha xalqaro anjuman materiallari. ACM, 2015 yil.

[3] Gudell, Gudell. "Inventarizatsiya inventarizatsiya qilingan, ammo ro'yxatlar mavjud emas", 2017 yil iyun, bozor to'g'risidagi hisobot, Zillow Group, e'lon qilingan sana: 20 iyul 2017 yil, https://www.zillow.com/research/june-2017-market-report-15956 /

[4] Ringger, Erik va boshqalar. "Uyingizni topish: jonli bozorda keng miqyosli tavsiyalar." ComplexRec 2018

[5] Mikolov, Tomas va boshqalar. "Tarqalgan so'zlar va iboralar va ularning tarkibiy tuzilishi." Axborotni qayta ishlash neyron tizimidagi yutuqlar. 2013 yil.

[6] Maaten, Laurens van der va Jeffri Xinton. "T-SNE yordamida ma'lumotlarni vizualizatsiya qilish." Mashinalarni o'rganish tadqiqotlari jurnali 9.Nov (2008): 2579–2605.

[7] Rendl, Shtefen va boshqalar. "BPR: Bayesianning noaniq fikrlardan shaxsiy reytingi." Sun'iy intellektda noaniqlik bo'yicha 25-chi konferentsiya materiallari. AUAI Press, 2009 yil.

Dastlab www.zillow.com saytida 2018 yil 17 oktyabrda e'lon qilingan.