Ki jan nou travay sou kalite ak vitès seleksyon rekòmandasyon yo

Non mwen se Pavel Parkhomenko, mwen se yon devlopè ML. Nan atik sa a, mwen ta renmen pale sou estrikti a nan sèvis Yandex.Zen ak pataje amelyorasyon teknik, aplikasyon an ki te fè li posib ogmante bon jan kalite a nan rekòmandasyon yo. Soti nan pòs sa a ou pral aprann ki jan yo jwenn sa yo ki pi enpòtan pou itilizatè a nan mitan dè milyon de dokiman nan jis kèk milisgond; ki jan fè dekonpozisyon kontinyèl nan yon gwo matris (ki gen plizyè milyon kolòn ak dè dizèn de milyon ranje) pou nouvo dokiman yo resevwa vektè yo nan dè dizèn de minit; kijan pou réutiliser dekonpozisyon matris itilizatè-atik pou jwenn yon bon reprezantasyon vektè pou videyo.

Ki jan nou travay sou kalite ak vitès seleksyon rekòmandasyon yo

Baz done rekòmandasyon nou an gen plizyè milyon dokiman nan fòma divès kalite: atik tèks ki te kreye sou platfòm nou an epi yo te pran nan sit ekstèn, videyo, naratif ak posts kout. Devlopman yon sèvis konsa asosye ak yon gwo kantite defi teknik. Men kèk nan yo:

  • Divize travay enfòmatik: fè tout operasyon lou offline, epi an tan reyèl sèlman fè aplikasyon rapid nan modèl yo nan lòd yo dwe responsab pou 100-200 ms.
  • Byen vit pran an kont aksyon itilizatè yo. Pou fè sa, li nesesè ke tout evènman yo imedyatman delivre bay rekòmandatè a ak enfliyanse rezilta yo nan modèl yo.
  • Fè manje a pou nouvo itilizatè yo li byen vit adapte ak konpòtman yo. Moun ki fèk rantre nan sistèm nan ta dwe santi ke fidbak yo enfliyanse rekòmandasyon yo.
  • Byen vit konprann ki moun yo rekòmande yon nouvo atik.
  • Reponn byen vit nan aparisyon konstan nan nouvo kontni. Plizyè dizèn de milye atik yo pibliye chak jou, e anpil nan yo gen yon lavi limite (di, nouvèl). Sa a se sa ki distenge yo soti nan fim, mizik ak lòt kontni ki dire lontan ak chè yo kreye.
  • Transfere konesans soti nan yon domèn nan yon lòt. Si yon sistèm rekòmandasyon te antrene modèl pou atik tèks epi nou ajoute videyo sou li, nou ka reitilize modèl ki deja egziste yo pou nouvo kalite kontni an klase pi byen.

Mwen pral di w kouman nou rezoud pwoblèm sa yo.

Seleksyon kandida yo

Ki jan yo diminye kantite dokiman ki anba konsiderasyon pa dè milye de fwa nan yon kèk milisgond, ak nòmalman pa gen okenn deteryorasyon nan bon jan kalite a nan plase?

Sipoze nou fòme anpil modèl ML, pwodwi karakteristik ki baze sou yo, epi fòme yon lòt modèl ki klase dokiman pou itilizatè a. Tout bagay ta bon, men ou pa ka jis pran ak kalkile tout siy yo pou tout dokiman an tan reyèl, si gen dè milyon de dokiman sa yo, ak rekòmandasyon yo bezwen bati nan 100-200 ms. Travay la se chwazi yon seri sèten nan plizyè milyon, ki pral klase pou itilizatè a. Anjeneral yo rele etap sa a seleksyon kandida. Gen plizyè kondisyon pou li. Premyèman, seleksyon an dwe rive trè vit, se konsa ke plis tan ke posib rete pou klasman an tèt li. Dezyèmman, gen anpil redwi kantite dokiman pou klasman, nou dwe prezève dokiman ki enpòtan pou itilizatè a kòm konplètman ke posib.

Prensip nou an nan seleksyon kandida yo te evolye, ak nan moman sa a nou te rive nan yon konplo milti-etap:

Ki jan nou travay sou kalite ak vitès seleksyon rekòmandasyon yo

Premyèman, tout dokiman yo divize an gwoup, epi yo pran dokiman ki pi popilè yo nan chak gwoup. Gwoup yo ka sit, sijè, grap. Pou chak itilizatè, dapre istwa li, yo chwazi gwoup ki pi pre li yo epi yo pran pi bon dokiman yo nan men yo. Nou itilize tou endèks kNN pou chwazi dokiman ki pi pre itilizatè a an tan reyèl. Gen plizyè metòd pou konstwi yon endèks kNN; pa nou an te travay pi byen HNSW (Yerachik Navigab Ti Monn graf). Sa a se yon modèl yerarchize ki pèmèt ou jwenn N vektè ki pi pre pou yon itilizatè nan yon baz done milyon dola nan kèk milisgond. Nou premye endèks tout baz done dokiman nou an offline. Depi rechèch nan endèks la ap travay byen vit, si gen plizyè embeddings fò, ou ka kreye plizyè endèks (yon endèks pou chak embedding) epi jwenn aksè nan chak nan yo an tan reyèl.

Nou toujou gen dè dizèn de milye dokiman pou chak itilizatè. Sa a toujou anpil pou konte tout karakteristik yo, kidonk nan etap sa a nou itilize klasman limyè - yon modèl ki lejè klasman lou ak mwens karakteristik. Travay la se predi ki dokiman yon modèl lou pral genyen nan tèt la. Dokiman ki gen pi gwo prediktè a pral itilize nan modèl lou a, se sa ki, nan dènye etap klasman an. Apwòch sa a pèmèt ou diminye baz done dokiman yo konsidere pou itilizatè a soti nan dè milyon a dè milye nan dè dizèn de milisgond.

ALS etap nan ègzekutabl

Ki jan yo pran an kont fidbak itilizatè imedyatman apre yon klik?

Yon faktè enpòtan nan rekòmandasyon yo se tan repons pou fidbak itilizatè yo. Sa a se espesyalman enpòtan pou itilizatè nouvo: lè yon moun jis kòmanse itilize sistèm rekòmandasyon an, li resevwa yon manje ki pa pèsonalize nan dokiman divès sijè. Le pli vit ke li fè premye klike la, ou bezwen imedyatman pran sa a an kont epi adapte yo ak enterè l 'yo. Si ou kalkile tout faktè offline, yon repons rapid sistèm ap vin enposib akòz reta a. Se konsa, li nesesè pou trete aksyon itilizatè an tan reyèl. Pou rezon sa yo, nou itilize etap ALS nan tan an pou konstwi yon reprezantasyon vektè itilizatè a.

Ann sipoze nou gen yon reprezantasyon vektè pou tout dokiman yo. Pa ekzanp, nou kapab konstwi embeddings offline ki baze sou tèks yon atik itilize ELMo, BERT oswa lòt modèl aprantisaj machin. Ki jan nou ka jwenn yon reprezantasyon vektè itilizatè yo nan menm espas ki baze sou entèraksyon yo nan sistèm nan?

Prensip jeneral fòmasyon ak dekonpozisyon matris itilizatè-dokiman anSe pou nou gen m itilizatè ak n dokiman. Pou kèk itilizatè, yo konnen relasyon yo ak sèten dokiman. Lè sa a, enfòmasyon sa a ka reprezante kòm yon matris mxn: ranje koresponn ak itilizatè yo, ak kolòn koresponn ak dokiman yo. Depi moun nan poko wè pifò dokiman yo, pifò selil matris yo ap rete vid, pandan ke lòt yo pral ranpli. Pou chak evènman (tankou, pa renmen, klike) yo bay kèk valè nan matris la - men ann konsidere yon modèl senplifye kote yon renmen koresponn ak 1, ak yon pa renmen koresponn ak -1.

Ann dekonpoze matris la an de: P (mxd) ak Q (dxn), kote d se dimansyon reprezantasyon vektè a (anjeneral yon ti kantite). Lè sa a, chak objè ap koresponn ak yon vektè d-dimansyon (pou yon itilizatè - yon ranje nan matris P a, pou yon dokiman - yon kolòn nan matris Q). Vektè sa yo pral embeddings objè korespondan yo. Pou predi si yon itilizatè ap renmen yon dokiman, ou ka tou senpleman miltipliye embeddings yo.

Ki jan nou travay sou kalite ak vitès seleksyon rekòmandasyon yo
Youn nan fason posib pou dekonpoze yon matris se ALS (Alternating Least Squares). Nou pral optimize fonksyon pèt sa a:

Ki jan nou travay sou kalite ak vitès seleksyon rekòmandasyon yo

Isit la rui se entèraksyon itilizatè u ak dokiman i, qi se vektè dokiman i, pu se vektè itilizatè u.

Lè sa a, vektè itilizatè optimal la soti nan pwen de vi erè kare mwayen an (pou vektè dokiman fiks) yo jwenn analiz lè yo rezoud regression lineyè ki koresponn lan.

Yo rele sa "etap ALS". Ak algorithm nan ALS tèt li se ke nou altènativman ranje youn nan matris yo (itilizatè yo ak atik) ak mete ajou lòt la, jwenn solisyon an pi bon.

Erezman, jwenn reprezantasyon vektè itilizatè a se yon operasyon jistis rapid ki ka fè nan ègzekutabl lè l sèvi avèk enstriksyon vektè. Trick sa a pèmèt ou imedyatman pran fidbak itilizatè an kont nan klasman. Yo ka itilize menm embedding nan endèks kNN pou amelyore seleksyon kandida yo.

Filtrage kolaboratif distribiye

Ki jan yo fè incrémentielle distribiye faktè matris ak byen vit jwenn reprezantasyon vektè nan nouvo atik?

Kontni se pa sous la sèlman nan siyal rekòmandasyon. Yon lòt sous enpòtan se enfòmasyon kolaborasyon. Karakteristik bon plase tradisyonèlman ka jwenn nan dekonpozisyon matris itilizatè-dokiman an. Men, lè w ap eseye fè yon dekonpozisyon konsa, nou te rankontre pwoblèm:

1. Nou gen dè milyon de dokiman ak dè dizèn de milyon itilizatè yo. Matris la pa anfòm nèt sou yon sèl machin, ak dekonpozisyon pral pran yon tan trè long.
2. Pifò nan kontni an nan sistèm nan gen yon lavi kout: dokiman yo rete enpòtan pou sèlman kèk èdtan. Se poutèt sa, li nesesè pou konstwi reprezantasyon vektè yo pi vit posib.
3. Si ou bati yon dekonpozisyon imedyatman apre yo fin pibliye dokiman an, yon kantite ase itilizatè pa pral gen tan evalye li. Se poutèt sa, reprezantasyon vektè li yo pral gen plis chans pa trè bon.
4. Si yon itilizatè renmen oswa pa renmen, nou pa pral kapab imedyatman pran sa a an kont nan dekonpozisyon an.

Pou rezoud pwoblèm sa yo, nou aplike yon dekonpozisyon distribiye nan matris itilizatè-dokiman an ak mizajou incrémentielle souvan. Ki jan egzakteman li travay?

Sipoze nou gen yon gwoup N machin (N se nan dè santèn) epi nou vle fè yon dekonpozisyon distribiye nan yon matris sou yo ki pa anfòm sou yon sèl machin. Kesyon an se ki jan fè dekonpozisyon sa a pou, sou yon bò, gen ase done sou chak machin, epi, sou lòt la, pou kalkil yo endepandan?

Ki jan nou travay sou kalite ak vitès seleksyon rekòmandasyon yo

Nou pral sèvi ak algorithm dekonpozisyon ALS ki dekri pi wo a. Ann gade kijan pou egzekite yon etap ALS nan yon fason distribiye - rès etap yo pral sanble. Ann di nou gen yon matris fiks nan dokiman epi nou vle bati yon matris itilizatè yo. Pou fè sa, nou pral divize li an N pati pa liy, chak pati ap genyen apeprè menm kantite liy. Nou pral voye nan chak machin selil ki pa vid nan ranje ki koresponn yo, osi byen ke matris la nan embeddings dokiman (antyèman). Depi gwosè li yo pa trè gwo, ak matris itilizatè-dokiman an anjeneral trè rar, done sa yo ap anfòm sou yon machin regilye.

Trick sa a ka repete sou plizyè epòk jiskaske modèl la konvèje, altène matris la fiks youn pa youn. Men, menm lè sa a, dekonpozisyon matris ka pran plizyè èdtan. Lè sa a pa rezoud pwoblèm nan ke ou bezwen byen vit resevwa embeddings nan nouvo dokiman ak mete ajou embeddings yo nan sa yo sou ki te gen ti enfòmasyon lè bati modèl la.

Entwodiksyon rapid mizajou modèl incrémentielle te ede nou. Ann di nou gen yon modèl ki fòme kounye a. Depi fòmasyon li a, te gen nouvo atik ke itilizatè nou yo te kominike avèk yo, osi byen ke atik ki te gen ti entèraksyon pandan fòmasyon. Pou jwenn byen vit entegrasyon atik sa yo, nou itilize embeddings itilizatè yo jwenn pandan premye fòmasyon gwo modèl la epi fè yon sèl etap ALS pou kalkile matris dokiman an bay yon matris itilizatè fiks. Sa pèmèt ou resevwa embeddings byen vit - nan kèk minit apre yo fin pibliye dokiman an - epi souvan mete ajou embeddings yo nan dokiman ki sot pase yo.

Pou fè rekòmandasyon imedyatman pran an kont aksyon imen, nan ègzekutabl nou pa sèvi ak embeddings itilizatè yo jwenn offline. Olye de sa, nou fè yon etap ALS epi jwenn vektè itilizatè aktyèl la.

Transfere nan yon lòt zòn domèn

Ki jan yo sèvi ak fidbak itilizatè sou atik tèks yo bati yon reprezantasyon vektè nan yon videyo?

Okòmansman, nou rekòmande sèlman atik tèks, kidonk anpil nan algoritm nou yo adapte a kalite kontni sa a. Men, lè yo ajoute lòt kalite kontni, nou te fè fas ak nesesite pou adapte modèl yo. Ki jan nou te rezoud pwoblèm sa a lè l sèvi avèk yon egzanp videyo? Youn nan opsyon yo se rekonstwi tout modèl nan grafouyen. Men, sa a pran yon bon bout tan, ak kèk nan algoritm yo ap mande sou gwosè a nan echantiyon fòmasyon an, ki poko disponib nan kantite ki nesesè pou yon nouvo kalite kontni nan premye moman yo nan lavi li sou sèvis la.

Nou te ale nan lòt fason epi nou te reitilize modèl tèks yo pou videyo a. Menm Trick ALS la te ede nou kreye reprezantasyon vektè videyo yo. Nou te pran yon reprezantasyon vektè itilizatè yo ki baze sou atik tèks epi nou te fè yon etap ALS lè l sèvi avèk enfòmasyon gade videyo. Se konsa, nou fasil jwenn yon reprezantasyon vektè nan videyo a. Ak nan ègzekutabl nou tou senpleman kalkile pwoksimite ki genyen ant vektè itilizatè a jwenn nan atik tèks ak vektè videyo a.

Konklizyon

Devlope nwayo a nan yon sistèm rekòmandasyon an tan reyèl enplike anpil defi. Ou bezwen byen vit trete done epi aplike metòd ML pou itilize done sa yo byen; bati sistèm distribiye konplèks ki kapab trete siyal itilizatè yo ak nouvo inite kontni nan yon tan minimòm; ak anpil lòt travay.

Nan sistèm aktyèl la, konsepsyon ki mwen dekri, bon jan kalite rekòmandasyon pou itilizatè a ap grandi ansanm ak aktivite li ak longè rete nan sèvis la. Men, nan kou, isit la manti difikilte prensipal la: li difisil pou sistèm lan imedyatman konprann enterè yo nan yon moun ki gen ti entèraksyon ak kontni an. Amelyore rekòmandasyon pou nouvo itilizatè yo se objektif prensipal nou an. Nou pral kontinye optimize algorithm yo pou kontni ki enpòtan pou yon moun antre nan manje li pi vit, epi yo pa montre kontni ki pa enpòtan.

Sous: www.habr.com

Add nouvo kòmantè