oleh Disha Mendiratta

Hampir 20 tahun yang lalu, film aksi fiksi ilmiah Minority Report yang dibintangi Tom Cruise memikat penonton film dengan gagasan memprediksi aktivitas kriminal sebelum hal itu terjadi. Saat ini, upaya untuk memahami hal-hal yang belum diketahui masih terus dilakukan, didorong oleh penerapan ilmu data dan pembelajaran mesin yang menarik.

Apa dampaknya bagi bisnis digital dan konsumen yang mengutamakan seluler saat ini?

Bayangkan ini. Dulu Anda selalu menonton film Aksi seperti Mission Impossible karya Tom Cruise, tetapi sekarang Anda menonton film bersama ibu Anda dan menelusuri beberapa film komedi berbasis keluarga. Apakah Anda ingin melihat beberapa rekomendasi film berdasarkan pencarian terbaru Anda? Atau apakah Anda akan senang menghabiskan waktu mencari film yang bagus?

Pernahkah Anda melihat Jelajahi / Reel Instagram? Setelah Anda membuka gulungan dan mulai menggulir, Anda akan menemukan konten yang lebih relevan dari miliaran pilihan. Pikirkan sekali, apakah Anda lebih suka menonton Reel berdasarkan apa yang baru saja Anda ketuk atau sesuatu yang Anda minati 10 hari yang lalu?

Oleh karena itu, konten yang paling relevan adalah perpaduan rekomendasi berdasarkan minat & pilihan historis, lokasi geografis, penawaran & permintaan, dan konten segar.

Di atas adalah contoh prediksi waktu nyata, yang berdasarkan interaksi langsung pengguna, konten direkomendasikan.

Prediksi Waktu Nyata memiliki banyak kasus penggunaan. Artikel ini berfokus pada bagaimana kami, di superapp Airasia, menampilkan konten yang paling sesuai bagi mereka yang berinteraksi dengan platform kami.

Masalah

Aplikasi super Airasia menawarkan beragam produk mulai dari penerbangan dan hotel hingga pengiriman makanan dan produk kecantikan ke rumah. Kami memiliki carousel untuk masing-masingnya di beranda kami. Urutan carousel statis tidak akan mampu melayani kebutuhan berbeda dari jutaan pengguna yang mengunjungi platform kami setiap hari.

Oleh karena itu, diperlukan personalisasi untuk menampilkan carousel Lini Bisnis (LOB) dalam urutan paling relevan, dan merekomendasikan konten yang tepat kepada pengguna pada waktu yang tepat.

Niat pengguna mengunjungi situs web berdasarkan riwayat pemesanan di seluruh LOB dihitung menggunakan Model Perilaku Pengguna. Ini adalah prediksi batch, dimana prediksi dihasilkan dari sekumpulan data historis dan disimpan dalam database dan selanjutnya dijadwalkan untuk dijalankan setiap hari, mingguan, dan triwulanan.

Masalah dengan prediksi batch adalah kami akhirnya kehilangan interaksi dan keterlibatan pengguna secara real-time dengan situs web kami yang mungkin menunjukkan tujuan pengguna dengan lebih baik. Oleh karena itu, kami telah memperhitungkan interaksi tersebut sebagai masukan waktu nyata untuk Model Berbasis Konteks Pengguna.

Korsel di beranda diurutkan berdasarkan skor keluaran dari model ini yang menunjukkan minat pengguna pada setiap LOB.

Fitur

Fitur seperti kemampuan perangkat (desktop/aplikasi), interaksi situs web (LOB mana yang diklik pengguna, berapa banyak lokasi berbeda yang dicari pengguna), waktu pengguna mengunjungi situs web, dan negara asal pengguna masuk , memberikan sinyal kuat tentang preferensi pengguna saat ini dan membantu membuat rekomendasi yang lebih baik. Setelah Rekayasa Fitur, data tersebut kemudian digunakan untuk melatih model.

Pemodelan

Seperti disebutkan sebelumnya, prediksi batch (offline) didasarkan pada data batch historis dan skor selanjutnya disimpan dalam database. Sedangkan pada model real-time (online), prediksi dilakukan berdasarkan masukan yang diterima pada waktu inferensi. Hal ini menciptakan kompleksitas dalam sistem secara keseluruhan, karena fitur harus disimpulkan kemudian diproses terlebih dahulu agar berada dalam format yang sama seperti pada saat pelatihan sebelum model dapat memberikan keluaran. Model ini diekspos sebagai REST API.

Saat kami memilih model untuk penerapan akhir, akurasi adalah prioritas utama kami. Ada faktor penting lain yang berperan ketika kita berbicara tentang penerapan Model ML dalam produksi yaitu Latensi. Ini mengacu pada penundaan antara tindakan Anda dan respons aplikasi web terhadap tindakan tersebut. Seperti disebutkan sebelumnya, ketika kita menggunakan prediksi batch, prediksi dilakukan secara offline dan disimpan di beberapa database, sehingga di sini Latensi tidak terlalu diprioritaskan dan kita dapat fokus sepenuhnya pada keakuratan model.

Sedangkan dalam model langsung, latensi adalah metrik utama. Pahami seperti ini, jika waktu buka situs web bertambah karena pembuatan rekomendasi, maka kemungkinan besar pengalaman pengguna akan buruk terlepas dari baik atau buruknya rekomendasi tersebut. Untuk menghindari hal tersebut diperlukan suatu model yang mampu melakukan prediksi dengan cepat. Oleh karena itu, kami memilih untuk menjalankan mesin rekomendasi ini menggunakan model ringan, Regresi Logistik.

Pernyataan masalahnya adalah untuk memprediksi LOB mana yang lebih mungkin diminati oleh pengguna tertentu. Kami memiliki banyak LOB, sehingga ini merupakan masalah klasifikasi kelas jamak. Kami membagi masalah menjadi beberapa masalah klasifikasi biner, dan menyesuaikan model regresi logistik standar pada setiap submasalah. Teknik “Satu lawan Semua” diterapkan, yang mana satu model untuk setiap kelas harus dilatih.

Data pelatihan sangat tidak seimbang, karena LOB baru seperti hotel dan transaksi memiliki klik yang lebih sedikit dibandingkan dengan penerbangan. Jika data ini dilatih, model akan menjadi bias terhadap kelas mayoritas — Penerbangan, dan tidak akan berkinerja baik pada kelas minoritas — Hotel, Penawaran, dll. Hal ini pada gilirannya akan menyebabkan kesalahan klasifikasi yang salah untuk kelas minoritas, sehingga mengurangi model prediktabilitas. Ketidakseimbangan dalam data dapat diatasi dengan berbagai teknik, seperti membuat data sintetis, pengambilan sampel ulang, atau mencoba algoritma yang berbeda. Masalah ketidakseimbangan data ini diperbaiki menggunakan hyper-parameter model. Meskipun regresi logistik tidak secara langsung mendukung data yang tidak seimbang, terdapat argumen class_weightyang dapat ditetapkan sebagai seimbang. Secara default, ini adalah None yang berarti kedua kelas memiliki probabilitas yang sama. Dengan menetapkan sebagai Seimbang, bobot dihitung berbanding terbalik dengan frekuensi kelas.

Pertimbangkan model prediksi minat pengguna terhadap LOB Hotel. Model tersebut akan memprediksi Hotel vs [Penerbangan, Promo, Toko, dll.].

Saat kita menangani data yang tidak seimbang, f1-Score adalah metrik evaluasi terbaik.

Jadi, kami menyiapkan kumpulan data, menangani ketidakseimbangan dalam kumpulan data, dan membangun beberapa model, namun pertanyaannya adalah, LOB mana yang lebih diminati pengguna? Untuk menjawab pertanyaan ini kita mendapatkan koefisien fitur untuk setiap model.

Berikut adalah contoh fitur dengan koefisien dari Model terlatih untuk memprediksi minat pengguna terhadap LOB Hotel:

Interpretasikan koefisiennya sebagai berikut:

jika pengguna mencari penerbangan domestik (searched_domestic adalah fitur kategoris) maka outputnya adalah

-0.037*1 = -0.037.

jika pengguna mencari di aplikasi seluler (device_platform_mobileapp adalah fitur kategorikal) maka outputnya adalah

1.7*1 = 1.7

Pertimbangkan skenario pengguna yang menelusuri dua rute penerbangan domestik berbeda pada hari Jumat melalui desktop dari Thailand.

Jika kita menghitung semua efek dan menjumlahkannya, kita mendapatkan -0,03 (Pencarian Domestik = Ya) + 1,7 (Aplikasi Seluler = Ya) + 0,24 (Pencarian pada hari Jumat) — 0,22 (Thailand = Ya) + 0,48 (0,24 *2; Dua Rute Berbeda) = 2.17.

Kita kemudian perlu menambahkan (Intercept), yang juga disebut konstanta, yang menghasilkan 2,17–1,53 = 0,64 (skor).

Di sini, skornya (0,64) adalah x.

Jadi, Probabilitas = 1 /(1 + exp(- 0,64)) = 0,65 = 65%

Dengan demikian, pengguna memiliki peluang 65% untuk tertarik pada Hotel.

Dengan menggunakan metode ini, probabilitas ketertarikan pada LOB lain juga dihitung, dan carousel di Beranda diberi peringkat yang sesuai.

Bobot setiap fitur untuk semua lob disimpan secara offline. Input waktu nyata telah diproses sebelumnya agar memiliki format yang sama seperti saat dilatih. Bobot yang disimpan selanjutnya dikalikan dengan masukan real-time yang disimpulkan dari pengguna, dan skor selanjutnya dihitung. Berdasarkan skor, LOB Carousel diberi peringkat.

Ini adalah salah satu dari banyak proyek yang kami mulai untuk meningkatkan pengalaman pengguna pelanggan di aplikasi super kami. Nantikan selengkapnya!