Maximum Marginal Relevance
Artikel ini ditujukan untuk teman saya Ramadhan.
Sebelum menjelaskan MMR perlu paham dulu apa itu Vektor dan Cosine Similarity.
1) Vektor
merupakan matrix berukuran 1
Sebagai contoh lihat gambar untuk mengetahui perbedaan scalar, vektor dan matrix:
CATATAN: Salah satu cara mengubah “kalimat” menjadi vektor adalah dengan menggunakan TF-IDF. Misal “budi pergi ke pasar” akan menjadi vektor [0,1,0,2,0,1].
2) Cosine Similarity
Cosine similarity adalah pengukuran kemiripan antara dua vektor.
Adapun rumus cosine similarity adalah sebagai berikut:
dimana:
- A = vektor
- B = vektor
rumus tersebut akan menghasilkan:
- nilai mendekati 1 apabila vektor A dan B mirip
- nilai mendekati -1 apabila vektor A dan B tidak mirip.
Sebagai contoh:
akan menghasilkan nilai satu karena mereka mirip bahkan sama. Sedangkan jika kita membandingkan dua vektor berikut:
akan menghasilkan nilai -1 karena mereka tidak mirip sama sekali.
Ini bisa banget buat ngebandingin kalimat. Kita cukup ubah kalimat jadi vektor dan kita bandingin kemiripan antar keduanya pakai cosine similarity:
kita bandingin apa itu mandiri dengan jawaban mandiri adalah sikap…. harusnya memberikan nilai mendekati 1.
Sedangkan apabila kita bandingkan apa itu mandiri dengan jawaban cara membuat anak pemalu menjadi percaya diri adalah… harusnya memberikan nilai 0 atau mendekati -1.
Ooke Ramadhan paham? jadi kita bisa bandingin kemiripan kalimat “pertanyaan” dengan kalimat “materi”. Kalau dia ngasih nilai mendekati 1 maka dia mirip dan kita bisa ambil kesimpulan dia adalah jawabannya. Eits.. tapi kita bisa optimasi lagi dengan MMR.
3) Maximum Marginal Relevance (MMR)
MMR gak beda jauh sama cosine similarity.
Tapi kalau MMR itu dia berusaha ngasih jawaban yang unik kalau dia nemu beberapa jawaban yang mirip.
Kalau rumusnya:
Dimana:
- Si = vektor kalimat calon jawaban (materi)
- Q = vektor kalimat pertanyaan
- Sim(S, Q) = cosine similarity antara kalimat Si dan Q
- Sim(Si, Sj) = cosine similarity antara kalimat Si dan Sj