Personality Prediction System from Facebook User

Imanuel Drexel
Data Folks Indonesia
4 min readJan 22, 2019

Sistem Prediksi kepribadian dari pengguna facebook

Riset dengan judul ini ditulis oleh orang-orang dibawah ini, link menuju paper asli juga tersedia buat yang ingin membaca secara lengkap.

Tommy Tandera, Hendro, Derwin Suhartono, Rini Wongso ,Yen Lina Prasetio

Tujuan
Memprediksi kepribadian, berdasarkan Big Five Personality , yaitu Openness (OPN), Conscientiousness (CON), Extraversion (EXT), Agreeableness (AGR), Neuroticism (NEU) yang memang sudah banyak digunakan di bidang Automatic Personality Recognition (APR).

Metodologi

1. Dataset
a. myPersonality dataset → dataset berupa 10.000 status dari 250 pengguna facebook, yang sudah di label-i satu persatu kepribadiannya berdasarkan Big Five Personality Traits model. (yang resminya setau saya sudah tidak bisa diakses.)[1]

b. manually gathered dataset → dari status dari 150 pengguna facebook, yang dilabeli secara manual di website ApplyMagicSauce , dari cambridge university

2. Fitur
Pendekatan Pertama → Memakai Linguistic Feature with Closed-Vocabularies (Angka-angka yang dapat merepresentasikan kata-kata yang mejadi fitur, yang sudah ditentukan sebelumnya) Penentuan fitur menggunakan layanan dari LIWC (> 100 fitur) dan atau SPLICE (74 fitur):
* Linguistic Inguiry and Word Count (LIWC)
* Structured Programming for Linguistic Cue Extraction (SPLICE)
* Social Network Analysis (SNA)

Pendekatan Kedua → Memakai Open Vocabularies (kata-kata yang berelasi di dalam word embedding):
* Global Vector for Word Representation (GLoVE)

3. Preprocessing
Untuk dataset berbahasa Inggris (Pakai NLTK library)
Hapus URLs Simbol-simbol ( @#$%^&*U( ) Nama Orang Spasi lowercase Stemming Stop Words Removal

Untuk dataset berbahasa indonesia
Hapus URLs Simbol-simbol ( @#$%^&*U( ) Nama Orang Spasi lowercase Stemming Stop Words Removal filter slang words Translate ke English

4. Algoritma
Algorima Machine Learning (Scikit-Learn library, pakai 10-fold Cross Validation untuk evaluasi model yang dihasilkan)
1. Naive Bayes
2. Support Vector Machine
3. Logistic Regression
4. Gradient Boosting
5. Linear Discriminant Analysis (LDA)

Arsitektur Deep Learning (pakai Keras dan Theano, 80:20 untuk training:test dataset.)
1. Multi-Layer Perceptron (MLP)
2. Long Short Term Memory (LSTM)
3. Gated Recurrent Unit (GRU)
4. 1-Dimensional COnvolutional Neural Network (CNN 1D)

5. Scenario

List scenario yang dipakai di dalam penelitian ini:

Hasil Klasifikasi

Untuk myPersonality dataset, algoritma SVM pada kepribadian OPN dan menggunakan skenario 4 menunjukkan akurasi yang tertinggi (70.40%)di pendekatan machine learning algorithm. Arsitektur MLP pada kepribadian OPN dan skenario undersampling menunjukkan akurasi yang tertinggi juga, 79.49%. 2 Akurasi ini didukung oleh kepribadian OPN yang memang menjadi kelas kepribadian yang menunjukkan akurasi tertinggi dibanding ke 4 kepribadian yang lainnya di dataset ini (68.80% dan 74.10%).

Untuk manual gathered dataset, Algoritma LDA untuk kepribadian EXT di skenario 1 mendapatkan akurasi tertinggi, sejalan dengan EXT yang memang mendapatkan akurasi tertinggi rerata dibanding class kepribadian lainnya. MLP dan LSTM+CNN 1D arsitektur mendapatkan akurasi tertinggi, hingga 93% untuk class EXT.

hasil dari algoritma machine learning di myPersonality
Hasil dari algoritma machine learning di manual gathered dataset
Hasil dari algoritma deep learning di myPersonality dataset
Hasil dari algoritma deep learning di manual gathered dataset

Diskusi:

yang ini opini pribadi dari saya.

Hasil dari klasifikasi menunjukan peningkatan akurasi dari penelitian terdahulu, tapi menurut catatan saya dan teman saya yang mereview tulisan ini, hasil ini menunjukkan belum adanya konsistensi hasil dari scenario yang dipilih. Misalnya untuk algoritma SVM yang mendapatkan akurasi terbaik di myPersonality dataset untuk OPN, mendapatkan hasil terburuk di EXT.

Penggunaan LIWC sebagai feature juga menambah limitasi bagi para pembaca yang ingin mengimplementasikan research ini, dikarenakan harus membeli lisensi dari LIWC itu dahulu.

Mentranslasi teks Bahasa Indonesia ke bahasa inggris sebelum di fit ke dalam model juga merupakan hal yang sudah di implementasi di penelitian sebelumnya. Untuk beberapa kalimat mungkin bisa masuk akal, tetapi untuk struktur kata yang tidak formal, pengertiannya bisa menjadi rancu. Sentence Normalization (normalisasi kalimat) bisa menjadi solusi dari hal ini, tetapi untuk mencapai state-of-the-art sentence normalization pun membutuhkan riset yang mendalam.

Oh iya, riset ini sudah ada di 2017, dan sudah ada optimisasinya juga, lebih ke optimisasi deep learningnya juga sih di riset setelahnya ini. Next time, bakal saya buat rangkumannya juga. Terimakasih :) (← menambah token, menambah PR untuk pre-processing text.)

[1]https://sites.google.com/michalkosinski.com/mypersonality

--

--