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 |
|
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 . |
|
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
- Mulai dengan solusi notebook.
- Pelajari BigQuery Export untuk data Google Analytics.
- Tinjau peristiwa yang dikumpulkan secara otomatis oleh Google Analytics 4.
- Pelajari cara membangun model perkiraan permintaan dengan BigQuery ML.
- Pelajari cara membangun sistem rekomendasi pada data e-commerce menggunakan BigQuery ML.