Пікірлерді қалай ашуға және спамға батып кетпеуге болады

Пікірлерді қалай ашуға және спамға батып кетпеуге болады

Сіздің жұмысыңыз әдемі нәрсе жасау болса, бұл туралы көп айтудың қажеті жоқ, өйткені нәтиже барлығының көз алдында. Бірақ егер сіз қоршаулардағы жазуларды өшірсеңіз, қоршаулар жақсы көрінгенше немесе сіз дұрыс емес нәрсені өшірмейінше, ешкім сіздің жұмысыңызды байқамайды.

Пікір қалдыруға, шолу жасауға, хабарлама жіберуге немесе суреттерді жүктеп салуға болатын кез келген қызмет ерте ме, кеш пе спам, алаяқтық және ұятсыздық мәселесіне тап болады. Мұны болдырмау мүмкін емес, бірақ онымен күресу керек.

Менің атым Михаил, мен Яндекс қызметтерін пайдаланушыларды осындай мәселелерден қорғайтын антиспам командасында жұмыс істеймін. Біздің жұмысымыз сирек байқалады (және бұл жақсы нәрсе!), сондықтан мен бүгін бұл туралы толығырақ айтып беремін. Модерация қашан пайдасыз екенін және неге дәлдік оның тиімділігінің жалғыз көрсеткіші емес екенін білесіз. Сондай-ақ біз мысықтар мен иттерді мысалға ала отырып, ант беру туралы және кейде «анттаушы сияқты ойлаудың» пайдалы болуы туралы сөйлесеміз.

Яндекс-те пайдаланушылар өз контентін жариялайтын қызметтердің саны көбейіп келеді. Яндекс.Q сайтында сұрақ қоюға немесе жауап жазуға, Яндекс.Ауданында аула жаңалықтарын талқылауға, Яндекс.Карталардағы әңгімелерде жол қозғалысы жағдайын бөлісуге болады. Бірақ қызмет аудиториясы өскен кезде, ол алаяқтар мен спамерлер үшін тартымды болады. Олар келіп, түсініктемелерді толтырады: олар оңай ақша ұсынады, ғажайып емдеуді жарнамалайды және әлеуметтік жеңілдіктерге уәде береді. Спам жіберушілердің кесірінен кейбір пайдаланушылар ақшасын жоғалтады, ал басқалары спамға толып кеткен ұқыпсыз қызметке уақыт жұмсауды қаламайды.

Және бұл жалғыз мәселе емес. Біз пайдаланушыларды алаяқтардан қорғауға ғана емес, сонымен қатар қарым-қатынас үшін қолайлы атмосфераны құруға тырысамыз. Егер адамдар түсініктемелерде балағат сөздер мен қорлауларға тап болса, олар кетіп қалуы мүмкін және ешқашан оралмайды. Бұл сіз де мұнымен күресуіңіз керек дегенді білдіреді.

Таза веб

Бізде жиі болатындай, алғашқы әзірлемелер Іздеу нәтижелеріндегі спаммен күресетін бөлімде пайда болды. Шамамен он жыл бұрын ересектерге арналған мазмұнды отбасылық іздеулер мен 18+ санатындағы жауаптарды қажет етпейтін сұраулар үшін сүзу тапсырмасы пайда болды. Порно және балағат сөздердің қолмен терілген алғашқы сөздіктері осылай пайда болды, оларды талдаушылар толықтырды. Негізгі міндет - сұраныстарды ересектерге арналған мазмұнды көрсетуге болатын және көрсетілмейтіндерге жіктеу болды. Бұл тапсырма үшін белгілер жиналды, эвристика құрастырылды және модельдер оқытылды. Қажетсіз мазмұнды сүзуге арналған алғашқы әзірлемелер осылай пайда болды.

Уақыт өте келе UGC (пайдаланушы жасаған мазмұн) Яндекс-те пайда бола бастады - пайдаланушылардың өздері жазған хабарламалар, ал Яндекс тек жариялайды. Жоғарыда сипатталған себептерге байланысты көптеген хабарларды қараусыз жариялау мүмкін болмады - модерация қажет болды. Содан кейін олар барлық Yandex UGC өнімдерін спамнан және шабуылдаушылардан қорғауды қамтамасыз ететін және Іздеуде қажетсіз мазмұнды сүзу үшін әзірлемелерді қолданатын қызметті құруды шешті. Қызмет «Таза веб» деп аталды.

Жаңа тапсырмалар және итергіштердің көмегі

Бастапқыда біз үшін қарапайым автоматтандыру ғана жұмыс істеді: қызметтер бізге мәтіндер жіберді, ал біз оларда ұятсыз сөздіктерді, порно сөздіктерді және тұрақты тіркестерді орындадық - талдаушылар бәрін қолмен құрастырды. Бірақ уақыт өте келе бұл қызмет Яндекс өнімдерінің көбеюінде қолданыла бастады және біз жаңа мәселелермен жұмыс істеуді үйренуге тура келді.

Көбінесе шолудың орнына пайдаланушылар өздерінің жетістіктерін арттыруға тырысатын мағынасыз хаттар жинағын жариялайды, кейде олар бәсекелес компанияның шолуларында өз компанияларын жарнамалайды, ал кейде олар жай ғана ұйымдарды шатастырып, үй жануарлары дүкені туралы шолуда жазады: « Тамаша пісірілген балық!» Мүмкін, бір күні жасанды интеллект кез келген мәтіннің мағынасын жақсы түсінуге үйренетін шығар, бірақ қазір автоматтандыру кейде адамдардан да нашар болады.

Қолмен белгілеусіз мұны істей алмайтынымыз белгілі болды және біз схемаға екінші кезеңді қостық - оны адам қолмен тексеруге жібердік. Онда классификатор ешбір қиындық көрмеген жарияланған мәтіндер енгізілген. Мұндай тапсырманың ауқымын оңай елестете аласыз, сондықтан біз бағалаушыларға сүйеніп қана қоймай, сонымен бірге «көпшіліктің даналығын» пайдаландық, яғни біз толокерлерге көмек сұрадық. Олар бізге машинаның нені жіберіп алғанын анықтауға көмектеседі және сол арқылы оны үйретеді.

Смарт кэштеу және LSH хэштеу

Пікірлермен жұмыс істегенде біз кездестірген тағы бір мәселе спам, дәлірек айтқанда оның көлемі мен таралу жылдамдығы болды. Yandex.Region аудиториясы тез өсе бастағанда, ол жерге спам жіберушілер келді. Олар мәтінді сәл өзгерту арқылы тұрақты тіркестерді айналып өтуді үйренді. Спам, әрине, әлі де табылды және жойылды, бірақ Яндекс масштабында тіпті 5 минутқа жарияланған қабылданбайтын хабарламаны жүздеген адамдар көре алады.

Пікірлерді қалай ашуға және спамға батып кетпеуге болады

Әрине, бұл бізге сәйкес келмеді және біз LSH негізінде смарт мәтінді кэштеуді жасадық (елді мекенге сезімтал хэшинг). Ол келесідей жұмыс істейді: біз мәтінді қалыпқа келтірдік, одан сілтемелерді алып тастадық және оны n-грамға (n әріп тізбегі) кестік. Әрі қарай, n-грамның хэштері есептелді және олардан құжаттың LSH векторы құрастырылды. Мәселе мынада, ұқсас мәтіндер аздап өзгертілсе де, ұқсас векторларға айналды.

Бұл шешім классификаторлар мен толокерлердің үкімдерін ұқсас мәтіндер үшін қайта пайдалануға мүмкіндік берді. Спам шабуылы кезінде бірінші хабарлама сканерлеуден өтіп, кэшке «спам» үкімімен енген бойда, барлық жаңа ұқсас хабарламалар, тіпті өзгертілген хабарламалар да бірдей шешімді алып, автоматты түрде жойылды. Кейінірек біз спам классификаторларын қалай оқытуды және автоматты түрде қайта даярлауды үйрендік, бірақ бұл «ақылды кэш» бізбен бірге болды және әлі де жиі көмектеседі.

Жақсы мәтін классификаторы

Спаммен күресу үшін үзіліс жасауға уақыт болмай, біз мазмұнымыздың 95% қолмен басқарылатынын түсіндік: классификаторлар тек бұзушылықтарға жауап береді, ал мәтіндердің көпшілігі жақсы. Біз тазалаушыларды жүктейміз, олар 95 жағдайдың 100-інде «Бәрі жақсы» деген баға береді. Маған әдеттен тыс жұмыс істеуге тура келді - жақсы мазмұнның классификаторларын жасау, бақытымызға орай, осы уақыт ішінде жеткілікті белгілер жиналды.

Бірінші классификатор келесідей болды: біз мәтінді лемматизациялаймыз (сөздерді бастапқы формасына келтіреміз), сөздің барлық көмекші бөліктерін лақтырып тастаймыз және алдын ала дайындалған «жақсы леммалар сөздігін» қолданамыз. Егер мәтіндегі барлық сөздер «жақсы» болса, онда бүкіл мәтінде ешқандай бұзушылықтар жоқ. Түрлі қызметтерде бұл тәсіл бірден қолмен белгілеуді 25-35% автоматтандыруды қамтамасыз етті. Әрине, бұл тәсіл идеалды емес: бірнеше жазықсыз сөздерді біріктіру және өте қорлайтын мәлімдеме алу оңай, бірақ ол бізге автоматтандырудың жақсы деңгейіне тез жетуге мүмкіндік берді және күрделі модельдерді үйретуге уақыт берді.

Жақсы мәтіндік классификаторлардың келесі нұсқаларында сызықтық модельдер, шешім ағаштары және олардың комбинациялары болды. Дөрекілік пен қорлауды белгілеу үшін, мысалы, біз BERT нейрондық желісін қолданамыз. Контексттегі сөздің мағынасын және әртүрлі сөйлемдердегі сөздердің арасындағы байланысты түсіну маңызды және БЕРТ бұл жұмысты жақсы атқарады. (Айтпақшы, жақында Жаңалықтардағы әріптестер деді, стандартты емес тапсырма үшін технология қалай пайдаланылады - тақырыптардағы қателерді табу.) Нәтижесінде қызметке байланысты ағынның 90% дейін автоматтандыру мүмкін болды.

Дәлдік, толықтық және жылдамдық

Дамыту үшін сіз белгілі бір автоматты жіктеуіштердің қандай пайда әкелетінін, олардағы өзгерістерді және қолмен тексеру сапасының нашарлауын түсінуіңіз керек. Ол үшін біз дәлдік пен еске түсіру көрсеткіштерін қолданамыз.

Дәлдік – жаман мазмұнға қатысты барлық үкімдер арасындағы дұрыс үкімдердің үлесі. Дәлдік неғұрлым жоғары болса, жалған позитивтер соғұрлым аз болады. Егер сіз дәлдікке назар аудармасаңыз, теорияда сіз барлық спам мен ұятсыз сөздерді және олармен бірге жақсы хабарлардың жартысын жоя аласыз. Екінші жағынан, егер сіз тек дәлдікке сенсеңіз, онда ең жақсы технология ешкімді мүлде ұстамайтын технология болады. Демек, толықтық көрсеткіші де бар: нашар мазмұнның жалпы көлемінің арасында анықталған нашар мазмұнның үлесі. Бұл екі көрсеткіш бір-бірін теңестіреді.

Өлшеу үшін біз әрбір қызмет үшін барлық кіріс ағынының үлгісін аламыз және сараптамалық бағалау және машина шешімдерімен салыстыру үшін бағалаушыларға мазмұн үлгілерін береміз.

Бірақ тағы бір маңызды көрсеткіш бар.

Қабылдауға болмайтын хабарламаны жүздеген адам 5 минутта да көре алатынын жоғарыда жаздым. Сондықтан біз адамдарға жаман мазмұнды жасырмас бұрын қанша рет көрсеткенімізді санаймыз. Бұл маңызды, өйткені тиімді жұмыс істеу жеткіліксіз - сіз де тез жұмыс істеуіңіз керек. Ал балағат сөздерге қарсы қорғаныс құрған кезде біз оны барынша сезіндік.

Мысықтар мен иттер мысалында антиматизм

Шағын лирикалық шегініс. Кейбіреулер ұятсыздық пен қорлау зиянды сілтемелер сияқты қауіпті емес және спам сияқты тітіркендіргіш емес деп айтуы мүмкін. Бірақ біз миллиондаған пайдаланушылар үшін қарым-қатынас үшін қолайлы жағдайларды сақтауға тырысамыз, ал адамдар қорланған жерлерге оралуды ұнатпайды. Балағат сөздер мен қорлауға тыйым салу көптеген қауымдастықтардың ережелерінде, соның ішінде Хабреде де жазылғаны бекер емес. Бірақ біз шегінеміз.

Қара сөздіктер орыс тілінің барлық байлығына төтеп бере алмайды. Тек төрт негізгі ант түбірлері бар екеніне қарамастан, олардан сіз кез келген қарапайым қозғалтқыштар ұстай алмайтын сансыз сөздерді жасай аласыз. Оған қоса, сөздің бір бөлігін транслитерацияда жазуға, әріптерді ұқсас тіркестермен ауыстыруға, әріптерді қайта реттеуге, жұлдызшаларды қосуға және т.б. болады. Кейде контекссіз, пайдаланушының балағат сөз айтқанын анықтау мүмкін емес. Біз Хабрдың ережелерін құрметтейміз, сондықтан біз мұны тірі мысалдармен емес, мысықтар мен иттермен көрсетеміз.

Пікірлерді қалай ашуға және спамға батып кетпеуге болады

«Заң», - деді мысық. Бірақ мысықтың басқа сөз айтқанын түсінеміз...

Біз сөздігіміз үшін «анық емес сәйкестік» алгоритмдері және ақылдырақ алдын ала өңдеу туралы ойлана бастадық: транслитерацияны қамтамасыз еттік, бос орындар мен тыныс белгілерін бірге жапсырдық, үлгілерді іздедік және оларға жеке тұрақты тіркестер жаздык. Бұл тәсіл нәтиже әкелді, бірақ көбінесе дәлдікті төмендетті және қажетті толықтықты қамтамасыз етпеді.

Содан кейін біз «антатындар сияқты ойлауды» шештік. Біз деректерге шуды өзіміз енгізе бастадық: біз әріптерді қайта реттедік, қателерді шығардық, әріптерді ұқсас емлемен ауыстырдық және т.б. Бұл үшін бастапқы белгілеу мәтіндердің үлкен корпустарына mat сөздіктерді қолдану арқылы алынды. Егер сіз бір сөйлемді алып, оны бірнеше жолмен бұрасаңыз, сіз көптеген сөйлемдермен аяқталасыз. Осылайша жаттығу үлгісін ондаған есе арттыруға болады. Алынған бассейнде контекстті ескеретін азды-көпті ақылды модельді жаттықтыру ғана қалды.

Пікірлерді қалай ашуға және спамға батып кетпеуге болады

Соңғы шешім туралы айту әлі ерте. Біз әлі де осы мәселеге тәсілдермен тәжірибе жасап жатырмыз, бірақ бірнеше қабаттан тұратын қарапайым символдық конвульсиялық желі сөздіктер мен қарапайым қозғалтқыштардан айтарлықтай асып түсетінін көріп отырмыз: дәлдікті де, еске түсіруді де арттыруға болады.

Әрине, біз әрқашан ең озық автоматтандыруды айналып өтудің жолдары болатынын түсінеміз, әсіресе мәселе соншалықты қауіпті болса: ақымақ машина түсінбейтін етіп жазыңыз. Мұнда, спаммен күресудегі сияқты, біздің мақсатымыз ұятсыз нәрсе жазу мүмкіндігін жою емес, біздің міндетіміз - ойынның шамға тұрмайтындығына көз жеткізу.

Өз пікіріңізбен бөлісу, араласу және түсініктеме беру мүмкіндігін ашу қиын емес. Қауіпсіз, жайлы жағдайға және адамдарға құрметпен қарауға қол жеткізу әлдеқайда қиын. Ал онсыз ешбір қауымдастықтың дамуы болмайды.

Ақпарат көзі: www.habr.com

пікір қалдыру