Sida aan uga shaqeyno tayada iyo xawaaraha xulashada talooyinka

Magacaygu waa Pavel Parkhomenko, waxaan ahay horumariye ML ah. Maqaalkan, waxaan jeclaan lahaa inaan ka hadlo qaab dhismeedka adeegga Yandex.Zen oo aan wadaagno hagaajinta farsamada, hirgelinta taas oo suurtogalisay in la kordhiyo tayada talooyinka. Maqaalkan waxaad ka baran doontaa sida loo helo kuwa ugu habboon isticmaalaha malaayiin dukumeenti ah oo kaliya dhowr millise seconds; sida loo sameeyo burburka joogtada ah ee matrix weyn (ka kooban malaayiin tiirar iyo tobanaan milyan oo saf) si dukumiintiyada cusub u helaan vectorkooda tobanaan daqiiqo gudahood; sida dib loogu isticmaali karo burburka matrixka matrix-ka isticmaalaha si loo helo matalaad wanaagsan oo fiidiyoow ah.

Sida aan uga shaqeyno tayada iyo xawaaraha xulashada talooyinka

Xogta tallo bixintayadu waxay ka kooban tahay malaayiin dukumeenti ah oo qaabab kala duwan leh: maqaallo qoraal ah oo laga sameeyay madalkeenna oo laga soo qaatay boggaga dibadda, fiidiyowyada, sheekooyinka iyo qoraallada gaagaaban. Horumarinta adeeggan oo kale waxay la xiriirtaa tiro badan oo caqabado farsamo ah. Waa kuwan qaar ka mid ah:

  • U qaybi hawlaha xisaabinta: ku samee dhammaan hawlgallada culus ee khadka tooska ah, oo wakhtiga dhabta ah kaliya samee codsi degdeg ah oo moodallo ah si aad mas'uul uga noqoto 100-200 ms.
  • Si degdeg ah ugu xisaabtan ficilada isticmaale Si tan loo sameeyo, waxaa lagama maarmaan ah in dhammaan dhacdooyinka isla markiiba loo dhiibo la-taliyaha oo ay saameyn ku yeeshaan natiijooyinka moodooyinka.
  • Samee quudinta si isticmaalayaasha cusub ay dhaqso ula qabsato dhaqankooda. Dadka hadda ku soo biiray nidaamka waa inay dareemaan in ra'yi-celintoodu ay saamayso talooyinka.
  • Si dhakhso leh u faham cidda aad kula talinayso maqaal cusub.
  • Si degdeg ah uga jawaab soo-baxa joogtada ah ee nuxurka cusub. Tobanaan kun oo maqaallo ah ayaa la daabacaa maalin kasta, qaar badan oo iyaga ka mid ahna waxay leeyihiin cimri xaddidan (dhaho, war). Tani waa waxa iyaga ka sooca filimada, muusikada iyo waxyaabo kale oo dheer oo qaali ah si ay u abuuraan.
  • U wareejinta aqoonta goob domain una wareeji mid kale. Haddii nidaamka talo-bixinta uu leeyahay moodooyinka loo tababaray maqaallada qoraalka oo aan ku darno muuqaal, waxaan dib u isticmaali karnaa moodooyinka jira si nooca cusub ee nuxurku uu u fiicnaado.

Waxaan kuu sheegi doonaa sida aan u xallinay dhibaatooyinkan.

Doorashada musharixiinta

Sidee loo yareeyaa tirada dukumentiyada iyadoo kumanaan jeer la tixgelinayo dhowr millise seconds, iyada oo aan haba yaraatee wax xumaan ah ka dhicin tayada darajada?

Ka soo qaad in aanu tababarnay noocyo badan oo ML ah, oo aanu soo saarnay sifooyin ku salaysan iyaga, oo aanu tababarnay nooc kale oo darajo u dhigaya isticmaalaha. Wax walba way fiicnaan lahaayeen, laakiin ma qaadan kartid oo kaliya ma xisaabin kartid dhammaan calaamadaha dhammaan dukumentiyada waqtiga dhabta ah, haddii ay jiraan malaayiin dukumeenti ah, iyo talooyinka waxay u baahan yihiin in lagu dhiso 100-200 ms. Hawshu waa in la doorto qayb-hoosaad gaar ah oo malaayiin ah, kaas oo loo kala saari doono isticmaalayaasha. Marxaladdan waxaa badanaa loo yaqaannaa xulashada musharraxiinta. Waxaa jira shuruudo dhowr ah oo loo baahan yahay. Marka hore, doorashadu waa inay si dhakhso ah u dhacdaa, si wakhtiga ugu badan ee suurtogalka ah uu uga tago darajada lafteeda. Marka labaad, annagoo si weyn hoos ugu dhignay tirada dukumeentiyada darajada, waa inaan ilaalinaa dukumeenti la xiriira isticmaalaha sida ugu macquulsan.

Mabda'ayada xulashada musharraxiinta ayaa horumaray, hadda waxaan gaadhnay nidaam heerar badan leh:

Sida aan uga shaqeyno tayada iyo xawaaraha xulashada talooyinka

Marka hore, dhammaan dukumiintiyada waxaa loo qaybiyaa kooxo, dukumeentiyada ugu caansanna waxaa laga soo qaatay koox kasta. Kooxuhu waxay noqon karaan goobo, mowduucyo, kooxo. Isticmaale kasta, iyada oo loo eegayo taariikhdiisa, kooxaha isaga ugu dhow ayaa la doortay oo dukumentiyada ugu fiican ayaa laga soo qaatay. Waxaan sidoo kale u isticmaalnaa tusmada kNN si aan u dooranno dukumeentiyada ugu dhow isticmaalaha waqtiga dhabta ah. Waxaa jira dhowr siyaabood oo loo dhiso tusmada kNN; kayaga ayaa si fiican u shaqeeyay HNSW (Graafyada Adduunka Yaryar ee Heerarchical Navigable). Kani waa qaab kala sarrayn ah oo kuu ogolaanaya inaad ka hesho xogta N ee ugu dhow ee isticmaalaha kaydka malaayiinta dhowr millise seconds. Waxaan marka hore tixgalinaa dhammaan xogtayada dukumeentiyada khadka tooska ah. Maadaama raadinta tusaha ay si dhakhso ah u shaqeyso, haddii ay jiraan dhowr waxyaabood oo xoog leh, waxaad abuuri kartaa dhowr tilmaamood (hal index mid kasta oo dhejis ah) oo mid kasta oo ka mid ah u hel waqtiga dhabta ah.

Waxaan wali haysanaa tobanaan kun oo dukumeenti isticmaale kasta. Tani weli waa wax badan in la tiriyo dhammaan sifooyinka, markaa marxaladan waxaan isticmaalnaa darajada iftiinka - moodeel darajo culus oo khafiif ah oo leh astaamo yar. Hawshu waa in la saadaaliyo dukumentiyada nooca culus uu yeelan doono xagga sare. Dukumentiyada leh saadaasha ugu sareysa ayaa loo isticmaali doonaa qaabka culus, taas oo ah, heerka ugu dambeeya ee darajada. Habkani wuxuu kuu ogolaanayaa inaad hoos u dhigto xogta dukumeentiyada loo tixgeliyo isticmaalaha malaayiin ilaa kumanaan tobanaan millise seconds.

ALS waxay ku socotaa wakhtiga runtime

Sida loo tixgeliyo jawaab celinta isticmaalaha isla markiiba guji ka dib?

Arrin muhiim ah oo ku jira talooyinka waa wakhtiga jawaabta isticmaaluhu. Tani waxay si gaar ah muhiim ugu tahay isticmaalayaasha cusub: marka qofku kaliya bilaabo isticmaalka nidaamka talada, wuxuu helayaa quudin aan shakhsiyan ahayn oo dukumeenti mawduucyo kala duwan ah. Isla marka uu sameeyo gujinta ugu horeysa, waxaad u baahan tahay inaad isla markiiba tan ku xisaabtanto oo aad la qabsato danihiisa. Haddii aad xisaabiso dhammaan qodobbada khadka tooska ah, jawaabta nidaamka degdegga ah waxay noqon doontaa mid aan suurtagal ahayn daahitaan awgeed. Markaa waa lagama maarmaan in la habeeyo ficilada isticmaalaha waqtiga dhabta ah. Ujeeddooyinkan, waxaan u isticmaalnaa tillaabada ALS wakhtiga runtime si aan u dhisno matalaad vector ee isticmaalaha.

Aynu ka soo qaadno in aan haysano matalaad vector ah dhammaan dukumentiyada. Tusaale ahaan, waxaan ku dhisi karnaa dhejisyada khadka tooska ah iyadoo ku saleysan qoraalka maqaalka anagoo adeegsanayna ELMO, BERT ama moodooyinka kale ee barashada mashiinka. Sideen ku heli karnaa matalaadda isticmaaleyaasha ee isla meel bannaan iyadoo lagu salaynayo isdhexgalka nidaamka?

Mabda'a guud ee samaynta iyo kala-goynta matrix-ka dukumeentiga isticmaalahaAan haysano isticmaalayaasha m iyo dukumeentiyada. Isticmaalayaasha qaarkood, xiriirka ay la leeyihiin dukumentiyada qaarkood waa la yaqaan. Markaa macluumaadkan waxa loo matali karaa matrix m x n: safafku waxay u dhigmaan isticmaalayaasha, tiirarkuna waxay u dhigmaan dukumentiyada. Maadaama uusan qofku arkin inta badan dukumeentiyada, inta badan unugyada matrixka ayaa ahaan doona faaruq, halka kuwa kalena la buuxin doono. Dhacdo kasta (sida, necbahay, guji) qiimaha qaar ayaa lagu bixiyaa shaxanka - laakiin aynu ka fiirsanno qaab la fududeeyay kaas oo la mid ahi u dhigmayo 1, nacaybkuna u dhigmo -1.

Aan u kala qaybinno shaxanka laba: P (m x d) iyo Q (d x n), halkaas oo d ay tahay cabbirka matalaadda vector (sida caadiga ah tiro yar). Kadib shay kastaa wuxuu u dhigmi doonaa halbeegga d-cabbirka (isticmalaha - safka shaxanka P, dukumeenti - tiir ka mid ah matrixka Q). Qaybahani waxay noqon doonaan gundhigga walxaha u dhigma. Si loo saadaaliyo in isticmaaluhu uu jeclaan doono dukumeenti, waxaad si fudud u badin kartaa wax-soo-saarka.

Sida aan uga shaqeyno tayada iyo xawaaraha xulashada talooyinka
Mid ka mid ah siyaabaha suurtogalka ah ee lagu burburin karo matrixka waa ALS (Beddelka Ugu Yar ee Squares). Waxaan wanaajin doonaa shaqada lumin ee soo socota:

Sida aan uga shaqeyno tayada iyo xawaaraha xulashada talooyinka

Halkan rui waa is dhexgalka isticmaalaha u iyo dukumeentiga i, qi waa vector-ka dukumeentiga i, pu waa vector-ka isticmaalaha u.

Kadibna vector-ka ugu fiican ee isticmaalaha marka laga eego aragtida khaladka labajibbaaran ee celceliska ah (ee vectors dukumeenti go'an) ayaa lagu helaa falanqayn iyadoo la xalinayo dib-u-celinta toosan ee u dhiganta.

Tan waxa loo yaqaan "tallaabo ALS". Algorithm-ka ALS lafteedu waa in aan si beddelaad ah u hagaajino mid ka mid ah maaddooyinka (isticmaalka iyo maqaallada) oo aan cusbooneysiinno kan kale, helitaanka xalka ugu fiican.

Nasiib wanaag, helista matalaadda isticmaaluhu waa hawl degdeg ah oo degdeg ah oo la samayn karo wakhtiga runtime iyadoo la adeegsanayo tilmaamaha vector. Khiyaamadani waxay kuu ogolaanaysaa inaad isla markiiba u qaadato jawaab celinta isticmaalaha xisaabta darajada. Isku-xidhka isku midka ah ayaa loo isticmaali karaa tusmada kNN si loo horumariyo xulashada musharraxiinta.

Shaandhaynta wada shaqayneed ee la qaybiyay

Sida loo sameeyo kordhinta wax-soo-saarka matrix qaybinta oo si degdeg ah loo helo matalaadda vector ee maqaallada cusub?

Nuxurku maaha isha kaliya ee calaamadaha talada Ilaha kale ee muhiimka ah waa macluumaadka iskaashiga. Tilmaamaha darajooyinka wanaagsan ayaa dhaqan ahaan laga heli karaa burburka shaxanka dukumeentiga isticmaalaha. Laakiin markii aan isku daynay inaan samayno burburka noocaas ah, waxaan la kulannay dhibaatooyin:

1. Waxaan haynaa malaayiin dukumeenti ah iyo tobanaan milyan oo isticmaaleyaal ah. Matrixku kuma xidhna gebi ahaanba hal mashiin, burburkuna waxa uu qaadan doonaa wakhti aad u dheer.
2. Inta badan waxa ku jira nidaamka waxay leeyihiin cimri gaaban: dukumeentiyadu waxay ku sii jiraan dhowr saacadood oo keliya. Sidaa darteed, waxaa lagama maarmaan ah in la dhiso matalaaddooda sida ugu dhakhsaha badan ee suurtogalka ah.
3. Haddii aad dhisto burbur isla markiiba ka dib marka dukumeentiga la daabaco, tiro ku filan oo isticmaalayaashu ma heli doonaan wakhti ay ku qiimeeyaan. Sidaa darteed, matalaaddeeda vector waxay u badan tahay inaysan noqon doonin mid aad u wanaagsan.
4. Haddii isticmaaluhu uu jecel yahay ama uu neceb yahay, ma awoodi doono inaan isla markiiba tan ku xisaabtano burburka.

Si loo xalliyo dhibaatooyinkan, waxaanu hirgelinay kala-goynta qaybsan ee matrix-ka dukumeentiga isticmaalaha oo leh cusbooneysiin badan oo dheeraad ah. Sidee dhab ahaan u shaqeysaa?

Ka soo qaad in aan haysano koox ka mid ah mishiinnada N (N waa boqollaal) oo waxaan rabnaa in aan samayno kala-goynta qaybsan ee matrix iyaga oo aan ku habboonayn hal mashiin. Su'aashu waxay tahay sida loo sameeyo burburkan si, dhinaca kale, loo helo xog ku filan mashiinka kasta iyo, dhinaca kale, si xisaabtu u madax banaanaato?

Sida aan uga shaqeyno tayada iyo xawaaraha xulashada talooyinka

Waxaan isticmaali doonaa Algorithm-ka kala-goynta ALS ee kor lagu sharaxay. Aynu eegno sida loo fuliyo hal tallaabo ALS hab qaybsan - inta kale ee tillaabooyinka waxay la mid noqon doonaan. Aynu nidhaahno waxaan haysanaa dukumeenti go'an oo aan rabno inaan dhisno matrix isticmaalayaasha. Si tan loo sameeyo, waxaanu u kala qaybin doonaa qaybaha N ee xariiqyo, qayb kastaa waxay ka koobnaan doontaa qiyaastii tiro isku mid ah. Waxaan u diri doonaa mashiin kasta unugyo aan faaruqin ee safafka u dhigma, iyo sidoo kale shaxanka dukumeentiga dhejiska ah (gebi ahaanba). Maaddaama cabbirkeedu aanu aad u weynayn, iyo matrix-ka dukumeenti-isticmaalka inta badan waa mid aad u yar, xogtani waxay ku habboon tahay mashiinka caadiga ah.

Khiyaamadan waxaa lagu soo celin karaa dhowr xilliyo ilaa moodelku isu keeno, isagoo mid mid u beddelaya matrix-ka go'an. Laakiin xitaa markaa, burburka matrixku wuxuu qaadan karaa saacado badan. Oo tani ma xalliso dhibaatada aad u baahan tahay inaad si dhakhso ah u hesho lifaaqyada dukumentiyada cusub oo aad cusboonaysiiso dhejinta kuwa ku saabsan macluumaadka yar marka la dhisayo qaabka.

Soo bandhigida cusboonaysiinta moodalka korodhka degdega ah ayaa naga caawisay. Aynu nidhaahno waxaanu haysanaa nooc hadda la tababaray. Tan iyo markii ay tababartay, waxaa jiray maqaallo cusub oo isticmaaleyaasheenu ay la falgaleen, iyo sidoo kale maqaallo aan la falgalin intii lagu jiray tababarka. Si aad si dhakhso ah u hesho dhejisyada maqaalladan oo kale, waxaan isticmaalnaa dhejisyada isticmaalaha ee la helay intii lagu jiray tababbarkii ugu horreeyay ee moodeelka waxaanan sameynaa hal tallaabo ALS si loo xisaabiyo matrix dukumeenti ah oo la siiyay matrix isticmaale go'an. Tani waxay kuu ogolaanaysaa inaad si dhakhso leh u hesho gundhigyada -daqiiqado yar gudaheed ka dib marka dukumeentigu soo baxo - oo badiyaa cusbooneysiiso lifaaqyada dukumeentiyadii dhawaa.

Si aad u samayso talooyinka isla markaaba xisaabta ku darso ficilada bini'aadamka, wakhtiga runtime ma isticmaalno gunta isticmaalaha ee laga helay offline. Taa baddalkeeda, waxaan sameynaa tillaabo ALS oo waxaan helnaa isticmaalka dhabta ah ee isticmaalaha.

U beddelo aag domain kale

Sida loo isticmaalo jawaab celinta isticmaalaha ee maqaallada qoraalka si loo dhiso matalaadda vector ee fiidyowga?

Markii hore, waxaan ku talinay kaliya maqaallada qoraalka, sidaas darteed qaar badan oo ka mid ah algorithms-yadayada ayaa lagu habeeyey nuxurka noocaan ah. Laakiin marka lagu daro noocyo kale oo ka kooban, waxaan la kulannay baahida loo qabo in la waafajiyo moodooyinka. Sideen ku xalinay dhibaatadan anagoo adeegsanayna tusaale muuqaal ah? Hal ikhtiyaar ayaa ah in dib loo tababaro dhammaan moodooyinka laga soo bilaabo xoq. Laakiin tani waxay qaadataa waqti dheer, iyo qaar ka mid ah algorithms-yada ayaa dalbanaya cabbirka muunadda tababarka, taas oo aan weli la helin tirada loo baahan yahay ee nooc cusub oo ka mid ah daqiiqadaha ugu horreeya ee noloshiisa adeegga.

Si kale ayaan u marnay oo waxaan dib u isticmaalnay moodooyinka qoraalka ee fiidiyowga. Isla khiyaanada ALS waxay naga caawisay inaan abuurno muuqaal muuqaal ah oo muuqaal ah. Waxaan qaadnay matalaada isticmaalayaasha iyadoo ku saleysan maqaallada qoraalka waxaana sameynay tillaabo ALS anagoo adeegsanayna macluumaadka muuqaalka fiidiyowga. Markaa waxaan si fudud u helnay muuqaalka muuqaalka muuqaalka. Waqtiga runtime-ka waxaan si fudud u xisaabineynaa u dhawaanshaha u dhexeeya isticmaalaha vector-ka ee laga helay maqaallada qoraalka iyo vectorka muuqaalka.

gunaanad

Horumarinta xudunta u ah nidaamka talada wakhtiga-dhabta ah waxa ku jira caqabado badan. Waxaad u baahan tahay inaad si dhakhso leh u socodsiiso xogta oo aad isticmaasho hababka ML si aad si wax ku ool ah u isticmaasho xogtan; in la dhiso habab qaybsan oo adag oo awood u leh in lagu farsameeyo calaamadaha isticmaalaha iyo cutubyo cusub oo ka kooban wakhtiga ugu yar; iyo hawlo kale oo badan.

Nidaamka hadda jira, naqshadeynta kaas oo aan ku sharraxay, tayada talooyinka isticmaalaha ayaa koraya iyada oo ay weheliso waxqabadkiisa iyo dhererka joogitaanka adeegga. Laakiin dabcan, halkan waxaa ku jira dhibka ugu weyn: way ku adag tahay nidaamku inuu isla markiiba fahmo danaha qofka wax yar la falgala nuxurka. Hagaajinta talooyinka isticmaalayaasha cusub waa yoolkeena muhiimka ah. Waxaan sii wadi doonaa inaan wanaajino algorithms-ka si waxa ku jira qofka ay si degdeg ah u galaan quudintiisa, iyo nuxurka aan khusayn lama muujin.

Source: www.habr.com

Add a comment