Bagaimana kami mengajar mobil berbicara dengan jutaan orang

Pemasaran di X5 adalah banyak data. Pyaterochka, misalnya, mengirim lebih dari 30 juta komunikasi setiap bulan, dan jumlah ini terus bertambah. Beberapa penawaran dapat dikirim ke satu klien pada satu waktu, dan penting untuk memilih mana yang benar. Saham toko harus menarik bagi pelanggan dan dibenarkan secara ekonomi untuk pengecer. Dalam posting ini, kami akan memberi tahu Anda bagaimana kami mulai menentukan penawaran yang benar-benar populer menggunakan pembelajaran mesin dan untuk menghilangkan efek spam.



Untuk meningkatkan komunikasi dengan pelanggan Pyaterochka, Perekrestok dan Karusel, tim besar bekerja di X5 Retail Group.

Sekarang, mempertahankan sistem ini membutuhkan kerja dari puluhan orang dan sistem: akumulasi data yang akurat di Oracle, analisis data dan pengaturan kampanye di SAS, pengaturan aturan bonus di Comarch. Setiap hari, analis membuat keputusan tentang bagaimana memilih penawaran yang paling relevan saat ini, memilih dari beragam pilihan, berdasarkan data historis pada hasil stok. Kami juga berupaya memastikan bahwa komunikasi ditangani dan tidak ada hubungannya dengan spam.

Kami memikirkan cara menerjemahkan proses pemilihan penawaran yang relevan dengan pelanggan ke dalam mode otomatis menggunakan pembelajaran mesin, sehingga:

  • akumulasi informasi tentang pelanggan dan kampanye sebelumnya
  • sistem itu sendiri belajar dari data baru
  • perencanaan dihitung lebih dari satu langkah ke depan

Jadi kami sampai pada realisasi sistem pengorganisasian diri dan era pengembangan sistem Pembelajaran Penguatan di X5 dimulai.

Sedikit tentang Penguatan Pembelajaran
* RL (Reinforcement Learning) adalah pembelajaran yang diperkuat. Salah satu cara pembelajaran mesin, di mana sistem uji (agen) dilatih, berinteraksi dengan lingkungan tertentu.

Teori belajar Reinforced beroperasi pada dua konsep: tindakan dan negara. Berdasarkan pada keadaan objek, algoritma memutuskan pada pilihan tindakan. Sebagai hasil dari tindakan sempurna, objek jatuh ke keadaan baru dan seterusnya.



Dengan asumsi bahwa:

  • agen - klien
  • aksi - komunikasi dengan klien
  • state - state (set metrik) dari klien
  • fungsi sasaran - perilaku pelanggan lebih lanjut (misalnya, meningkatkan pendapatan atau merespons kampanye target)

... maka sistem yang dijelaskan harus menyelesaikan tujuan yang ditetapkan dan agen (pelanggan) sendiri akan memilih tindakan mereka (hadiah dan kampanye) untuk kenyamanan mereka dan hubungan yang bermakna dengan toko.

Apa yang ditawarkan pikiran dunia RL
Pertama, kami mencari contoh solusi untuk masalah seperti itu, dijelaskan dalam sumber terbuka.
Ditemukan beberapa contoh menarik:

Tentang alat:


Tentang menerapkan RL ke tugas pemasaran serupa:


Tetapi semuanya tidak sesuai dengan kasus kami atau tidak menginspirasi kepercayaan.

Tahap 1. Solusi prototipe

Oleh karena itu, kami memutuskan untuk mengembangkan pendekatan kami.

Untuk meminimalkan risiko dan tidak masuk ke situasi di mana sistem dikembangkan untuk waktu yang lama tanpa penggunaan nyata, dan akhirnya tidak lepas landas, kami memutuskan untuk memulai dengan prototipe yang tidak akan menerapkan metode RL dalam bentuk murni, tetapi memiliki hasil bisnis yang dapat dimengerti.

Dasar dari implementasi dasar pembelajaran yang diperkuat adalah matriks tindakan-negara-hasil, yang diperbarui setiap kali informasi baru diterima dari lingkungan.

Untuk mengurangi ruang keadaan, sebagai bagian dari prototipe, transisi dilakukan dari klien ke segmen, di mana semua klien dibagi menjadi 29 kelompok berdasarkan parameter:

  • cek rata-rata
  • frekuensi pembelian
  • stabilitas keranjang
  • isi keranjang
  • loyalitas pelanggan (proporsi jumlah minggu dengan pembelian dengan jumlah minggu selama seseorang berpartisipasi dalam program loyalitas toko)

Dengan demikian, tugas dikurangi menjadi belajar matriks dari bentuk berikut:



Di persimpangan, matriks harus diisi dengan nilai fungsi target.

Dalam versi pertama algoritma, respons spesifik terhadap kampanye dipilih sebagai fungsi target.

Prototipe pertama kami kembangkan dalam beberapa minggu dalam SQL (Oracle) dan Python. Kami memiliki data komunikasi historis, sehingga kami dapat mengisi sebagian matriks dengan perkiraan bobot pasangan "penawaran-ke-penawaran". Sayangnya, ternyata untuk beberapa pasangan tidak ada cukup data. Ini tidak menghentikan kami, kami merindukan uji coba pertempuran.

Departemen Pemasaran Pyaterochka mempercayakan kepada kami data dua juta pelanggan selama 10 minggu percobaan. Pada saat ini, pelanggan ini terputus dari semua komunikasi lainnya. Kami mengidentifikasi setengah dari pelanggan dalam kelompok kontrol, pada kelompok yang tersisa kami menguji prototipe.

Teori RL memberi tahu kita bahwa kita tidak hanya harus memilih tindakan terbaik, tetapi juga terus belajar. Karenanya, setiap kali kami menguji kampanye acak pada sebagian kecil pelanggan. Dengan demikian, pelanggan yang tersisa menerima penawaran terbaik (kampanye terbaik). Dengan demikian, kami mendapatkan implementasi metode Ξ΅ - rakus dalam memilih penawaran yang paling optimal.



Setelah tiga peluncuran sistem, menjadi jelas bahwa memilih kampanye respons terbaik tidak mengarah pada peningkatan RTO spesifik per kampanye (indikator ini adalah ukuran utama efektivitas kampanye bertarget apa pun di organisasi mana pun).

Dengan mengubah fungsi sasaran (dan, oleh karena itu, algoritma untuk memilih kampanye terbaik) langsung ke RTO tambahan, kami mengetahui bahwa kampanye yang paling sukses dari sudut pandang ini tidak menguntungkan dalam hal ROI.

Jadi untuk peluncuran sistem yang kedelapan, kami mengubah fungsi tujuan untuk ketiga kalinya, sekarang di ROI.

Kesimpulan dari pengembangan prototipe

Di bawah ini adalah grafik kinerja untuk indikator utama:

  • Tanggapan pelanggan bersih terhadap komunikasi
  • RTO tambahan
  • Marginalitas







Anda mungkin memperhatikan bahwa pada peluncuran terakhir, efisiensi prototipe (dalam RTO tambahan) melebihi hasil rata-rata kampanye yang diluncurkan oleh analis, dan jika kami hanya mempertimbangkan segmen dan penawaran "terbaik", perbedaannya lebih dari dua kali lipat.

Untuk masa depan, kami telah mengambil kesimpulan berikut untuk diri kami sendiri:

  1. Berbicara dengan bisnis KPI di muka mungkin tidak cukup. KPI pelanggan bisnis juga berubah. (Jadi kami pindah dari RTO ke marginalitas).
  2. Sasaran tidak langsung (dalam kasus kami, responsnya) baik, tetapi cepat atau lambat Anda akan diminta untuk memperhitungkan indikator kinerja langsung.
  3. Pasangan terbaik ditemukan kampanye segmen, yang menunjukkan hasil yang baik secara konsisten. Kampanye ini telah diluncurkan di seluruh basis dan secara teratur menghasilkan pendapatan.

Total:

  1. pekerjaan sirkuit
  2. perlu mempertimbangkan biaya klien (kemenangan di IRTI tidak menjamin pertumbuhan ROI)
  3. Saya ingin mempertimbangkan riwayat tanggapan
  4. sekarang tidak terlalu menakutkan untuk pergi ke tingkat klien

Tahap 2. Kami menyelesaikan sistem

Terinspirasi oleh hasil tahap pertama, kami memutuskan untuk menyelesaikan sistem dan melakukan peningkatan fungsional berikut:

1) beralih dari memilih penawaran ke segmen pelanggan ke memilih penawaran secara individual untuk klien, menggambarkannya dengan serangkaian metrik:

  • Bendera respons tawaran terakhir
  • Rasio PTO klien selama 2 minggu dengan PTO selama 6 minggu
  • Rasio jumlah hari dari pembelian terakhir dengan jarak rata-rata antar transaksi
  • Jumlah minggu sejak komunikasi terakhir
  • Rasio jumlah bonus yang digunakan per bulan dengan jumlah RTO per bulan
  • Mencapai tujuan dalam dua minggu sebelumnya
  • Bendera respons terhadap penawaran dengan berbagai jenis hadiah
  • pilih bukan 1, tetapi serangkaian dua kampanye berikutnya

2) untuk memperjelas fungsi tujuan, menambahnya, di samping respons, pertumbuhan PTO :).

Sekarang, dengan memilih penawaran individual untuk klien, kami fokus pada nilai yang diharapkan dari fungsi objektif Q1:

  • Q = 1 jika klien merespons kampanye dan RTO 2 minggu selama episode tumbuh m%
  • Q = 0, jika klien TIDAK menanggapi kampanye dan RTO 2 minggu selama episode tumbuh m%
  • Q = 0, jika klien merespons kampanye dan RTO 2 minggu selama episode tumbuh KURANG daripada m%
  • Q = -1, jika klien TIDAK menanggapi kampanye dan RTO 2 minggu selama episode tumbuh KURANG daripada m%

Sekarang uji coba pendekatan kedua sedang berjalan lancar, tetapi kami telah melampaui hasil sebelumnya.

Apa selanjutnya

Untungnya, hasilnya menyenangkan tidak hanya tim implementasi dan pengembangan, tetapi juga pelanggan bisnis, oleh karena itu, di masa depan, selain perbaikan fungsional, direncanakan untuk menciptakan sistem serupa yang bekerja untuk pemasaran real-time dan online.

Selain itu, pembaca yang penuh perhatian akan memperhatikan bahwa sejauh ini kami belum menggunakan RL dalam bentuknya yang paling murni, tetapi hanya konsepnya. Namun demikian, bahkan dengan penyederhanaan ini, kami mengamati hasil positif dan sekarang siap untuk melanjutkan, memperumit algoritma kami. Dengan teladan kami, kami ingin menginspirasi orang lain untuk pergi β€œdari yang sederhana ke kompleks”

Edisi Habr X5 berterima kasih kepada perusahaan Glowbyte Consulting atas bantuannya dalam persiapan posting. Pilot diselesaikan oleh tim gabungan dari enam spesialis dari Pyaterochka dan Glowbyte.

Omong-omong, kami mencari manajer pengembangan produk Big Data, spesialis data, spesialis analitik, dan manajer program loyalitas.

Source: https://habr.com/ru/post/id430112/


All Articles