To je gostujoča objava Oliverja Frosta, podatkovnega znanstvenika pri ImmoScout24, v sodelovanju z Lukasom Müllerjem, arhitektom rešitev AWS.
V 2010, ImmoScout24 objavila indeks cen stanovanjskih nepremičnin v Nemčiji: IMX. Temeljil je na seznamih ImmoScout24. Oglasi poleg cene običajno vsebujejo veliko specifičnih informacij, kot so leto izgradnje, velikost parcele ali število sob. Ti podatki so nam omogočili sestavo tako imenovanega hedonističnega indeksa cen, ki upošteva posebne značilnosti nepremičnine.
Ko smo izdali IMX, je bil naš cilj, da ga uveljavimo kot standardni indeks za cene nepremičnin v Nemčiji. Vendar se je trudil zajeti rast cen na nemškem nepremičninskem trgu od finančne krize leta 2008. Poleg tega je bil, tako kot borzni indeks, abstraktna številka, ki je ni mogoče neposredno razlagati. IMX je bil zato nestrokovnjakom težko razumljiv.
Naše poslanstvo pri ImmoScout24 je poenostaviti zapletene odločitve in ugotovili smo, da potrebujemo nov koncept, da to izpolnimo. Namesto drugega indeksa smo se odločili za izdelavo tržnega poročila, ki ga lahko razume vsak: WohnBarometer. Temelji na podatkih iz naših seznamov in upošteva lastnosti predmetov. Ključna razlika od IMX je, da WohnBarometer prikazuje najemnine in prodajne cene v evrih na kvadratni meter za določene vrste stanovanjskih nepremičnin skozi čas. Številke je torej mogoče neposredno interpretirati in našim strankam omogočiti, da odgovorijo na vprašanja, kot je "Ali plačujem preveč najemnine?" ali "Ali je stanovanje, ki ga nameravam kupiti, razumno ceno?" ali "Katero mesto v moji regiji je najbolj obetavno za naložbe?" Trenutno se WohnBarometer poroča za celotno Nemčijo, sedem največjih mest in izmenično lokalne trge.
Naslednji graf prikazuje primer WohnBarometer s prodajnimi cenami za Berlin in razvojem na četrtletje.
Ta objava obravnava uporabo ImmoScout24 Amazon SageMaker ustvariti model za WohnBarometer, da bi bil pomemben za naše stranke. Obravnava osnovni podatkovni model, nastavitev hiperparametrov in tehnične nastavitve. Ta objava prikazuje tudi, kako je SageMaker podprl enega podatkovnega znanstvenika, da je dokončal WohnBarometer v 2 mesecih. Celotna ekipa je potrebovala 2 leti, da je razvila prvo različico IMX. Takšna naložba za WohnBarometer ni bila možnost.
O ImmoScout24
ImmoScout24 je vodilna spletna platforma za stanovanjske in poslovne nepremičnine v Nemčiji. ImmoScout20 že več kot 24 let revolucionira nepremičninski trg in vsak mesec podpira več kot 20 milijonov uporabnikov na svoji spletni tržnici ali v svoji aplikaciji pri iskanju novih domov ali poslovnih prostorov. Zato 99 % naše ciljne skupine strank pozna ImmoScout24. Spletna tržnica s svojimi digitalnimi rešitvami usklajuje in uspešno povezuje lastnike, nepremičninarje, najemnike in kupce. ImoScout24 si prizadeva za digitalizacijo procesa nepremičninskih transakcij in s tem olajšanje zahtevnih odločitev. Od leta 2012 je ImmoScout24 aktiven tudi na avstrijskem nepremičninskem trgu in dosega okoli 3 milijone uporabnikov mesečno.
Od na mestu uporabe do AWS Data Pipeline do SageMaker
V tem razdelku razpravljamo o prejšnji nastavitvi in njenih izzivih ter zakaj smo se odločili uporabiti SageMaker za naš novi model.
Prejšnja nastavitev
Ko je bila leta 2010 objavljena prva različica IMX, je bil oblak še vedno skrivnost za večino podjetij, vključno z ImmoScout24. Področje strojnega učenja (ML) je bilo v povojih in le peščica strokovnjakov je znala kodirati model (za ilustracijo, prva javna izdaja Scikit-Learn je bila februarja 2010). Ni presenetljivo, da je razvoj IMX trajal več kot 2 leti in je stal sedemmestno vsoto.
Leta 2015 je ImmoScout24 začel svojo migracijo na AWS in obnovil IMX na infrastrukturi AWS. S podatki v našem Preprosta storitev shranjevanja Amazon (Amazon S3) podatkovno jezero, tako predprocesiranje podatkov kot usposabljanje modela sta bila zdaj izvedena Amazonski EMR grozdi, ki jih je orkestriral Podatkovni cevovod AWS. Medtem ko je bila prva aplikacija PySpark ETL, je bila druga več skriptov Python, ki uporabljajo klasične pakete ML (kot je Scikit-Learn).
Težave s to nastavitvijo
Čeprav se je ta nastavitev izkazala za precej stabilno, odpravljanje težav z infrastrukturo ali izboljšanje modela ni bilo enostavno. Ključna težava modela je bila njegova zapletenost, ker so nekatere komponente začele živeti same od sebe: na koncu je bila koda zaznavanja odstopanj skoraj dvakrat daljša od kode samega jedrnega modela IMX.
Osrednji model pravzaprav ni bil en model, ampak stotine: en model na vrsto stanovanjske nepremičnine in regijo, z opredelitvijo, ki se je razlikovala od ene soseske v velikem mestu do več vasi na podeželju. Imeli smo na primer en model za stanovanja za prodajo sredi Berlina in en model za hiše za prodajo v predmestju Münchna. Ker je nastavitev usposabljanja vseh teh modelov vzela veliko časa, smo izpustili uravnavanje hiperparametrov, kar je verjetno privedlo do neučinkovitosti modelov.
Zakaj smo se odločili za SageMaker
Glede na ta vprašanja in naše ambicije, da bi imeli tržno poročilo s praktičnimi koristmi, smo se morali odločiti med prepisovanjem velikih delov obstoječe kode ali začetkom iz nič. Kot lahko sklepate iz tega prispevka, smo se odločili za slednje. Ampak zakaj SageMaker?
Večino časa, ki smo ga porabili za IMX, smo porabili za odpravljanje težav z infrastrukturo, ne pa za izboljšanje modela. Za novo tržno poročilo smo želeli to obrniti s poudarkom na statistični uspešnosti modela. Želeli smo imeti tudi fleksibilnost za hitro zamenjavo posameznih komponent modela, kot je optimizacija hiperparametrov. Kaj pa, če se pojavi nov vrhunski algoritem za pospeševanje (pomislite, kako je XGBoost prišel na oder leta 2014)? Seveda ga želimo sprejeti med prvimi!
V SageMakerju so glavne komponente klasičnega poteka dela ML – predprocesiranje, usposabljanje, nastavitev hiperparametrov in sklepanje – lepo ločene na ravni API-ja in tudi na Konzola za upravljanje AWS. Posamezno spreminjanje ni težko.
Novi model
V tem razdelku razpravljamo o komponentah novega modela, vključno z njegovimi vhodnimi podatki, algoritmom, nastavitvijo hiperparametrov in tehničnimi nastavitvami.
Vhodni podatki
WohnBarometer temelji na drsečem oknu 5 let seznamov ImmoScout24 stanovanjskih nepremičnin v Nemčiji. Ko odstranimo odstopanja in goljufive sezname, nam ostanejo približno 4 milijoni seznamov, ki so razdeljeni na niz (60 %), validacijske (20 %) in testne podatke (20 %). Razmerje med seznami in predmeti ni nujno 1:1; v 5 letih je verjetno, da bo isti predmet vstavljen večkrat (več ljudi).
Uporabljamo 13 atributov seznama, kot so lokacija nepremičnine (koordinate WGS84), vrsta nepremičnine (hiša ali stanovanje, prodaja ali najem), njena starost (leta), njena velikost (kvadratni meter) ali njeno stanje (npr. , novo ali prenovljeno). Glede na to, da vsak seznam običajno vsebuje na desetine atributov, se postavlja vprašanje: katere vključiti v model? Po eni strani smo uporabili domensko znanje; dobro je na primer znano, da je lokacija ključni dejavnik in na skoraj vseh trgih so nove nepremičnine dražje od obstoječih. Po drugi strani pa smo se zanašali na naše izkušnje z IMX in podobnimi modeli. Tam smo izvedeli, da vključitev na desetine atributov bistveno ne izboljša modela.
Odvisno od vrste nepremičnine v seznamu je ciljna spremenljivka našega modela najemnina na kvadratni meter ali prodajna cena na kvadratni meter (kasneje pojasnimo, zakaj ta izbira ni bila idealna). Za razliko od IMX je torej WohnBarometer številka, ki jo lahko naše stranke neposredno interpretirajo in na podlagi katere ukrepajo.
Opis modela
Ko uporabljate SageMaker, lahko izbirate med različnimi strategijami implementacije vašega algoritma:
- Uporabite enega od vgrajenih algoritmov SageMaker. Teh je skoraj 20 in pokrivajo vse glavne vrste težav ML.
- Prilagodite vnaprej izdelano sliko Dockerja, ki temelji na standardnem ogrodju ML (kot je Scikit-Learn ali PyTorch).
- Zgradite svoj algoritem in ga razporedite kot sliko Dockerja.
Za WohnBarometer smo želeli rešitev, ki je enostavna za vzdrževanje in nam omogoča, da se osredotočimo na izboljšanje samega modela, ne osnovne infrastrukture. Zato smo se odločili za prvo možnost: uporaba popolnoma upravljanega algoritma z ustrezno dokumentacijo in hitro podporo po potrebi. Nato smo morali izbrati sam algoritem. Odločitev tudi tokrat ni bila težka: odločili smo se za algoritem XGBoost, ker je eden najbolj priznanih algoritmov ML za probleme regresijskega tipa in smo ga že uspešno uporabili v več projektih.
Nastavitev hiperparametrov
Večina algoritmov ML ima nešteto parametrov, ki jih je treba prilagoditi. Algoritmi za povečanje imajo na primer veliko parametrov, ki določajo, kako točno so drevesa zgrajena: Ali imajo drevesa največ 20 ali 30 listov? Ali vsako drevo temelji na vseh vrsticah in stolpcih ali samo na vzorcih? Kako močno obrezati drevesa? Iskanje optimalnih vrednosti teh parametrov (izmerjenih z metriko vrednotenja po vaši izbiri), tako imenovana nastavitev hiperparametrov, je ključnega pomena za izgradnjo zmogljivega modela ML.
Ključno vprašanje pri nastavljanju hiperparametrov je, katere parametre prilagoditi in kako nastaviti obsege iskanja. Morda se boste vprašali, zakaj ne bi preverili vseh možnih kombinacij? Čeprav se v teoriji to sliši kot dobra ideja, bi to povzročilo ogromen prostor hiperparametrov s preveč točkami, da bi jih lahko vse ocenili po razumni ceni. Zato praktiki ML običajno izberejo majhno število hiperparametrov, za katere je znano, da močno vplivajo na delovanje izbranega algoritma.
Ko je prostor hiperparametrov definiran, je naslednja naloga najti najboljšo kombinacijo vrednosti v njem. Običajno se uporabljajo naslednje tehnike:
- Iskanje po mreži – Razdelite prostor v diskretno mrežo in nato ovrednotite vse točke v mreži z navzkrižnim preverjanjem.
- Naključno iskanje – Naključno žrebajte kombinacije iz prostora. S tem pristopom boste najverjetneje zgrešili najboljšo kombinacijo, vendar služi kot dobro merilo.
- Bayesova optimizacija – Zgradite verjetnostni model ciljne funkcije in uporabite ta model za ustvarjanje novih kombinacij. Model se posodobi po vsaki kombinaciji, kar hitro vodi do dobrih rezultatov.
V zadnjih letih je zaradi poceni računske moči Bayesova optimizacija postala zlati standard pri nastavljanju hiperparametrov in je privzeta nastavitev v SageMakerju.
Tehnična nastavitev
Kot pri mnogih drugih storitvah AWS lahko tudi na konzoli ustvarite opravila SageMaker z Vmesnik ukazne vrstice AWS (AWS CLI) ali prek kode. Izbrali smo tretjo možnost, SageMaker Python SDK, če smo natančni, ker omogoča zelo avtomatizirano nastavitev: WohnBarometer živi v projektu programske opreme Python, ki je izvedljiv v ukazni vrstici. Na primer, vse korake cevovoda ML, kot je predprocesiranje ali usposabljanje modela, je mogoče sprožiti prek ukazov Bash. Ti ukazi Bash pa so orkestrirani z Jenkinsovim cevovodom, ki ga poganja AWS Fargate.
Oglejmo si korake in osnovno infrastrukturo:
- Predobdelava – Predhodna obdelava se izvede z vgrajeno knjižnico Scikit-Learn v SageMakerju. Ker vključuje združevanje podatkovnih okvirov z milijoni vrstic, tukaj potrebujemo stroj ml.m5.24xlarge, največji, kar jih lahko dobite v družini ml.m. Druga možnost je, da bi lahko uporabili več manjših strojev s porazdeljenim ogrodjem, kot je Dask, vendar smo želeli ohraniti čim bolj preprosto.
- usposabljanje – Uporabljamo privzeti algoritem SageMaker XGBoost. Usposabljanje poteka z dvema napravama ml.m5.12xlarge. Omeniti velja, da ima naš train.py, ki vsebuje kodo za usposabljanje modela in nastavitev hiperparametrov, manj kot 100 vrstic.
- Nastavitev hiperparametrov – Po načelu manj je več nastavimo samo 11 hiperparametrov (na primer število krogov povečanja in hitrost učenja), kar nam daje čas, da skrbno izberemo njihove obsege in pregledamo, kako medsebojno delujejo. Z le nekaj hiperparametri vsako usposabljanje poteka razmeroma hitro; v našem primeru dela trajajo od 10 do 20 minut. Z največjim številom 30 delovnih mest za usposabljanje in 2 sočasnima delovnima mestoma je skupni čas usposabljanja približno 3 ure.
- Sklepanje – SageMaker ponuja več možnosti za vaš model. Uporabljamo paketna preoblikovanja, ker številke WohnBarometer potrebujemo samo enkrat na četrtletje. Nismo uporabili končne točke, ker bi bila večino časa nedejavna. Vsako paketno opravilo (približno 6.8 milijona vrstic) oskrbi en ml.m5.4xlarge stroj v manj kot 10 minutah.
Te korake lahko enostavno odpravimo na konzoli SageMaker. Če na primer usposabljanje traja dlje, kot je bilo pričakovano, se pomaknemo do usposabljanje stran, poiščite zadevno usposabljanje in ga preglejte amazoncloudwatch metrike osnovnih strojev.
Naslednji diagram arhitekture prikazuje infrastrukturo WohnBarometer:
Izzivi in učenja
Na začetku je šlo vse gladko: v nekaj dneh smo postavili programski projekt in usposobili miniaturno različico našega modela v SageMakerju. Imeli smo veliko upov za prvo izvedbo celotnega nabora podatkov in uravnavanje hiperparametrov. Na žalost rezultati niso bili zadovoljivi. Imeli smo naslednje ključne težave:
- Napovedi modela so bile prenizke, tako za najemne kot prodajne objekte. Za Berlin, na primer, so bile prodajne cene, predvidene za naše referenčne predmete, približno 50 % nižje od tržnih cen.
- Glede na model ni bistvene cenovne razlike med novogradnjami in obstoječimi stavbami. Resnica je, da so novogradnje skoraj vedno bistveno dražje od obstoječih.
- Vpliv lokacije na ceno ni bil pravilno zajet. Vemo na primer, da so stanovanja, ki se prodajajo v Frankfurtu na Majni, v povprečju dražja kot v Berlinu (čeprav jih Berlin dohiteva); naš model pa je napovedal obratno.
V čem je bil problem in kako smo ga rešili?
Vzorčenje funkcij
Na prvi pogled se zdi, da zadevi nista povezani, a v resnici sta. XGBoost privzeto zgradi vsako drevo z naključnim vzorcem funkcij. Recimo, da ima model 10 funkcij F1, F2, … F10, potem lahko algoritem uporablja F1, F4in F7 za eno drevo in F3, F4in F8 za drugo. Čeprav na splošno to vedenje učinkovito preprečuje prekomerno opremljanje, je lahko problematično, če je število funkcij majhno in imajo nekatere od njih velik vpliv na ciljno spremenljivko. V tem primeru bo veliko dreves izgubilo ključne lastnosti.
Vzorčenje naših 13 funkcij s strani XGBoost je privedlo do številnih dreves, vključno z nobeno od ključnih lastnosti – vrste nepremičnine, lokacije ter novih ali obstoječih zgradb – in posledično povzročilo te težave. Na srečo obstaja parameter za nadzor vzorčenja: colsample_bytree
(pravzaprav obstajata še dva parametra za nadzor vzorčenja, a se ju nismo dotikali). Ko smo preverili kodo, smo to videli colsample_bytree
je bila nastavljena na 0.5, vrednost, ki smo jo prenesli iz preteklih projektov. Takoj ko smo ga nastavili na privzeto vrednost 1, so prejšnje težave izginile.
En model proti več modelom
Za razliko od IMX je model WohnBarometer res samo en model. Čeprav to minimalizira napor vzdrževanja, s statističnega vidika ni idealno. Ker naši podatki o usposabljanju vsebujejo tako prodajne kot najemne objekte, je razpon ciljne spremenljivke ogromen: giblje se od manj kot 5 evrov za nekatera najemniška stanovanja do precej nad 10,000 evrov za hiše za prodajo na prvorazrednih lokacijah. Velik izziv za model je razumeti, da je napaka 5 evrov fantastična za prodajne objekte, vendar katastrofalna za najemne objekte.
Če pogledamo nazaj, če vemo, kako enostavno je vzdrževati več modelov v SageMakerju, bi zgradili vsaj dva modela: enega za najem in enega za prodajo. Tako bi lažje zajeli posebnosti obeh trgov. Na primer, cena nenajetih stanovanj za prodajo je običajno 20–30 % višja kot za najemniška stanovanja za prodajo. Zato je kodiranje teh informacij kot navidezne spremenljivke v modelu prodaje zelo smiselno; pri modelu najema pa bi ga lahko izpustili.
zaključek
Ali je WohnBarometer dosegel cilj, da je relevanten za naše stranke? Če vzamemo medijsko poročanje kot pokazatelj, je odgovor jasen pritrdilen: do novembra 2021 je bilo na WohnBarometer objavljenih več kot 700 časopisnih člankov ter TV ali radijskih poročil. Seznam vključuje nacionalne časopise, kot so Frankfurter Allgemeine Zeitung, Tagesspiegel in Handelsblatt, ter lokalne časopise, ki pogosto zahtevajo številke WohnBarometer za svojo regijo. Ker tako ali tako izračunamo številke za vse regije Nemčije, z veseljem sprejmemo takšne zahteve. Pri starem IMX ta stopnja razdrobljenosti ni bila mogoča.
WohnBarometer prekaša IMX v zvezi s statično zmogljivostjo, zlasti ko gre za stroške: IMX je ustvarila gruča EMR z 10 opravilnimi vozlišči, ki delujejo skoraj pol dneva. Nasprotno pa vsi koraki WohnBarometer pri srednje velikih napravah trajajo manj kot 5 ur. Posledica tega je skoraj 75-odstotni prihranek stroškov.
Zahvaljujoč SageMakerju smo lahko z enim podatkovnim znanstvenikom v manj kot 2 mesecih uvedli v proizvodnjo kompleksen model ML. To je izjemno. 10 let prej, ko je ImmoScout24 zgradil IMX, je doseganje istega mejnika trajalo več kot 2 leti in je vključevalo celotno ekipo.
Kako smo lahko tako učinkoviti? SageMaker nam je omogočil, da smo se osredotočili na model namesto na infrastrukturo, SageMaker pa spodbuja arhitekturo mikrostoritev, ki jo je enostavno vzdrževati. Če bi se nam kaj zataknilo, bi lahko poklicali podporo AWS. V preteklosti, ko je eden od naših podatkovnih cevovodov IMX odpovedal, smo včasih porabili dneve za odpravljanje napak. Odkar smo aprila 2021 začeli objavljati številke WohnBarometer, infrastruktura SageMaker ni niti enkrat odpovedala.
Če želite izvedeti več o WohnBarometer, si oglejte WohnBarometer in WohnBarometer: Angebotsmieten stiegen 2021 bundesweit wieder stärker an. Če želite izvedeti več o uporabi knjižnice SageMaker Scikit-Learn za predprocesiranje, glejte Vnaprej obdelajte vhodne podatke pred predvidevanjem z uporabo cevovodov sklepanja Amazon SageMaker in Scikit-learn. Pošljite nam povratne informacije bodisi na AWS forum za Amazon SageMaker, ali prek vaših stikov za podporo AWS.
Vsebina in mnenja v tej objavi so mnenja neodvisnega avtorja in AWS ni odgovoren za vsebino ali točnost te objave.
O avtorjih
Oliver Frost ImmoScout24 se je pridružil leta 2017 kot poslovni analitik. Dve leti pozneje je postal podatkovni znanstvenik v ekipi, katere naloga je pretvoriti podatke ImmoScout24 v prave podatkovne izdelke. Pred izdelavo modela WohnBarometer je vodil manjše projekte SageMaker. Oliver ima več certifikatov AWS, vključno s specializacijo strojnega učenja.
Lukas Müller je arhitekt rešitev pri AWS. Dela s strankami v športni, medijski in zabavni industriji. Vedno išče načine, kako združiti tehnične možnosti s kulturnimi in organizacijskimi možnostmi, da bi strankam pomagal doseči poslovno vrednost s tehnologijami v oblaku.
- Coinsmart. Najboljša evropska borza bitcoinov in kriptovalut.
- Platoblockchain. Web3 Metaverse Intelligence. Razširjeno znanje. PROST DOSTOP.
- CryptoHawk. Altcoin radar. Brezplačen preizkus.
- Vir: https://aws.amazon.com/blogs/machine-learning/predict-residential-real-estate-prices-at-immoscout24-with-amazon-sagemaker/
- "
- 000
- 100
- 11
- 20 let
- 2021
- O meni
- Račun
- aktivna
- algoritem
- algoritmi
- vsi
- že
- Čeprav
- Amazon
- Analitik
- Še ena
- API
- aplikacija
- uporaba
- pristop
- april
- Arhitektura
- okoli
- članki
- Avtomatizirano
- povprečno
- AWS
- postanejo
- Začetek
- počutje
- merilo
- Prednosti
- BEST
- največji
- povečanje
- izgradnjo
- Building
- Gradi
- vgrajeno
- poslovni
- podjetja
- nakup
- klic
- Lahko dobiš
- povzročilo
- Potrdila
- izziv
- izzivi
- Mesta
- mesto
- Cloud
- Koda
- kombinacija
- kombinacije
- komercialna
- kompleksna
- Izračunajte
- Koncept
- stanje
- meni
- Konzole
- Gradbeništvo
- Vsebuje
- vsebina
- nadzor
- Core
- stroški
- bi
- kriza
- ključnega pomena
- Stranke, ki so
- datum
- podatkovni znanstvenik
- dan
- razporedi
- Odkrivanje
- Razvoj
- Razvoj
- DID
- drugačen
- digitalni
- razpravlja
- porazdeljena
- Lučki delavec
- Ne
- domena
- enostavno
- učinek
- učinkovite
- Končna točka
- ogromno
- Zabava
- vzpostaviti
- nepremičnine
- Euro
- vsi
- vse
- Primer
- Pričakuje
- Doživetja
- Strokovnjaki
- družina
- FAST
- Lastnosti
- povratne informacije
- Slika
- finančna
- finančna kriza
- prva
- prilagodljivost
- Osredotočite
- po
- Okvirni
- Izpolnite
- polno
- funkcija
- splošno
- ustvarjajo
- Nemčija
- Pogled
- Cilj
- Gold
- dobro
- Mreža
- skupina
- Gost
- Gost Prispevek
- srečna
- ob
- pomoč
- tukaj
- visoka
- zelo
- drži
- Hiša
- hiše
- Kako
- Kako
- HTTPS
- velika
- Stotine
- Ideja
- slika
- vpliv
- izboljšanje
- vključujejo
- Vključno
- Povečajte
- Indeks
- individualna
- industrij
- Podatki
- Infrastruktura
- vlaganjem
- naložbe
- vključeni
- Vprašanja
- IT
- Job
- Delovna mesta
- pridružil
- Ključne
- znanje
- znano
- velika
- vodi
- UČITE
- naučili
- učenje
- Led
- Stopnja
- Knjižnica
- vrstica
- Seznam
- seznam
- oglasi
- lokalna
- kraj aktivnosti
- Lokacije
- Long
- si
- stroj
- strojno učenje
- Stroji
- velika
- Izdelava
- upravljanje
- Tržna
- Tržno poročilo
- tržnica
- Prisotnost
- mediji
- Meritve
- milijonov
- milijoni
- Mission
- ML
- Model
- modeli
- mesecev
- Najbolj
- nacionalni
- Nova tržnica
- Časopisi
- vozlišča
- številke
- Ponudbe
- na spletu
- spletna tržnica
- Komentarji
- optimizacija
- Možnost
- možnosti
- Da
- Ostalo
- Lastniki
- Partnerstvo
- Plačajte
- ljudje
- performance
- platforma
- Pogled na točko
- mogoče
- moč
- močan
- Napovedi
- Cena
- problem
- Težave
- Postopek
- proizvodnja
- Izdelki
- Projekt
- projekti
- obetaven
- nepremičnine
- javnega
- Založništvo
- četrtletje
- vprašanje
- hitro
- radio
- nepremičnine
- razumno
- Razmerje
- sprostitev
- Priznan
- Najem
- poročilo
- Poročila
- odgovorna
- Rezultati
- pregleda
- Sobe
- krog
- kroge
- Run
- tek
- Podeželja
- Podeželje
- prodaja
- Znanstvenik
- SDK
- Iskalnik
- Občutek
- Storitve
- nastavite
- nastavitev
- pomemben
- Podoben
- Enostavno
- Velikosti
- majhna
- So
- Software
- rešitve
- SOLVE
- Nekaj
- Vesolje
- prostori
- preživeti
- po delih
- Šport
- namaz
- kvadrat
- Stage
- začel
- Statistično
- zaloge
- borza
- shranjevanje
- strategije
- močna
- Uspešno
- superior
- podpora
- Podprti
- Podpira
- presenečenje
- ciljna
- skupina
- tehnični
- tehnike
- Tehnologije
- Test
- tretjih oseb
- skozi
- čas
- skupaj
- na dotik
- usposabljanje
- Transakcije
- Transform
- tv
- razumeli
- us
- uporaba
- Uporabniki
- vrednost
- Poglej
- Kaj
- v
- deluje
- deluje
- vredno
- leto
- let