{"id":35108,"date":"2019-10-31T22:02:22","date_gmt":"2019-10-31T19:02:22","guid":{"rendered":"https:\/\/prohoster.info\/blog\/kak-my-moderiruem-obyavleniya\/"},"modified":"2019-10-31T22:02:22","modified_gmt":"2019-10-31T19:02:22","slug":"kak-my-moderiruem-obyavleniya","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/kak-my-moderiruem-obyavleniya","title":{"rendered":"Jak moderujemy og\u0142oszenia","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Jak moderujemy og\u0142oszenia\" src=\"\/wp-content\/uploads\/26550996eb43e06cf069d989d90fe8d5.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKa\u017cda us\u0142uga, kt\u00f3rej u\u017cytkownicy mog\u0105 tworzy\u0107 w\u0142asne tre\u015bci (UGC - tre\u015bci generowane przez u\u017cytkownik\u00f3w), musi nie tylko rozwi\u0105zywa\u0107 problemy biznesowe, ale tak\u017ce uporz\u0105dkowa\u0107 UGC. Z\u0142a lub niskiej jako\u015bci moderacja tre\u015bci mo\u017ce ostatecznie zmniejszy\u0107 atrakcyjno\u015b\u0107 us\u0142ugi dla u\u017cytkownik\u00f3w, a nawet doprowadzi\u0107 do zaprzestania jej dzia\u0142ania. <\/p>\n<p>Dzi\u015b opowiemy o synergii mi\u0119dzy Juli\u0105 a Odnoklassnikami, kt\u00f3ra pomaga nam skutecznie moderowa\u0107 og\u0142oszenia w Julii. <\/p>\n<p>Synergia jest zjawiskiem bardzo korzystnym, a w dzisiejszym \u015bwiecie, gdzie technologia i trendy zmieniaj\u0105 si\u0119 niezwykle szybko, mo\u017ce sta\u0107 si\u0119 prawdziw\u0105 r\u00f3\u017cd\u017ck\u0105. Po co marnowa\u0107 cenne zasoby i czas na wynajdywanie tego, co zosta\u0142o ju\u017c wynalezione i doprowadzone do perfekcji? <\/p>\n<p>Tak samo pomy\u015bleli\u015bmy, gdy stan\u0119li\u015bmy przed zadaniem moderacji tre\u015bci generowanych przez u\u017cytkownik\u00f3w \u2014 obrazk\u00f3w, tekst\u00f3w i link\u00f3w. Nasi u\u017cytkownicy codziennie przesy\u0142aj\u0105 do Julii miliony jednostek tre\u015bci, a bez automatycznego przetwarzania manualne moderowanie tych danych jest ca\u0142kowicie nierealne.<\/p>\n<p>Dlatego skorzystali\u015bmy z gotowej platformy moderacyjnej, kt\u00f3r\u0105 nasi koledzy z Odnoklassnik\u00f3w doprowadzili do stanu 'prawie perfekcyjnego'.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Dlaczego Odnoklassniki?<\/h2>\n<p>\nCodziennie do serwisu spo\u0142eczno\u015bciowego przybywaj\u0105 dziesi\u0105tki milion\u00f3w u\u017cytkownik\u00f3w, kt\u00f3rzy publikuj\u0105 miliardy jednostek tre\u015bci: od zdj\u0119\u0107 po filmy i teksty. Platforma moderacyjna Odnoklassnik\u00f3w pomaga w weryfikacji ogromnych ilo\u015bci danych oraz przeciwdzia\u0142a spammerom i botom. <\/p>\n<p>Zesp\u00f3\u0142 moderacyjny O\u041a zdoby\u0142 ogromne do\u015bwiadczenie, poniewa\u017c doskonali sw\u00f3j narz\u0119dzie od 12 lat. Wa\u017cne jest to, \u017ce nie tylko mogli podzieli\u0107 si\u0119 swoimi gotowymi rozwi\u0105zaniami, ale tak\u017ce dostosowa\u0107 architektur\u0119 swojej platformy do naszych specyficznych potrzeb.<\/p>\n<p><img decoding=\"async\" alt=\"Jak moderujemy og\u0142oszenia\" src=\"\/wp-content\/uploads\/5f98b6c93728aad3de613fffb153f3d4.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDalej dla skr\u00f3tu b\u0119dziemy nazywa\u0107 platform\u0119 moderacyjn\u0105 O\u041a po prostu 'platform\u0105'.<\/p>\n<h2>Jak to wszystko dzia\u0142a<\/h2>\n<p>\nMi\u0119dzy Juli\u0105 a Odnoklassnikami wymiana danych zosta\u0142a zorganizowana przez <noindex><a rel=\"nofollow\" href=\"https:\/\/kafka.apache.org\/\">Apache Kafka<\/a><\/noindex>. <\/p>\n<p>Dlaczego wybrali\u015bmy to narz\u0119dzie:<\/p>\n<ul>\n<li>W Julii wszystkie og\u0142oszenia przechodz\u0105 postmoderacj\u0119, wi\u0119c pocz\u0105tkowo synchronizowana odpowied\u017a nie by\u0142a wymagana.\n<\/li>\n<li>Je\u015bli zdarzy si\u0119 awaria, a \u042e\u043b\u0430 lub \u041e\u0434\u043d\u043e\u043a\u043b\u0430\u0441\u0441\u043d\u0438\u043a\u0438 b\u0119d\u0105 niedost\u0119pne, w tym z powodu jakichkolwiek szczytowych obci\u0105\u017ce\u0144, to dane z Kafka nigdzie nie znikn\u0105 i p\u00f3\u017aniej b\u0119dzie je mo\u017cna doko\u0144czy\u0107.\n<\/li>\n<li>Platforma zosta\u0142a ju\u017c zintegrowana z Kafka, wi\u0119c wi\u0119kszo\u015b\u0107 pyta\u0144 dotycz\u0105cych bezpiecze\u0144stwa zosta\u0142a rozwi\u0105zana.\n<\/li>\n<\/ul>\n<p>\n <img decoding=\"async\" alt=\"Jak moderujemy og\u0142oszenia\" src=\"\/wp-content\/uploads\/5aeaf03bac41c3113659d6d739021e71.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDla ka\u017cdego stworzonego lub zmienionego przez u\u017cytkownika og\u0142oszenia w \u042e\u043b\u0435 tworzony jest JSON z danymi, kt\u00f3ry jest umieszczany w Kafka do dalszej moderacji. Z Kafka og\u0142oszenia s\u0105 \u0142adowane na platform\u0119, gdzie s\u0105 podejmowane decyzje automatycznie lub r\u0119cznie. Z\u0142e og\u0142oszenia s\u0105 blokowane z podaniem przyczyny, a te, w kt\u00f3rych platforma nie znalaz\u0142a narusze\u0144, s\u0105 oznaczane jako \u201edobre\u201d. Nast\u0119pnie wszystkie decyzje s\u0105 wysy\u0142ane z powrotem do \u042e\u043b\u044b i stosowane w serwisie.<\/p>\n<p>W rezultacie, dla \u042e\u0142y wszystko sprowadza si\u0119 do prostych dzia\u0142a\u0144: wys\u0142a\u0107 og\u0142oszenie do platformy \u041e\u0434\u043d\u043e\u043a\u043b\u0430\u0441\u0441\u043d\u0438\u043a\u043e\u0432 i otrzyma\u0107 z powrotem odpowied\u017a \u201eok\u201d, lub wyja\u015bnienie, dlaczego nie \u201eok\u201d.<\/p>\n<h2>Automatyczne przetwarzanie<\/h2>\n<p>\nCo si\u0119 dzieje z og\u0142oszeniem po tym, jak trafia na platform\u0119? Ka\u017cde og\u0142oszenie jest dzielone na kilka jednostek:<\/p>\n<ul>\n<li>nazwa,\n<\/li>\n<li>opis,\n<\/li>\n<li>zdj\u0119cia,\n<\/li>\n<li>wybrana przez u\u017cytkownika kategoria i podkategoria og\u0142oszenia,\n<\/li>\n<li>cena.\n<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Jak moderujemy og\u0142oszenia\" src=\"\/wp-content\/uploads\/e4396a3b4378975987fe3a871c3d6fbf.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNast\u0119pnie dla ka\u017cdej jednostki platforma przeprowadza klasteryzacj\u0119, aby znale\u017a\u0107 duplikaty. Przy czym teksty i zdj\u0119cia s\u0105 klasteryzowane wed\u0142ug r\u00f3\u017cnych schemat\u00f3w.<\/p>\n<p>Teksty przed klasteryzacj\u0105 s\u0105 normalizowane, aby usun\u0105\u0107 znaki specjalne, zmienione litery i inny \u015bmie\u0107. Otrzymane dane s\u0105 dzielone na N-gramy, z kt\u00f3rych ka\u017cdy jest haszowany. W rezultacie powstaje wiele unikalnych hashy. Podobie\u0144stwo mi\u0119dzy tekstami ocenia si\u0119 wed\u0142ug <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9A%D0%BE%D1%8D%D1%84%D1%84%D0%B8%D1%86%D0%B8%D0%B5%D0%BD%D1%82_%D1%81%D1%85%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%B0\">miary Jaccarda<\/a><\/noindex> mi\u0119dzy dwoma uzyskanymi zbiorami. Je\u015bli podobie\u0144stwo przekracza pr\u00f3g, to teksty \u0142\u0105cz\u0105 si\u0119 w jeden klaster. Aby przyspieszy\u0107 wyszukiwanie podobnych klastr\u00f3w, wykorzystuje si\u0119 MinHash i haszowanie wra\u017cliwe na lokalizacj\u0119.<\/p>\n<p>Dla zdj\u0119\u0107 wymy\u015blono r\u00f3\u017cne opcje scalania obraz\u00f3w, od por\u00f3wnania pHash zdj\u0119\u0107 po wyszukiwanie duplikat\u00f3w za pomoc\u0105 sieci neuronowej. <\/p>\n<p>Ostatni spos\u00f3b jest najbardziej \u201esurowy\u201d. Do szkolenia modelu wybierane by\u0142y takie tr\u00f3jki obraz\u00f3w (N, A, P), w kt\u00f3rych N nie przypomina A, a P przypomina A (jest p\u00f3\u0142duplikatem). Nast\u0119pnie sie\u0107 neuronowa uczy\u0142a si\u0119 tak, aby A i P by\u0142y jak najbli\u017cej siebie, a A i N jak najdalej. Dzi\u0119ki temu otrzymuje si\u0119 mniej fa\u0142szywych trafie\u0144 w por\u00f3wnaniu do po prostu u\u017cywania osadze\u0144 z wytrenowanej sieci.<\/p>\n<p>Kiedy sie\u0107 neuronowa otrzymuje obrazy, generuje dla ka\u017cdego z nich wektor N(128)-wymiarowy i wysy\u0142a zapytanie w celu oceny podobie\u0144stwa obrazu. Nast\u0119pnie obliczany jest pr\u00f3g, przy kt\u00f3rym podobne obrazy uznawane s\u0105 za duplikaty.<\/p>\n<p>Model potrafi mistrzowsko znajdowa\u0107 spammer\u00f3w, kt\u00f3rzy specjalnie fotografuj\u0105 ten sam towar z r\u00f3\u017cnych k\u0105t\u00f3w, aby obej\u015b\u0107 por\u00f3wnanie wed\u0142ug pHash.<\/p>\n<p><img decoding=\"async\" alt=\"Jak moderujemy og\u0142oszenia\" src=\"\/wp-content\/uploads\/943a628a844ea124317e7eec8d3c19f7.png\" style=\"display:block;margin: 0 auto;\" \/><img decoding=\"async\" alt=\"Jak moderujemy og\u0142oszenia\" src=\"\/wp-content\/uploads\/4b6f7082751ddb7581d00cf171797b1d.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Przyk\u0142ad zdj\u0119\u0107 spammerskich, po\u0142\u0105czonych przez sie\u0107 neuronow\u0105 jako duplikaty.<\/i><\/p>\n<p>Na ko\u0144cowym etapie duplikaty og\u0142osze\u0144 s\u0105 wyszukiwane jednocze\u015bnie w tre\u015bci i w obrazach.<\/p>\n<p>Gdy w klastrze \u0142\u0105cz\u0105 si\u0119 dwa lub wi\u0119cej og\u0142osze\u0144, system uruchamia automatyczn\u0105 blokad\u0119, kt\u00f3ra wed\u0142ug okre\u015blonych algorytm\u00f3w wybiera, kt\u00f3re duplikaty usun\u0105\u0107, a kt\u00f3re pozostawi\u0107. Na przyk\u0142ad, je\u015bli dw\u00f3ch u\u017cytkownik\u00f3w ma w og\u0142oszeniu identyczne zdj\u0119cia, system zablokuje nowsze og\u0142oszenie.<\/p>\n<p>Po utworzeniu wszystkie klastry przechodz\u0105 przez szereg automatycznych filtr\u00f3w. Ka\u017cdy filtr przyznaje klastrowi liczb\u0119 punkt\u00f3w (score): jak\u0105 prawdopodobie\u0144stwo, \u017ce zawiera zagro\u017cenie, kt\u00f3re wykrywa ten filtr. <\/p>\n<p>Na przyk\u0142ad system analizuje opis w og\u0142oszeniu i wybiera dla niego potencjalne kategorie. Nast\u0119pnie bierze t\u0119, kt\u00f3ra ma najwi\u0119ksze prawdopodobie\u0144stwo, i por\u00f3wnuje z kategori\u0105 wskazan\u0105 przez autora og\u0142oszenia. Je\u015bli si\u0119 nie zgadzaj\u0105, og\u0142oszenie jest blokowane za nieprawid\u0142ow\u0105 kategori\u0119. A poniewa\u017c jeste\u015bmy mili i uczciwi, informujemy u\u017cytkownika, jak\u0105 kategori\u0119 powinien wybra\u0107, aby og\u0142oszenie przesz\u0142o moderacj\u0119.<\/p>\n<p><img decoding=\"async\" alt=\"Jak moderujemy og\u0142oszenia\" src=\"\/wp-content\/uploads\/a909ea1ff91d57a225d2db1c96cd56a7.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Powiadomienie o zablokowaniu za niew\u0142a\u015bciw\u0105 kategori\u0119.<\/i><\/p>\n<p>Na naszej platformie uczenie maszynowe czuje si\u0119 jak w domu. Na przyk\u0142ad za jego pomoc\u0105 wyszukujemy w tytu\u0142ach i opisach towary zabronione w RF. A modele sieci neuronowych starannie \u201eogl\u0105daj\u0105\u201d obrazy, sprawdzaj\u0105c, czy nie ma na nich adres\u00f3w URL, spammerskich tekst\u00f3w, telefon\u00f3w i wszelkiej \u201ezakazanej\u201d tre\u015bci.<\/p>\n<p>W przypadkach, gdy zakazany towar pr\u00f3buje si\u0119 sprzeda\u0107, maskuj\u0105c go jako co\u015b legalnego, a przy tym nie ma \u017cadnego tekstu ani w tytule, ani w opisie, u\u017cywamy tagowania obraz\u00f3w. Dla ka\u017cdego obrazu mog\u0105 by\u0107 przypisane do 11 tysi\u0119cy r\u00f3\u017cnych tag\u00f3w, opisuj\u0105cych, co znajduje si\u0119 na obrazie.<\/p>\n<p><img decoding=\"async\" alt=\"Jak moderujemy og\u0142oszenia\" src=\"\/wp-content\/uploads\/865afd80422c05d1277ac53f7fe0009e.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Pr\u00f3buje si\u0119 sprzeda\u0107 fajk\u0119 wodn\u0105, maskuj\u0105c j\u0105 jako samowar.<\/i><\/p>\n<p>R\u00f3wnolegle ze skomplikowanymi filtrami dzia\u0142aj\u0105 r\u00f3wnie\u017c proste, rozwi\u0105zuj\u0105ce oczywiste problemy zwi\u0105zane z tekstem: <\/p>\n<ul>\n<li>wulgaryzmy; \n<\/li>\n<li>detektor adres\u00f3w URL i numer\u00f3w telefon\u00f3w; \n<\/li>\n<li>wzmianka o komunikatorach i innych kontaktach; \n<\/li>\n<li>ni\u017csza cena; \n<\/li>\n<li>og\u0142oszenia, w kt\u00f3rych nic nie jest sprzedawane, itd.\n<\/li>\n<\/ul>\n<p>\nDzi\u015b ka\u017cde og\u0142oszenie przechodzi przez drobne sitko z ponad 50 automatycznymi filtrami, kt\u00f3re pr\u00f3buj\u0105 znale\u017a\u0107 w og\u0142oszeniu co\u015b negatywnego.<\/p>\n<p>Je\u017celi \u017caden z detektor\u00f3w nie zadzia\u0142a\u0142, do Yulu trafia odpowied\u017a, \u017ce og\u0142oszenie jest, \"prawdopodobnie\", w porz\u0105dku. T\u0119 odpowied\u017a stosujemy u siebie, a u\u017cytkownicy, kt\u00f3rzy subskrybowali sprzedawc\u0119, otrzymuj\u0105 powiadomienie o pojawieniu si\u0119 nowego towaru.<\/p>\n<p><img decoding=\"async\" alt=\"Jak moderujemy og\u0142oszenia\" src=\"\/wp-content\/uploads\/37ed66a822d50348686c823e6b919712.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Powiadomienie o tym, \u017ce sprzedawca ma nowy towar.<\/i><\/p>\n<p>W efekcie ka\u017cde og\u0142oszenie \"nabywa\" metadanych, cz\u0119\u015b\u0107 z nich generowana jest w momencie tworzenia og\u0142oszenia (adres IP autora, user-agent, platforma, geolokalizacja itd.), a reszta to wyniki (score) wydane przez ka\u017cdy filtr.<\/p>\n<h2>Kolejki og\u0142osze\u0144<\/h2>\n<p>\nGdy og\u0142oszenie trafia na platform\u0119, system umieszcza je w jednej z kolejek. Ka\u017cda kolejka jest tworzona za pomoc\u0105 matematycznej formu\u0142y, kt\u00f3ra \u0142\u0105czy metadane og\u0142oszenia w taki spos\u00f3b, aby wykry\u0107 jaki\u015b negatywny wzorzec.<\/p>\n<p>Na przyk\u0142ad, mo\u017cna stworzy\u0107 kolejk\u0119 og\u0142osze\u0144 w kategorii \"Telefony kom\u00f3rkowe\" od u\u017cytkownik\u00f3w Yuli rzekomo z Petersburga, przy czym ich adresy IP s\u0105 z Moskwy lub innych miast.<\/p>\n<p><img decoding=\"async\" alt=\"Jak moderujemy og\u0142oszenia\" src=\"\/wp-content\/uploads\/de7b944fed4fc8682ab068c5956f1023.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Przyk\u0142ad og\u0142osze\u0144 zamieszczonych przez jednego u\u017cytkownika w r\u00f3\u017cnych miastach.<\/i><\/p>\n<p>Mo\u017cna tak\u017ce formowa\u0107 kolejki na podstawie punkt\u00f3w, kt\u00f3re sie\u0107 neuronowa przypisuje og\u0142oszeniom, porz\u0105dkuj\u0105c je w kolejno\u015bci malej\u0105cej.<\/p>\n<p>Ka\u017cda kolejka, zgodnie ze swoj\u0105 formu\u0142\u0105, przypisuje og\u0142oszeniu ko\u0144cowy wynik (score). Nast\u0119pnie mo\u017cna dzia\u0142a\u0107 na r\u00f3\u017cne sposoby: <\/p>\n<ul>\n<li>ustawi\u0107 pr\u00f3g, przy kt\u00f3rym og\u0142oszenie otrzyma okre\u015blony typ blokady; \n<\/li>\n<li>wszystkie og\u0142oszenia w kolejce wysy\u0142ane s\u0105 moderatorom do r\u0119cznej weryfikacji;\n<\/li>\n<li>lub po\u0142\u0105czy\u0107 wcze\u015bniejsze opcje: okre\u015bli\u0107 pr\u00f3g automatycznej blokady i wys\u0142a\u0107 moderatorom te og\u0142oszenia, kt\u00f3re nie osi\u0105gn\u0119\u0142y tego progu.\n<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Jak moderujemy og\u0142oszenia\" src=\"\/wp-content\/uploads\/46a773be691fb644df64fe68f999a568.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPo co s\u0105 te kolejki? Za\u0142\u00f3\u017cmy, \u017ce u\u017cytkownik za\u0142adowa\u0142 zdj\u0119cie broni palnej. Sie\u0107 neuronowa przypisuje mu wynik od 95 do 100 i z 99-procentow\u0105 dok\u0142adno\u015bci\u0105 okre\u015bla, \u017ce na obrazku znajduje si\u0119 bro\u0144. Ale je\u015bli warto\u015b\u0107 wyniku jest poni\u017cej 95%, dok\u0142adno\u015b\u0107 modelu zaczyna male\u0107 (taka jest cecha modeli sieci neuronowych).<\/p>\n<p>W rezultacie kszta\u0142tuje si\u0119 kolejka na podstawie wyniku modelu, a te og\u0142oszenia, kt\u00f3re uzyska\u0142y od 95 do 100, s\u0105 automatycznie blokowane jako \u201eTowar zabroniony\u201d. Og\u0142oszenia z liczb\u0105 punkt\u00f3w poni\u017cej 95 s\u0105 kierowane do r\u0119cznej obr\u00f3bki przez moderator\u00f3w.<\/p>\n<p><img decoding=\"async\" alt=\"Jak moderujemy og\u0142oszenia\" src=\"\/wp-content\/uploads\/0b22d783560e9670b99661df2de9d9ba.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Czekoladowa Beretta z nabojami. Tylko do r\u0119cznej moderacji! \ud83d\ude42<\/i><\/p>\n<h2>R\u0119czna moderacja<\/h2>\n<p>\nNa pocz\u0105tku 2019 roku oko\u0142o 94% wszystkich og\u0142osze\u0144 na Jule moderowanych jest automatycznie. <\/p>\n<p><img decoding=\"async\" alt=\"Jak moderujemy og\u0142oszenia\" src=\"\/wp-content\/uploads\/7dc3172e65097cc58b2a29d2df063507.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJe\u015bli platforma nie mo\u017ce zdecydowa\u0107, co zrobi\u0107 z niekt\u00f3rymi og\u0142oszeniami, wysy\u0142a je do r\u0119cznej moderacji. Odniesienia stworzy\u0142y w\u0142asne narz\u0119dzie: w zadaniach dla moderator\u00f3w natychmiast wy\u015bwietlana jest ca\u0142a niezb\u0119dna informacja do podj\u0119cia szybkiej decyzji - czy og\u0142oszenie jest dobre, czy nale\u017cy je zablokowa\u0107 z podaniem przyczyny.<\/p>\n<p>Aby przy r\u0119cznej moderacji jako\u015b\u0107 us\u0142ugi nie cierpia\u0142a, praca ludzi jest na bie\u017c\u0105co kontrolowana. Na przyk\u0142ad w strumieniu zada\u0144 moderatorowi wy\u015bwietlane s\u0105 \u201epu\u0142apki\u201d - og\u0142oszenia, dla kt\u00f3rych ju\u017c istniej\u0105 gotowe rozwi\u0105zania. Je\u015bli decyzja moderatora nie zgadza si\u0119 z gotowym, moderatorowi nalicza si\u0119 b\u0142\u0105d.<\/p>\n<p>Na sprawdzenie jednego og\u0142oszenia moderator przeci\u0119tnie po\u015bwi\u0119ca 10 sekund. Przy tym liczba b\u0142\u0119d\u00f3w nie przekracza 0,5% wszystkich sprawdzonych og\u0142osze\u0144.<\/p>\n<h2>Moderacja spo\u0142eczna<\/h2>\n<p>\nKoledzy z Odnoklassnik\u00f3w poszli jeszcze dalej, wykorzystuj\u0105c \u201epomoc widowni\u201d: stworzyli aplikacj\u0119-gr\u0119 dla serwisu spo\u0142eczno\u015bciowego, w kt\u00f3rej mo\u017cna szybko oznacza\u0107 du\u017c\u0105 ilo\u015b\u0107 danych, wyr\u00f3\u017cniaj\u0105c jaki\u015b z\u0142y znak - Moderator Odnoklassnik\u00f3w (<noindex><a rel=\"nofollow\" href=\"https:\/\/ok.ru\/app\/moderator\">https:\/\/ok.ru\/app\/moderator<\/a><\/noindex>). Dobry spos\u00f3b, by wykorzysta\u0107 pomoc u\u017cytkownik\u00f3w OK, kt\u00f3rzy staraj\u0105 si\u0119 uczyni\u0107 tre\u015bci przyjemniejszymi.<\/p>\n<p><img decoding=\"async\" alt=\"Jak moderujemy og\u0142oszenia\" src=\"\/wp-content\/uploads\/8889b29402991047e43c1d7eaf7a3c77.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Gra, w kt\u00f3rej u\u017cytkownicy oznaczaj\u0105 zdj\u0119cia, na kt\u00f3rych znajduje si\u0119 numer telefonu.<\/i><\/p>\n<p>Ka\u017cd\u0105 kolejk\u0119 og\u0142osze\u0144 na platformie mo\u017cna skierowa\u0107 do gry Moderator Odnoklassnik\u00f3w. Wszystko, co oznacz\u0105 u\u017cytkownicy gry, trafia nast\u0119pnie do wewn\u0119trznych moderator\u00f3w do weryfikacji. Taki schemat pozwala na blokowanie og\u0142osze\u0144, dla kt\u00f3rych jeszcze nie stworzono filtr\u00f3w, a jednocze\u015bnie tworzenie zbior\u00f3w do nauki.<\/p>\n<h2>Przechowywanie wynik\u00f3w moderacji<\/h2>\n<p>\nZapisujemy wszystkie decyzje podj\u0119te w procesie moderacji, aby p\u00f3\u017aniej nie przetwarza\u0107 powt\u00f3rnie tych og\u0142osze\u0144, dla kt\u00f3rych ju\u017c podj\u0119to jak\u0105\u015b decyzj\u0119.<\/p>\n<p>Codziennie tworzone s\u0105 miliony klastr\u00f3w og\u0142osze\u0144. Z biegiem czasu ka\u017cdy klaster otrzymuje oznaczenie 'dobry' lub 'z\u0142y'. Ka\u017cde nowe og\u0142oszenie lub jego edycja, trafiaj\u0105c do klastra z oznaczeniem, automatycznie otrzymuje rezolucj\u0119 samego klastra. Takich automatycznych rezolucji codziennie zbiera si\u0119 oko\u0142o 20 tysi\u0119cy.<\/p>\n<p><img decoding=\"async\" alt=\"Jak moderujemy og\u0142oszenia\" src=\"\/wp-content\/uploads\/0be3a108970402282121b4dc58dc3a57.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJe\u015bli do klastra nie nap\u0142ywaj\u0105 nowe og\u0142oszenia, jest on usuwany z pami\u0119ci, a jego hasz i decyzja zapisywane s\u0105 w Apache Cassandra.<\/p>\n<p>Kiedy platforma otrzymuje nowe og\u0142oszenie, najpierw pr\u00f3buje znale\u017a\u0107 podobny klaster spo\u015br\u00f3d ju\u017c stworzonych i wzi\u0105\u0107 z niego decyzj\u0119. Je\u015bli takiego klastra nie ma, platforma zwraca si\u0119 do Cassandry i tam poszukuje. Znalaz\u0142a? Doskonale, stosuje decyzj\u0119 do klastra i wysy\u0142a do Yuli. Takich 'powt\u00f3rnych' decyzji dziennie zbiera si\u0119 \u015brednio 70 tysi\u0119cy \u2014 8 % og\u00f3lnej liczby.<\/p>\n<h2>Podsumowuj\u0105c<\/h2>\n<p>\nKorzystamy z platformy moderacji Odnoklassnik\u00f3w od dw\u00f3ch i p\u00f3\u0142 roku. Wyniki nam si\u0119 podobaj\u0105:<\/p>\n<ul>\n<li>Automatycznie moderujemy 94% wszystkich og\u0142osze\u0144 w ci\u0105gu dnia.\n<\/li>\n<li>Koszt moderacji jednego og\u0142oszenia zmniejszyli\u015bmy z 2 rubli do 7 kopiejek.\n<\/li>\n<li>Dzi\u0119ki gotowemu narz\u0119dziu zapomnieli\u015bmy o problemach z zarz\u0105dzaniem moderatorami.\n<\/li>\n<li>W 2,5 razy zwi\u0119kszyli\u015bmy liczb\u0119 og\u0142osze\u0144 przetwarzanych r\u0119cznie przy tym samym liczbie moderator\u00f3w i bud\u017cecie. Jako\u015b\u0107 r\u0119cznej moderacji wzros\u0142a dzi\u0119ki zautomatyzowanej kontroli i wacha si\u0119 wok\u00f3\u0142 0,5% b\u0142\u0119d\u00f3w.\n<\/li>\n<li>Szybko przyci\u0105gamy filtry do nowych typ\u00f3w spamu.\n<\/li>\n<li>Szybko \u0142\u0105czymy nowe jednostki do moderacji <noindex><a rel=\"nofollow\" href=\"https:\/\/vc.ru\/transport\/32671-servis-obyavleniy-yula-zapustil-razdel-dlya-prodazhi-avtomobiley-s-vydachey-kreditov\">\u201eYula Wymiary\u201d<\/a><\/noindex>. Od 2017 roku w Yuli pojawi\u0142y si\u0119 wymiary Nieruchomo\u015bci, Ofert i Samochod\u00f3w.\n<\/li>\n<\/ul>\n<p>\u0179r\u00f3d\u0142o: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/youla\/blog\/455128\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041a\u0430\u0436\u0434\u044b\u0439 \u0441\u0435\u0440\u0432\u0438\u0441, \u0447\u044c\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u043c\u043e\u0433\u0443\u0442 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u043a\u043e\u043d\u0442\u0435\u043d\u0442 (UGC \u2014 User-generated content), \u0432\u044b\u043d\u0443\u0436\u0434\u0435\u043d \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0440\u0435\u0448\u0430\u0442\u044c \u0431\u0438\u0437\u043d\u0435\u0441-\u0437\u0430\u0434\u0430\u0447\u0438, \u043d\u043e \u0438 \u043d\u0430\u0432\u043e\u0434\u0438\u0442\u044c \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0432 UGC. \u041f\u043b\u043e\u0445\u0430\u044f \u0438\u043b\u0438 \u043d\u0435\u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u0430\u044f \u043c\u043e\u0434\u0435\u0440\u0430\u0446\u0438\u044f \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430 \u0432 \u0438\u0442\u043e\u0433\u0435 \u043c\u043e\u0436\u0435\u0442 \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c \u043f\u0440\u0438\u0432\u043b\u0435\u043a\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0441\u0435\u0440\u0432\u0438\u0441\u0430 \u0434\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439, \u0432\u043f\u043b\u043e\u0442\u044c \u0434\u043e \u043f\u0440\u0435\u043a\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u0435\u0433\u043e \u0440\u0430\u0431\u043e\u0442\u044b. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u043c\u044b \u0432\u0430\u043c \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0435\u043c \u043f\u0440\u043e \u0441\u0438\u043d\u0435\u0440\u0433\u0438\u044e \u043c\u0435\u0436\u0434\u0443 \u042e\u043b\u043e\u0439 \u0438 \u041e\u0434\u043d\u043e\u043a\u043b\u0430\u0441\u0441\u043d\u0438\u043a\u0430\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u043d\u0430\u043c \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-35108","post","type-post","status-publish","format-standard","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041a\u0430\u0436\u0434\u044b\u0439 \u0441\u0435\u0440\u0432\u0438\u0441, \u0447\u044c\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u043c\u043e\u0433\u0443\u0442 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u043a\u043e\u043d\u0442\u0435\u043d\u0442.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/kak-my-moderiruem-obyavleniya\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"pl_PL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041a\u0430\u043a \u043c\u044b \u043c\u043e\u0434\u0435\u0440\u0438\u0440\u0443\u0435\u043c \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u044f | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041a\u0430\u0436\u0434\u044b\u0439 \u0441\u0435\u0440\u0432\u0438\u0441, \u0447\u044c\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u043c\u043e\u0433\u0443\u0442 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u043a\u043e\u043d\u0442\u0435\u043d\u0442.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/kak-my-moderiruem-obyavleniya\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:02:22+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:02:22+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Jak moderujemy og\u0142oszenia | ProHoster","description":"Ka\u017cda us\u0142uga, kt\u00f3rej u\u017cytkownicy mog\u0105 tworzy\u0107 w\u0142asn\u0105 tre\u015b\u0107.","canonical_url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/kak-my-moderiruem-obyavleniya","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pl_PL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041a\u0430\u043a \u043c\u044b \u043c\u043e\u0434\u0435\u0440\u0438\u0440\u0443\u0435\u043c \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u044f | ProHoster","og:description":"\u041a\u0430\u0436\u0434\u044b\u0439 \u0441\u0435\u0440\u0432\u0438\u0441, \u0447\u044c\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u043c\u043e\u0433\u0443\u0442 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u043a\u043e\u043d\u0442\u0435\u043d\u0442.","og:url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/kak-my-moderiruem-obyavleniya","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:02:22+00:00","article:modified_time":"2019-10-31T19:02:22+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"35108","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 21:51:33","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 02:09:55","updated":"2026-01-21 21:51:33","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/35108","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/comments?post=35108"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/35108\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media?parent=35108"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/categories?post=35108"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/tags?post=35108"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}