Pengendalian pembelajaran mesin dalam Mail.ru Mail

Pengendalian pembelajaran mesin dalam Mail.ru Mail

Berdasarkan ucapan saya di Highload++ dan DataFest Minsk 2019.

Bagi kebanyakan orang hari ini, mel adalah sebahagian daripada kehidupan dalam talian. Dengan bantuannya, kami menjalankan surat-menyurat perniagaan, menyimpan semua jenis maklumat penting yang berkaitan dengan kewangan, tempahan hotel, membuat pesanan dan banyak lagi. Pada pertengahan 2018, kami merumuskan strategi produk untuk pembangunan mel. Apakah yang sepatutnya menjadi mel moden?

Mel mesti bijak pandai, iaitu, membantu pengguna menavigasi volum maklumat yang semakin meningkat: menapis, menstruktur dan menyediakannya dengan cara yang paling mudah. Dia mesti berguna, membolehkan anda menyelesaikan pelbagai tugas terus dalam peti mel anda, contohnya, membayar denda (fungsi yang, malangnya, saya gunakan). Dan pada masa yang sama, sudah tentu, mel mesti menyediakan perlindungan maklumat, memotong spam dan melindungi daripada penggodaman, iaitu, menjadi selamat.

Bidang ini mentakrifkan beberapa masalah utama, kebanyakannya boleh diselesaikan dengan berkesan menggunakan pembelajaran mesin. Berikut ialah contoh ciri sedia ada yang dibangunkan sebagai sebahagian daripada strategi - satu untuk setiap arah.

  • Balas Pintar. Mel mempunyai ciri balasan pintar. Rangkaian saraf menganalisis teks surat, memahami maksud dan tujuannya, dan sebagai hasilnya menawarkan tiga pilihan tindak balas yang paling sesuai: positif, negatif dan neutral. Ini membantu menjimatkan masa dengan ketara semasa menjawab surat, dan juga sering bertindak balas dengan cara yang tidak standard dan lucu.
  • Mengelompokkan e-melberkaitan dengan pesanan di kedai dalam talian. Kami sering membeli-belah dalam talian, dan, sebagai peraturan, kedai boleh menghantar beberapa e-mel untuk setiap pesanan. Sebagai contoh, daripada AliExpress, perkhidmatan terbesar, banyak surat masuk untuk satu pesanan, dan kami mengira bahawa dalam kes terminal, bilangannya boleh mencapai sehingga 29. Oleh itu, menggunakan model Pengecaman Entiti Dinamakan, kami mengekstrak nombor pesanan dan maklumat lain daripada teks dan kumpulkan semua huruf dalam satu utas. Kami juga memaparkan maklumat asas tentang pesanan dalam kotak berasingan, yang menjadikannya lebih mudah untuk bekerja dengan jenis e-mel ini.

    Pengendalian pembelajaran mesin dalam Mail.ru Mail

  • Anti-pancingan data. Pancingan data ialah jenis e-mel penipuan yang berbahaya, dengan bantuan penyerang cuba mendapatkan maklumat kewangan (termasuk kad bank pengguna) dan log masuk. Surat sedemikian meniru yang sebenar yang dihantar oleh perkhidmatan, termasuk secara visual. Oleh itu, dengan bantuan Computer Vision, kami mengenali logo dan gaya reka bentuk surat daripada syarikat besar (contohnya, Mail.ru, Sber, Alfa) dan mengambil kira perkara ini bersama teks dan ciri lain dalam pengelas spam dan pancingan data kami .

Pembelajaran mesin

Sedikit tentang pembelajaran mesin dalam e-mel secara umum. Mel ialah sistem yang sangat dimuatkan: purata 1,5 bilion surat setiap hari melalui pelayan kami untuk 30 juta pengguna DAU. Kira-kira 30 sistem pembelajaran mesin menyokong semua fungsi dan ciri yang diperlukan.

Setiap huruf melalui saluran paip klasifikasi keseluruhan. Mula-mula kami memotong spam dan meninggalkan e-mel yang baik. Pengguna sering tidak menyedari kerja antispam, kerana 95-99% spam tidak sampai ke folder yang sesuai. Pengecaman spam adalah bahagian yang sangat penting dalam sistem kami, dan yang paling sukar, kerana dalam bidang anti-spam terdapat penyesuaian berterusan antara sistem pertahanan dan serangan, yang memberikan cabaran kejuruteraan berterusan untuk pasukan kami.

Seterusnya, kami memisahkan surat daripada orang dan robot. E-mel daripada orang adalah yang paling penting, jadi kami menyediakan ciri seperti Balasan Pintar untuk mereka. Surat daripada robot dibahagikan kepada dua bahagian: transaksi - ini adalah surat penting daripada perkhidmatan, contohnya, pengesahan pembelian atau tempahan hotel, kewangan dan maklumat - ini adalah pengiklanan perniagaan, diskaun.

Kami percaya bahawa e-mel transaksi adalah sama pentingnya dengan surat-menyurat peribadi. Mereka sepatutnya ada, kerana kami sering perlu mencari maklumat dengan cepat tentang pesanan atau tempahan tiket penerbangan, dan kami menghabiskan masa mencari surat ini. Oleh itu, untuk kemudahan, kami secara automatik membahagikannya kepada enam kategori utama: perjalanan, pesanan, kewangan, tiket, pendaftaran dan, akhirnya, denda.

Surat maklumat adalah kumpulan terbesar dan mungkin kurang penting, yang tidak memerlukan tindak balas segera, kerana tiada apa-apa perkara penting yang akan berubah dalam kehidupan pengguna jika dia tidak membaca surat sedemikian. Dalam antara muka baharu kami, kami meruntuhkannya kepada dua utas: rangkaian sosial dan surat berita, dengan itu mengosongkan peti masuk secara visual dan meninggalkan hanya mesej penting yang kelihatan.

Pengendalian pembelajaran mesin dalam Mail.ru Mail

eksploitasi

Sebilangan besar sistem menyebabkan banyak kesukaran dalam operasi. Lagipun, model merosot dari semasa ke semasa, seperti mana-mana perisian: ciri rosak, mesin gagal, kod menjadi bengkok. Di samping itu, data sentiasa berubah: yang baharu ditambah, corak tingkah laku pengguna diubah, dsb., jadi model tanpa sokongan yang betul akan berfungsi dengan lebih teruk dan lebih teruk dari semasa ke semasa.

Kita tidak boleh lupa bahawa pembelajaran mesin yang lebih mendalam menembusi kehidupan pengguna, lebih besar impak yang mereka ada pada ekosistem, dan, akibatnya, lebih banyak kerugian kewangan atau keuntungan yang boleh diterima oleh pemain pasaran. Oleh itu, dalam semakin banyak kawasan, pemain menyesuaikan diri dengan kerja algoritma ML (contoh klasik ialah pengiklanan, carian dan antispam yang telah disebutkan).

Selain itu, tugas pembelajaran mesin mempunyai keanehan: sebarang perubahan, walaupun kecil, dalam sistem boleh menjana banyak kerja dengan model: bekerja dengan data, latihan semula, penggunaan, yang boleh mengambil masa beberapa minggu atau bulan. Oleh itu, lebih cepat persekitaran di mana model anda beroperasi berubah, lebih banyak usaha yang diperlukan untuk mengekalkannya. Pasukan boleh mencipta banyak sistem dan gembira mengenainya, tetapi kemudian membelanjakan hampir semua sumbernya untuk mengekalkannya, tanpa peluang untuk melakukan sesuatu yang baharu. Kami pernah menghadapi situasi sedemikian dalam pasukan antispam. Dan mereka membuat kesimpulan yang jelas bahawa sokongan perlu diautomasikan.

Automasi

Apa yang boleh diautomatikkan? Hampir semuanya, sebenarnya. Saya telah mengenal pasti empat bidang yang mentakrifkan infrastruktur pembelajaran mesin:

  • pengumpulan data;
  • latihan tambahan;
  • menempatkan;
  • ujian & pemantauan.

Jika persekitaran tidak stabil dan sentiasa berubah, maka keseluruhan infrastruktur di sekeliling model ternyata jauh lebih penting daripada model itu sendiri. Ia mungkin pengelas linear lama yang baik, tetapi jika anda memberinya ciri yang betul dan mendapat maklum balas yang baik daripada pengguna, ia akan berfungsi jauh lebih baik daripada model Terkini dengan semua loceng dan wisel.

Gelung Maklum Balas

Kitaran ini menggabungkan pengumpulan data, latihan tambahan dan penggunaan - sebenarnya, keseluruhan kitaran kemas kini model. Mengapa ia penting? Lihat jadual pendaftaran dalam mel:

Pengendalian pembelajaran mesin dalam Mail.ru Mail

Pembangun pembelajaran mesin telah melaksanakan model anti-bot yang menghalang bot daripada mendaftar dalam e-mel. Graf jatuh kepada nilai yang hanya tinggal pengguna sebenar. Semuanya bagus! Tetapi empat jam berlalu, bot mengubah skrip mereka, dan semuanya kembali normal. Dalam pelaksanaan ini, pembangun menghabiskan sebulan menambah ciri dan melatih semula model, tetapi spammer dapat menyesuaikan diri dalam masa empat jam.

Untuk tidak menjadi sangat menyakitkan dan tidak perlu membuat semula segala-galanya kemudian, kita mesti mula-mula berfikir tentang rupa gelung maklum balas dan apa yang akan kita lakukan jika persekitaran berubah. Mari mulakan dengan mengumpul data - ini adalah bahan api untuk algoritma kami.

Pengumpulan data

Adalah jelas bahawa untuk rangkaian saraf moden, lebih banyak data, lebih baik, dan mereka, sebenarnya, dihasilkan oleh pengguna produk. Pengguna boleh membantu kami dengan menandai data, tetapi kami tidak boleh menyalahgunakannya, kerana pada satu ketika pengguna akan bosan menyiapkan model anda dan akan beralih kepada produk lain.

Salah satu kesilapan yang paling biasa (di sini saya membuat rujukan kepada Andrew Ng) adalah terlalu fokus pada metrik pada set data ujian, dan bukan pada maklum balas daripada pengguna, yang sebenarnya merupakan ukuran utama kualiti kerja, kerana kami mencipta sesuatu produk untuk pengguna. Sekiranya pengguna tidak memahami atau tidak menyukai kerja model, maka semuanya rosak.

Oleh itu, pengguna harus sentiasa boleh mengundi dan harus diberikan alat untuk maklum balas. Jika kami berpendapat bahawa surat yang berkaitan dengan kewangan telah tiba di peti mel, kami perlu menandakannya sebagai "kewangan" dan melukis butang yang boleh diklik oleh pengguna dan mengatakan bahawa ini bukan kewangan.

Kualiti maklum balas

Mari bercakap tentang kualiti maklum balas pengguna. Pertama, anda dan pengguna boleh meletakkan makna yang berbeza dalam satu konsep. Contohnya, anda dan pengurus produk anda berpendapat bahawa "kewangan" bermaksud surat daripada bank, dan pengguna berpendapat bahawa surat daripada nenek tentang pencennya juga merujuk kepada kewangan. Kedua, terdapat pengguna yang suka menekan butang tanpa sebarang logik. Ketiga, pengguna mungkin tersilap dalam membuat kesimpulannya. Contoh yang ketara daripada amalan kami ialah pelaksanaan pengelas Spam Nigeria, jenis spam yang sangat lucu di mana pengguna diminta untuk mengambil beberapa juta dolar daripada saudara jauh yang tiba-tiba ditemui di Afrika. Selepas melaksanakan pengelas ini, kami menyemak klik "Bukan Spam" pada e-mel ini, dan ternyata 80% daripadanya adalah spam Nigeria yang menarik, yang menunjukkan bahawa pengguna boleh menjadi sangat mudah tertipu.

Dan jangan lupa bahawa butang boleh diklik bukan sahaja oleh orang, tetapi juga oleh semua jenis bot yang berpura-pura menjadi penyemak imbas. Jadi maklum balas mentah tidak bagus untuk pembelajaran. Apa yang boleh anda lakukan dengan maklumat ini?

Kami menggunakan dua pendekatan:

  • Maklum balas daripada ML yang dipautkan. Sebagai contoh, kami mempunyai sistem anti-bot dalam talian, yang, seperti yang saya nyatakan, membuat keputusan pantas berdasarkan bilangan tanda yang terhad. Dan terdapat sistem kedua, perlahan yang berfungsi selepas fakta. Ia mempunyai lebih banyak data tentang pengguna, tingkah lakunya, dsb. Akibatnya, keputusan yang paling termaklum dibuat; oleh itu, ia mempunyai ketepatan dan kesempurnaan yang lebih tinggi. Anda boleh mengarahkan perbezaan dalam pengendalian sistem ini kepada yang pertama sebagai data latihan. Oleh itu, sistem yang lebih mudah akan sentiasa cuba mendekati prestasi yang lebih kompleks.
  • Klasifikasi klik. Anda hanya boleh mengklasifikasikan setiap klik pengguna, menilai kesahihan dan kebolehgunaannya. Kami melakukan ini dalam mel antispam, menggunakan atribut pengguna, sejarahnya, atribut penghantar, teks itu sendiri dan hasil pengelas. Hasilnya, kami mendapat sistem automatik yang mengesahkan maklum balas pengguna. Dan kerana ia perlu dilatih semula dengan lebih jarang, kerjanya boleh menjadi asas untuk semua sistem lain. Keutamaan utama dalam model ini adalah ketepatan, kerana melatih model mengenai data yang tidak tepat adalah penuh dengan akibat.

Semasa kami membersihkan data dan terus melatih sistem ML kami, kami tidak boleh melupakan pengguna, kerana bagi kami, beribu-ribu, berjuta-juta ralat pada graf adalah statistik, dan bagi pengguna, setiap pepijat adalah tragedi. Sebagai tambahan kepada fakta bahawa pengguna entah bagaimana mesti hidup dengan kesilapan anda dalam produk, selepas menerima maklum balas, dia menjangkakan bahawa situasi yang sama akan dihapuskan pada masa akan datang. Oleh itu, ia sentiasa bernilai memberi pengguna bukan sahaja peluang untuk mengundi, tetapi juga untuk membetulkan tingkah laku sistem ML, mencipta, sebagai contoh, heuristik peribadi untuk setiap klik maklum balas; dalam kes mel, ini boleh menjadi keupayaan untuk menapis surat sedemikian oleh pengirim dan tajuk untuk pengguna ini.

Anda juga perlu membina model berdasarkan beberapa laporan atau permintaan untuk menyokong dalam mod separa automatik atau manual supaya pengguna lain tidak mengalami masalah yang sama.

Heuristik untuk pembelajaran

Terdapat dua masalah dengan heuristik dan tongkat ini. Yang pertama ialah bilangan tongkat yang semakin meningkat sukar untuk dikekalkan, apatah lagi kualiti dan prestasinya dalam jangka masa panjang. Masalah kedua ialah ralat mungkin tidak kerap, dan beberapa klik untuk melatih model lagi tidak akan mencukupi. Nampaknya kedua-dua kesan yang tidak berkaitan ini boleh dinetralkan dengan ketara jika pendekatan berikut digunakan.

  1. Kami mencipta tongkat sementara.
  2. Kami menghantar data daripadanya kepada model, ia sentiasa mengemas kini dirinya sendiri, termasuk pada data yang diterima. Di sini, sudah tentu, adalah penting bahawa heuristik mempunyai ketepatan yang tinggi supaya tidak mengurangkan kualiti data dalam set latihan.
  3. Kemudian kami menetapkan pemantauan untuk mencetuskan tongkat, dan jika selepas beberapa lama tongkat tidak lagi berfungsi dan dilindungi sepenuhnya oleh model, maka anda boleh mengeluarkannya dengan selamat. Sekarang masalah ini tidak mungkin berlaku lagi.

Jadi tentera tongkat sangat berguna. Perkara utama ialah perkhidmatan mereka adalah mendesak dan tidak kekal.

Latihan tambahan

Latihan semula ialah proses menambah data baharu yang diperoleh hasil maklum balas daripada pengguna atau sistem lain, dan melatih model sedia ada mengenainya. Mungkin terdapat beberapa masalah dengan latihan tambahan:

  1. Model ini mungkin tidak menyokong latihan tambahan, tetapi belajar hanya dari awal.
  2. Tiada mana-mana dalam buku alam itu tertulis bahawa latihan tambahan pasti akan meningkatkan kualiti kerja dalam pengeluaran. Selalunya sebaliknya berlaku, iaitu, hanya kemerosotan yang mungkin.
  3. Perubahan boleh menjadi tidak dapat diramalkan. Ini adalah perkara yang agak halus yang telah kami kenal pasti sendiri. Walaupun model baharu dalam ujian A/B menunjukkan keputusan yang serupa berbanding model semasa, ini tidak bermakna ia akan berfungsi secara sama. Kerja mereka mungkin berbeza dalam hanya satu peratus, yang mungkin membawa ralat baharu atau mengembalikan ralat lama yang telah diperbetulkan. Kedua-dua kami dan pengguna sudah tahu bagaimana untuk hidup dengan ralat semasa, dan apabila sejumlah besar ralat baharu timbul, pengguna juga mungkin tidak memahami apa yang berlaku, kerana dia menjangkakan tingkah laku yang boleh diramal.

Oleh itu, perkara yang paling penting dalam latihan tambahan adalah untuk memastikan model itu diperbaiki, atau sekurang-kurangnya tidak diburukkan.

Perkara pertama yang terlintas di fikiran apabila kita bercakap tentang latihan tambahan ialah pendekatan Pembelajaran Aktif. Apakah maksud ini? Sebagai contoh, pengelas menentukan sama ada e-mel berkaitan dengan kewangan, dan sekitar sempadan keputusannya kami menambah sampel contoh berlabel. Ini berfungsi dengan baik, contohnya, dalam pengiklanan, di mana terdapat banyak maklum balas dan anda boleh melatih model dalam talian. Dan jika terdapat sedikit maklum balas, maka kami mendapat sampel yang sangat berat sebelah berbanding dengan pengedaran data pengeluaran, yang berdasarkannya adalah mustahil untuk menilai kelakuan model semasa operasi.

Pengendalian pembelajaran mesin dalam Mail.ru Mail

Malah, matlamat kami adalah untuk mengekalkan corak lama, model yang sudah diketahui dan memperoleh yang baharu. Kesinambungan adalah penting di sini. Model itu, yang sering kami bersusah payah untuk melancarkannya, sudah pun berfungsi, jadi kami boleh fokus pada prestasinya.

Model yang berbeza digunakan dalam mel: pokok, linear, rangkaian saraf. Untuk setiap kami membuat algoritma latihan tambahan kami sendiri. Dalam proses latihan tambahan, kami menerima bukan sahaja data baharu, tetapi juga selalunya ciri baharu, yang akan kami ambil kira dalam semua algoritma di bawah.

Model linear

Katakan kita mempunyai regresi logistik. Kami mencipta model kerugian daripada komponen berikut:

  • LogLoss pada data baharu;
  • kami menyelaraskan berat ciri baharu (kami tidak menyentuh ciri lama);
  • kami juga belajar daripada data lama untuk mengekalkan corak lama;
  • dan, mungkin, perkara yang paling penting: kami menambah Penyelarasan Harmonik, yang menjamin bahawa berat tidak akan banyak berubah berbanding model lama mengikut norma.

Oleh kerana setiap komponen Kehilangan mempunyai pekali, kami boleh memilih nilai optimum untuk tugas kami melalui pengesahan silang atau berdasarkan keperluan produk.

Pengendalian pembelajaran mesin dalam Mail.ru Mail

Π”Π΅Ρ€Π΅Π²ΡŒΡ

Mari kita beralih kepada pokok keputusan. Kami telah menyusun algoritma berikut untuk latihan tambahan pokok:

  1. Pengeluaran menjalankan hutan 100-300 pokok, yang dilatih pada set data lama.
  2. Pada akhirnya kami mengeluarkan M = 5 keping dan menambah 2M = 10 yang baharu, dilatih pada keseluruhan set data, tetapi dengan berat yang tinggi untuk data baharu, yang secara semula jadi menjamin perubahan tambahan dalam model.

Jelas sekali, dari masa ke masa, bilangan pokok meningkat dengan banyak, dan ia mesti dikurangkan secara berkala untuk memenuhi pemasaan. Untuk melakukan ini, kami menggunakan Penyulingan Pengetahuan (KD) yang kini ada di mana-mana. Secara ringkas tentang prinsip operasinya.

  1. Kami mempunyai model "kompleks" semasa. Kami menjalankannya pada set data latihan dan mendapatkan taburan kebarangkalian kelas pada output.
  2. Seterusnya, kami melatih model pelajar (model dengan kurang pokok dalam kes ini) untuk mengulang keputusan model menggunakan pengedaran kelas sebagai pembolehubah sasaran.
  3. Adalah penting untuk ambil perhatian di sini bahawa kami tidak menggunakan penanda set data dalam apa jua cara, dan oleh itu kami boleh menggunakan data sewenang-wenangnya. Sudah tentu, kami menggunakan sampel data dari aliran pertempuran sebagai sampel latihan untuk model pelajar. Oleh itu, set latihan membolehkan kami memastikan ketepatan model, dan sampel aliran menjamin prestasi yang sama pada pengedaran pengeluaran, mengimbangi berat sebelah set latihan.

Pengendalian pembelajaran mesin dalam Mail.ru Mail

Gabungan kedua-dua teknik ini (menambah pokok dan mengurangkan bilangannya secara berkala menggunakan Penyulingan Pengetahuan) memastikan pengenalan corak baharu dan kesinambungan lengkap.

Dengan bantuan KD, kami juga melakukan operasi yang berbeza pada ciri model, seperti mengalih keluar ciri dan mengusahakan celah. Dalam kes kami, kami mempunyai beberapa ciri statistik penting (oleh pengirim, cincang teks, URL, dll.) yang disimpan dalam pangkalan data, yang cenderung gagal. Model itu, tentu saja, tidak bersedia untuk perkembangan peristiwa sedemikian, kerana situasi kegagalan tidak berlaku dalam set latihan. Dalam kes sedemikian, kami menggabungkan teknik KD dan penambahan: apabila melatih sebahagian daripada data, kami mengalih keluar atau menetapkan semula ciri yang diperlukan dan kami mengambil label asal (output model semasa), dan model pelajar belajar untuk mengulang pengedaran ini. .

Pengendalian pembelajaran mesin dalam Mail.ru Mail

Kami mendapati bahawa manipulasi model yang lebih serius berlaku, lebih besar peratusan sampel benang yang diperlukan.

Penyingkiran ciri, operasi yang paling mudah, hanya memerlukan sebahagian kecil aliran, kerana hanya beberapa ciri yang berubah, dan model semasa telah dilatih pada set yang sama - perbezaannya adalah minimum. Untuk memudahkan model (mengurangkan bilangan pokok beberapa kali), 50 hingga 50 sudah diperlukan. Dan untuk peninggalan ciri statistik penting yang akan menjejaskan prestasi model secara serius, lebih banyak aliran diperlukan untuk meratakan kerja model tahan ketinggalan baharu pada semua jenis huruf.

Pengendalian pembelajaran mesin dalam Mail.ru Mail

FastText

Mari beralih ke FastText. Biar saya ingatkan anda bahawa perwakilan (Pembenaman) perkataan terdiri daripada jumlah pembenaman perkataan itu sendiri dan semua hurufnya N-gram, biasanya trigram. Memandangkan terdapat banyak trigram, Bucket Hashing digunakan, iaitu, menukar keseluruhan ruang menjadi peta cincang tetap tertentu. Akibatnya, matriks berat diperoleh dengan dimensi lapisan dalam setiap bilangan perkataan + baldi.

Dengan latihan tambahan, tanda-tanda baru muncul: perkataan dan trigram. Tiada apa-apa yang penting berlaku dalam latihan susulan standard daripada Facebook. Hanya pemberat lama dengan entropi silang dilatih semula pada data baharu. Oleh itu, ciri-ciri baru tidak digunakan; sudah tentu, pendekatan ini mempunyai semua kelemahan yang diterangkan di atas yang berkaitan dengan ketidakpastian model dalam pengeluaran. Itulah sebabnya kami mengubah suai FastText sedikit. Kami menambah semua pemberat baharu (perkataan dan trigram), mengembangkan keseluruhan matriks dengan entropi silang dan menambah regularisasi harmonik dengan analogi dengan model linear, yang menjamin perubahan yang tidak ketara dalam pemberat lama.

Pengendalian pembelajaran mesin dalam Mail.ru Mail

CNN

Rangkaian konvolusi adalah lebih rumit. Jika lapisan terakhir diselesaikan dalam CNN, maka, sudah tentu, anda boleh menggunakan regularization harmonik dan menjamin kesinambungan. Tetapi jika latihan tambahan seluruh rangkaian diperlukan, maka regularisasi tersebut tidak lagi boleh digunakan pada semua lapisan. Walau bagaimanapun, terdapat pilihan untuk melatih pembenaman pelengkap melalui Triplet Loss (artikel asal).

Kerugian Bertiga

Menggunakan tugas anti-pancingan data sebagai contoh, mari kita lihat Triplet Loss secara umum. Kami mengambil logo kami, serta contoh positif dan negatif logo syarikat lain. Kami meminimumkan jarak antara yang pertama dan memaksimumkan jarak antara yang kedua, kami melakukan ini dengan jurang yang kecil untuk memastikan kekompakan kelas yang lebih besar.

Pengendalian pembelajaran mesin dalam Mail.ru Mail

Jika kami terus melatih rangkaian, maka ruang metrik kami berubah sepenuhnya, dan ia menjadi tidak serasi sepenuhnya dengan yang sebelumnya. Ini adalah masalah serius dalam masalah yang menggunakan vektor. Untuk mengatasi masalah ini, kami akan mencampurkan benam lama semasa latihan.

Kami telah menambah data baharu pada set latihan dan sedang melatih versi kedua model dari awal. Pada peringkat kedua, kami terus melatih rangkaian kami (Finetuning): pertama lapisan terakhir selesai, dan kemudian keseluruhan rangkaian tidak dibekukan. Dalam proses mengarang kembar tiga, kami mengira hanya sebahagian daripada benam menggunakan model terlatih, selebihnya - menggunakan model lama. Oleh itu, dalam proses latihan tambahan, kami memastikan keserasian ruang metrik v1 dan v2. Versi unik regularisasi harmonik.

Pengendalian pembelajaran mesin dalam Mail.ru Mail

Keseluruhan seni bina

Jika kita menganggap keseluruhan sistem menggunakan antispam sebagai contoh, maka model tidak diasingkan, tetapi bersarang di antara satu sama lain. Kami mengambil gambar, teks dan ciri lain, menggunakan CNN dan Teks Pantas kami mendapat benam. Seterusnya, pengelas digunakan di atas benam, yang memberikan markah untuk pelbagai kelas (jenis huruf, spam, kehadiran logo). Isyarat dan tanda sudah memasuki hutan pokok untuk keputusan muktamad dibuat. Pengelas individu dalam skema ini memungkinkan untuk mentafsir keputusan sistem dengan lebih baik dan lebih khusus melatih semula komponen sekiranya berlaku masalah, dan bukannya memasukkan semua data ke dalam pepohon keputusan dalam bentuk mentah.

Pengendalian pembelajaran mesin dalam Mail.ru Mail

Hasilnya, kami menjamin kesinambungan di setiap peringkat. Di peringkat bawah dalam CNN dan Teks Pantas kami menggunakan penyelarasan harmonik, untuk pengelas di tengah kami juga menggunakan penyelarasan harmonik dan penentukuran kadar untuk ketekalan taburan kebarangkalian. Nah, penggalak pokok dilatih secara berperingkat atau menggunakan Penyulingan Pengetahuan.

Secara umum, mengekalkan sistem pembelajaran mesin bersarang seperti itu biasanya menyusahkan, kerana mana-mana komponen di peringkat bawah membawa kepada kemas kini kepada keseluruhan sistem di atas. Tetapi oleh kerana dalam persediaan kami setiap komponen berubah sedikit dan serasi dengan yang sebelumnya, keseluruhan sistem boleh dikemas kini sekeping demi sekeping tanpa perlu melatih semula keseluruhan struktur, yang membolehkan ia disokong tanpa overhed yang serius.

Sebarkan

Kami telah membincangkan pengumpulan data dan latihan tambahan pelbagai jenis model, jadi kami beralih kepada penggunaannya ke dalam persekitaran pengeluaran.

Ujian A/B

Seperti yang saya katakan sebelum ini, dalam proses mengumpul data, kami biasanya mendapat sampel yang berat sebelah, yang mana adalah mustahil untuk menilai prestasi pengeluaran model. Oleh itu, apabila digunakan, model mesti dibandingkan dengan versi sebelumnya untuk memahami bagaimana keadaan sebenarnya berlaku, iaitu, menjalankan ujian A/B. Malah, proses melancarkan dan menganalisis carta adalah agak rutin dan boleh diautomasikan dengan mudah. Kami melancarkan model kami secara beransur-ansur kepada 5%, 30%, 50% dan 100% pengguna, sambil mengumpulkan semua metrik yang tersedia pada respons model dan maklum balas pengguna. Dalam kes beberapa penyimpangan yang serius, kami melancarkan semula model secara automatik dan untuk kes lain, setelah mengumpulkan bilangan klik pengguna yang mencukupi, kami memutuskan untuk meningkatkan peratusan. Akibatnya, kami membawa model baharu kepada 50% pengguna sepenuhnya secara automatik dan pelancaran kepada seluruh khalayak akan diluluskan oleh seseorang, walaupun langkah ini boleh diautomasikan.

Walau bagaimanapun, proses ujian A/B menawarkan ruang untuk pengoptimuman. Hakikatnya ialah mana-mana ujian A/B agak panjang (dalam kes kami, ia mengambil masa dari 6 hingga 24 jam bergantung pada jumlah maklum balas), yang menjadikannya agak mahal dan dengan sumber yang terhad. Di samping itu, peratusan aliran yang cukup tinggi untuk ujian diperlukan untuk mempercepatkan keseluruhan masa ujian A/B (mengambil sampel yang signifikan secara statistik untuk menilai metrik pada peratusan yang kecil boleh mengambil masa yang sangat lama), yang menjadikan bilangan slot A/B amat terhad. Jelas sekali, kami hanya perlu menguji model yang paling menjanjikan, yang kami terima agak banyak semasa proses latihan tambahan.

Untuk menyelesaikan masalah ini, kami melatih pengelas berasingan yang meramalkan kejayaan ujian A/B. Untuk melakukan ini, kami mengambil statistik membuat keputusan, Ketepatan, Ingat dan metrik lain pada set latihan, pada yang tertunda dan pada sampel daripada strim sebagai ciri. Kami juga membandingkan model dengan model semasa dalam pengeluaran, dengan heuristik, dan mengambil kira Kerumitan model. Dengan menggunakan semua ciri ini, pengelas yang dilatih tentang sejarah ujian menilai model calon, dalam kes kami ini adalah hutan pokok dan memutuskan yang mana satu untuk digunakan dalam ujian A/B.

Pengendalian pembelajaran mesin dalam Mail.ru Mail

Pada masa pelaksanaan, pendekatan ini membolehkan kami meningkatkan bilangan ujian A/B yang berjaya beberapa kali.

Pengujian & Pemantauan

Ujian dan pemantauan, anehnya, tidak membahayakan kesihatan kita, sebaliknya, ia memperbaikinya dan melegakan kita daripada tekanan yang tidak perlu. Ujian membolehkan anda mencegah kegagalan, dan pemantauan membolehkan anda mengesannya tepat pada masanya untuk mengurangkan kesan kepada pengguna.

Adalah penting untuk memahami di sini bahawa lambat laun sistem anda akan sentiasa melakukan kesilapan - ini disebabkan oleh kitaran pembangunan mana-mana perisian. Pada permulaan pembangunan sistem sentiasa terdapat banyak pepijat sehingga semuanya selesai dan peringkat utama inovasi selesai. Tetapi dari masa ke masa, entropi mengambil tol, dan ralat muncul lagi - disebabkan oleh kemerosotan komponen di sekeliling dan perubahan dalam data, yang saya bincangkan pada mulanya.

Di sini saya ingin ambil perhatian bahawa mana-mana sistem pembelajaran mesin harus dipertimbangkan dari sudut keuntungannya sepanjang keseluruhan kitaran hayatnya. Graf di bawah menunjukkan contoh cara sistem berfungsi untuk menangkap jenis spam yang jarang berlaku (garisan dalam graf hampir sifar). Pada suatu hari, disebabkan atribut cache yang salah, dia menjadi gila. Nasib baik, tidak ada pemantauan untuk pencetus yang tidak normal; akibatnya, sistem mula menyimpan surat dalam kuantiti yang banyak ke folder "spam" di sempadan membuat keputusan. Walaupun membetulkan akibatnya, sistem itu telah melakukan kesilapan berkali-kali sehingga ia tidak akan membayar sendiri walaupun dalam tempoh lima tahun. Dan ini adalah kegagalan sepenuhnya dari sudut pandangan kitaran hayat model.

Pengendalian pembelajaran mesin dalam Mail.ru Mail

Oleh itu, perkara mudah seperti pemantauan boleh menjadi kunci dalam kehidupan model. Selain metrik standard dan jelas, kami mempertimbangkan pengedaran respons dan skor model, serta pengedaran nilai ciri utama. Menggunakan perbezaan KL, kita boleh membandingkan pengedaran semasa dengan yang bersejarah atau nilai dalam ujian A/B dengan strim yang lain, yang membolehkan kita melihat anomali dalam model dan mengembalikan perubahan tepat pada masanya.

Dalam kebanyakan kes, kami melancarkan versi pertama sistem kami menggunakan heuristik atau model mudah yang kami gunakan sebagai pemantauan pada masa hadapan. Sebagai contoh, kami memantau model NER berbanding model biasa untuk kedai dalam talian tertentu, dan jika liputan pengelas menurun berbanding dengannya, maka kami memahami sebabnya. Satu lagi kegunaan heuristik yang berguna!

Keputusan

Mari kita lihat semula idea utama artikel itu.

  • Fibdeck. Kami sentiasa berfikir tentang pengguna: bagaimana dia akan hidup dengan kesilapan kami, bagaimana dia akan dapat melaporkannya. Jangan lupa bahawa pengguna bukan sumber maklum balas tulen untuk model latihan, dan ia perlu dibersihkan dengan bantuan sistem ML tambahan. Jika tidak mungkin untuk mengumpul isyarat daripada pengguna, maka kami mencari sumber maklum balas alternatif, sebagai contoh, sistem yang disambungkan.
  • Latihan tambahan. Perkara utama di sini ialah kesinambungan, jadi kami bergantung pada model pengeluaran semasa. Kami melatih model baharu supaya ia tidak jauh berbeza daripada model sebelumnya kerana penyusunan harmonik dan helah yang serupa.
  • Sebarkan. Pengerahan automatik berdasarkan metrik sangat mengurangkan masa untuk melaksanakan model. Memantau statistik dan pengedaran membuat keputusan, bilangan kejatuhan daripada pengguna adalah wajib untuk tidur nyenyak anda dan hujung minggu yang produktif.

Baiklah, saya harap ini membantu anda meningkatkan sistem ML anda dengan lebih pantas, membawanya ke pasaran dengan lebih pantas dan menjadikannya lebih dipercayai dan kurang tekanan.

Sumber: www.habr.com

Tambah komen