{"id":71852,"date":"2020-02-28T20:59:58","date_gmt":"2020-02-28T17:59:58","guid":{"rendered":"https:\/\/prohoster.info\/blog\/kak-my-rabotaem-nad-kachestvom-i-skorostyu-podbora-rekomendaczij"},"modified":"2020-03-03T16:14:08","modified_gmt":"2020-03-03T13:14:08","slug":"kak-my-rabotaem-nad-kachestvom-i-skorostyu-podbora-rekomendaczij","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/kak-my-rabotaem-nad-kachestvom-i-skorostyu-podbora-rekomendaczij","title":{"rendered":"Si punojm\u00eb p\u00ebr cil\u00ebsin\u00eb dhe shpejt\u00ebsin\u00eb e rekomandimeve","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Un\u00eb quhem Pavel Parkhomenko, dhe jam zhvillues ML. N\u00eb k\u00ebt\u00eb artikull, do t\u00eb doja t\u00eb flas p\u00ebr struktur\u00ebn e sh\u00ebrbimit Yandex.Zen dhe t\u00eb ndaja p\u00ebrmir\u00ebsimet teknike q\u00eb kan\u00eb lejuar rritjen e cil\u00ebsis\u00eb s\u00eb rekomandimeve. Nga ky postim do t\u00eb m\u00ebsoni se si, p\u00ebr vet\u00ebm disa milisekonda, t\u00eb gjeni mes miliona dokumenteve ato m\u00eb t\u00eb r\u00ebnd\u00ebsishme p\u00ebr p\u00ebrdoruesin; si t\u00eb b\u00ebni nj\u00eb shp\u00ebrndarje t\u00eb vazhdueshme t\u00eb nj\u00eb matrice t\u00eb madhe (e cila p\u00ebrb\u00ebhet nga miliona kolona dhe dhjet\u00ebra miliona rreshta) q\u00eb dokumentet e reja t\u00eb fitojn\u00eb vektorin e tyre p\u00ebr qindra minuta; si t\u00eb rip\u00ebrdorni shp\u00ebrndarjen e matrices p\u00ebrdorues-artikulli, p\u00ebr t\u00eb marr\u00eb nj\u00eb p\u00ebrfaq\u00ebsim t\u00eb mir\u00eb vektorial p\u00ebr videot.<\/p>\n<p><img decoding=\"async\" alt=\"Si punojm\u00eb p\u00ebr cil\u00ebsin\u00eb dhe shpejt\u00ebsin\u00eb e rekomandimeve\" src=\"\/wp-content\/uploads\/2020\/02\/d63caf9162ca3533548fdef9cd740c24.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex> <br \/>\nBaza jon\u00eb e rekomandimeve p\u00ebrmban miliona dokumenteve n\u00eb formate t\u00eb ndryshme: artikuj tekstual\u00eb, t\u00eb krijuar n\u00eb platform\u00ebn ton\u00eb dhe t\u00eb marr\u00eb nga faqet e jashtme, video, narrative dhe postime t\u00eb shkurtra. Zhvillimi i nj\u00eb sh\u00ebrbimi t\u00eb till\u00eb lidhet me nj\u00eb num\u00ebr t\u00eb madh sfidash teknike. Ja disa prej tyre:<\/p>\n<ul>\n<li>T\u00eb ndahen detyrat llogarit\u00ebse: t\u00eb gjitha operacionet e r\u00ebnda t\u00eb b\u00ebhen offline, nd\u00ebrsa n\u00eb koh\u00eb reale t\u00eb ekzekutohen vet\u00ebm aplikimet e shpejta t\u00eb modeleve p\u00ebr t\u00eb p\u00ebrmbushur rendimentin p\u00ebr 100-200 ms.<\/li>\n<li>T\u00eb merren parasysh veprimet e p\u00ebrdoruesit shpejt. P\u00ebr k\u00ebt\u00eb \u00ebsht\u00eb e nevojshme q\u00eb t\u00eb gjitha ngjarjet t\u00eb d\u00ebrgohen menj\u00ebher\u00eb n\u00eb rekomandues dhe t\u00eb ndikojn\u00eb n\u00eb rezultatin e pun\u00ebs s\u00eb modeleve.<\/li>\n<li>T\u00eb b\u00ebhet kanali i till\u00eb q\u00eb p\u00ebr p\u00ebrdoruesit e rinj ai t\u00eb p\u00ebrshtatet shpejt me sjelljen e tyre. Njer\u00ebzit q\u00eb sapo hyn\u00eb n\u00eb sistem duhet t\u00eb ndjejn\u00eb se feedback-u i tyre ndikon n\u00eb rekomandimet.<\/li>\n<li>T\u00eb kuptohet shpejt se kujt t'i rekomandohet nj\u00eb artikull i ri.<\/li>\n<li>T\u00eb reagohet shpejt ndaj shfaqjes s\u00eb vazhdueshme t\u00eb p\u00ebrmbajtjes s\u00eb re. Dhjet\u00ebra mij\u00ebra artikuj publikohen \u00e7do dit\u00eb, dhe shum\u00eb prej tyre kan\u00eb nj\u00eb jet\u00ebgjat\u00ebsi t\u00eb kufizuar (le t\u00eb themi, lajme). Kjo \u00ebsht\u00eb dallimi midis tyre dhe filmeve, muzik\u00ebs dhe p\u00ebrmbajtjeve t\u00eb tjera me jet\u00ebgjat\u00ebsi t\u00eb gjat\u00eb dhe t\u00eb kushtueshme p\u00ebr t'u krijuar.<\/li>\n<li>T\u00eb transferohen njohurit\u00eb nga nj\u00eb fush\u00eb domain n\u00eb nj\u00eb tjet\u00ebr. N\u00ebse n\u00eb sistemin e rekomandimeve ka modele t\u00eb trajnuara p\u00ebr artikuj tekstual\u00eb dhe ne i shtojm\u00eb video, mund t\u00eb rip\u00ebrdorim modelet ekzistuese n\u00eb m\u00ebnyr\u00eb q\u00eb p\u00ebrmbajtja e tipit t\u00eb ri t\u00eb rangoset m\u00eb mir\u00eb.<\/li>\n<\/ul>\n<p>\nDo t\u00eb flas p\u00ebr m\u00ebnyr\u00ebn se si i zgjidh\u00ebm k\u00ebto sfida.<\/p>\n<h2>P\u00ebrzgjedhja e kandidat\u00ebve<\/h2>\n<p>\n<b>Si le t\u00eb shkurtojm\u00eb shum\u00eb dokumente n\u00eb mij\u00ebra her\u00eb brenda disa milisekondash, pa e p\u00ebrkeq\u00ebsuar n\u00eb m\u00ebnyr\u00eb t\u00eb konsiderueshme cil\u00ebsin\u00eb e renditjes?<\/b><\/p>\n<p>Supozoni se kemi trajnuar shum\u00eb modele ML, kemi gjeneruar karakteristika mbi baz\u00ebn e tyre dhe kemi trajnuar nj\u00eb model tjet\u00ebr q\u00eb rendit dokumentet p\u00ebr p\u00ebrdoruesin. T\u00eb gjitha do ishin mir\u00eb, por nuk mund t\u00eb llogarisim t\u00eb gjitha karakteristikat p\u00ebr t\u00eb gjitha dokumentet n\u00eb koh\u00eb reale, ve\u00e7an\u00ebrisht n\u00ebse k\u00ebto dokumente jan\u00eb miliona dhe rekomandimet duhet t\u00eb nd\u00ebrtohen brenda 100-200 ms. Detyra \u00ebsht\u00eb t\u00eb zgjedhim nga miliona nj\u00eb n\u00ebn-grup t\u00eb caktuar q\u00eb do t\u00eb renditet p\u00ebr p\u00ebrdoruesin. Ky etap zakonisht quhet seleksionimi i kandidat\u00ebve. Atij i k\u00ebrkohen disa kushte. S\u00eb pari, seleksionimi duhet t\u00eb ndodh\u00eb shum\u00eb shpejt, p\u00ebr ta l\u00ebn\u00eb sa m\u00eb shum\u00eb koh\u00eb p\u00ebr renditje. S\u00eb dyti, duke reduktuar ndjesh\u00ebm numrin e dokumenteve p\u00ebr renditje, ne duhet t\u00eb ruajm\u00eb sa m\u00eb plot\u00ebsisht dokumentet relevante p\u00ebr p\u00ebrdoruesin.<\/p>\n<p>Principi yn\u00eb i seleksionimit t\u00eb kandidat\u00ebve \u00ebsht\u00eb zhvilluar evolucionarisht, dhe tani kemi arritur n\u00eb nj\u00eb skem\u00eb me disa nivele:<\/p>\n<p><img decoding=\"async\" alt=\"Si punojm\u00eb p\u00ebr cil\u00ebsin\u00eb dhe shpejt\u00ebsin\u00eb e rekomandimeve\" src=\"\/wp-content\/uploads\/2020\/02\/ed9657ed1febe871f36dc7cf7e585963.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <br \/>\nFillimisht, t\u00eb gjitha dokumentet ndahen n\u00eb grupe, dhe nga \u00e7do grup merren dokumentet m\u00eb t\u00eb njohura. Grupe mund t\u00eb jen\u00eb faqet, temat, klasteret. P\u00ebr \u00e7do p\u00ebrdorues, mbi baz\u00ebn e historis\u00eb s\u00eb tij, zgjidhen grupet m\u00eb t\u00eb af\u00ebrta dhe nga ato merren dokumentet m\u00eb t\u00eb mira. Gjithashtu, ne p\u00ebrdorim indeksin kNN p\u00ebr t\u00eb gjetur dokumentet m\u00eb t\u00eb af\u00ebrta me p\u00ebrdoruesin n\u00eb koh\u00eb reale. Ekzistojn\u00eb disa metoda p\u00ebr nd\u00ebrtimin e indeksit kNN, dhe p\u00ebr ne \u00ebsht\u00eb funksionuar m\u00eb s\u00eb miri <noindex><a rel=\"nofollow\" href=\"https:\/\/arxiv.org\/abs\/1603.09320\">HNSW<\/a><\/noindex> (Grafet Hierarkikisht Naviguesh\u00ebm t\u00eb Bot\u00ebs t\u00eb Vog\u00ebl). Ky \u00ebsht\u00eb nj\u00eb model hierarkik q\u00eb lejon gjetjen e N vektor\u00ebve m\u00eb t\u00eb af\u00ebrt p\u00ebr p\u00ebrdoruesin nga nj\u00eb baz\u00eb prej milion dokumentesh brenda disa milisekondash. Fillimisht, ne indeksojm\u00eb t\u00ebr\u00eb baz\u00ebn ton\u00eb t\u00eb dokumenteve offline. Duke qen\u00eb se k\u00ebrkimi n\u00eb indeks funksionon mjaft shpejt, n\u00ebse kemi disa embedding-u t\u00eb forta, mund t\u00eb krijojm\u00eb disa indekse (nj\u00eb p\u00ebr \u00e7do embedding) dhe t'i qasemi secilit prej tyre n\u00eb koh\u00eb reale.<\/p>\n<p>Ne na mbeten dhjet\u00ebra mij\u00ebra dokumentesh p\u00ebr \u00e7do p\u00ebrdorues. Kjo \u00ebsht\u00eb ende nj\u00eb shum\u00eb e madhe p\u00ebr t\u00eb num\u00ebruar t\u00eb gjitha karakteristikat, prandaj n\u00eb k\u00ebt\u00eb faz\u00eb aplikohet nj\u00eb rangim i leht\u00eb - nj\u00eb model i leht\u00ebsuar i rangimit t\u00eb r\u00ebnd\u00eb me nj\u00eb num\u00ebr m\u00eb t\u00eb vog\u00ebl karakteristikash. Detyra \u00ebsht\u00eb t\u00eb parashikojm\u00eb cilat dokumente do t\u00eb jen\u00eb n\u00eb krye nga modeli i r\u00ebnd\u00eb. Dokumentet me parashikimin m\u00eb t\u00eb lart\u00eb do t\u00eb p\u00ebrdoren n\u00eb modelin e r\u00ebnd\u00eb, dometh\u00ebn\u00eb n\u00eb faz\u00ebn e fundit t\u00eb rangimit. Kjo qasje lejon q\u00eb n\u00eb disa milisekonda t\u00eb reduktojm\u00eb baz\u00ebn e dokumenteve t\u00eb shqyrtuara p\u00ebr p\u00ebrdoruesin nga miliona n\u00eb mij\u00ebra.<\/p>\n<h2>Hapi ALS n\u00eb koh\u00ebn e ekzekutimit<\/h2>\n<p>\n<b>Si t\u00eb merret parasysh feedback-u i p\u00ebrdoruesit menj\u00ebher\u00eb pas klikimit?<\/b><\/p>\n<p>Nj\u00eb faktor i r\u00ebnd\u00ebsish\u00ebm n\u00eb rekomandime \u00ebsht\u00eb koha e reagimit ndaj feedback-ut t\u00eb p\u00ebrdoruesit. Kjo \u00ebsht\u00eb ve\u00e7an\u00ebrisht e r\u00ebnd\u00ebsishme p\u00ebr p\u00ebrdoruesit e rinj: kur nj\u00eb person sapo fillon t\u00eb p\u00ebrdor\u00eb sistemin rekomandues, ai merr nj\u00eb rrjedh\u00eb t\u00eb papersonalizuar t\u00eb dokumenteve me nj\u00eb gam\u00eb t\u00eb ndryshme temash. Si\u00e7 b\u00ebhet kliku i par\u00eb, \u00ebsht\u00eb e nevojshme ta marrim parasysh menj\u00ebher\u00eb k\u00ebt\u00eb dhe t'i p\u00ebrshtatemi interesave t\u00eb tij. N\u00ebse llogariten t\u00eb gjitha faktor\u00ebt offline, reagimi i shpejt\u00eb i sistemit do t\u00eb b\u00ebhet i pamundur p\u00ebr shkak t\u00eb vones\u00ebs. Prandaj, \u00ebsht\u00eb e nevojshme t\u00eb procesohen veprimet e p\u00ebrdoruesit n\u00eb koh\u00eb reale. P\u00ebr k\u00ebto q\u00ebllime, ne p\u00ebrdorim hapin ALS n\u00eb koh\u00ebn e ekzekutimit p\u00ebr t\u00eb nd\u00ebrtuar nj\u00eb p\u00ebrfaq\u00ebsim vektorial t\u00eb p\u00ebrdoruesit.<\/p>\n<p>Le t\u00eb supozojm\u00eb se p\u00ebr t\u00eb gjitha dokumentet kemi nj\u00eb p\u00ebrfaq\u00ebsim vektorial. P\u00ebr shembull, ne mund t\u00eb nd\u00ebrtoshim embedding-e offline n\u00eb baz\u00eb t\u00eb tekstit t\u00eb artikullit duke p\u00ebrdorur ELMo, BERT ose modele t\u00eb tjera t\u00eb m\u00ebsimit t\u00eb makineris\u00eb. Si mund t\u00eb kemi nj\u00eb p\u00ebrfaq\u00ebsim vektorial t\u00eb p\u00ebrdoruesve n\u00eb t\u00eb nj\u00ebjtin hap\u00ebsir\u00eb n\u00eb baz\u00eb t\u00eb nd\u00ebrveprimeve t\u00eb tyre n\u00eb sistem?<\/p>\n<p><b class=\"spoiler_title\">Principi i p\u00ebrgjithsh\u00ebm i formimit dhe shp\u00ebrb\u00ebrjes s\u00eb matric\u00ebs p\u00ebrdorues-dokument<\/b>Le t\u00eb kemi m p\u00ebrdorues dhe n dokumente. P\u00ebr disa p\u00ebrdorues dihet relacioni i tyre me disa dokumente. K\u00ebt\u00eb informacion mund ta paraqesim n\u00eb form\u00ebn e nj\u00eb matrice m x n: rreshtat i p\u00ebrkojn\u00eb p\u00ebrdoruesve, nd\u00ebrsa kolonat \u2014 dokumenteve. Duke qen\u00eb se shumica e dokumenteve nuk jan\u00eb par\u00eb nga ndonj\u00eb person, pjesa m\u00eb e madhe e qelizave t\u00eb matrices do t\u00eb mbeten t\u00eb zbraz\u00ebta, nd\u00ebrsa t\u00eb tjerat do t\u00eb jen\u00eb t\u00eb mbushura. P\u00ebr \u00e7do ngjarje (p\u00eblqim, mosp\u00eblqim, klikim) n\u00eb matric\u00eb \u00ebsht\u00eb parashikuar nj\u00eb vler\u00eb \u2014 por le t\u00eb shqyrtojm\u00eb nj\u00eb model t\u00eb thjesht\u00ebzuar, n\u00eb t\u00eb cilin nj\u00eb p\u00eblqim i p\u00ebrgjigjet 1, nd\u00ebrsa nj\u00eb mosp\u00eblqim \u20131.<\/p>\n<p>Le t\u00eb ndajm\u00eb matric\u00ebn n\u00eb dy: P (m x d) dhe Q (d x n), ku d \u00ebsht\u00eb dimensioni i p\u00ebrfaq\u00ebsimit vektorial (zakonisht nj\u00eb num\u00ebr i vog\u00ebl). At\u00ebher\u00eb \u00e7do objekt i p\u00ebrgjigjet nj\u00eb vektori d-dimensional (p\u00ebrdoruesit \u2014 rreshti n\u00eb matric\u00ebn P, dokumentit \u2014 kolona n\u00eb matric\u00ebn Q). K\u00ebta vektor\u00eb do t\u00eb jen\u00eb embedding-et e objekteve p\u00ebrkat\u00ebse. P\u00ebr t\u00eb parashikuar n\u00ebse nj\u00eb dokument do t'i p\u00eblqej\u00eb p\u00ebrdoruesit, mjafton t\u00eb shumohen embedding-et e tyre.<\/p>\n<p><img decoding=\"async\" alt=\"Si punojm\u00eb p\u00ebr cil\u00ebsin\u00eb dhe shpejt\u00ebsin\u00eb e rekomandimeve\" src=\"\/wp-content\/uploads\/2020\/02\/a0c721bccb3806f2c4a18693a9458a89.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nNj\u00eb nga m\u00ebnyrat e mundshme p\u00ebr ndarjen e matrices \u00ebsht\u00eb ALS (Alternating Least Squares). Ne do t\u00eb optimizojm\u00eb funksionin e m\u00ebposht\u00ebm t\u00eb humbjes:<\/p>\n<p><img decoding=\"async\" alt=\"Si punojm\u00eb p\u00ebr cil\u00ebsin\u00eb dhe shpejt\u00ebsin\u00eb e rekomandimeve\" src=\"\/wp-content\/uploads\/2020\/02\/aab8a1ae1cdf39de21e7469864c5190a.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\nK\u00ebtu rui \u00ebsht\u00eb interaksioni i p\u00ebrdoruesit u me dokumentin i, qi \u00ebsht\u00eb vektori i dokumentit i, pu \u00ebsht\u00eb vektori i p\u00ebrdoruesit u.<\/p>\n<p>At\u00ebher\u00eb vektori optimal nga pik\u00ebpamja e gabimit mesatar t\u00eb katror\u00ebve t\u00eb p\u00ebrdoruesit (me vektor\u00ebt e dokumenteve t\u00eb fiksuar) gjendet analitikisht duke zgjidhur regresionin p\u00ebrkat\u00ebs linear.<\/p>\n<p>Kjo quhet \u201chapi ALS\u201d. Dhe algoritmi ALS p\u00ebrb\u00ebhet nga fakti se ne alternativisht fiksojm\u00eb nj\u00eb nga matricat (p\u00ebrdoruesit dhe artikujt) dhe azhurnojm\u00eb tjetr\u00ebn, duke gjetur zgjidhjen optimale.<\/p>\n<p>Fatmir\u00ebsisht, gjetja e p\u00ebrfaq\u00ebsimit vektorial t\u00eb p\u00ebrdoruesit \u00ebsht\u00eb nj\u00eb operacion mjaft i shpejt\u00eb, q\u00eb mund t\u00eb b\u00ebhet n\u00eb koh\u00ebn e ekzekutimit, duke p\u00ebrdorur instrukcione vektoriale. Ky trik lejon t\u00eb merret parasysh menj\u00ebher\u00eb feedback-u i p\u00ebrdoruesit n\u00eb renditje. I nj\u00ebjti embedding mund t\u00eb p\u00ebrdoret gjithashtu n\u00eb indeksin kNN p\u00ebr t\u00eb p\u00ebrmir\u00ebsuar filtrimin e kandidaturave.<\/p>\n<h2>Filtrimi kolaborativ i shp\u00ebrndar\u00eb<\/h2>\n<p>\n<b>Si t\u00eb b\u00ebjm\u00eb faktorizimin e matrices inkrmental dhe shp\u00ebrndar\u00ebs dhe t\u00eb gjejm\u00eb shpejt p\u00ebrfaq\u00ebsimin vektorial t\u00eb artikujve t\u00eb rinj?<\/b><\/p>\n<p>P\u00ebrmbajtja nuk \u00ebsht\u00eb burimi i vet\u00ebm i sinjaleve p\u00ebr rekomandime. Nj\u00eb burim tjet\u00ebr i r\u00ebnd\u00ebsish\u00ebm \u00ebsht\u00eb informacioni kolaborativ. Shkall\u00ebzime t\u00eb mira n\u00eb renditje tradicionalisht mund t\u00eb nxirren nga dekompozimi i matric\u00ebs p\u00ebrdorues-dokument. Por gjat\u00eb p\u00ebrpjekjes p\u00ebr ta b\u00ebr\u00eb k\u00ebt\u00eb dekompozim, ne u p\u00ebrball\u00ebm me probleme:<\/p>\n<p>1. Ne kemi miliona dokumente dhe dhjet\u00ebra miliona p\u00ebrdorues. Matrica nuk mund t\u00eb p\u00ebrfitohet e t\u00ebra n\u00eb nj\u00eb makin\u00eb, dhe dekompozimi do t\u00eb zgjas\u00eb shum\u00eb.<br \/>\n2. P\u00ebr shumic\u00ebn e p\u00ebrmbajtjes n\u00eb sistem, koha e jet\u00ebs \u00ebsht\u00eb e shkurt\u00ebr: dokumentet mbeten relevante vet\u00ebm p\u00ebr disa or\u00eb. Prandaj, \u00ebsht\u00eb e nevojshme t\u00eb nd\u00ebrtohet sa m\u00eb shpejt p\u00ebrfaq\u00ebsimi i tyre vektorial.<br \/>\n3. N\u00ebse b\u00ebjm\u00eb dekompozim menj\u00ebher\u00eb pas publikimit t\u00eb dokumentit, nuk do t\u00eb ken\u00eb pasur koh\u00eb t\u00eb mjaftueshme p\u00ebr ta vler\u00ebsuar nj\u00eb num\u00ebr i mjaftuesh\u00ebm p\u00ebrdoruesish. Prandaj, p\u00ebrfaq\u00ebsimi i tij vektorial ka shum\u00eb t\u00eb ngjar\u00eb t\u00eb mos jet\u00eb shum\u00eb i mir\u00eb.<br \/>\n4. N\u00ebse p\u00ebrdoruesi ka dh\u00ebn\u00eb nj\u00eb p\u00eblqim ose nj\u00eb kund\u00ebrshtim, ne nuk do t\u00eb mund ta marrim parasysh k\u00ebt\u00eb menj\u00ebher\u00eb n\u00eb dekompozim.<\/p>\n<p>P\u00ebr t\u00eb zgjidhur problemet e p\u00ebrmendura, ne realizuam nj\u00eb dekompozim t\u00eb shp\u00ebrndar\u00eb t\u00eb matric\u00ebs p\u00ebrdorues-dokument me p\u00ebrdit\u00ebsim incremental t\u00eb shpesht\u00eb. Si funksionon kjo?<\/p>\n<p>Supozoni se kemi nj\u00eb klaster prej N makinash (N \u00ebsht\u00eb n\u00eb qindra) dhe ne duam t\u00eb b\u00ebjm\u00eb nj\u00eb dekompozim t\u00eb shp\u00ebrndar\u00eb t\u00eb matric\u00ebs, e cila nuk p\u00ebrfiton n\u00eb nj\u00eb makin\u00eb. Pyetja \u00ebsht\u00eb \u2014 si ta kryejm\u00eb k\u00ebt\u00eb dekompozim, q\u00eb, nga nj\u00ebra an\u00eb, n\u00eb secil\u00ebn makin\u00eb t\u00eb ket\u00eb mjaft t\u00eb dh\u00ebna dhe, nga ana tjet\u00ebr, llogaritjet t\u00eb jen\u00eb t\u00eb pavarura? <\/p>\n<p><img decoding=\"async\" alt=\"Si punojm\u00eb p\u00ebr cil\u00ebsin\u00eb dhe shpejt\u00ebsin\u00eb e rekomandimeve\" src=\"\/wp-content\/uploads\/2020\/02\/9170b0fecb6efcd41754ec20ee539a15.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDo t\u00eb p\u00ebrdorim algoritmin e dekompozimit t\u00eb p\u00ebrshkruar m\u00eb sip\u00ebr, ALS. Le t\u00eb shohim se si t\u00eb realizojm\u00eb nj\u00eb hap t\u00eb vet\u00ebm t\u00eb ALS n\u00eb m\u00ebnyr\u00eb t\u00eb shp\u00ebrndar\u00eb \u2014 hapat e tjer\u00eb do t\u00eb jen\u00eb t\u00eb ngjash\u00ebm. Supozoni se kemi fixuar matric\u00ebn e dokumenteve dhe duam t\u00eb nd\u00ebrtojm\u00eb matric\u00ebn e p\u00ebrdoruesve. P\u00ebr k\u00ebt\u00eb, do ta ndajm\u00eb at\u00eb n\u00eb N pjes\u00eb sipas rreshtave, secila pjes\u00eb do t\u00eb p\u00ebrmbaj\u00eb m\u00eb shum\u00eb rreth t\u00eb nj\u00ebjtit num\u00ebr rreshtash. Do t\u2019i d\u00ebrgojm\u00eb \u00e7do makine qelizat e plota p\u00ebrkat\u00ebse t\u00eb rreshtave, si dhe matric\u00ebn e embedimeve t\u00eb dokumenteve (n\u00eb t\u00ebr\u00ebsi). Duke qen\u00eb se ajo ka nj\u00eb madh\u00ebsi t\u00eb vog\u00ebl, nd\u00ebrsa matrica p\u00ebrdorues-dokument zakonisht \u00ebsht\u00eb shum\u00eb e holl\u00eb, k\u00ebto t\u00eb dh\u00ebna do t\u00eb p\u00ebrmbahen n\u00eb nj\u00eb makin\u00eb normale.<\/p>\n<p>Ky ky\u00e7 mund t\u00eb p\u00ebrs\u00ebritet p\u00ebr disa epoka deri sa t\u00eb arrihet konvergjenca e modelit, duke nd\u00ebrruar ndonj\u00ebher\u00eb matric\u00ebn e fiksuar. Por edhe at\u00ebher\u00eb, shp\u00ebrb\u00ebrja e matric\u00ebs mund t\u00eb zgjas\u00eb disa or\u00eb. Dhe kjo nuk zgjidh problemin se duhet t\u00eb marrim shpejt embedimet e dokumenteve t\u00eb reja dhe t\u00eb p\u00ebrdit\u00ebsojm\u00eb embedimet e atyre q\u00eb kishin pak informacion gjat\u00eb nd\u00ebrtimit t\u00eb modelit. <\/p>\n<p>Na ndihmoi implementimi i nj\u00eb p\u00ebrdit\u00ebsimi t\u00eb shpejt\u00eb incremental t\u00eb modelit. Supozoni se ne kemi nj\u00eb model t\u00eb trajnuar aktualisht. Q\u00eb nga trajnimi i tij jan\u00eb shfaqur artikuj t\u00eb rinj, me t\u00eb cil\u00ebt p\u00ebrdoruesit tan\u00eb kan\u00eb nd\u00ebrvepruar, si dhe artikuj q\u00eb kishin pak nd\u00ebrveprime gjat\u00eb trajnimit. P\u00ebr t\u00eb marr\u00eb shpejt embedimin e k\u00ebtyre artikujve, ne p\u00ebrdorim embedimet e p\u00ebrdoruesve t\u00eb marra gjat\u00eb trajnimit t\u00eb par\u00eb t\u00eb madh t\u00eb modelit dhe kryejm\u00eb nj\u00eb hap ALS p\u00ebr t\u00eb llogaritur matric\u00ebn e dokumenteve me matric\u00ebn e p\u00ebrdoruesve t\u00eb fiksur. Ky proces na lejon t\u00eb marrim embedime mjaft shpejt - brenda disa minutash pas publikimit t\u00eb dokumentit - dhe t\u00eb p\u00ebrdit\u00ebsojm\u00eb shpesh embedimet e dokumenteve t\u00eb reja.<\/p>\n<p>P\u00ebr t\u00eb marr\u00eb parasysh menj\u00ebher\u00eb veprimet e njeriut p\u00ebr rekomandimet, n\u00eb koh\u00ebn e ekzekutimit ne nuk p\u00ebrdorim embedimet e p\u00ebrdoruesve t\u00eb marra n\u00eb offline. N\u00eb vend t\u00eb k\u00ebsaj, ne b\u00ebjm\u00eb nj\u00eb hap ALS dhe marrim vektorin aktual t\u00eb p\u00ebrdoruesit.<\/p>\n<h2>Kalimi n\u00eb nj\u00eb fush\u00eb tjet\u00ebr domene<\/h2>\n<p>\n<b>Si t\u00eb p\u00ebrdorim feedback-un e p\u00ebrdoruesit ndaj artikujve tekstor\u00eb p\u00ebr t\u00eb nd\u00ebrtuar nj\u00eb p\u00ebrfaq\u00ebsim vektorial t\u00eb videove?<\/b><\/p>\n<p>Fillimisht, ne rekomandonim vet\u00ebm artikujt tekstor\u00eb, k\u00ebshtu q\u00eb shum\u00eb nga algoritm\u00ebt tan\u00eb ishin t\u00eb p\u00ebrshtatur p\u00ebr k\u00ebt\u00eb lloj p\u00ebrmbajtjeje. Por me shtimin e p\u00ebrmbajtjes s\u00eb llojit tjet\u00ebr, u ballafaquam me nevoj\u00ebn p\u00ebr adaptimin e modeleve. Si e zgjidh\u00ebm k\u00ebt\u00eb \u00e7\u00ebshtje me shembullin e videove? Nj\u00eb nga mund\u00ebsit\u00eb \u00ebsht\u00eb t\u00eb ri-trajnojm\u00eb t\u00eb gjitha modelet nga zero. Por kjo zgjat, p\u00ebr m\u00eb tep\u00ebr, disa algoritma k\u00ebrkojn\u00eb nj\u00eb volum t\u00eb madh t\u00eb mostrave p\u00ebr ta, i cili nuk \u00ebsht\u00eb n\u00eb sasin\u00eb e nevojshme p\u00ebr p\u00ebrmbajtjen e k\u00ebtij lloji n\u00eb momentet e para t\u00eb jet\u00ebs s\u00eb saj n\u00eb sh\u00ebrbim.<\/p>\n<p>Ne kemi ndjekur nj\u00eb rrug\u00eb tjet\u00ebr dhe kemi rip\u00ebrdorur modelet e teksteve p\u00ebr video. N\u00eb krijimin e p\u00ebrfaq\u00ebsimeve vektoriale t\u00eb videove na ndihmoi po ai truk me ALS. Ne mor\u00ebm p\u00ebrfaq\u00ebsimin vektorial t\u00eb p\u00ebrdoruesve n\u00eb baz\u00eb t\u00eb artikujve tekstual\u00eb dhe b\u00ebm\u00eb nj\u00eb hap ALS, duke p\u00ebrdorur informacionin mbi shikimet e videove. K\u00ebshtu ne mor\u00ebm leht\u00ebsisht p\u00ebrfaq\u00ebsimin vektorial t\u00eb videove. Dhe n\u00eb koh\u00ebn e ekzekutimit ne thjesht llogarisim af\u00ebrsin\u00eb mes vektorit t\u00eb p\u00ebrdoruesit, i marr\u00eb n\u00eb baz\u00eb t\u00eb artikujve tekstular\u00eb, dhe vektorit t\u00eb videos.<\/p>\n<h2>P\u00ebrfundim<\/h2>\n<p>\nZhvillimi i b\u00ebrtham\u00ebs s\u00eb sistemit rekomandues n\u00eb koh\u00eb reale \u00ebsht\u00eb i lidhur me shum\u00eb detyra. Duhet t\u00eb p\u00ebrpunohen shpejt t\u00eb dh\u00ebnat dhe t\u00eb aplikohen metodat e ML p\u00ebr p\u00ebrdorim efektiv t\u00eb k\u00ebtyre t\u00eb dh\u00ebnave; t\u00eb nd\u00ebrtohen sisteme t\u00eb shp\u00ebrndara komplekse, t\u00eb cilat mund t\u00eb p\u00ebrpunojn\u00eb sinjalet e p\u00ebrdoruesve dhe nj\u00ebsit\u00eb e reja t\u00eb p\u00ebrmbajtjes n\u00eb minimumin e koh\u00ebs; dhe shum\u00eb detyra t\u00eb tjera.<\/p>\n<p>N\u00eb sistemin aktual, struktura e t\u00eb cilit e kam p\u00ebrshkruar, cil\u00ebsia e rekomandimeve p\u00ebr p\u00ebrdoruesin rritet s\u00eb bashku me aktivitetin e tij dhe koh\u00ebn e q\u00ebndrimit n\u00eb sh\u00ebrbim. Por sigurisht, k\u00ebtu q\u00ebndron edhe v\u00ebshtir\u00ebsia kryesore: sistemi ka v\u00ebshtir\u00ebsi t\u00eb kuptoj\u00eb menj\u00ebher\u00eb interesat e nj\u00eb njeriu q\u00eb ka pasur pak nd\u00ebrveprime me p\u00ebrmbajtjen. P\u00ebrmir\u00ebsimi i rekomandimeve p\u00ebr p\u00ebrdoruesit e rinj \u00ebsht\u00eb detyra jon\u00eb kryesore. Ne do t\u00eb vazhdojm\u00eb t\u00eb optimizojm\u00eb algoritmet, n\u00eb m\u00ebnyr\u00eb q\u00eb p\u00ebrmbajtja relevante p\u00ebr personin t\u00eb arrij\u00eb m\u00eb shpejt n\u00eb feed-in e tij, nd\u00ebrsa ajo q\u00eb nuk \u00ebsht\u00eb relevante t\u00eb mos shfaqet.<br \/>\n<br \/>Burimi: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/yandex\/blog\/490140\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u041f\u0430\u0432\u0435\u043b \u041f\u0430\u0440\u0445\u043e\u043c\u0435\u043d\u043a\u043e, \u044f ML-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u0445\u043e\u0442\u0435\u043b \u0431\u044b \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043e\u0431 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u0430 \u042f\u043d\u0434\u0435\u043a\u0441.\u0414\u0437\u0435\u043d \u0438 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f\u043c\u0438, \u0432\u043d\u0435\u0434\u0440\u0435\u043d\u0438\u0435 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u043b\u043e \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0439. \u0418\u0437 \u043f\u043e\u0441\u0442\u0430 \u0432\u044b \u0443\u0437\u043d\u0430\u0435\u0442\u0435, \u043a\u0430\u043a \u0432\u0441\u0435\u0433\u043e \u0437\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c \u0441\u0440\u0435\u0434\u0438 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u043e\u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0440\u0435\u043b\u0435\u0432\u0430\u043d\u0442\u043d\u044b\u0435 \u0434\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f; \u043a\u0430\u043a \u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u043e\u0435 \u0440\u0430\u0437\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u044b (\u0441\u043e\u0441\u0442\u043e\u044f\u0449\u0435\u0439 \u0438\u0437 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u043e\u0432 \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 \u0438 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":71853,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-71852","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u041f\u0430\u0432\u0435\u043b \u041f\u0430\u0440\u0445\u043e\u043c\u0435\u043d\u043a\u043e, \u044f ML-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u0445\u043e\u0442\u0435\u043b \u0431\u044b \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043e\u0431 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u0430 \u042f\u043d\u0434\u0435\u043a\u0441.\u0414\u0437\u0435\u043d \u0438 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f\u043c\u0438, \u0432\u043d\u0435\u0434\u0440\u0435\u043d\u0438\u0435 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u043b\u043e \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0439.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/kak-my-rabotaem-nad-kachestvom-i-skorostyu-podbora-rekomendaczij\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"sq_AL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041a\u0430\u043a \u043c\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u043d\u0430\u0434 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u0438 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c\u044e \u043f\u043e\u0434\u0431\u043e\u0440\u0430 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0439 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u041f\u0430\u0432\u0435\u043b \u041f\u0430\u0440\u0445\u043e\u043c\u0435\u043d\u043a\u043e, \u044f ML-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u0445\u043e\u0442\u0435\u043b \u0431\u044b \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043e\u0431 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u0430 \u042f\u043d\u0434\u0435\u043a\u0441.\u0414\u0437\u0435\u043d \u0438 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f\u043c\u0438, \u0432\u043d\u0435\u0434\u0440\u0435\u043d\u0438\u0435 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u043b\u043e \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0439.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/kak-my-rabotaem-nad-kachestvom-i-skorostyu-podbora-rekomendaczij\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-02-28T17:59:58+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-03-03T13:14:08+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Si punojm\u00eb p\u00ebr cil\u00ebsin\u00eb dhe shpejt\u00ebsin\u00eb e rekomandimeve | ProHoster","description":"M\u00eb quajn\u00eb Pavel Parkhomenko, jam zhvillues ML. N\u00eb k\u00ebt\u00eb artikull do t\u00eb doja t\u00eb flisja p\u00ebr struktur\u00ebn e sh\u00ebrbimit Yandex.Zen dhe t\u00eb ndaja p\u00ebrmir\u00ebsimet teknike, t\u00eb cilat lejuan rritjen e cil\u00ebsis\u00eb s\u00eb rekomandimeve.","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/kak-my-rabotaem-nad-kachestvom-i-skorostyu-podbora-rekomendaczij","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sq_AL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041a\u0430\u043a \u043c\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u043d\u0430\u0434 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u0438 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c\u044e \u043f\u043e\u0434\u0431\u043e\u0440\u0430 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0439 | ProHoster","og:description":"\u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u041f\u0430\u0432\u0435\u043b \u041f\u0430\u0440\u0445\u043e\u043c\u0435\u043d\u043a\u043e, \u044f ML-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u0445\u043e\u0442\u0435\u043b \u0431\u044b \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043e\u0431 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u0430 \u042f\u043d\u0434\u0435\u043a\u0441.\u0414\u0437\u0435\u043d \u0438 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f\u043c\u0438, \u0432\u043d\u0435\u0434\u0440\u0435\u043d\u0438\u0435 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u043b\u043e \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0439.","og:url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/kak-my-rabotaem-nad-kachestvom-i-skorostyu-podbora-rekomendaczij","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-02-28T17:59:58+00:00","article:modified_time":"2020-03-03T13:14:08+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"71852","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 18:55:28","updated":"2022-10-09 15:47:56","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/71852","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/comments?post=71852"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/71852\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/71853"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=71852"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=71852"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=71852"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}