సిఫార్సుల ఎంపిక నాణ్యత మరియు వేగంపై మేము ఎలా పని చేస్తాము

నా పేరు పావెల్ పార్కోమెంకో, నేను ML డెవలపర్‌ని. ఈ ఆర్టికల్లో, నేను Yandex.Zen సేవ యొక్క నిర్మాణం గురించి మాట్లాడాలనుకుంటున్నాను మరియు సాంకేతిక మెరుగుదలలను భాగస్వామ్యం చేయాలనుకుంటున్నాను, దీని అమలు సిఫార్సుల నాణ్యతను పెంచడం సాధ్యం చేసింది. ఈ పోస్ట్ నుండి మీరు కొన్ని మిల్లీసెకన్లలో మిలియన్ల కొద్దీ డాక్యుమెంట్‌లలో వినియోగదారుకు అత్యంత సంబంధితమైన వాటిని ఎలా కనుగొనాలో నేర్చుకుంటారు; పెద్ద మాతృక (మిలియన్ల నిలువు వరుసలు మరియు పదిలక్షల వరుసలతో కూడిన) యొక్క నిరంతర కుళ్ళిపోవడాన్ని ఎలా చేయాలి, తద్వారా కొత్త పత్రాలు పది నిమిషాల్లో వాటి వెక్టర్‌ను అందుకుంటాయి; వీడియో కోసం మంచి వెక్టర్ ప్రాతినిధ్యాన్ని పొందడానికి వినియోగదారు-వ్యాసం మాతృక విచ్ఛిన్నతను ఎలా తిరిగి ఉపయోగించాలి.

సిఫార్సుల ఎంపిక నాణ్యత మరియు వేగంపై మేము ఎలా పని చేస్తాము

మా సిఫార్సు డేటాబేస్ వివిధ ఫార్మాట్‌ల మిలియన్ల కొద్దీ డాక్యుమెంట్‌లను కలిగి ఉంది: మా ప్లాట్‌ఫారమ్‌లో సృష్టించబడిన వచన కథనాలు మరియు బాహ్య సైట్‌లు, వీడియోలు, కథనాలు మరియు చిన్న పోస్ట్‌ల నుండి తీసుకోబడ్డాయి. అటువంటి సేవ యొక్క అభివృద్ధి పెద్ద సంఖ్యలో సాంకేతిక సవాళ్లతో ముడిపడి ఉంది. వాటిలో కొన్ని ఇక్కడ ఉన్నాయి:

  • కంప్యూటింగ్ టాస్క్‌లను విభజించండి: అన్ని భారీ కార్యకలాపాలను ఆఫ్‌లైన్‌లో చేయండి మరియు నిజ సమయంలో 100-200 ఎంఎస్‌లకు బాధ్యత వహించడానికి మోడల్‌ల శీఘ్ర అప్లికేషన్‌ను మాత్రమే చేయండి.
  • వినియోగదారు చర్యలను త్వరగా పరిగణనలోకి తీసుకోండి. దీన్ని చేయడానికి, అన్ని ఈవెంట్‌లు తక్షణమే సిఫార్సుదారుకు పంపిణీ చేయబడి, నమూనాల ఫలితాలను ప్రభావితం చేయడం అవసరం.
  • ఫీడ్‌ను రూపొందించండి, తద్వారా కొత్త వినియోగదారులకు అది వారి ప్రవర్తనకు త్వరగా అనుగుణంగా ఉంటుంది. ఇప్పుడే సిస్టమ్‌లో చేరిన వ్యక్తులు వారి అభిప్రాయం సిఫార్సులను ప్రభావితం చేస్తుందని భావించాలి.
  • కొత్త కథనాన్ని ఎవరికి సిఫార్సు చేయాలో త్వరగా అర్థం చేసుకోండి.
  • కొత్త కంటెంట్ యొక్క స్థిరమైన ఆవిర్భావానికి త్వరగా ప్రతిస్పందించండి. ప్రతిరోజూ పదివేల వ్యాసాలు ప్రచురించబడుతున్నాయి మరియు వాటిలో చాలా వరకు పరిమిత జీవితకాలం (చెప్పండి, వార్తలు) ఉన్నాయి. ఇది వాటిని చలనచిత్రాలు, సంగీతం మరియు ఇతర దీర్ఘకాల మరియు ఖరీదైన కంటెంట్ నుండి వేరు చేస్తుంది.
  • ఒక డొమైన్ ప్రాంతం నుండి మరొక డొమైన్ ప్రాంతానికి జ్ఞానాన్ని బదిలీ చేయండి. సిఫార్సు సిస్టమ్‌లో టెక్స్ట్ కథనాల కోసం శిక్షణ పొందిన మోడల్‌లు ఉంటే మరియు మేము దానికి వీడియోని జోడిస్తే, మేము ఇప్పటికే ఉన్న మోడల్‌లను మళ్లీ ఉపయోగించుకోవచ్చు, తద్వారా కొత్త రకం కంటెంట్ మెరుగ్గా ఉంటుంది.

మేము ఈ సమస్యలను ఎలా పరిష్కరించాలో నేను మీకు చెప్తాను.

అభ్యర్థుల ఎంపిక

ర్యాంకింగ్ నాణ్యతలో వాస్తవంగా ఎలాంటి క్షీణత లేకుండా, కొన్ని మిల్లీసెకన్లలో పరిశీలనలో ఉన్న పత్రాల సంఖ్యను వేల రెట్లు తగ్గించడం ఎలా?

మేము అనేక ML మోడల్‌లకు శిక్షణ ఇచ్చాము, వాటి ఆధారంగా ఫీచర్‌లను రూపొందించాము మరియు వినియోగదారు కోసం డాక్యుమెంట్‌లను ర్యాంక్ చేసే మరొక మోడల్‌కు శిక్షణ ఇచ్చామని అనుకుందాం. అంతా బాగానే ఉంటుంది, అయితే ఈ పత్రాలు మిలియన్ల కొద్దీ ఉంటే, మరియు సిఫార్సులను 100-200 msలో నిర్మించాల్సిన అవసరం ఉన్నట్లయితే, మీరు అన్ని పత్రాల కోసం అన్ని సంకేతాలను నిజ సమయంలో తీసుకోలేరు మరియు లెక్కించలేరు. మిలియన్ల నుండి నిర్దిష్ట ఉపసమితిని ఎంచుకోవడమే పని, ఇది వినియోగదారు కోసం ర్యాంక్ చేయబడుతుంది. ఈ దశను సాధారణంగా అభ్యర్థి ఎంపిక అంటారు. దాని కోసం అనేక అవసరాలు ఉన్నాయి. ముందుగా, ఎంపిక చాలా త్వరగా జరగాలి, తద్వారా ర్యాంకింగ్‌కు వీలైనంత ఎక్కువ సమయం మిగిలి ఉంటుంది. రెండవది, ర్యాంకింగ్ కోసం పత్రాల సంఖ్యను బాగా తగ్గించిన తరువాత, మేము వినియోగదారుకు సంబంధించిన పత్రాలను వీలైనంత పూర్తిగా భద్రపరచాలి.

అభ్యర్థి ఎంపిక యొక్క మా సూత్రం అభివృద్ధి చెందింది మరియు ప్రస్తుతానికి మేము బహుళ-దశల పథకానికి చేరుకున్నాము:

సిఫార్సుల ఎంపిక నాణ్యత మరియు వేగంపై మేము ఎలా పని చేస్తాము

మొదట, అన్ని పత్రాలు సమూహాలుగా విభజించబడ్డాయి మరియు ప్రతి సమూహం నుండి అత్యంత ప్రజాదరణ పొందిన పత్రాలు తీసుకోబడతాయి. సమూహాలు సైట్‌లు, టాపిక్‌లు, క్లస్టర్‌లు కావచ్చు. ప్రతి వినియోగదారు కోసం, అతని చరిత్ర ఆధారంగా, అతనికి దగ్గరగా ఉన్న సమూహాలను ఎంపిక చేస్తారు మరియు వారి నుండి ఉత్తమ పత్రాలు తీసుకోబడతాయి. నిజ సమయంలో వినియోగదారుకు దగ్గరగా ఉండే పత్రాలను ఎంచుకోవడానికి మేము kNN సూచికను కూడా ఉపయోగిస్తాము. kNN సూచికను నిర్మించడానికి అనేక పద్ధతులు ఉన్నాయి; మాది ఉత్తమంగా పనిచేసింది HNSW (క్రమానుగత నావిగేబుల్ స్మాల్ వరల్డ్ గ్రాఫ్‌లు). ఇది కొన్ని మిల్లీసెకన్లలో మిలియన్ల డేటాబేస్ నుండి వినియోగదారు కోసం N సన్నిహిత వెక్టర్‌లను కనుగొనడానికి మిమ్మల్ని అనుమతించే క్రమానుగత నమూనా. మేము మొదట మా మొత్తం డాక్యుమెంట్ డేటాబేస్ ఆఫ్‌లైన్‌లో సూచిక చేస్తాము. ఇండెక్స్‌లో శోధించడం చాలా త్వరగా పని చేస్తుంది కాబట్టి, అనేక బలమైన ఎంబెడ్డింగ్‌లు ఉంటే, మీరు అనేక ఇండెక్స్‌లను (ప్రతి ఎంబెడ్డింగ్‌కు ఒక ఇండెక్స్) సృష్టించవచ్చు మరియు వాటిలో ప్రతి ఒక్కటి నిజ సమయంలో యాక్సెస్ చేయవచ్చు.

ప్రతి వినియోగదారు కోసం మేము ఇప్పటికీ పదివేల పత్రాలను కలిగి ఉన్నాము. అన్ని లక్షణాలను లెక్కించడానికి ఇది ఇంకా చాలా ఎక్కువ, కాబట్టి ఈ దశలో మేము తేలికపాటి ర్యాంకింగ్‌ని ఉపయోగిస్తాము - తక్కువ ఫీచర్‌లతో తేలికపాటి భారీ ర్యాంకింగ్ మోడల్. ఒక భారీ మోడల్ టాప్‌లో ఏ పత్రాలను కలిగి ఉంటుందో అంచనా వేయడం పని. అత్యధిక ప్రిడిక్టర్‌తో కూడిన పత్రాలు భారీ మోడల్‌లో, అంటే ర్యాంకింగ్ చివరి దశలో ఉపయోగించబడతాయి. ఈ విధానం వినియోగదారు కోసం పరిగణించబడే పత్రాల డేటాబేస్‌ను మిలియన్ల నుండి వేలకు పదుల మిల్లీసెకన్లలో తగ్గించడానికి మిమ్మల్ని అనుమతిస్తుంది.

రన్‌టైమ్‌లో ALS అడుగు పెట్టింది

క్లిక్ చేసిన వెంటనే వినియోగదారు అభిప్రాయాన్ని ఎలా పరిగణనలోకి తీసుకోవాలి?

సిఫార్సులలో ముఖ్యమైన అంశం వినియోగదారు అభిప్రాయానికి ప్రతిస్పందన సమయం. కొత్త వినియోగదారులకు ఇది చాలా ముఖ్యమైనది: ఒక వ్యక్తి సిఫార్సు వ్యవస్థను ఉపయోగించడం ప్రారంభించినప్పుడు, అతను వివిధ అంశాలకు సంబంధించిన పత్రాల వ్యక్తిగతీకరించని ఫీడ్‌ను అందుకుంటాడు. అతను మొదటి క్లిక్ చేసిన వెంటనే, మీరు దీన్ని వెంటనే పరిగణనలోకి తీసుకోవాలి మరియు అతని ఆసక్తులకు అనుగుణంగా ఉండాలి. మీరు అన్ని అంశాలను ఆఫ్‌లైన్‌లో లెక్కించినట్లయితే, ఆలస్యం కారణంగా శీఘ్ర సిస్టమ్ ప్రతిస్పందన అసాధ్యం అవుతుంది. కాబట్టి వినియోగదారు చర్యలను నిజ సమయంలో ప్రాసెస్ చేయడం అవసరం. ఈ ప్రయోజనాల కోసం, మేము వినియోగదారు యొక్క వెక్టర్ ప్రాతినిధ్యాన్ని రూపొందించడానికి రన్‌టైమ్‌లో ALS దశను ఉపయోగిస్తాము.

అన్ని డాక్యుమెంట్‌లకు వెక్టార్ ప్రాతినిధ్యం ఉందని అనుకుందాం. ఉదాహరణకు, మేము ELMo, BERT లేదా ఇతర మెషీన్ లెర్నింగ్ మోడల్‌లను ఉపయోగించి కథనం యొక్క వచనం ఆధారంగా ఆఫ్‌లైన్‌లో పొందుపరచగలము. సిస్టమ్‌లో వారి పరస్పర చర్యల ఆధారంగా ఒకే స్థలంలో వినియోగదారుల వెక్టర్ ప్రాతినిధ్యాన్ని మేము ఎలా పొందగలం?

వినియోగదారు-పత్రం మాతృక నిర్మాణం మరియు కుళ్ళిపోవడానికి సాధారణ సూత్రంమాకు m యూజర్లు మరియు n పత్రాలు ఉండనివ్వండి. కొంతమంది వినియోగదారులకు, నిర్దిష్ట పత్రాలతో వారి సంబంధం తెలుసు. అప్పుడు ఈ సమాచారాన్ని mxn మ్యాట్రిక్స్‌గా సూచించవచ్చు: అడ్డు వరుసలు వినియోగదారులకు అనుగుణంగా ఉంటాయి మరియు నిలువు వరుసలు పత్రాలకు అనుగుణంగా ఉంటాయి. వ్యక్తి చాలా పత్రాలను చూడనందున, చాలా మ్యాట్రిక్స్ సెల్‌లు ఖాళీగా ఉంటాయి, మరికొన్ని పూరించబడతాయి. ప్రతి ఈవెంట్ కోసం (ఇష్టం, అయిష్టం, క్లిక్ చేయండి) మాతృకలో కొంత విలువ అందించబడుతుంది - అయితే ఒక సరళీకృత నమూనాను పరిశీలిద్దాం, దీనిలో ఇష్టం 1కి అనుగుణంగా ఉంటుంది మరియు అయిష్టం -1కి అనుగుణంగా ఉంటుంది.

మాతృకను రెండుగా విడదీద్దాం: P (mxd) మరియు Q (dxn), ఇక్కడ d అనేది వెక్టర్ ప్రాతినిధ్యం యొక్క పరిమాణం (సాధారణంగా చిన్న సంఖ్య). అప్పుడు ప్రతి వస్తువు d-డైమెన్షనల్ వెక్టార్‌కు అనుగుణంగా ఉంటుంది (వినియోగదారు కోసం - మ్యాట్రిక్స్ Pలోని వరుస, పత్రం కోసం - మాతృక Qలోని నిలువు వరుస). ఈ వెక్టర్స్ సంబంధిత వస్తువుల ఎంబెడ్డింగ్‌లుగా ఉంటాయి. వినియోగదారు డాక్యుమెంట్‌ని ఇష్టపడతారో లేదో అంచనా వేయడానికి, మీరు వారి పొందుపరిచిన వాటిని గుణించవచ్చు.

సిఫార్సుల ఎంపిక నాణ్యత మరియు వేగంపై మేము ఎలా పని చేస్తాము
మాతృకను విచ్ఛిన్నం చేయడానికి సాధ్యమయ్యే మార్గాలలో ఒకటి ALS (ఆల్టర్నేటింగ్ లీస్ట్ స్క్వేర్స్). మేము క్రింది లాస్ ఫంక్షన్‌ని ఆప్టిమైజ్ చేస్తాము:

సిఫార్సుల ఎంపిక నాణ్యత మరియు వేగంపై మేము ఎలా పని చేస్తాము

ఇక్కడ rui అనేది పత్రం iతో వినియోగదారు u యొక్క పరస్పర చర్య, qi అనేది డాక్యుమెంట్ i యొక్క వెక్టర్, pu అనేది వినియోగదారు u యొక్క వెక్టర్.

అప్పుడు సగటు స్క్వేర్ లోపం (స్థిర పత్రం వెక్టర్స్ కోసం) కోణం నుండి సరైన వినియోగదారు వెక్టర్ సంబంధిత లీనియర్ రిగ్రెషన్‌ను పరిష్కరించడం ద్వారా విశ్లేషణాత్మకంగా కనుగొనబడుతుంది.

దీనిని "ALS దశ" అంటారు. మరియు ALS అల్గోరిథం ఏమిటంటే, మేము మాత్రికలలో ఒకదానిని (వినియోగదారులు మరియు కథనాలు) ప్రత్యామ్నాయంగా పరిష్కరించాము మరియు మరొకదాన్ని అప్‌డేట్ చేస్తాము, సరైన పరిష్కారాన్ని కనుగొంటాము.

అదృష్టవశాత్తూ, వినియోగదారు యొక్క వెక్టర్ ప్రాతినిధ్యాన్ని కనుగొనడం అనేది వెక్టర్ సూచనలను ఉపయోగించి రన్‌టైమ్‌లో చేయగలిగే వేగవంతమైన ఆపరేషన్. ర్యాంకింగ్‌లో వినియోగదారు అభిప్రాయాన్ని వెంటనే పరిగణనలోకి తీసుకోవడానికి ఈ ట్రిక్ మిమ్మల్ని అనుమతిస్తుంది. అభ్యర్థి ఎంపికను మెరుగుపరచడానికి kNN సూచికలో అదే పొందుపరచడాన్ని ఉపయోగించవచ్చు.

పంపిణీ చేయబడిన సహకార వడపోత

ఇంక్రిమెంటల్ డిస్ట్రిబ్యూట్ మ్యాట్రిక్స్ ఫ్యాక్టరైజేషన్ చేయడం మరియు కొత్త కథనాల వెక్టర్ ప్రాతినిధ్యాలను త్వరగా కనుగొనడం ఎలా?

సిఫార్సు సంకేతాలకు కంటెంట్ మాత్రమే మూలం కాదు. మరొక ముఖ్యమైన మూలం సహకార సమాచారం. వినియోగదారు-పత్రం మాతృక యొక్క కుళ్ళిపోవడం నుండి సాంప్రదాయకంగా మంచి ర్యాంకింగ్ లక్షణాలను పొందవచ్చు. కానీ అటువంటి కుళ్ళిపోవడానికి ప్రయత్నిస్తున్నప్పుడు, మేము సమస్యలను ఎదుర్కొన్నాము:

1. మా వద్ద మిలియన్ల కొద్దీ పత్రాలు మరియు పది లక్షల మంది వినియోగదారులు ఉన్నారు. మ్యాట్రిక్స్ ఒక మెషీన్‌పై పూర్తిగా సరిపోదు మరియు కుళ్ళిపోవడానికి చాలా సమయం పడుతుంది.
2. సిస్టమ్‌లోని చాలా కంటెంట్ తక్కువ జీవితకాలం కలిగి ఉంటుంది: డాక్యుమెంట్‌లు కొన్ని గంటలు మాత్రమే సంబంధితంగా ఉంటాయి. అందువల్ల, వీలైనంత త్వరగా వాటి వెక్టర్ ప్రాతినిధ్యాన్ని నిర్మించడం అవసరం.
3. పత్రం ప్రచురించబడిన వెంటనే మీరు కుళ్ళిపోవడాన్ని నిర్మిస్తే, తగినంత సంఖ్యలో వినియోగదారులకు దానిని మూల్యాంకనం చేయడానికి సమయం ఉండదు. అందువల్ల, దాని వెక్టర్ ప్రాతినిధ్యం చాలా మంచిది కాదు.
4. ఒక వినియోగదారు ఇష్టపడితే లేదా ఇష్టపడకపోతే, మేము దీన్ని కుళ్ళిపోవడంలో వెంటనే పరిగణనలోకి తీసుకోలేము.

ఈ సమస్యలను పరిష్కరించడానికి, మేము తరచుగా పెరుగుతున్న అప్‌డేట్‌లతో వినియోగదారు-పత్రం మాతృక యొక్క పంపిణీ చేయబడిన కుళ్ళిపోవడాన్ని అమలు చేసాము. ఇది ఖచ్చితంగా ఎలా పని చేస్తుంది?

మన దగ్గర N మెషీన్‌ల క్లస్టర్ (N వందల్లో ఉంది) ఉందని అనుకుందాం మరియు ఒక మెషీన్‌కు సరిపోని వాటిపై మాతృకను పంపిణీ చేయాలనుకుంటున్నాము. ప్రశ్న ఏమిటంటే, ఈ కుళ్ళిపోవడాన్ని ఎలా నిర్వహించాలి, ఒక వైపు, ప్రతి యంత్రంలో తగినంత డేటా ఉంది మరియు మరోవైపు, లెక్కలు స్వతంత్రంగా ఉంటాయి?

సిఫార్సుల ఎంపిక నాణ్యత మరియు వేగంపై మేము ఎలా పని చేస్తాము

మేము పైన వివరించిన ALS కుళ్ళిపోయే అల్గారిథమ్‌ని ఉపయోగిస్తాము. పంపిణీ పద్ధతిలో ఒక ALS దశను ఎలా అమలు చేయాలో చూద్దాం - మిగిలిన దశలు ఒకే విధంగా ఉంటాయి. మేము పత్రాల యొక్క స్థిర మాతృకను కలిగి ఉన్నాము మరియు మేము వినియోగదారుల మాతృకను రూపొందించాలనుకుంటున్నాము. దీన్ని చేయడానికి, మేము దానిని N భాగాలుగా పంక్తుల ద్వారా విభజిస్తాము, ప్రతి భాగం దాదాపు ఒకే సంఖ్యలో పంక్తులను కలిగి ఉంటుంది. మేము ప్రతి మెషీన్‌కు సంబంధిత అడ్డు వరుసల ఖాళీ కాని సెల్‌లను, అలాగే డాక్యుమెంట్ ఎంబెడ్డింగ్‌ల మాతృకను (పూర్తిగా) పంపుతాము. దాని పరిమాణం చాలా పెద్దది కాదు మరియు వినియోగదారు-పత్రం మాతృక సాధారణంగా చాలా తక్కువగా ఉంటుంది కాబట్టి, ఈ డేటా సాధారణ మెషీన్‌లో సరిపోతుంది.

స్థిర మాతృకను ఒక్కొక్కటిగా మార్చి, మోడల్ కలిసే వరకు ఈ ట్రిక్ అనేక యుగాల పాటు పునరావృతమవుతుంది. కానీ అప్పుడు కూడా, మాతృక కుళ్ళిపోవడానికి చాలా గంటలు పట్టవచ్చు. మరియు మీరు కొత్త పత్రాల ఎంబెడ్డింగ్‌లను త్వరగా స్వీకరించాల్సిన మరియు మోడల్‌ను నిర్మించేటప్పుడు తక్కువ సమాచారం ఉన్న వాటి యొక్క ఎంబెడ్డింగ్‌లను నవీకరించాల్సిన సమస్యను ఇది పరిష్కరించదు.

ఫాస్ట్ ఇంక్రిమెంటల్ మోడల్ అప్‌డేట్‌ల పరిచయం మాకు సహాయపడింది. మాకు ప్రస్తుతం శిక్షణ పొందిన మోడల్ ఉందని చెప్పండి. ఆమె శిక్షణ నుండి, మా వినియోగదారులు పరస్పర చర్య చేసిన కొత్త కథనాలు అలాగే శిక్షణ సమయంలో తక్కువ పరస్పర చర్యను కలిగి ఉన్న కథనాలు ఉన్నాయి. అటువంటి కథనాల పొందుపరచడం త్వరగా పొందడానికి, మేము మోడల్ యొక్క మొదటి పెద్ద శిక్షణ సమయంలో పొందిన వినియోగదారు ఎంబెడ్డింగ్‌లను ఉపయోగిస్తాము మరియు స్థిర వినియోగదారు మ్యాట్రిక్స్ ఇచ్చిన డాక్యుమెంట్ మ్యాట్రిక్స్‌ను లెక్కించడానికి ఒక ALS దశను చేస్తాము. పత్రం ప్రచురించబడిన కొద్ది నిమిషాల్లోనే - మరియు ఇటీవలి పత్రాల పొందుపరిచిన వాటిని చాలా త్వరగా నవీకరించడానికి ఇది మిమ్మల్ని అనుమతిస్తుంది.

సిఫార్సులు చేయడానికి తక్షణమే మానవ చర్యలను పరిగణనలోకి తీసుకోండి, రన్‌టైమ్‌లో మేము ఆఫ్‌లైన్‌లో పొందిన వినియోగదారు పొందుపరిచిన వాటిని ఉపయోగించము. బదులుగా, మేము ALS దశను చేస్తాము మరియు వాస్తవ వినియోగదారు వెక్టర్‌ను పొందుతాము.

మరొక డొమైన్ ప్రాంతానికి బదిలీ చేయండి

వీడియో యొక్క వెక్టర్ ప్రాతినిధ్యాన్ని రూపొందించడానికి వచన కథనాలపై వినియోగదారు అభిప్రాయాన్ని ఎలా ఉపయోగించాలి?

ప్రారంభంలో, మేము టెక్స్ట్ కథనాలను మాత్రమే సిఫార్సు చేసాము, కాబట్టి మా అల్గారిథమ్‌లు చాలా ఈ రకమైన కంటెంట్‌కు అనుగుణంగా ఉంటాయి. కానీ ఇతర రకాల కంటెంట్‌ను జోడించేటప్పుడు, మోడల్‌లను స్వీకరించాల్సిన అవసరాన్ని మేము ఎదుర్కొన్నాము. వీడియో ఉదాహరణను ఉపయోగించి మేము ఈ సమస్యను ఎలా పరిష్కరించాము? మొదటి నుండి అన్ని మోడళ్లను మళ్లీ శిక్షణ ఇవ్వడం ఒక ఎంపిక. కానీ దీనికి చాలా సమయం పడుతుంది, మరియు కొన్ని అల్గోరిథంలు శిక్షణ నమూనా యొక్క పరిమాణంపై డిమాండ్ చేస్తున్నాయి, ఇది సేవలో దాని జీవితంలోని మొదటి క్షణాల్లో కొత్త రకం కంటెంట్ కోసం అవసరమైన పరిమాణంలో ఇంకా అందుబాటులో లేదు.

మేము వేరే మార్గంలో వెళ్లి వీడియో కోసం టెక్స్ట్ మోడల్‌లను మళ్లీ ఉపయోగించాము. అదే ALS ట్రిక్ వీడియోల వెక్టార్ ప్రాతినిధ్యాలను రూపొందించడంలో మాకు సహాయపడింది. మేము వచన కథనాల ఆధారంగా వినియోగదారుల యొక్క వెక్టార్ ప్రాతినిధ్యాన్ని తీసుకున్నాము మరియు వీడియో వీక్షణ సమాచారాన్ని ఉపయోగించి ALS దశను చేసాము. కాబట్టి మేము వీడియో యొక్క వెక్టర్ ప్రాతినిధ్యంను సులభంగా పొందాము. మరియు రన్‌టైమ్‌లో మేము టెక్స్ట్ ఆర్టికల్స్ మరియు వీడియో వెక్టర్ నుండి పొందిన యూజర్ వెక్టర్ మధ్య సామీప్యాన్ని గణిస్తాము.

తీర్మానం

నిజ-సమయ సిఫార్సు వ్యవస్థ యొక్క ప్రధాన భాగాన్ని అభివృద్ధి చేయడం అనేక సవాళ్లను కలిగి ఉంటుంది. ఈ డేటాను సమర్థవంతంగా ఉపయోగించడానికి మీరు త్వరగా డేటాను ప్రాసెస్ చేయాలి మరియు ML పద్ధతులను వర్తింపజేయాలి; వినియోగదారు సంకేతాలను మరియు కంటెంట్ యొక్క కొత్త యూనిట్లను కనీస సమయంలో ప్రాసెస్ చేయగల సంక్లిష్ట పంపిణీ వ్యవస్థలను నిర్మించడం; మరియు అనేక ఇతర పనులు.

ప్రస్తుత సిస్టమ్‌లో, నేను వివరించిన డిజైన్, వినియోగదారు కోసం సిఫార్సుల నాణ్యత అతని కార్యాచరణ మరియు సేవలో ఉండే కాలంతో పాటు పెరుగుతుంది. కానీ వాస్తవానికి, ఇక్కడ ప్రధాన ఇబ్బంది ఉంది: కంటెంట్‌తో తక్కువ పరస్పర చర్య ఉన్న వ్యక్తి యొక్క ఆసక్తులను సిస్టమ్ వెంటనే అర్థం చేసుకోవడం కష్టం. కొత్త వినియోగదారుల కోసం సిఫార్సులను మెరుగుపరచడం మా ప్రధాన లక్ష్యం. మేము అల్గారిథమ్‌లను ఆప్టిమైజ్ చేయడం కొనసాగిస్తాము, తద్వారా ఒక వ్యక్తికి సంబంధించిన కంటెంట్ అతని ఫీడ్‌లోకి వేగంగా వస్తుంది మరియు అసంబద్ధమైన కంటెంట్ చూపబడదు.

మూలం: www.habr.com

ఒక వ్యాఖ్యను జోడించండి