Cara kami menyederhanakan iklan

Cara kami menyederhanakan iklan

Setiap perkhidmatan yang penggunanya boleh mencipta kandungan mereka sendiri (UGC - Kandungan yang dijana pengguna) dipaksa bukan sahaja untuk menyelesaikan masalah perniagaan, tetapi juga untuk menyusun sesuatu dalam UGC. Penyederhanaan kandungan yang lemah atau berkualiti rendah akhirnya boleh mengurangkan daya tarikan perkhidmatan untuk pengguna, malah menamatkan operasinya.

Hari ini kami akan memberitahu anda tentang sinergi antara Yula dan Odnoklassniki, yang membantu kami menyederhanakan iklan dengan berkesan dalam Yula.

Sinergi secara umum adalah perkara yang sangat berguna, dan dalam dunia moden, apabila teknologi dan trend berubah dengan cepat, ia boleh bertukar menjadi penyelamat. Mengapa membuang sumber yang terhad dan masa mencipta sesuatu yang telah dicipta dan diingati sebelum anda?

Kami memikirkan perkara yang sama apabila kami berhadapan dengan tugas penuh menyederhanakan kandungan pengguna - gambar, teks dan pautan. Pengguna kami memuat naik berjuta-juta keping kandungan ke Yula setiap hari, dan tanpa pemprosesan automatik adalah mustahil untuk menyederhanakan semua data ini secara manual.

Oleh itu, kami menggunakan platform penyederhanaan siap sedia, yang pada masa itu rakan sekerja kami dari Odnoklassniki telah menyelesaikannya kepada keadaan "hampir sempurna."

Mengapa Odnoklassniki?

Setiap hari, berpuluh juta pengguna datang ke rangkaian sosial dan menerbitkan berbilion keping kandungan: daripada foto hingga video dan teks. Platform penyederhanaan Odnoklassniki membantu menyemak volum data yang sangat besar dan mengatasi pengirim spam dan bot.

Pasukan penyederhana OK telah mengumpul banyak pengalaman, kerana ia telah menambah baik alatnya selama 12 tahun. Adalah penting bahawa mereka bukan sahaja boleh berkongsi penyelesaian sedia mereka, tetapi juga menyesuaikan seni bina platform mereka agar sesuai dengan tugas khusus kami.

Cara kami menyederhanakan iklan

Mulai sekarang, untuk ringkasnya, kami hanya akan memanggil platform penyederhanaan OK "platform."

Bagaimana ia berfungsi

Pertukaran data antara Yula dan Odnoklassniki ditubuhkan melalui Apache Kafka.

Mengapa kami memilih alat ini:

  • Dalam Yula, semua iklan adalah post-moderated, jadi pada mulanya respons segerak tidak diperlukan.
  • Jika perenggan buruk berlaku dan Yula atau Odnoklassniki tidak tersedia, termasuk disebabkan oleh beberapa beban puncak, maka data dari Kafka tidak akan hilang di mana-mana dan boleh dibaca kemudian.
  • Platform ini telah disepadukan dengan Kafka, jadi kebanyakan isu keselamatan telah diselesaikan.

Cara kami menyederhanakan iklan

Untuk setiap iklan yang dibuat atau diubah suai oleh pengguna dalam Yula, JSON dengan data dijana, yang diletakkan dalam Kafka untuk penyederhanaan seterusnya. Daripada Kafka, pengumuman dimuatkan ke dalam platform, di mana ia diadili secara automatik atau manual. Iklan buruk disekat dengan alasan, dan iklan yang platform tidak menemui pelanggaran ditandakan sebagai "baik". Kemudian semua keputusan dihantar semula kepada Yula dan digunakan dalam perkhidmatan.

Pada akhirnya, untuk Yula semuanya bergantung kepada tindakan mudah: hantar iklan ke platform Odnoklassniki dan dapatkan kembali resolusi "ok", atau mengapa tidak "ok".

Pemprosesan automatik

Apakah yang berlaku kepada iklan selepas ia mencapai platform? Setiap iklan dibahagikan kepada beberapa entiti:

  • nama,
  • penerangan,
  • foto,
  • kategori dan subkategori iklan yang dipilih pengguna,
  • harga

Cara kami menyederhanakan iklan

Platform kemudiannya melakukan pengelompokan untuk setiap entiti untuk mencari pendua. Selain itu, teks dan gambar dikelompokkan mengikut skema yang berbeza.

Sebelum pengelompokan, teks dinormalisasi untuk mengalih keluar aksara khas, menukar huruf dan sampah lain. Data yang diterima dibahagikan kepada N-gram, setiap satunya dicincang. Hasilnya ialah banyak cincang unik. Persamaan antara teks ditentukan oleh ukuran Jaccard antara dua set yang terhasil. Jika persamaan lebih besar daripada ambang, maka teks digabungkan menjadi satu kelompok. Untuk mempercepatkan carian untuk kelompok yang serupa, MinHash dan pencincangan sensitif Lokaliti digunakan.

Pelbagai pilihan untuk melekatkan imej telah dicipta untuk gambar, daripada membandingkan gambar pHash kepada mencari pendua menggunakan rangkaian saraf.

Kaedah terakhir adalah yang paling "teruk". Untuk melatih model, kembar tiga imej (N, A, P) telah dipilih di mana N tidak serupa dengan A, dan P serupa dengan A (adalah separa pendua). Kemudian rangkaian saraf belajar untuk membuat A dan P sedekat mungkin, dan A dan N sejauh mungkin. Ini menghasilkan lebih sedikit positif palsu berbanding dengan hanya mengambil benam daripada rangkaian pra-latihan.

Apabila rangkaian saraf menerima imej sebagai input, ia menghasilkan vektor dimensi N(128) untuk setiap satu daripadanya dan permintaan dibuat untuk menilai kedekatan imej. Seterusnya, ambang dikira di mana imej tertutup dianggap pendua.

Model ini dapat dengan mahir mencari spammer yang secara khusus mengambil gambar produk yang sama dari sudut berbeza untuk memintas perbandingan pHash.

Cara kami menyederhanakan iklanCara kami menyederhanakan iklan
Contoh foto spam yang dilekatkan oleh rangkaian saraf sebagai pendua.

Pada peringkat akhir, iklan pendua dicari secara serentak oleh kedua-dua teks dan imej.

Jika dua atau lebih iklan dilekat bersama-sama dalam kelompok, sistem akan memulakan penyekatan automatik, yang, menggunakan algoritma tertentu, memilih pendua mana yang hendak dipadamkan dan mana yang perlu ditinggalkan. Contohnya, jika dua pengguna mempunyai foto yang sama dalam iklan, sistem akan menyekat iklan yang lebih terkini.

Setelah dibuat, semua kluster melalui satu siri penapis automatik. Setiap penapis memberikan skor kepada kluster: kemungkinan besar ia mengandungi ancaman yang dikenal pasti oleh penapis ini.

Sebagai contoh, sistem menganalisis perihalan dalam iklan dan memilih kategori yang berpotensi untuknya. Kemudian ia mengambil yang mempunyai kebarangkalian maksimum dan membandingkannya dengan kategori yang ditentukan oleh pengarang iklan. Jika ia tidak sepadan, iklan tersebut disekat untuk kategori yang salah. Dan memandangkan kami baik dan jujur, kami terus memberitahu pengguna kategori yang perlu dia pilih untuk membolehkan iklan melepasi penyederhanaan.

Cara kami menyederhanakan iklan
Pemberitahuan menyekat untuk kategori yang salah.

Pembelajaran mesin terasa seperti di rumah dalam platform kami. Sebagai contoh, dengan bantuannya kami mencari dalam nama dan perihalan barang yang dilarang di Persekutuan Rusia. Dan model rangkaian saraf dengan teliti "memeriksa" imej untuk melihat sama ada ia mengandungi URL, teks spam, nombor telefon dan maklumat "terlarang" yang sama.

Untuk kes di mana mereka cuba menjual produk terlarang yang menyamar sebagai sesuatu yang sah, dan tiada teks sama ada dalam tajuk atau perihalan, kami menggunakan penandaan imej. Untuk setiap imej, sehingga 11 ribu teg berbeza boleh ditambah yang menerangkan kandungan dalam imej.

Cara kami menyederhanakan iklan
Mereka cuba menjual hookah dengan menyamar sebagai samovar.

Selari dengan penapis kompleks, penapis mudah juga berfungsi, menyelesaikan masalah yang jelas berkaitan dengan teks:

  • antimat;
  • Pengesan URL dan nombor telefon;
  • sebutan utusan segera dan kenalan lain;
  • harga dikurangkan;
  • iklan yang tiada apa-apa untuk dijual, dsb.

Hari ini, setiap iklan melalui penapis halus lebih daripada 50 penapis automatik yang cuba mencari sesuatu yang buruk dalam iklan.

Jika tiada pengesan berfungsi, maka balasan dihantar kepada Yula bahawa iklan itu "kemungkinan besar" dalam susunan yang sempurna. Kami menggunakan jawapan ini sendiri, dan pengguna yang telah melanggan penjual menerima pemberitahuan tentang ketersediaan produk baharu.

Cara kami menyederhanakan iklan
Pemberitahuan bahawa penjual mempunyai produk baharu.

Akibatnya, setiap iklan "ditumbuhkan" dengan metadata, sebahagian daripadanya dijana apabila iklan dibuat (alamat IP pengarang, ejen pengguna, platform, geolokasi, dll.), dan selebihnya ialah skor yang dikeluarkan oleh setiap penapis .

Beratur pengumuman

Apabila iklan mencecah platform, sistem meletakkannya dalam salah satu baris gilir. Setiap baris gilir dibuat menggunakan formula matematik yang menggabungkan metadata iklan dengan cara yang mengesan sebarang corak buruk.

Sebagai contoh, anda boleh membuat baris gilir iklan dalam kategori "Telefon Bimbit" daripada pengguna Yula yang kononnya dari St. Petersburg, tetapi alamat IP mereka adalah dari Moscow atau bandar lain.

Cara kami menyederhanakan iklan
Contoh iklan yang disiarkan oleh seorang pengguna di bandar yang berbeza.

Atau anda boleh membentuk baris gilir berdasarkan skor yang diberikan oleh rangkaian saraf kepada iklan, menyusunnya dalam tertib menurun.

Setiap baris gilir, mengikut formulanya sendiri, memberikan skor akhir kepada iklan. Kemudian anda boleh meneruskan dengan cara yang berbeza:

  • nyatakan ambang di mana iklan akan menerima jenis sekatan tertentu;
  • hantar semua iklan dalam baris gilir kepada penyederhana untuk semakan manual;
  • atau gabungkan pilihan sebelumnya: tentukan ambang sekatan automatik dan hantar kepada penyederhana iklan yang belum mencapai ambang ini.

Cara kami menyederhanakan iklan

Mengapa barisan ini diperlukan? Katakan pengguna memuat naik foto senjata api. Rangkaian saraf memberikannya skor dari 95 hingga 100 dan menentukan dengan ketepatan 99 peratus bahawa terdapat senjata dalam gambar. Tetapi jika nilai skor di bawah 95%, ketepatan model mula berkurangan (ini adalah ciri model rangkaian saraf).

Akibatnya, baris gilir dibentuk berdasarkan model skor dan iklan yang menerima antara 95 dan 100 disekat secara automatik sebagai "Produk Terlarang". Iklan dengan markah di bawah 95 dihantar kepada penyederhana untuk pemprosesan manual.

Cara kami menyederhanakan iklan
Beretta coklat dengan kartrij. Hanya untuk penyederhanaan manual! πŸ™‚

Penyederhanaan manual

Pada awal tahun 2019, kira-kira 94% daripada semua iklan dalam Yula disederhanakan secara automatik.

Cara kami menyederhanakan iklan

Jika platform tidak dapat memutuskan beberapa iklan, ia menghantarnya untuk penyederhanaan manual. Odnoklassniki membangunkan alat mereka sendiri: tugas untuk moderator segera memaparkan semua maklumat yang diperlukan untuk membuat keputusan pantas - iklan itu sesuai atau harus disekat, menunjukkan sebabnya.

Dan supaya kualiti perkhidmatan tidak terjejas semasa penyederhanaan manual, kerja orang ramai sentiasa dipantau. Contohnya, dalam strim tugasan, penyederhana ditunjukkan "perangkap"β€”iklan yang sudah ada penyelesaian sedia dibuat. Jika keputusan moderator tidak bertepatan dengan keputusan selesai, moderator diberi ralat.

Secara purata, penyederhana menghabiskan 10 saat menyemak satu iklan. Selain itu, bilangan ralat tidak lebih daripada 0,5% daripada semua iklan yang disahkan.

Kesederhanaan rakyat

Rakan sekerja dari Odnoklassniki pergi lebih jauh dan mengambil kesempatan daripada "bantuan penonton": mereka menulis aplikasi permainan untuk rangkaian sosial di mana anda boleh dengan cepat menandakan sejumlah besar data, menyerlahkan beberapa tanda buruk - Odnoklassniki Moderator (https://ok.ru/app/moderator). Cara yang baik untuk memanfaatkan bantuan pengguna OK yang cuba menjadikan kandungan lebih menyeronokkan.

Cara kami menyederhanakan iklan
Permainan di mana pengguna menandai foto yang mempunyai nombor telefon padanya.

Sebarang baris gilir iklan dalam platform boleh dialihkan ke permainan Moderator Odnoklassniki. Semua yang ditandakan oleh pengguna permainan kemudiannya dihantar kepada penyederhana dalaman untuk semakan. Skim ini membolehkan anda menyekat iklan yang penapisnya belum lagi dibuat, dan pada masa yang sama membuat sampel latihan.

Menyimpan hasil penyederhanaan

Kami menyimpan semua keputusan yang dibuat semasa penyederhanaan supaya kami tidak memproses semula iklan yang telah kami buat keputusan.

Berjuta-juta kluster dicipta setiap hari berdasarkan iklan. Dari masa ke masa, setiap kelompok dilabel "baik" atau "buruk." Setiap iklan baharu atau semakannya, memasuki kluster dengan tanda, secara automatik menerima resolusi daripada kluster itu sendiri. Terdapat kira-kira 20 ribu resolusi automatik sedemikian setiap hari.

Cara kami menyederhanakan iklan

Jika tiada pengumuman baharu tiba kepada kluster, ia dialih keluar daripada memori dan cincang serta penyelesaiannya ditulis kepada Apache Cassandra.

Apabila platform menerima iklan baharu, ia mula-mula cuba mencari kluster yang serupa antara yang telah dibuat dan mengambil penyelesaian daripadanya. Jika tiada kluster sedemikian, platform pergi ke Cassandra dan melihat di sana. Adakah awak sudah menemuinya? Hebat, gunakan penyelesaian pada kluster dan hantar kepada Yula. Terdapat purata 70 ribu keputusan "berulang" sedemikian setiap hariβ€”8% daripada jumlah keseluruhan.

Merumuskan

Kami telah menggunakan platform penyederhanaan Odnoklassniki selama dua setengah tahun. Kami suka hasilnya:

  • Kami secara automatik menyederhanakan 94% daripada semua iklan setiap hari.
  • Kos menyederhanakan satu iklan dikurangkan daripada 2 rubel kepada 7 kopecks.
  • Terima kasih kepada alat sedia, kami terlupa tentang masalah mengurus moderator.
  • Kami meningkatkan bilangan iklan yang diproses secara manual sebanyak 2,5 kali dengan bilangan penyederhana dan belanjawan yang sama. Kualiti penyederhanaan manual juga telah meningkat disebabkan oleh kawalan automatik, dan turun naik sekitar 0,5% daripada ralat.
  • Kami segera menutup jenis spam baharu dengan penapis.
  • Kami segera menyambungkan jabatan baharu kepada penyederhanaan "Yula Verticals". Sejak 2017, Yula telah menambah menegak Hartanah, Jawatan Kosong dan Auto.

Sumber: www.habr.com

Tambah komen