Bagaimana untuk membuka komen dan tidak tenggelam dalam spam

Bagaimana untuk membuka komen dan tidak tenggelam dalam spam

Apabila tugas anda adalah untuk mencipta sesuatu yang indah, anda tidak perlu bercakap terlalu banyak mengenainya, kerana hasilnya adalah di hadapan mata semua orang. Tetapi jika anda memadamkan tulisan dari pagar, tiada siapa yang akan melihat kerja anda selagi pagar itu kelihatan baik atau sehingga anda memadamkan sesuatu yang salah.

Sebarang perkhidmatan di mana anda boleh meninggalkan komen, menyemak, menghantar mesej atau memuat naik gambar lambat laun menghadapi masalah spam, penipuan dan kelucahan. Ini tidak boleh dielakkan, tetapi ia mesti ditangani.

Nama saya Mikhail, saya bekerja di pasukan Antispam, yang melindungi pengguna perkhidmatan Yandex daripada masalah sedemikian. Kerja kami jarang diperhatikan (dan itu perkara yang bagus!), jadi hari ini saya akan memberitahu anda lebih lanjut mengenainya. Anda akan belajar apabila kesederhanaan tidak berguna dan mengapa ketepatan bukan satu-satunya penunjuk keberkesanannya. Kami juga akan bercakap tentang bersumpah menggunakan contoh kucing dan anjing dan mengapa kadang-kadang berguna untuk "berfikir seperti orang yang bersumpah".

Semakin banyak perkhidmatan muncul dalam Yandex di mana pengguna menerbitkan kandungan mereka. Anda boleh bertanya soalan atau menulis jawapan dalam Yandex.Q, membincangkan berita halaman dalam Yandex.District, berkongsi keadaan trafik dalam perbualan di Yandex.Maps. Tetapi apabila khalayak perkhidmatan bertambah, ia menjadi menarik kepada penipu dan spammer. Mereka datang dan mengisi komen: mereka menawarkan wang mudah, mengiklankan penawar ajaib dan menjanjikan faedah sosial. Kerana spammer, sesetengah pengguna kehilangan wang, manakala yang lain kehilangan keinginan untuk menghabiskan masa pada perkhidmatan yang tidak terawat yang ditumbuhi spam.

Dan ini bukan satu-satunya masalah. Kami berusaha bukan sahaja untuk melindungi pengguna daripada penipu, tetapi juga untuk mewujudkan suasana yang selesa untuk komunikasi. Jika orang berdepan dengan makian dan cacian dalam komen, mereka berkemungkinan akan pergi dan tidak akan kembali. Ini bermakna anda juga perlu dapat menangani perkara ini.

Web Bersih

Seperti yang sering berlaku dengan kami, perkembangan pertama telah dilahirkan dalam Carian, di bahagian yang melawan spam dalam hasil carian. Kira-kira sepuluh tahun yang lalu, tugas menapis kandungan dewasa untuk carian keluarga dan untuk pertanyaan yang tidak memerlukan jawapan daripada kategori 18+ muncul di sana. Ini adalah bagaimana kamus lucah dan makian yang ditaip secara manual pertama muncul, ia telah diisi semula oleh penganalisis. Tugas utama adalah untuk mengklasifikasikan permintaan kepada permintaan yang boleh diterima untuk menunjukkan kandungan dewasa dan di mana tidak. Untuk tugasan ini, markup telah dikumpul, heuristik telah dibina, dan model telah dilatih. Ini adalah bagaimana perkembangan pertama untuk menapis kandungan yang tidak diingini muncul.

Lama kelamaan, UGC (kandungan janaan pengguna) mula muncul dalam Yandex - mesej yang ditulis oleh pengguna sendiri, dan Yandex hanya menerbitkan. Atas sebab yang diterangkan di atas, banyak mesej tidak dapat diterbitkan tanpa melihat - penyederhanaan diperlukan. Kemudian mereka memutuskan untuk mencipta perkhidmatan yang akan memberikan perlindungan terhadap spam dan penyerang untuk semua produk Yandex UGC dan menggunakan pembangunan untuk menapis kandungan yang tidak diingini dalam Carian. Perkhidmatan itu dipanggil "Web Bersih".

Tugas baharu dan bantuan daripada penolak

Pada mulanya, hanya automasi mudah yang berfungsi untuk kami: perkhidmatan menghantar teks kepada kami, dan kami menjalankan kamus lucah, kamus lucah dan ungkapan biasa pada mereka - penganalisis menyusun semuanya secara manual. Tetapi dari masa ke masa, perkhidmatan itu digunakan dalam semakin banyak produk Yandex, dan kami terpaksa belajar menangani masalah baharu.

Selalunya, bukannya ulasan, pengguna menerbitkan satu set surat yang tidak bermakna, cuba meningkatkan pencapaian mereka, kadang-kadang mereka mengiklankan syarikat mereka dalam ulasan syarikat pesaing, dan kadang-kadang mereka hanya mengelirukan organisasi dan menulis dalam ulasan tentang kedai haiwan peliharaan: β€œ Ikan yang dimasak dengan sempurna!” Mungkin suatu hari nanti kecerdasan buatan akan belajar memahami dengan sempurna maksud mana-mana teks, tetapi kini automasi kadangkala mengatasi lebih teruk daripada manusia.

Ia menjadi jelas bahawa kami tidak boleh melakukan ini tanpa penandaan manual, dan kami menambah peringkat kedua pada litar kamiβ€”menghantarnya untuk pemeriksaan manual oleh seseorang. Teks yang diterbitkan yang mana pengelas tidak melihat sebarang masalah telah disertakan di sana. Anda boleh membayangkan dengan mudah skala tugas sedemikian, jadi kami bukan sahaja bergantung pada penilai, tetapi juga mengambil kesempatan daripada "kebijaksanaan orang ramai," iaitu, kami berpaling kepada tolokers untuk mendapatkan bantuan. Mereka adalah orang yang membantu kami mengenal pasti apa yang mesin terlepas, dan dengan itu mengajarnya.

Caching pintar dan pencincangan LSH

Masalah lain yang kami hadapi semasa bekerja dengan ulasan ialah spam, atau lebih tepat lagi, jumlah dan kelajuan penyebarannya. Apabila penonton Yandex.Region mula berkembang dengan pesat, spammer datang ke sana. Mereka belajar memintas ungkapan biasa dengan mengubah sedikit teks. Spam, sudah tentu, masih dijumpai dan dipadamkan, tetapi pada skala Yandex, mesej yang tidak boleh diterima yang disiarkan walaupun selama 5 minit dapat dilihat oleh ratusan orang.

Bagaimana untuk membuka komen dan tidak tenggelam dalam spam

Sudah tentu, ini tidak sesuai dengan kami, dan kami membuat caching teks pintar berdasarkan LSH (pencincangan sensitif lokaliti). Ia berfungsi seperti ini: kami menormalkan teks, mengalih keluar pautan daripadanya dan memotongnya menjadi n-gram (jujukan n huruf). Seterusnya, cincangan n-gram dikira, dan vektor LSH dokumen dibina daripadanya. Intinya ialah teks yang serupa, walaupun sedikit diubah, bertukar menjadi vektor yang serupa.

Penyelesaian ini memungkinkan untuk menggunakan semula keputusan pengelas dan toloker untuk teks yang serupa. Semasa serangan spam, sebaik sahaja mesej pertama melepasi imbasan dan memasuki cache dengan keputusan "spam", semua mesej baharu yang serupa, malah yang diubah suai, menerima keputusan yang sama dan dipadamkan secara automatik. Kemudian, kami belajar cara melatih dan melatih semula pengelas spam secara automatik, tetapi "cache pintar" ini kekal bersama kami dan masih sering membantu kami.

Pengelas teks yang baik

Tanpa mempunyai masa untuk berehat daripada memerangi spam, kami menyedari bahawa 95% kandungan kami disederhanakan secara manual: pengelas hanya bertindak balas terhadap pelanggaran dan kebanyakan teks adalah baik. Kami memuatkan pembersih yang dalam 95 kes daripada 100 memberikan penilaian "Semuanya OK". Saya terpaksa melakukan kerja yang luar biasa - membuat pengelas kandungan yang baik, mujurlah penanda yang mencukupi telah terkumpul pada masa ini.

Pengelas pertama kelihatan seperti ini: kami melematkan teks (mengurangkan perkataan kepada bentuk awalnya), membuang semua bahagian tambahan ucapan dan menggunakan "kamus lemma yang baik" yang telah disediakan sebelumnya. Jika semua perkataan dalam teks adalah "baik", maka keseluruhan teks tidak mengandungi sebarang pelanggaran. Pada perkhidmatan yang berbeza, pendekatan ini serta-merta memberikan daripada 25 hingga 35% automasi penanda manual. Sudah tentu, pendekatan ini tidak sesuai: adalah mudah untuk menggabungkan beberapa perkataan yang tidak bersalah dan mendapatkan kenyataan yang sangat menyinggung perasaan, tetapi ia membolehkan kami mencapai tahap automasi yang baik dengan cepat dan memberi kami masa untuk melatih model yang lebih kompleks.

Versi seterusnya bagi pengelas teks yang baik sudah termasuk model linear, pepohon keputusan dan gabungannya. Untuk menandakan kekasaran dan penghinaan, sebagai contoh, kami mencuba rangkaian saraf BERT. Adalah penting untuk memahami makna perkataan dalam konteks dan kaitan antara perkataan daripada ayat yang berbeza, dan BERT melakukan tugas ini dengan baik. (Dengan cara ini, baru-baru ini rakan sekerja dari News memberitahu, cara teknologi digunakan untuk tugas bukan standard - mencari ralat dalam pengepala.) Akibatnya, adalah mungkin untuk mengautomasikan sehingga 90% aliran, bergantung pada perkhidmatan.

Ketepatan, kesempurnaan dan kelajuan

Untuk membangunkan, anda perlu memahami faedah yang dibawa oleh pengelas automatik tertentu, perubahan padanya dan sama ada kualiti semakan manual merosot. Untuk melakukan ini, kami menggunakan metrik ketepatan dan ingat semula.

Ketepatan ialah perkadaran keputusan yang betul antara semua keputusan tentang kandungan yang tidak baik. Semakin tinggi ketepatan, semakin sedikit positif palsu. Jika anda tidak memberi perhatian kepada ketepatan, maka secara teori anda boleh memadamkan semua spam dan kelucahan, dan bersama-sama dengan mereka separuh daripada mesej yang baik. Sebaliknya, jika anda hanya bergantung pada ketepatan, maka teknologi terbaik akan menjadi teknologi yang tidak menangkap sesiapa pun. Oleh itu, terdapat juga penunjuk kesempurnaan: bahagian kandungan buruk yang dikenal pasti antara jumlah volum kandungan buruk. Kedua-dua metrik ini mengimbangi satu sama lain.

Untuk mengukur, kami mengambil sampel keseluruhan aliran masuk untuk setiap perkhidmatan dan memberikan sampel kandungan kepada penilai untuk penilaian pakar dan perbandingan dengan penyelesaian mesin.

Tetapi terdapat satu lagi penunjuk penting.

Saya menulis di atas bahawa mesej yang tidak boleh diterima boleh dilihat oleh ratusan orang walaupun dalam 5 minit. Oleh itu, kami mengira berapa kali kami menunjukkan kandungan buruk kepada orang sebelum kami menyembunyikannya. Ini penting kerana ia tidak mencukupi untuk bekerja dengan cekap - anda juga perlu bekerja dengan cepat. Dan apabila kami membina pertahanan terhadap bersumpah, kami merasakannya sepenuhnya.

Antimatisme menggunakan contoh kucing dan anjing

Penyimpangan lirik yang kecil. Mungkin ada yang mengatakan bahawa kelucahan dan penghinaan tidak berbahaya seperti pautan berniat jahat, dan tidak menjengkelkan seperti spam. Tetapi kami berusaha untuk mengekalkan keadaan selesa untuk komunikasi untuk berjuta-juta pengguna, dan orang ramai tidak suka kembali ke tempat di mana mereka dihina. Bukan tanpa alasan bahawa larangan mengumpat dan menghina dinyatakan dalam peraturan banyak komuniti, termasuk di HabrΓ©. Tetapi kita menyimpang.

Kamus bersumpah tidak dapat menampung semua kekayaan bahasa Rusia. Walaupun fakta bahawa terdapat hanya empat akar sumpah utama, daripada mereka anda boleh membentuk banyak perkataan yang tidak dapat ditangkap oleh mana-mana enjin biasa. Di samping itu, anda boleh menulis sebahagian daripada perkataan dalam transliterasi, menggantikan huruf dengan gabungan yang serupa, menyusun semula huruf, menambah asterisk, dsb. Kadangkala, tanpa konteks, pada asasnya mustahil untuk menentukan bahawa pengguna bermaksud perkataan makian. Kami menghormati peraturan Habr, jadi kami akan menunjukkan ini bukan dengan contoh langsung, tetapi dengan kucing dan anjing.

Bagaimana untuk membuka komen dan tidak tenggelam dalam spam

"Undang-undang," kata kucing itu. Tetapi kami faham bahawa kucing itu berkata perkataan yang berbeza...

Kami mula memikirkan tentang algoritma "padanan kabur" untuk kamus kami dan tentang prapemprosesan yang lebih bijak: kami menyediakan transliterasi, ruang terpaku dan tanda baca bersama-sama, mencari corak dan menulis ungkapan biasa yang berasingan padanya. Pendekatan ini membawa hasil, tetapi sering mengurangkan ketepatan dan tidak memberikan kesempurnaan yang diingini.

Kemudian kami memutuskan untuk "berfikir seperti orang yang mengumpat." Kami mula memperkenalkan bunyi ke dalam data sendiri: kami menyusun semula huruf, menghasilkan kesilapan menaip, menggantikan huruf dengan ejaan yang serupa, dan sebagainya. Penandaan awal untuk ini diambil dengan menggunakan kamus tikar pada korpora teks yang besar. Jika anda mengambil satu ayat dan memutarkannya dalam beberapa cara, anda akan mendapat banyak ayat. Dengan cara ini anda boleh meningkatkan sampel latihan berpuluh kali ganda. Yang tinggal hanyalah melatih kumpulan yang terhasil beberapa model yang lebih atau kurang pintar yang mengambil kira konteks.

Bagaimana untuk membuka komen dan tidak tenggelam dalam spam

Masih terlalu awal untuk bercakap tentang keputusan muktamad. Kami masih bereksperimen dengan pendekatan untuk masalah ini, tetapi kami sudah dapat melihat bahawa rangkaian konvolusi simbolik mudah beberapa lapisan dengan ketara mengatasi kamus dan enjin biasa: adalah mungkin untuk meningkatkan ketepatan dan mengingat kembali.

Sudah tentu, kami faham bahawa akan sentiasa ada cara untuk memintas walaupun automasi yang paling maju, terutamanya apabila perkara itu sangat berbahaya: tulis sedemikian rupa sehingga mesin bodoh tidak akan faham. Di sini, seperti dalam memerangi spam, matlamat kami bukanlah untuk menghapuskan kemungkinan menulis sesuatu yang lucah; tugas kami adalah untuk memastikan bahawa permainan itu tidak bernilai.

Membuka peluang untuk berkongsi pendapat, berkomunikasi dan memberi komen tidaklah sukar. Adalah lebih sukar untuk mencapai keadaan yang selamat, selesa dan layanan yang menghormati orang. Dan tanpa ini tidak akan ada pembangunan mana-mana komuniti.

Sumber: www.habr.com

Tambah komen