Kiel malfermi komentojn kaj ne droniĝi en spamo

Kiel malfermi komentojn kaj ne droniĝi en spamo

Kiam via tasko estas krei ion belan, vi ne devas paroli tro multe pri tio, ĉar la rezulto estas antaŭ ĉiuj okuloj. Sed se vi forigas surskribojn de bariloj, neniu rimarkos vian laboron dum la bariloj aspektas decaj aŭ ĝis vi forviŝos ion malbonan.

Ajna servo, kie vi povas lasi komenton, revizii, sendi mesaĝon aŭ alŝuti bildojn baldaŭ aŭ malfrue alfrontas la problemon de spamado, fraŭdo kaj obsceneco. Ĉi tio ne povas esti evitita, sed ĝi devas esti traktita.

Mi nomiĝas Miĥail, mi laboras en la teamo Antispam, kiu protektas uzantojn de Yandex-servoj kontraŭ tiaj problemoj. Nia laboro malofte estas rimarkata (kaj tio estas bona!), do hodiaŭ mi rakontos al vi pli pri ĝi. Vi lernos kiam modereco estas senutila kaj kial precizeco ne estas la sola indikilo de ĝia efikeco. Ni ankaŭ parolos pri blasfemado uzante la ekzemplon de katoj kaj hundoj kaj kial foje estas utile "pensi kiel ĵuranto".

Pli kaj pli da servoj aperas en Yandex, kie uzantoj publikigas sian enhavon. Vi povas fari demandon aŭ skribi respondon en Yandex.Q, diskuti kortajn novaĵojn en Yandex.District, dividi trafikkondiĉojn en konversacioj sur Yandex.Maps. Sed kiam la spektantaro de la servo kreskas, ĝi fariĝas alloga por skamantoj kaj spamistoj. Ili venas kaj plenigas komentojn: ili ofertas facilan monon, reklamas miraklajn kuracojn kaj promesas sociajn avantaĝojn. Pro spamistoj, iuj uzantoj perdas monon, dum aliaj perdas la deziron pasigi tempon en neprizorgita servo superkreskita de spamo.

Kaj ĉi tio ne estas la sola problemo. Ni strebas ne nur por protekti uzantojn kontraŭ skamantoj, sed ankaŭ por krei komfortan atmosferon por komunikado. Se homoj estas konfrontitaj kun blasfemado kaj insultoj en la komentoj, ili verŝajne foriros kaj neniam revenos. Ĉi tio signifas, ke vi ankaŭ devas povi trakti ĉi tion.

Pura Retejo

Kiel ofte okazas ĉe ni, la unuaj evoluoj naskiĝis en Serĉo, en la parto, kiu batalas kontraŭ spamado en serĉrezultoj. Antaŭ proksimume dek jaroj aperis tie la tasko filtri plenkreskan enhavon por familiaj serĉoj kaj por demandoj, kiuj ne postulis respondojn de la kategorio 18+. Jen kiel aperis la unuaj mane tajpitaj vortaroj de porno kaj blasfemado, ili estis replenigitaj de analizistoj. La ĉefa tasko estis klasifiki petojn en tiujn, kie estas akcepteble montri plenkreskan enhavon kaj kie ĝi ne estas. Por ĉi tiu tasko, markado estis kolektita, heŭristiko estis konstruita, kaj modeloj estis trejnitaj. Jen kiel aperis la unuaj evoluoj por filtri nedeziratan enhavon.

Kun la tempo, UGC (uzanto generita enhavo) komencis aperi en Yandex - mesaĝoj kiuj estas skribitaj de uzantoj mem, kaj Yandex nur publikigas. Pro la supraj kialoj priskribitaj, multaj mesaĝoj ne povus esti publikigitaj sen rigardi - modereco estis postulata. Tiam ili decidis krei servon, kiu provizos protekton kontraŭ spamo kaj atakantoj por ĉiuj Yandex UGC-produktoj kaj uzu evoluojn por filtri nedeziratan enhavon en Serĉo. La servo nomiĝis "Pura Retejo".

Novaj taskoj kaj helpo de puŝantoj

Komence, nur simpla aŭtomatigo funkciis por ni: la servoj sendis al ni tekstojn, kaj ni prizorgis obscenecajn vortarojn, pornajn vortarojn kaj regulajn esprimojn - analizistoj kompilis ĉion permane. Sed kun la tempo, la servo estis uzata en kreskanta nombro da Yandex-produktoj, kaj ni devis lerni labori kun novaj problemoj.

Ofte, anstataŭ recenzo, uzantoj publikigas sensignifan aron da leteroj, provante pliigi siajn atingojn, foje ili reklamas sian kompanion en recenzoj de kompanio de konkuranto, kaj foje ili simple konfuzas organizojn kaj skribas en recenzo pri bestobutiko: " Perfekte kuirita fiŝo!” Eble iam artefarita inteligenteco lernos perfekte kapti la signifon de iu teksto, sed nun aŭtomatigo foje eltenas pli malbone ol homoj.

Evidentiĝis, ke ni ne povas fari tion sen mana markado, kaj ni aldonis duan etapon al nia cirkvito—sendante ĝin por mana inspektado de persono. Tiuj publikigitaj tekstoj por kiuj la klasigilo ne vidis problemojn estis inkluditaj tie. Vi povas facile imagi la amplekson de tia tasko, do ni ne nur fidis al asistantoj, sed ankaŭ profitis la "saĝon de la homamaso", tio estas, ni turnis nin al la tolokers por helpo. Ili estas tiuj kiuj helpas nin identigi tion, kion la maŝino maltrafis, kaj tiel instrui ĝin.

Inteligenta kaŝmemoro kaj LSH-hakado

Alia problemo, kiun ni renkontis laborante kun komentoj, estis spamo, aŭ pli precize, ĝia volumeno kaj rapideco de disvastigo. Kiam la spektantaro de Yandex.Region komencis rapide kreski, spamistoj venis tien. Ili lernis preteriri regulajn esprimojn per iomete ŝanĝante la tekston. Spamo, kompreneble, ankoraŭ estis trovita kaj forigita, sed laŭ la skalo de Yandex, neakceptebla mesaĝo afiŝita eĉ dum 5 minutoj povus esti vidita de centoj da homoj.

Kiel malfermi komentojn kaj ne droniĝi en spamo

Kompreneble, ĉi tio ne konvenis al ni, kaj ni faris inteligentan tekstan kaŝmemoron bazitan sur LSH (lok-sentema haŝado). Ĝi funkcias tiel: ni normaligis la tekston, forigis ligilojn de ĝi kaj tranĉis ĝin en n-gramojn (sekvencoj de n literoj). Poste, la hashoj de n-gramoj estis kalkulitaj, kaj la LSH-vektoro de la dokumento estis konstruita el ili. La afero estas, ke similaj tekstoj, eĉ se ili estis iomete ŝanĝitaj, fariĝis similaj vektoroj.

Tiu ĉi solvo ebligis reuzi la verdiktojn de klasigiloj kaj tolokeroj por similaj tekstoj. Dum spam-atako, tuj kiam la unua mesaĝo pasis la skanadon kaj eniris la kaŝmemoron kun "spam" verdikto, ĉiuj novaj similaj mesaĝoj, eĉ modifitaj, ricevis la saman verdikton kaj estis aŭtomate forigitaj. Poste, ni lernis kiel trejni kaj aŭtomate retrejni spamklasigilojn, sed ĉi tiu "saĝa kaŝmemoro" restis ĉe ni kaj ankoraŭ ofte helpas nin.

Bona tekstklasigilo

Sen havi tempon por preni paŭzon de batalado de spamado, ni rimarkis, ke 95% de nia enhavo estas moderigita permane: klasigiloj nur reagas al malobservoj, kaj la plej multaj el la tekstoj estas bonaj. Ni ŝarĝas purigilojn, kiuj en 95 kazoj el 100 donas la takson "Ĉio estas en ordo". Mi devis fari nekutiman laboron - fari klasigilojn de bona enhavo, feliĉe sufiĉe da markado akumuliĝis dum ĉi tiu tempo.

La unua klasigilo aspektis jene: ni lematigas la tekston (reduktas la vortojn al ilia komenca formo), forĵetas ĉiujn helpajn vortpartojn kaj uzas antaŭpreparitan “vortaron de bonaj lemoj”. Se ĉiuj vortoj en la teksto estas "bonaj", tiam la tuta teksto enhavas neniujn malobservojn. Sur malsamaj servoj, ĉi tiu aliro tuj donis de 25 ĝis 35% aŭtomatigon de mana markado. Kompreneble, ĉi tiu aliro ne estas ideala: estas facile kombini plurajn senkulpajn vortojn kaj ricevi tre ofendan deklaron, sed ĝi permesis al ni rapide atingi bonan nivelon de aŭtomatigo kaj donis al ni tempon por trejni pli kompleksajn modelojn.

La venontaj versioj de bonaj tekstklasigiloj jam inkludis liniajn modelojn, decidarbojn, kaj iliajn kombinaĵojn. Por marki malĝentilecon kaj insultojn, ekzemple, ni provas la neŭralan reton BERT. Gravas ekkompreni la signifon de vorto en kunteksto kaj la ligon inter vortoj de malsamaj frazoj, kaj BERT bone faras ĉi tion. (Cetere, lastatempe kolegoj de Novaĵoj rakontis, kiel teknologio estas uzata por ne-norma tasko - trovi erarojn en kaplinioj.) Kiel rezulto, eblis aŭtomatigi ĝis 90% de la fluo, depende de la servo.

Precizeco, kompleteco kaj rapideco

Por disvolvi, vi devas kompreni, kiajn avantaĝojn alportas iuj aŭtomataj klasifikiloj, ŝanĝojn en ili, kaj ĉu la kvalito de manaj kontroloj malboniĝas. Por fari tion, ni uzas precizecon kaj revokimetrikon.

Precizeco estas la proporcio de ĝustaj verdiktoj inter ĉiuj verdiktoj pri malbona enhavo. Ju pli alta la precizeco, des malpli da falsaj pozitivoj. Se vi ne atentas precizecon, tiam teorie vi povas forigi ĉiujn spamojn kaj obscenaĵojn, kaj kune kun ili duonon de la bonaj mesaĝoj. Aliflanke, se vi fidas nur je precizeco, tiam la plej bona teknologio estos tiu, kiu tute ne kaptas iun. Tial, ekzistas ankaŭ indikilo de kompleteco: la parto de identigita malbona enhavo inter la totala volumo de malbona enhavo. Ĉi tiuj du metrikoj ekvilibrigas unu la alian.

Por mezuri, ni provas la tutan envenantan fluon por ĉiu servo kaj donas enhavajn specimenojn al taksantoj por spertaj taksado kaj komparo kun maŝinaj solvoj.

Sed estas alia grava indikilo.

Mi skribis supre, ke neakceptebla mesaĝo povas esti vidita de centoj da homoj eĉ en 5 minutoj. Do ni kalkulas kiom da fojoj ni montris al homoj malbonan enhavon antaŭ ol ni kaŝis ĝin. Ĉi tio gravas, ĉar ne sufiĉas labori efike - vi ankaŭ bezonas rapide labori. Kaj kiam ni konstruis defendon kontraŭ blasfemado, ni sentis ĝin plene.

Antimatismo uzante la ekzemplon de katoj kaj hundoj

Eta lirika digresio. Iuj povus diri, ke obsceneco kaj insultoj ne estas tiel danĝeraj kiel malicaj ligiloj, kaj ne tiel ĝenaj kiel spamo. Sed ni strebas konservi komfortajn kondiĉojn por komunikado por milionoj da uzantoj, kaj homoj ne ŝatas reveni al lokoj, kie ili estas insultitaj. Ne vane la malpermeso de blasfemado kaj insultoj estas priskribita en la reguloj de multaj komunumoj, inkluzive de Habré. Sed ni digresas.

Ĵuraj vortaroj ne povas elteni la tutan riĉecon de la rusa lingvo. Malgraŭ tio, ke ekzistas nur kvar ĉefaj ĵurradikoj, el ili vi povas konsistigi sennombran nombron da vortoj, kiuj ne povas esti kaptitaj de iuj regulaj motoroj. Krome, vi povas skribi parton de vorto en transliterumo, anstataŭigi literojn per similaj kombinaĵoj, rearanĝi literojn, aldoni asteriskojn, ktp. Iafoje, sen kunteksto, estas esence neeble determini ke la uzanto celis blasfeman vorton. Ni respektas la regulojn de Habr, do ni montros tion ne per vivaj ekzemploj, sed per katoj kaj hundoj.

Kiel malfermi komentojn kaj ne droniĝi en spamo

"Leĝo," diris la kato. Sed ni komprenas, ke la kato diris alian vorton...

Ni komencis pensi pri "malklara kongruaj" algoritmoj por nia vortaro kaj pri pli inteligenta antaŭtraktado: ni provizis transliterumon, kungluis spacojn kaj interpunkcion, serĉis ŝablonojn kaj skribis sur ili apartajn regulajn esprimojn. Ĉi tiu aliro alportis rezultojn, sed ofte reduktis precizecon kaj ne disponigis la deziratan kompletecon.

Tiam ni decidis "pensi kiel ĵurantoj." Ni mem komencis enkonduki bruon en la datumojn: ni rearanĝis literojn, generis tajperarojn, anstataŭigis literojn per similaj literumoj ktp. La komenca markado por tio estis prenita aplikante matajn vortarojn al grandaj korpusoj de tekstoj. Se vi prenas unu frazon kaj tordas ĝin en pluraj manieroj, vi finas kun multaj frazoj. Tiel vi povas pliigi la trejnan specimenon dekfoje. Restis nur trejni sur la rezulta naĝejo iun pli-malpli inteligentan modelon, kiu konsideris la kuntekston.

Kiel malfermi komentojn kaj ne droniĝi en spamo

Estas tro frue por paroli pri la fina decido. Ni ankoraŭ eksperimentas kun aliroj al ĉi tiu problemo, sed ni jam povas vidi, ke simpla simbola konvolucia reto de pluraj tavoloj signife superas vortarojn kaj regulajn motorojn: eblas pliigi kaj precizecon kaj revokon.

Kompreneble, ni komprenas, ke ĉiam estos manieroj preteriri eĉ la plej altnivelan aŭtomatigon, precipe kiam la afero estas tiel danĝera: skribu tiel, ke stulta maŝino ne komprenos. Ĉi tie, kiel en la batalo kontraŭ spamo, nia celo ne estas forigi la eblon mem skribi ion obscenan; nia tasko estas certigi, ke la ludo ne valoras la kandelon.

Malfermi la ŝancon dividi vian opinion, komuniki kaj komenti ne estas malfacila. Estas multe pli malfacile atingi sekurajn, komfortajn kondiĉojn kaj respekteman traktadon de homoj. Kaj sen tio ne estos evoluo de iu komunumo.

fonto: www.habr.com

Aldoni komenton