Cara membuka komentar dan tidak tenggelam dalam spam

Cara membuka komentar dan tidak tenggelam dalam spam

Ketika tugas Anda adalah menciptakan sesuatu yang indah, Anda tidak perlu terlalu banyak membicarakannya, karena hasilnya sudah di depan mata semua orang. Tetapi jika Anda menghapus prasasti dari pagar, tidak ada yang akan memperhatikan pekerjaan Anda selama pagar tersebut terlihat bagus atau sampai Anda menghapus sesuatu yang salah.

Layanan apa pun di mana Anda dapat meninggalkan komentar, mengulas, mengirim pesan, atau mengunggah gambar, cepat atau lambat akan menghadapi masalah spam, penipuan, dan kecabulan. Hal ini tidak dapat dihindari, namun harus diatasi.

Nama saya Mikhail, saya bekerja di tim Antispam, yang melindungi pengguna layanan Yandex dari masalah seperti itu. Pekerjaan kami jarang diperhatikan (dan itu bagus!), jadi hari ini saya akan memberi tahu Anda lebih banyak tentangnya. Anda akan mengetahui kapan moderasi tidak ada gunanya dan mengapa akurasi bukan satu-satunya indikator efektivitasnya. Kita juga akan membahas tentang sumpah serapah dengan menggunakan contoh kucing dan anjing dan mengapa terkadang berguna untuk “berpikir seperti seorang sumpah serapah”.

Semakin banyak layanan muncul di Yandex tempat pengguna mempublikasikan konten mereka. Anda dapat mengajukan pertanyaan atau menulis jawaban di Yandex.Q, mendiskusikan berita halaman di Yandex.District, berbagi kondisi lalu lintas dalam percakapan di Yandex.Maps. Namun ketika jumlah pengguna layanan ini bertambah, layanan ini menjadi menarik bagi para penipu dan spammer. Mereka datang dan memberikan komentar: mereka menawarkan uang mudah, mengiklankan obat ajaib dan menjanjikan manfaat sosial. Karena pelaku spam, beberapa pengguna kehilangan uang, sementara yang lain kehilangan keinginan untuk menghabiskan waktu di layanan yang tidak terawat dan dipenuhi spam.

Dan ini bukan satu-satunya masalah. Kami berusaha tidak hanya untuk melindungi pengguna dari penipu, tetapi juga untuk menciptakan suasana komunikasi yang nyaman. Jika orang dihadapkan dengan makian dan hinaan dalam komentar, kemungkinan besar mereka akan pergi dan tidak pernah kembali. Artinya, Anda juga harus bisa menghadapinya.

Bersihkan Web

Seperti yang sering terjadi pada kami, perkembangan pertama lahir di Penelusuran, yaitu bagian yang memerangi spam di hasil penelusuran. Sekitar sepuluh tahun yang lalu, tugas memfilter konten dewasa untuk penelusuran keluarga dan pertanyaan yang tidak memerlukan jawaban dari kategori 18+ muncul di sana. Ini adalah bagaimana kamus porno dan makian yang diketik secara manual pertama kali muncul, diisi ulang oleh para analis. Tugas utamanya adalah mengklasifikasikan permintaan ke dalam permintaan yang diperbolehkan untuk menampilkan konten dewasa dan tidak. Untuk tugas ini, markup dikumpulkan, heuristik dibuat, dan model dilatih. Ini adalah bagaimana perkembangan pertama untuk memfilter konten yang tidak diinginkan muncul.

Seiring waktu, UGC (konten buatan pengguna) mulai muncul di Yandex - pesan yang ditulis oleh pengguna itu sendiri, dan Yandex hanya menerbitkannya. Karena alasan yang dijelaskan di atas, banyak pesan tidak dapat dipublikasikan tanpa melihat - diperlukan moderasi. Kemudian mereka memutuskan untuk membuat layanan yang akan memberikan perlindungan terhadap spam dan penyerang untuk semua produk Yandex UGC dan menggunakan pengembangan untuk memfilter konten yang tidak diinginkan di Penelusuran. Layanan ini disebut “Web Bersih”.

Tugas baru dan bantuan dari bius

Pada awalnya, hanya otomatisasi sederhana yang berfungsi untuk kami: layanan mengirimi kami teks, dan kami menjalankan kamus kata-kata kotor, kamus porno, dan ekspresi reguler di dalamnya - analis mengumpulkan semuanya secara manual. Namun seiring berjalannya waktu, layanan ini digunakan di semakin banyak produk Yandex, dan kami harus belajar mengatasi masalah baru.

Seringkali, alih-alih mengulas, pengguna menerbitkan serangkaian surat yang tidak berarti, mencoba meningkatkan pencapaian mereka, terkadang mereka mengiklankan perusahaan mereka di ulasan perusahaan pesaing, dan terkadang mereka hanya membingungkan organisasi dan menulis dalam ulasan tentang toko hewan peliharaan: “ Ikan yang dimasak dengan sempurna!” Mungkin suatu hari nanti kecerdasan buatan akan belajar memahami dengan sempurna makna teks apa pun, tetapi sekarang otomatisasi terkadang melakukan hal yang lebih buruk daripada manusia.

Menjadi jelas bahwa kami tidak dapat melakukan ini tanpa penandaan manual, dan kami menambahkan tahap kedua ke sirkuit kami—mengirimkannya untuk inspeksi manual oleh seseorang. Teks-teks yang diterbitkan yang pengklasifikasinya tidak melihat adanya masalah disertakan di sana. Anda dapat dengan mudah membayangkan skala tugas seperti itu, jadi kami tidak hanya mengandalkan penilai, tetapi juga memanfaatkan “kebijaksanaan orang banyak”, yaitu kami meminta bantuan toloker. Merekalah yang membantu kita mengidentifikasi apa yang terlewatkan oleh mesin, dan dengan demikian mengajarkannya.

Caching cerdas dan hashing LSH

Masalah lain yang kami temui saat menangani komentar adalah spam, atau lebih tepatnya, volume dan kecepatan penyebarannya. Ketika pemirsa Yandex.Region mulai berkembang pesat, spammer datang ke sana. Mereka belajar mengabaikan ekspresi reguler dengan sedikit mengubah teks. Spam, tentu saja, masih ditemukan dan dihapus, tetapi pada skala Yandex, pesan yang tidak dapat diterima yang diposting bahkan selama 5 menit dapat dilihat oleh ratusan orang.

Cara membuka komentar dan tidak tenggelam dalam spam

Tentu saja, ini tidak cocok untuk kami, dan kami membuat cache teks pintar berdasarkan LSH (hashing sensitif-lokalitas). Cara kerjanya seperti ini: kami menormalkan teks, menghapus tautan darinya dan memotongnya menjadi n-gram (urutan n huruf). Selanjutnya, hash n-gram dihitung, dan vektor LSH dokumen dibuat darinya. Intinya adalah teks-teks yang serupa, meskipun sedikit diubah, berubah menjadi vektor-vektor yang serupa.

Solusi ini memungkinkan untuk menggunakan kembali putusan pengklasifikasi dan toloker untuk teks serupa. Selama serangan spam, segera setelah pesan pertama lolos pemindaian dan masuk ke cache dengan putusan "spam", semua pesan baru yang serupa, bahkan yang dimodifikasi, menerima putusan yang sama dan dihapus secara otomatis. Belakangan, kami mempelajari cara melatih dan melatih ulang pengklasifikasi spam secara otomatis, namun “smart cache” ini tetap ada dan masih sering membantu kami.

Pengklasifikasi teks yang bagus

Tanpa sempat berhenti memerangi spam, kami menyadari bahwa 95% konten kami dimoderasi secara manual: pengklasifikasi hanya bereaksi terhadap pelanggaran, dan sebagian besar teksnya bagus. Kami memuat petugas kebersihan yang dalam 95 kasus dari 100 memberikan peringkat “Semuanya baik-baik saja”. Saya harus melakukan pekerjaan yang tidak biasa - membuat pengklasifikasi konten yang bagus, untungnya cukup banyak markup yang terkumpul selama ini.

Pengklasifikasi pertama terlihat seperti ini: kita melakukan lemmatisasi teks (mengurangi kata-kata ke bentuk awalnya), membuang semua bagian kata bantu dan menggunakan “kamus lemma yang baik” yang telah disiapkan sebelumnya. Jika semua kata dalam teks “baik”, maka keseluruhan teks tidak mengandung pelanggaran. Pada layanan yang berbeda, pendekatan ini segera memberikan 25 hingga 35% otomatisasi markup manual. Tentu saja, pendekatan ini tidak ideal: mudah untuk menggabungkan beberapa kata yang tidak bersalah dan menghasilkan pernyataan yang sangat menyinggung, namun pendekatan ini memungkinkan kami dengan cepat mencapai tingkat otomatisasi yang baik dan memberi kami waktu untuk melatih model yang lebih kompleks.

Versi pengklasifikasi teks yang baik berikutnya sudah menyertakan model linier, pohon keputusan, dan kombinasinya. Untuk menandai kekasaran dan hinaan, misalnya, kami mencoba jaringan saraf BERT. Penting untuk memahami arti sebuah kata dalam konteks dan hubungan antara kata-kata dari kalimat yang berbeda, dan BERT melakukan tugasnya dengan baik. (Omong-omong, baru-baru ini rekan dari News diceritakan, bagaimana teknologi digunakan untuk tugas non-standar - menemukan kesalahan di header.) Hasilnya, hingga 90% aliran dapat diotomatisasi, bergantung pada layanannya.

Akurasi, kelengkapan dan kecepatan

Untuk mengembangkannya, Anda perlu memahami manfaat apa yang diberikan oleh pengklasifikasi otomatis tertentu, perubahannya, dan apakah kualitas pemeriksaan manual menurun. Untuk melakukan ini, kami menggunakan metrik presisi dan perolehan.

Akurasi adalah proporsi putusan yang benar di antara seluruh putusan tentang konten yang buruk. Semakin tinggi akurasinya, semakin sedikit kesalahan positifnya. Jika Anda tidak memperhatikan keakuratan, maka secara teori Anda dapat menghapus semua spam dan kata-kata kotor, dan bersamaan dengan itu, separuh dari pesan-pesan bagus. Sebaliknya, jika hanya mengandalkan akurasi, maka teknologi terbaik adalah teknologi yang tidak menangkap siapa pun sama sekali. Oleh karena itu, ada juga indikator kelengkapan: persentase konten buruk yang teridentifikasi di antara total volume konten buruk. Kedua metrik ini saling menyeimbangkan.

Untuk mengukurnya, kami mengambil sampel seluruh aliran masuk untuk setiap layanan dan memberikan sampel konten kepada penilai untuk evaluasi ahli dan perbandingan dengan solusi mesin.

Namun ada indikator penting lainnya.

Saya tulis di atas bahwa pesan yang tidak dapat diterima dapat dilihat oleh ratusan orang bahkan dalam 5 menit. Jadi kami menghitung berapa kali kami menampilkan konten buruk kepada orang-orang sebelum kami menyembunyikannya. Ini penting karena bekerja secara efisien saja tidak cukup - Anda juga perlu bekerja dengan cepat. Dan ketika kami membangun pertahanan terhadap sumpah serapah, kami merasakannya sepenuhnya.

Antimatisme pada contoh kucing dan anjing

Penyimpangan liris kecil. Beberapa orang mungkin mengatakan bahwa kata-kata kotor dan hinaan tidak seberbahaya tautan jahat, dan tidak mengganggu seperti spam. Namun kami berusaha menjaga kondisi komunikasi yang nyaman bagi jutaan pengguna, dan orang-orang tidak suka kembali ke tempat di mana mereka dihina. Bukan tanpa alasan bahwa larangan sumpah serapah dan hinaan tertuang dalam aturan banyak komunitas, termasuk di Habré. Tapi kami ngelantur.

Kamus umpatan tidak dapat mengatasi semua kekayaan bahasa Rusia. Terlepas dari kenyataan bahwa hanya ada empat akar kata umpatan utama, dari akar tersebut Anda dapat membuat kata-kata yang tak terhitung jumlahnya yang tidak dapat ditangkap oleh mesin biasa mana pun. Selain itu, Anda dapat menulis bagian kata dalam transliterasi, mengganti huruf dengan kombinasi serupa, mengatur ulang huruf, menambahkan tanda bintang, dll. Terkadang, tanpa konteks, pada dasarnya tidak mungkin untuk menentukan bahwa yang dimaksud pengguna adalah kata makian. Kami menghormati aturan Habr, jadi kami akan mendemonstrasikannya bukan dengan contoh langsung, tetapi dengan kucing dan anjing.

Cara membuka komentar dan tidak tenggelam dalam spam

“Hukum,” kata si kucing. Tapi kami memahami bahwa kucing itu mengatakan kata yang berbeda...

Kami mulai berpikir tentang algoritme “pencocokan fuzzy” untuk kamus kami dan tentang prapemrosesan yang lebih cerdas: kami menyediakan transliterasi, merekatkan spasi dan tanda baca, mencari pola, dan menulis ekspresi reguler terpisah pada algoritme tersebut. Pendekatan ini membuahkan hasil, namun seringkali mengurangi akurasi dan tidak memberikan kelengkapan yang diinginkan.

Lalu kami memutuskan untuk “berpikir seperti orang yang bersumpah serapah”. Kami sendiri yang mulai memasukkan noise ke dalam data: kami mengatur ulang huruf, membuat kesalahan ketik, mengganti huruf dengan ejaan yang serupa, dan seterusnya. Markup awal untuk ini diambil dengan menerapkan kamus mat ke sejumlah besar teks. Jika Anda mengambil satu kalimat dan memelintirnya dalam beberapa cara, Anda akan mendapatkan banyak kalimat. Dengan cara ini Anda dapat meningkatkan sampel pelatihan puluhan kali lipat. Yang tersisa hanyalah melatih beberapa model yang kurang lebih cerdas yang mempertimbangkan konteksnya.

Cara membuka komentar dan tidak tenggelam dalam spam

Masih terlalu dini untuk membicarakan keputusan akhir. Kami masih bereksperimen dengan pendekatan terhadap masalah ini, namun kami sudah dapat melihat bahwa jaringan konvolusional simbolis sederhana yang terdiri dari beberapa lapisan secara signifikan mengungguli kamus dan mesin biasa: hal ini memungkinkan untuk meningkatkan akurasi dan perolehan.

Tentu saja, kami memahami bahwa akan selalu ada cara untuk melewati otomatisasi paling canggih sekalipun, terutama ketika masalahnya sangat berbahaya: menulis sedemikian rupa sehingga mesin bodoh tidak akan mengerti. Di sini, seperti halnya dalam memerangi spam, tujuan kami bukanlah untuk menghilangkan kemungkinan menulis sesuatu yang tidak senonoh; tugas kami adalah memastikan bahwa permainan tersebut tidak sepadan dengan usahanya.

Membuka kesempatan untuk menyampaikan pendapat, berkomunikasi dan berkomentar tidaklah sulit. Jauh lebih sulit untuk mencapai kondisi yang aman, nyaman, dan perlakuan hormat terhadap masyarakat. Dan tanpa hal ini tidak akan ada perkembangan masyarakat mana pun.

Sumber: www.habr.com

Tambah komentar