Paano magbukas ng mga komento at hindi malunod sa spam

Paano magbukas ng mga komento at hindi malunod sa spam

Kapag ang iyong trabaho ay lumikha ng isang bagay na maganda, hindi mo na kailangang pag-usapan ito nang labis, dahil ang resulta ay nasa harap ng mga mata ng lahat. Ngunit kung burahin mo ang mga inskripsiyon mula sa mga bakod, walang makakapansin sa iyong trabaho hangga't ang mga bakod ay mukhang disente o hanggang sa mabura mo ang isang bagay na mali.

Anumang serbisyo kung saan maaari kang mag-iwan ng komento, pagsusuri, magpadala ng mensahe o mag-upload ng mga larawan sa madaling panahon ay nahaharap sa problema ng spam, panloloko at kalaswaan. Hindi ito maiiwasan, ngunit dapat itong harapin.

Ang pangalan ko ay Mikhail, nagtatrabaho ako sa koponan ng Antispam, na nagpoprotekta sa mga gumagamit ng mga serbisyo ng Yandex mula sa mga naturang problema. Ang aming trabaho ay bihirang mapansin (at iyon ay isang magandang bagay!), kaya ngayon ay sasabihin ko sa iyo ang higit pa tungkol dito. Matututo ka kapag ang pag-moderate ay walang silbi at kung bakit ang katumpakan ay hindi lamang ang tagapagpahiwatig ng pagiging epektibo nito. Pag-uusapan din natin ang tungkol sa pagmumura gamit ang halimbawa ng mga pusa at aso at kung bakit kapaki-pakinabang kung minsan na "mag-isip na parang nanunumpa."

Parami nang parami ang mga serbisyong lumalabas sa Yandex kung saan nai-publish ng mga user ang kanilang nilalaman. Maaari kang magtanong o magsulat ng sagot sa Yandex.Q, talakayin ang mga balita sa bakuran sa Yandex.District, ibahagi ang mga kundisyon ng trapiko sa mga pag-uusap sa Yandex.Maps. Ngunit kapag lumaki ang audience ng serbisyo, nagiging kaakit-akit ito sa mga scammer at spammer. Dumating sila at pinupunan ang mga komento: nag-aalok sila ng madaling pera, nag-a-advertise ng mga milagrong pagpapagaling at nangangako ng mga benepisyong panlipunan. Dahil sa mga spammer, nalulugi ang ilang user, habang ang iba ay nawawalan ng pagnanais na gumugol ng oras sa isang hindi maayos na serbisyo na tinutubuan ng spam.

At hindi lang ito ang problema. Nagsusumikap kami hindi lamang upang protektahan ang mga gumagamit mula sa mga scammer, ngunit upang lumikha din ng komportableng kapaligiran para sa komunikasyon. Kung ang mga tao ay nahaharap sa pagmumura at pang-iinsulto sa mga komento, malamang na umalis sila at hindi na bumalik. Nangangahulugan ito na kailangan mo ring harapin ito.

Malinis na Web

Gaya ng kadalasang nangyayari sa amin, ang mga unang pag-unlad ay isinilang sa Paghahanap, sa bahaging lumalaban sa spam sa mga resulta ng paghahanap. Humigit-kumulang sampung taon na ang nakalipas, ang gawain ng pag-filter ng nilalamang pang-adulto para sa mga paghahanap ng pamilya at para sa mga query na hindi nangangailangan ng mga sagot mula sa kategoryang 18+ ay lumabas doon. Ito ay kung paano lumitaw ang unang manu-manong nai-type na mga diksyunaryo ng porno at pagmumura, ang mga ito ay muling pinunan ng mga analyst. Ang pangunahing gawain ay ang pag-uri-uriin ang mga kahilingan sa mga kung saan katanggap-tanggap na ipakita ang nilalamang pang-adulto at kung saan ito ay hindi. Para sa gawaing ito, nakolekta ang markup, binuo ang heuristics, at sinanay ang mga modelo. Ito ay kung paano lumitaw ang mga unang pag-unlad para sa pag-filter ng hindi gustong nilalaman.

Sa paglipas ng panahon, nagsimulang lumitaw ang UGC (user generated content) sa Yandex - mga mensahe na isinulat mismo ng mga user, at ang Yandex ay nag-publish lamang. Para sa mga kadahilanang inilarawan sa itaas, maraming mga mensahe ang hindi mai-publish nang hindi tinitingnan - kinakailangan ang pag-moderate. Pagkatapos ay nagpasya silang lumikha ng isang serbisyo na magbibigay ng proteksyon laban sa spam at mga umaatake para sa lahat ng produkto ng Yandex UGC at gumamit ng mga development upang i-filter ang hindi gustong content sa Search. Ang serbisyo ay tinawag na "Clean Web".

Mga bagong gawain at tulong mula sa mga pusher

Sa una, simpleng automation lang ang gumana para sa amin: ang mga serbisyo ay nagpadala sa amin ng mga text, at nagpatakbo kami ng mga malalaswang diksyonaryo, mga diksyunaryo ng porn at regular na expression sa mga ito - manual na pinagsama-sama ng mga analyst ang lahat. Ngunit sa paglipas ng panahon, ginamit ang serbisyo sa dumaraming bilang ng mga produkto ng Yandex, at kinailangan naming matutong gumawa ng mga bagong problema.

Kadalasan, sa halip na isang pagsusuri, ang mga gumagamit ay nag-publish ng isang walang kabuluhang hanay ng mga titik, sinusubukang pataasin ang kanilang mga nakamit, kung minsan ay ina-advertise nila ang kanilang kumpanya sa mga pagsusuri ng kumpanya ng isang kakumpitensya, at kung minsan ay nalilito lamang nila ang mga organisasyon at sumulat sa isang pagsusuri tungkol sa isang tindahan ng alagang hayop: " Perpektong lutong isda!" Marahil balang araw ay matututo ang artificial intelligence na ganap na maunawaan ang kahulugan ng anumang teksto, ngunit ngayon ang automation ay minsan ay mas malala kaysa sa mga tao.

Naging malinaw na hindi namin magagawa ito nang walang manu-manong pagmamarka, at nagdagdag kami ng pangalawang yugto sa aming circuit-ipinapadala ito para sa manu-manong inspeksyon ng isang tao. Kasama doon ang mga nai-publish na teksto kung saan walang nakitang problema ang classifier. Madali mong maisip ang laki ng naturang gawain, kaya hindi lamang kami umasa sa mga tagasuri, ngunit sinamantala din namin ang "karunungan ng karamihan," iyon ay, bumaling kami sa mga toloker para sa tulong. Sila ang tumutulong sa amin na matukoy kung ano ang hindi nakuha ng makina, at sa gayon ay itinuturo ito.

Smart caching at LSH hashing

Ang isa pang problemang naranasan namin noong nagtatrabaho sa mga komento ay spam, o mas tiyak, ang dami at bilis ng pagkalat nito. Nang magsimulang lumaki nang mabilis ang madla ng Yandex.Region, dumating doon ang mga spammer. Natutunan nilang i-bypass ang mga regular na expression sa pamamagitan ng bahagyang pagbabago ng teksto. Ang spam, siyempre, ay natagpuan pa rin at tinanggal, ngunit sa laki ng Yandex, isang hindi katanggap-tanggap na mensahe na nai-post kahit na sa loob ng 5 minuto ay maaaring makita ng daan-daang tao.

Paano magbukas ng mga komento at hindi malunod sa spam

Siyempre, hindi ito nababagay sa amin, at gumawa kami ng smart text caching batay sa LSH (hashing na sensitibo sa lokalidad). Gumagana ito tulad nito: na-normalize namin ang teksto, inalis ang mga link mula dito at pinutol ito sa n-grams (mga pagkakasunud-sunod ng n titik). Susunod, ang mga hash ng n-grams ay kinakalkula, at ang LSH vector ng dokumento ay binuo mula sa kanila. Ang punto ay ang mga katulad na teksto, kahit na bahagyang binago, ay naging katulad na mga vector.

Ginawang posible ng solusyong ito na muling gamitin ang mga hatol ng mga classifier at toloker para sa mga katulad na teksto. Sa panahon ng pag-atake ng spam, sa sandaling ang unang mensahe ay pumasa sa pag-scan at pumasok sa cache na may hatol na "spam", lahat ng mga bagong katulad na mensahe, kahit na binago, ay nakatanggap ng parehong hatol at awtomatikong tinanggal. Nang maglaon, natutunan namin kung paano sanayin at awtomatikong sanayin ang mga spam classifier, ngunit ang "smart cache" na ito ay nanatili sa amin at madalas pa rin kaming tinutulungan.

Magandang text classifier

Nang walang oras upang magpahinga mula sa pakikipaglaban sa spam, napagtanto namin na 95% ng aming nilalaman ay manu-manong na-moderate: ang mga classifier ay tumutugon lamang sa mga paglabag, at karamihan sa mga text ay maganda. Naglo-load kami ng mga tagapaglinis na sa 95 kaso sa 100 ay nagbibigay ng rating na "Everything is OK". Kinailangan kong gumawa ng hindi pangkaraniwang trabaho - paggawa ng mga classifier ng magandang nilalaman, sa kabutihang palad, sapat na markup ang naipon sa panahong ito.

Ang unang classifier ay ganito ang hitsura: lemmatize namin ang teksto (binabawasan ang mga salita sa kanilang unang anyo), itinapon ang lahat ng mga pantulong na bahagi ng pananalita at gumamit ng isang pre-prepared na "diksyonaryo ng magagandang lemmas". Kung ang lahat ng mga salita sa teksto ay "mabuti", kung gayon ang buong teksto ay hindi naglalaman ng anumang mga paglabag. Sa iba't ibang mga serbisyo, ang diskarte na ito ay agad na nagbigay mula 25 hanggang 35% automation ng manu-manong markup. Siyempre, ang diskarte na ito ay hindi perpekto: madaling pagsamahin ang ilang mga inosenteng salita at makakuha ng isang napaka-nakakasakit na pahayag, ngunit pinahintulutan kaming mabilis na maabot ang isang mahusay na antas ng automation at nagbigay sa amin ng oras upang sanayin ang mas kumplikadong mga modelo.

Kasama na sa mga susunod na bersyon ng magagandang text classifier ang mga linear na modelo, decision tree, at mga kumbinasyon ng mga ito. Upang markahan ang kabastusan at insulto, halimbawa, sinubukan namin ang BERT neural network. Mahalagang maunawaan ang kahulugan ng isang salita sa konteksto at ang koneksyon sa pagitan ng mga salita mula sa iba't ibang mga pangungusap, at mahusay itong ginagawa ni BERT. (Nga pala, kamakailan ang mga kasamahan mula sa News sinabi, kung paano ginagamit ang teknolohiya para sa isang hindi karaniwang gawain - paghahanap ng mga error sa mga header.) Bilang resulta, posibleng i-automate ang hanggang 90% ng daloy, depende sa serbisyo.

Katumpakan, pagkakumpleto at bilis

Upang bumuo, kailangan mong maunawaan kung ano ang mga benepisyong dala ng ilang mga awtomatikong classifier, mga pagbabago sa mga ito, at kung ang kalidad ng mga manu-manong pagsusuri ay nakakababa. Upang gawin ito, gumagamit kami ng mga sukatan ng katumpakan at pagbabalik.

Ang katumpakan ay ang proporsyon ng mga tamang hatol sa lahat ng hatol tungkol sa masamang nilalaman. Kung mas mataas ang katumpakan, mas kaunting mga maling positibo. Kung hindi mo binibigyang pansin ang katumpakan, pagkatapos ay sa teorya maaari mong tanggalin ang lahat ng spam at mga kahalayan, at kasama ng mga ito ang kalahati ng magagandang mensahe. Sa kabilang banda, kung umaasa ka lamang sa katumpakan, kung gayon ang pinakamahusay na teknolohiya ay ang isa na hindi nakakahuli ng sinuman. Samakatuwid, mayroon ding tagapagpahiwatig ng pagiging kumpleto: ang bahagi ng natukoy na masamang nilalaman sa kabuuang dami ng masamang nilalaman. Ang dalawang sukatan na ito ay nagbabalanse sa isa't isa.

Upang sukatin, sinasampol namin ang buong papasok na stream para sa bawat serbisyo at nagbibigay ng mga sample ng content sa mga assessor para sa pagsusuri ng eksperto at paghahambing sa mga solusyon sa makina.

Ngunit may isa pang mahalagang tagapagpahiwatig.

Isinulat ko sa itaas na ang isang hindi katanggap-tanggap na mensahe ay makikita ng daan-daang tao kahit sa loob ng 5 minuto. Kaya binibilang namin kung ilang beses kaming nagpakita ng masamang content sa mga tao bago namin ito itago. Ito ay mahalaga dahil hindi ito sapat upang gumana nang mahusay - kailangan mo ring magtrabaho nang mabilis. At nang bumuo kami ng depensa laban sa pagmumura, naramdaman namin ito ng lubos.

Antimatism gamit ang halimbawa ng mga pusa at aso

Isang maliit na lyrical digression. Maaaring sabihin ng ilan na ang kalaswaan at pang-iinsulto ay hindi kasing-delikado ng mga nakakahamak na link, at hindi kasing-inis ng spam. Ngunit nagsusumikap kaming mapanatili ang komportableng mga kondisyon para sa komunikasyon para sa milyun-milyong mga gumagamit, at ang mga tao ay hindi gustong bumalik sa mga lugar kung saan sila ay iniinsulto. Ito ay hindi para sa wala na ang pagbabawal sa pagmumura at mga insulto ay nabaybay sa mga tuntunin ng maraming mga komunidad, kabilang ang sa HabrΓ©. Ngunit lumihis kami.

Ang pagmumura ng mga diksyunaryo ay hindi makayanan ang lahat ng kayamanan ng wikang Ruso. Sa kabila ng katotohanan na mayroon lamang apat na pangunahing ugat ng panunumpa, mula sa kanila maaari kang bumuo ng isang hindi mabilang na bilang ng mga salita na hindi mahuli ng anumang mga regular na makina. Bilang karagdagan, maaari kang magsulat ng bahagi ng isang salita sa transliterasyon, palitan ang mga titik ng magkatulad na kumbinasyon, muling ayusin ang mga titik, magdagdag ng mga asterisk, atbp. Minsan, nang walang konteksto, imposibleng matukoy na ang ibig sabihin ng gumagamit ay isang pagmumura. Iginagalang namin ang mga patakaran ni Habr, kaya ipapakita namin ito hindi sa mga live na halimbawa, ngunit sa mga pusa at aso.

Paano magbukas ng mga komento at hindi malunod sa spam

"Batas," sabi ng pusa. Pero naiintindihan namin na ibang salita ang sinabi ng pusa...

Nagsimula kaming mag-isip tungkol sa "fuzzy matching" na mga algorithm para sa aming diksyunaryo at tungkol sa mas matalinong preprocessing: nagbigay kami ng transliteration, nakadikit na mga puwang at bantas nang magkasama, naghanap ng mga pattern at nagsulat ng magkakahiwalay na regular na expression sa mga ito. Ang diskarte na ito ay nagdala ng mga resulta, ngunit madalas na nabawasan ang katumpakan at hindi nagbibigay ng nais na pagkakumpleto.

Pagkatapos ay nagpasya kaming "mag-isip na parang mga nagmumura." Nagsimula kaming magpasok ng ingay sa data mismo: inayos namin ang mga titik, gumawa ng mga typo, pinalitan ang mga titik na may katulad na mga spelling, at iba pa. Ang paunang markup para dito ay kinuha sa pamamagitan ng paglalapat ng mga diksyonaryo ng banig sa malaking corpora ng mga teksto. Kung kukuha ka ng isang pangungusap at i-twist ito sa maraming paraan, magkakaroon ka ng maraming pangungusap. Sa ganitong paraan maaari mong dagdagan ang sample ng pagsasanay nang sampu-sampung beses. Ang natitira na lang ay upang sanayin sa resultang pool ang ilang higit pa o mas kaunting matalinong modelo na isinasaalang-alang ang konteksto.

Paano magbukas ng mga komento at hindi malunod sa spam

Masyado pang maaga para pag-usapan ang huling desisyon. Nag-eeksperimento pa rin kami sa mga diskarte sa problemang ito, ngunit nakikita na namin na ang isang simpleng simbolikong convolutional network ng ilang mga layer ay makabuluhang higit na gumaganap sa mga diksyonaryo at regular na makina: posible na dagdagan ang parehong katumpakan at paggunita.

Siyempre, naiintindihan namin na palaging may mga paraan upang laktawan ang kahit na ang pinaka-advanced na automation, lalo na kapag ang bagay ay lubhang mapanganib: sumulat sa paraang hindi maintindihan ng isang hangal na makina. Dito, tulad ng sa paglaban sa spam, ang aming layunin ay hindi upang puksain ang mismong posibilidad ng pagsulat ng isang bagay na malaswa; ang aming gawain ay upang matiyak na ang laro ay hindi katumbas ng halaga ng kandila.

Ang pagbubukas ng pagkakataong ibahagi ang iyong opinyon, makipag-usap at magkomento ay hindi mahirap. Mas mahirap makamit ang ligtas, komportableng mga kondisyon at magalang na pagtrato sa mga tao. At kung wala ito ay walang pag-unlad ng alinmang komunidad.

Pinagmulan: www.habr.com

Magdagdag ng komento