Intip cara netflix rekomendasiin film yuk!📺
Penerapan recommender system (RecSys)
.
.
.
A thread
Pernah ga sih kalian kepikiran pas buka netflix, kok bisa netflix rekomendasiin film atau series yang patut kalian tonton selanjutnya itu cukup relate sama film atau series yg barusan selesai kalian tonton?
Tenang, netflix itu gak memata-matai kalian kok sampe bisa tau genre film apa yang kalian suka. Mereka bisa tau dan sampe bisa merekomendasikan next movies itu dengan menggunakan Recommender System (RecSys)
Nah kira-kira aspek apa aja sih yg perlu kita tau dari RecSys ini? Mari kita mulai!
Basically, RecSys ini didasarkan pada 2 macam filtering. Yaitu collaborative filtering dan content based filtering.
Sebelum masuk kesitu, ada suatu media dimana kita bisa masukin informasi2 pendukung untuk nantinya dipakai dalam modelling, yaitu user-interactions matrix. Nanti ini bakal sering disinggung.
Pertama, content filtering. Prinsipnya dia ini memerlukan informasi tambahan dari si usernya. Dia perlu informasi seperti umur, pekerjaan, gender, atau info lainnya sampe ke informasi ttg preferences filmnya seperti aktor favorit, genre film, durasi film, dll
Baru setelah itu pada content filtering ini dikonstruksikan sebuah model berdasarkan informasi tadi digabung dengan konten apa aja yang terkandung di film itu.
Next, Collaborative filtering didasari oleh interaksi si user dengan film terdahulu lalu merekomendasikan film yang baru. Interaksi disini misalnya pemberian rating film setelah si user tsb nonton. Interaksi ini dikumpulin di user-interaction matrix tadi
Nah collaborative filtering ini biasanya dibagi jadi 2 kelas yaitu memory based sama model based. Kalo memory based itu biasanya dilakukan dengan mempertimbangkan hasil interaksi tadi dan mencari user lain yang seleranya kurang lebih sama kaya user ini
Model based membuat model generatif berdasarkan interaksi tadi lalu bikin rekomendasi film dari model tersebut.
Keuntungan collaborative filtering adalah dia gak membutuhkan informasi apa2 mengenai si user, dia cukup mempelajari hasil interaksi user dengan film2 yg sudah ditonton aja
Tapi kerugiannya adalah collaborative filtering ini ga akan bisa jalan dengan bagus bagi user-user yg ga pernah punya interaksi dengan film2 sehingga sistemnya bakal bingung mau rekomendasiin apa buat si user ini
Untuk mengatasi kekurangan ini biasanya di awal banget recommender nya bakal beri random items ke new user atau new items ke random user, bisa juga dengan beri popular items ke new user atau beri new items ke active user, terakhir ga pake collaborative di awal pemakaian si user
Berarti kalo collaborative ga butuh informasi apa2 ttg si user, namun sangat bergantung sama apa yg user lakukan pada saat pemakaian, sedangkan content ga bergantung sama bagaimana si user memakai tapi butuh info2 tambahan buat ngasih rekomendasinya
Dari model dan memory based tadi itu, kita masuk ke pembahasan mengenai neighborhood methods dan latent factor models. Neighborhood methods ini adalah metode rekomendasi yang didasari dgn mencari user lain yg menyukai film2 gak beda jauh dr user tadi
Simplenya kalo si user 1 menyukai film X, Y, Z maka sistemnya bakal cari user lain (lebih dari 1) yg juga suka X, Y, Z tapi udah lanjut nonton film yang lain.
Nah dari user-user lain ini dilihat mana yg nonton next movie yg sama, maka kemungkinan besar film tsb bakal direkomendasikan ke si user 1. Keliatan ini pengembangan dari memory based tadi
Sedangkan latent factor memanfaatkan user-item interaction matrix tadi untuk mengkarakterisasi user dan item menggunakan angka dari latent features. Latent features sendiri bisa kita pandang sebagai feature tersembunyi yg berbeda dari feature asli yg sedang diamati
Ini contoh mengkarakterisasi user-item dengan ukuran male-female dan serious-escapist
Latent factor models ini sangat memanfaatkan teknik matrix factorization (MF). MF ini bakal menghitung latent features tadi berdasarkan user-item interaction matrix. User-item matrix paling umum adalah yang entri-entrinya berupa rating film hasil dari respon para penonton
Teknik MF ini intinya pengen mereduksi dimensi matrix rating r menjadi perkalian 2 matriks latent feature, kita namakan matriks p untuk penonton dan q untuk film.
Teknik MF ini intinya pengen mereduksi dimensi matrix rating r menjadi perkalian 2 matriks latent feature, kita namakan matriks p untuk penonton dan q untuk film.
Nah untuk menarik nilai rating untuk masing-masing penonton berarti kita tinggal ambil aja rating dengan indeks yang bersesuaian
Karena memanfaatkan rating hasil respon penonton, maka sering banget matrix ini tuh isinya jarang-jarang (ada missing values) soalnya kita tau lah ya ga semua orang suka ngasi rating film. Mimin aja sering banget bolos ngasi rating hihihi dan ini menjadi tantangan tersendiri nih
Salah satu cara mengatasinya adalah dengan mengimpute missing values tersebut, tapi akibatnya adalah data yang udah kita punya tadi pasti akan terdistorsi.
Bayangin misal kita punya matriks yg isinya ga lengkap, terus mau kita peyot2in matriksnya biar yg kosong tadi ga keliatan. Nah kan bentuk matriksnya jadi ga karuan, kira2 begitulah data yg terdistorsi. Cara lain dengan faktorisasi data yg ada lalu meminimalisir squared errornya
Tapi kalo yang ini bakal membuat overfitting data. Untuk mengatasinya kita terapkan regularisasi pada sqaured errornya tapi harus ditambahkan konstanta pengendali beta. ||.|| disini ada frobenius norm ya. Baca: bit.ly/2QXOQ2Q
Nah regularisasi ini bisa didekati oleh 2 cara nih. Pertama, Stochastic Gradient Descent (SGD). prinsipnya dia ngitung dulu prediction errornya baru mengupdate feature p dan q tadi dgn memberi konstanta pengali alpha
Cara kedua yaitu Alternating Least Squares. Kalo dia ini netapin dulu salah satu vektor di q dan p baru mengoptimisasikan vektor2 lainnya sambil menyelesaikan least square problemnya sampe konvergensinya ditemukan
Kalo ada bias gimana? Simple. Nilai bias dari penonton ataupun film tinggal kita tambahin aja ke nilai rating tadi tapi jangan lupa untuk nambahin nilai rating rata2. Meminimalisir errornya? Hampir sama juga kok tenang aja
Dan terakhir, kita hitung error di SGD tadi baru update lagi semua nilai di feature p dan q
Dengan demikian, untuk membuat recommender system pake SGD pada model standar atau memiliki bias, kita punya langkah2 sebagai berikut:
Pertama, bentuk matriks p berukuran u x K dan matriks q berukuran K x i dengan u menyatakan banyaknya user, i menyatakan banyak film dan K menyatakan banyaknya features
Kedua, hitung prediksi ratingnya (nilai p_u(q_i)^T) lalu bandingkan degan nilai rating sebenarnya (nilai r_ui). Kemudian hitung errornya lalu update nilai p_u(q_i)^T tadi.
Lakukan langkah kedua secara iteratif sampai error yg didapat sangat kecil. Urutkan nilai ratingnya, rekomendasikan film yang bersesuan, dan kita selesai!
Nah, recommender system ini merupakan salah satu contoh penerapan dari machine learning. Selain recommender system, masih banyakkk lagi pengaplikasiannya dari machine learning.
Untuk mendalaminya, tentu kalian harus paham dulu basic math dan statistics yang dibutuhkan untuk jadi seorang Data Scientist.
Tenang aja, non degree program Data Scientist Pacmann.AI menyediakan materi math dan stat esensial dan tentunya mengajak kalian untuk menerapkan ilmu ini menggunakan tools Data Science. Kalian bisa cek kurikulum lengkapnya di bit.ly/BrosurSingkatP…
Jangan sampai kelewatan promo batch 3 yaa, mumpung masih ada THR dari Pacmann berupa potongan sebesar 10% loh! Daftar segera di bit.ly/PendaftaranNon… ya! 🤩
Dulu dipakai perang, sekarang dipakai modeling🗡️🛡️
Intro to ROC-AUC
.
.
A thread
Minggu pagi 7 Desember 1941, 420 pesawat pengebom milik Kekaisaran Jepang menyerang pangkalan militer Amerika Serikat di Pearl Harbor, Hawaii. Lebih dari 20 kapal, 323 pesawat, dan 3000 tentara AS menjadi korban dalam 'surprise attack' selama 2 jam tersebut.
Peristiwa ini akhirnya menyeret AS untuk bergabung dengan Sekutu dan mengubah peta pertempuran Perang Dunia II setelah esok harinya, 8 Desember 1941, Presiden AS Franklin D. Roosevelt mendeklarasikan perang dengan Jepang.
Siapa bilang Data Scientist cuma butuh ngasah technical skill?🙇👨💼
Jangan tinggalin soft skill dong!
.
.
.
A thread
“Hard Skill--or Technical Skill--make you qualified for the job, but soft skill will make or break your career.” Pernah denger quotes semacam itu?
Kalau kamu search di google, kamu bisa nemuin banyak quotes-quotes tentang softskill dengan kalimat yang beragam. Tapi semua quotes itu punya inti yang sama: pentingnya soft skill dalam karir.
Memahami kontribusi features pada model ML.
Intro to Interpretable Machine Learning menggunakan SHAP Values (Part I)
.
.
.
A Thread
Halo guyss, pernah gak sih kalian penasaran, kira-kira seberapa besar yaa kontribusi tiap-tiap features dari model yang kita buat??
Kali ini mimin akan bahas salah satu tools yang digunakan dalam Interpretable Machine Learning: “SHAP Values“. Tapi sebelum masuk kesana, yukk kita pahami dulu apa sih Interpretable ML