Pemodelan kecenderungan untuk aplikasi game

Pelajari cara menggunakan BigQuery ML untuk melatih, mengevaluasi, dan mendapatkan prediksi dari beberapa jenis model kecenderungan. Model kecenderungan dapat membantu menentukan kemungkinan pengguna tertentu kembali ke aplikasi, sehingga Anda dapat menggunakan informasi tersebut dalam keputusan pemasaran.

Ringkasan

Jika Anda adalah developer game seluler, retensi pengguna mungkin merupakan salah satu tantangan Anda. Menurut Analisis Industri Game Seluler pada tahun 2019, sebagian besar game seluler hanya memperoleh rasio retensi pengguna sebesar 25% setelah hari pertama. Untuk mempertahankan persentase pengguna yang lebih besar setelahnya, Anda dapat mengambil langkah-langkah untuk memotivasi dan memberi insentif kepada pengguna yang kemungkinan besar akan kembali. Namun, untuk menargetkan pengguna tersebut, Anda perlu mengidentifikasi kecenderungan pengguna tertentu yang kembali setelah 24 jam pertama. Jika Anda mengembangkan jenis aplikasi online lain yang memprioritaskan pengurangan churn audiens, pendekatan ini juga seharusnya berhasil untuk Anda.

Untuk menerapkan pendekatan yang dijelaskan dalam artikel ini, gunakan notebook ini.

Artikel ini membahas pendekatan tingkat tinggi untuk pemodelan kecenderungan, termasuk:

  • Mempersiapkan data game agar dapat digunakan untuk melatih model machine learning (ML)
  • Memilih jenis model kecenderungan yang akan digunakan
  • Melatih dan mengevaluasi model
  • Mendapatkan prediksi dari model
  • Mengekspor data prediksi untuk digunakan dalam kampanye pemasaran

Audience

Solusi ini ditujukan bagi developer aplikasi online, terutama developer game seluler. Tutorial ini mengasumsikan bahwa Anda memiliki pengetahuan dasar tentang hal berikut:

  • Konsep machine learning
  • SQL Standar

Contoh set data

Solusi ini menggunakan set data firebase-public-project.analytics_153293282.events_20181003 publik. Set data ini berisi data Google Analytics 4 (GA4) dari aplikasi game seluler sungguhan yang bernama "Flood It!". Set data ini berisi 5,7 juta peristiwa dari lebih dari 15 ribu pengguna.

GA4 menggunakan model pengukuran berbasis peristiwa Setiap baris dalam set data ini adalah peristiwa unik, yang berisi kolom bertingkat untuk parameter peristiwa. Untuk mempelajari struktur data lebih lanjut, baca Schema for BigQuery Export.

Mengekspor Data Analisis Google ke BigQuery

Jika bukan dari sample data, Anda ingin menggunakan data sendiri dari properti GA4, Anda dapat mengikuti petunjuk (GA4) Set up BigQuery Export untuk mengekspor data Anda.

Memproses data

Anda harus memproses data peristiwa untuk menjadikannya dalam bentuk dan format yang tepat agar dapat digunakan sebagai data pelatihan. Pemrosesan data menyelesaikan tujuan berikut:

  • Memfilter pengguna yang mungkin tidak akan kembali ke aplikasi
  • Membuat fitur untuk data demografis pengguna
  • Membuat fitur untuk data perilaku pengguna

Memiliki kombinasi data demografis dan data perilaku membantu membuat model yang lebih prediktif.

Setelah diproses, setiap baris data pelatihan mewakili data untuk pengguna unik, yang diidentifikasi oleh kolom user_pseudo_id.

Memberi label pada pengguna

Untuk memproses data, mulailah dengan melabeli kumpulan data untuk mengidentifikasi pengguna yang tampaknya tidak akan kembali ke aplikasi. Dalam solusi ini, Anda melabeli kumpulan data untuk mengategorikannya kemudian berdasarkan interaksinya dengan aplikasi.

Pertama, Anda memfilter pengguna yang menghabiskan waktu kurang dari 10 menit menggunakan aplikasi saat kunjungan pertama mereka. Anda akan melabeli pengguna tersebut sebagai dipantulkan.

Kemudian beri label pengguna yang tersisa sebagai churn jika mereka tidak memiliki data peristiwa untuk pengguna tersebut setelah 24 jam sejak pertama kali berinteraksi dengan aplikasi, atau sebagai ditampilkan jika pengguna memiliki setidaknya satu catatan peristiwa setelah 24 jam sejak pertama kali berinteraksi dengan aplikasi. Model menggunakan label ini selama pelatihan untuk mempelajari cara mengidentifikasi kemungkinan bahwa pengguna akan termasuk dalam satu kategori atau kategori lainnya. Anda kemudian dapat menggunakan model terlatih untuk memprediksi kemungkinan tersebut bagi pengguna tertentu.

Jika memiliki kasus penggunaan lain, Anda dapat menggunakan kriteria yang berbeda untuk mengidentifikasi pelanggan yang terpantul atau melakukan churn. Jika ingin memprediksi hal selain churn audiens, Anda dapat mempertimbangkan, misalnya:

  • Apakah pengguna cenderung membelanjakan uang untuk mata uang dalam game
  • Kemungkinan pengguna menyelesaikan n level game
  • Kemungkinan pengguna menghabiskan n jumlah waktu dalam game

Memproses fitur demografis

Langkah berikutnya dalam memproses data adalah menambahkan fitur untuk demografi pengguna. Solusi ini menggunakan kolom berikut sebagai fitur demografis:

  • geo.country
  • device.operating_system
  • device.language

Namun, Anda dapat memilih kolom lain jika kolom tersebut cocok untuk kasus penggunaan Anda.

Pengguna mungkin memiliki beberapa nilai unik di kolom ini. Misalnya, jika pengguna menggunakan aplikasi dari dua perangkat yang berbeda. Untuk menyederhanakan, solusi ini menggunakan nilai dari peristiwa engagement pengguna pertama.

Memproses fitur perilaku

Langkah terakhir dalam memproses data adalah menambahkan fitur untuk perilaku pengguna.

Untuk mengekstrak perilaku pengguna dari data, solusi ini menganalisis aktivitas setiap pengguna dalam 24 jam pertama engagement pengguna. Selain peristiwa yang dikumpulkan secara otomatis oleh Analytics, ada juga peristiwa yang direkomendasikan untuk game yang dapat Anda pelajari untuk memahami perilaku pengguna. Untuk memprediksi churn pengguna dalam kasus ini, solusinya menghitung berapa kali dari peristiwa berikut yang dikumpulkan untuk setiap pengguna dalam waktu 24 jam sejak engagement pengguna pertama:

  • user_engagement
  • level_start_quickplay
  • level_end_quickplay
  • level_complete_quickplay
  • level_reset_quickplay
  • post_score
  • spend_virtual_currency
  • ad_reward
  • challenge_a_friend
  • completed_5_levels
  • use_extra_steps

Anda dapat menggunakan kumpulan peristiwa yang berbeda jika kasus penggunaan Anda berbeda dengan yang dijelaskan di sini. Untuk melihat daftar peristiwa yang tersedia, gunakan kueri berikut:

SELECT
    event_name,
    COUNT(event_name) as event_count
FROM
    firebase-public-project.analytics_153293282.events_*
GROUP BY 1
ORDER BY
   event_count DESC

Memilih model

Setelah data pelatihan disiapkan, Anda siap membuat model ML. Anda dapat memilih dari sejumlah algoritma klasifikasi untuk model. Tabel berikut mencantumkan jenis model serta pro dan kontranya:

Model model_type Kelebihan Kekurangan
Regresi logistik LOGISTIC_REG Lebih cepat untuk dilatih daripada jenis model lainnya. Mungkin tidak memiliki performa tertinggi.
XGBoost BOOSTED_TREE_CLASSIFIER
  • Performa lebih tinggi daripada model LOGISTIC_REG.
  • Memungkinkan pemeriksaan kepentingan fitur.
Lebih lambat untuk dilatih daripada model LOGISTIC_REG.
Jaringan neural dalam. DNN_CLASSIFIER Performa lebih tinggi daripada model LOGISTIC_REG. Lebih lambat untuk dilatih daripada model LOGISTIC_REG.
AutoML Tables AUTOML_CLASSIFIER Performa lebih tinggi daripada model LOGISTIC_REG.
  • Mungkin membutuhkan waktu lebih lama untuk dilatih daripada jenis model lainnya.
  • Penjelasan model terbatas.

Solusi ini secara default menggunakan model regresi logistik karena merupakan model yang paling cepat untuk dilatih, tetapi di notebook, Anda dapat memilih untuk menggunakan salah satu jenis model lainnya jika Anda menginginkannya.

Melatih model

Latih model klasifikasi menggunakan BigQuery ML. Model yang dilatih menghasilkan skor kecenderungan yang menunjukkan probabilitas pengguna melakukan churn. Probabilitas churn sebesar 100% ditunjukkan oleh churned=1 dan 100% probabilitas kembali ditunjukkan dengan churned=0, dengan sebagian besar hasil berada di antara batas ini.

Saat Anda menggunakan CREATE MODEL pernyataan, BigQuery ML secara otomatis membagi data pelatihan menjadi set pelatihan dan set pengujian. Hal ini memungkinkan Anda mengevaluasi model setelah pelatihan selesai sehingga Anda dapat melihat seberapa akuratnya.

Kueri di bawah ini menunjukkan CREATE OR REPLACE MODEL pernyataan untuk melatih model:

CREATE OR REPLACE MODEL bqmlga4.churn_logreg

TRANSFORM(
  EXTRACT(MONTH from user_first_engagement) as month,
  EXTRACT(DAYOFYEAR from user_first_engagement) as julianday,
  EXTRACT(DAYOFWEEK from user_first_engagement) as dayofweek,
  EXTRACT(HOUR from user_first_engagement) as hour,
  * EXCEPT(user_first_engagement, user_pseudo_id)
)

OPTIONS(
  MODEL_TYPE="LOGISTIC_REG",
  INPUT_LABEL_COLS=["churned"]
) AS

SELECT
 *
FROM
  Bqmlga4.train

Kueri ini mengekstrak month, julianday, dan dayofweek nilai dari kolom datetime dan timestamp sebagai salah satu contoh pra-pemrosesan fitur tambahan yang dapat Anda lakukan sebelum pelatihan singkat ini. Fungsi TRANSFORM() dalam kueri CREATE MODEL memungkinkan model untuk mempertahankan nilai yang diekstrak. Dengan begitu, ketika Anda menggunakan model ini untuk membuat prediksi nanti, nilai-nilai ini tidak perlu diekstrak lagi.

Lihat notebook untuk melihat contoh cara melatih model XGBoost, deep neural network, dan AutoML Tables.

Mengevaluasi model

Setelah model selesai dilatih, evaluasi model untuk melihat performanya.

Solusi ini menggunakan ML.EVALUATE pernyataan untuk menghasilkan presisi, penarikan, akurasi dan f1_score metrik untuk model. Melatih beberapa model lalu membandingkan metrik evaluasi dapat membantu Anda memutuskan model mana yang paling sesuai dengan data Anda.

Solusi ini juga menggunakan matriks kebingungan untuk memeriksa seberapa baik model memprediksi label, dibandingkan dengan label yang sebenarnya. Matriks konfusi dibuat menggunakan nilai minimum default 0,5, yang dapat Anda sesuaikan untuk mengoptimalkan perolehan, presisi, atau keseimbangan dari keduanya. Anda dapat menggunakan parameter THRESHOLD opsional untuk mengubah nilai minimum default.

Mendapatkan prediksi

Setelah model dilatih dan dievaluasi, Anda dapat menggunakannya untuk mendapatkan prediksi.

Solusi ini menggunakan ML.PREDICT pernyataan untuk meminta prediksi dari model.

Untuk pemodelan kecenderungan, output prediksi adalah probabilitas terjadinya perilaku. Semakin dekat nilai probabilitas yang diprediksi ke 1, semakin besar kemungkinan pengguna untuk kembali. Semakin dekat probabilitas yang diprediksi ke 0, semakin besar kemungkinan pengguna melakukan churn.

Mengekspor prediksi

Setelah mendapatkan prediksi dari model, Anda dapat menggunakan data ini untuk aktivasi pemasaran. Cara umum untuk melakukannya adalah dengan mengekspor data untuk digunakan di Analytics atau Firebase.

Menggunakan prediksi di Google Analytics

Anda dapat menggunakan data prediksi untuk kampanye pemasaran di Analytics. Anda dapat mengimpor prediksi model kembali ke Analytics sebagai atribut pengguna menggunakan fitur Impor Data untuk Google Analytics 4. Berdasarkan nilai prediksi, Anda dapat Membuat dan mengedit audiens dan juga melakukan Penargetan audiens Misalnya, Anda dapat menentukan audiens berdasarkan pengguna dengan probabilitas prediksi antara 0,4 dan 0,7, yaitu pengguna yang mungkin tidak kembali endiri tetapi dapat diberi insentif untuk melakukannya.

Menggunakan prediksi di Firebase

Untuk aplikasi Firebase, Anda dapat menggunakan fitur Impor segmen untuk mengimpor data prediksi. Dengan data ini, Anda dapat menyesuaikan pengalaman pengguna dengan menargetkan pengguna yang teridentifikasi melalui layanan Firebase, seperti Remote Config, Cloud Messaging, and In-App Messaging. Dengan begitu, Anda dapat melakukan hal-hal seperti mengirimkan notifikasi kepada pengguna, mengonfigurasi aplikasi untuk pengguna, dan mengikuti perjalanan pengguna melalui perangkat.

Evaluasi model berkelanjutan

Seiring bertambahnya data yang dihasilkan dari pengguna, Anda mungkin ingin mengevaluasi model secara rutin pada data baru dan melatih ulang model jika melihat bahwa kualitas model menurun.

Proses untuk memastikan model machine learning produksi tetap berperforma baik pada data baru disebut evaluasi berkelanjutan, dan ini merupakan bagian penting dari alur kerja ML apa pun. Melakukan evaluasi berkelanjutan dapat membantu Anda menangkap penyimpangan model, suatu fenomena yang terjadi ketika data yang digunakan untuk melatih model tidak lagi mencerminkan data yang Anda gunakan untuk meminta prediksi.

Untuk mempelajari lebih lanjut cara melakukan evaluasi model berkelanjutan, baca Evaluasi model berkelanjutan dengan BigQuery ML, Prosedur Tersimpan, dan Cloud Scheduler.

Langkah berikutnya