ANALISIS DAN IMPLEMENTASI CONVERSATIONAL RECOMMENDER SYSTEM DENGAN MEKANISME PEMILIHAN PERTANYAAN MENGGUNAKAN REINFORCEMENT LEARNING BERBASIS ONTOLOGY

ANALISIS DAN IMPLEMENTASI CONVERSATIONAL RECOMMENDER SYSTEM DENGAN MEKANISME PEMILIHAN PERTANYAAN MENGGUNAKAN REINFORCEMENT LEARNING BERBASIS ONTOLOGY

Ilham Mujaddid Al Masyriq 1 , Z.K Abdurahman Baizal 2 , Erliansyah Nasution 3

1,2,3 Prodi Ilmu Komputasi Telkom University, Bandung

1 zielham23@gmail.com, 2 bayzal@gmail.com, 3 erlinst@yahoo.com

Abstrak

Conversational recommender system merupakan salah satu variasi dari recommender system yang ada saat ini. Namun, proses pemilihan pertanyaan yang akan diajukan lebih dulu menjadi masalah jika jumlah pertanyaan yang ada dirasa cukup banyak dan tidak semua pertanyaan bisa diajukan, sehingga hanya dimunculkan beberapa saja.

Oleh karena itu, diperlukan suatu mekanisme pembelajaran untuk memilih pertanyaan yang layak diajukan terlebih dahulu. Dalam tugas akhir ini digunakan reinforcement learning sebagai metode pembelajaran dalam proses pemilihan pertanyaan tersebut.

Dengan ontology sebagai basis pengetahuanya, conversational system ini melakukan pembelajaran dengan menggali preferensi pengguna dengan mengajukan pertanyaan-pertanyaan berupa kebutuhan fungsional. Conversational recommender system ini diharapkan mampu memberikan pertanyaan yang sesuai dengan kebutuhan pengguna saat itu dan memberikan hasil rekomendasi yang akurat sesuai dengan preferensi pengguna sehingga interaksi pengguna pada system pun dapat dilakukan seefisien mungkin.

Kata kunci: conversational recommender system, reinforcement learning, ontology, history.

Abstract Conversational recommender system is one of recommender system variation that exist today. However, the process of selecting questions to be asked first will be a problem if the number of questions are quite a lot and not all questions can be asked, only a few are shown.

Therefor, we need a learning mechanism for selecting proper question that feasible to be asked in advance. In this thesis, reinforcement learning is used as a learning method in the process of selecting the questions. With the ontology as a knowledge base, this conversational recommender system is eliciting user preference by asking the questions about functional reqirement. Conversational recommender system is expected to provide questions that correspond to the current user needs and provide accurate recommendation results according to user preferences so that the user interaction in the system can be done as efficiently as possible.

Keywords: conversational recommender system, reinforcement learning, ontology, history.

1. Pendahuluan

rekomendasi produk kepada calon pembeli dari Perkembangan teknologi saat ini telah

banyaknya katalog produk yang ditawarkan di situs banyak memberikan kemudahan kepada kita semua

jual-beli. Sehingga pembeli tidak kesulitan untuk dalam segala aspek kehidupan. Dalam hal jual-beli

mencari dan bisa dengan cepat mendapatkan produk misalnya, tak sedikit penjual yang memanfaatkan

yang mereka.

recommender system Fenomena ini kemudian terus berkembang dengan

teknologi untuk memasarkan produk yang dijualnya.

Conversational

merupakan salah satu variasi dari recommender munculnya situs-situs yang khusus menjual berbagai

system yang ada pada saat ini. System ini mengggali macam produk yang melayani jasa jual-beli secara

preferensi pengguna dengan cara melakukan tanya online atau lebih dikenal juga dengan sebutan e-

jawab dengan pengguna seputar produk yang sedang Commerce .

dicari. Namun, jika saja pertanyaan-pertanyaan yang Alih-alih semakin banyak yang mulai melirik

akan diajukan oleh system ini hanya sedikit mungkin kegiatan e-Commerce ini, tingkat persaingan pun

tidak akan terjadi masalah. Tetapi, jika pertanyaan semakin bertambah diantara penjual. Banyak

yang akan diajukan cukup banyak, akan jadi kemudian situs jual-beli online yang memberikan

masalah dalam hal memilih pertanyaan yang harus fitur-fitur yang mampu memberikan layanan dan

didahulukan. Hal yang paling mudah dalam kemudahan kepada para penggunanya. Salah satu

mengatasi hal ini adalah dengan memilih pertanyaan yang paling banyak dikembangkan saat ini adalah

random , namun kurang baik karena recommender system

secara

yang bisa memberikan

kemungkinan ada pertanyaan-pertanyaan yang kemungkinan ada pertanyaan-pertanyaan yang

yang harus dijawab oleh penggunanya. pembelajaran untuk memilih pertanyaan-pertanyaan

Dalam setiap sesinya, conversational yang kemungkinan besar akan mendapat respon

kemudian memberikan yang positif dari pengguna saat berintekasi dengan

recommender

system

rekomendasi berdasarkan respon atau jawaban dari system .

penggunannya. Ini dilakukan dengan cara mengubah Berangkat dari hal ini, kemudian penulis

respon atau jawaban dari pengguna ke dalam bentuk ingin

query yang kemudian digunakan untuk mencari recommender system yang mampu melakukan

produk yang cocok dengan kriteria pengguna dengan pembelajaran untuk bisa memilih pertanyaan-

produk yang ada di dalam katalog produk. pertanyan mana saja yang lebih baik didahulukan

Dalam rangka meniru perilaku yang untuk ditanyakan. Dengan menerapkan

dilakukan oleh seorang sales yang sedang berinteraksi reinforcement lerarning, system ini diharapkan

dengan customernya, tentunya pemilihan pertanyaan mampu mempelajari interaksi pengguna sebagai

yang akan diajukan kepada customer merupakan hal bahan pembelajaran system. Sehingga pada akhirnya

yang sangat penting untuk dipertimbangkan. bisa memberikan susunan pertanyaan yang sesuai

Mengingat tujuan utama sebuah recommender dengan kebutuhan pengguna baru dengan melihat

adalah untuk mempermudah seseorang kecenderungan history interaksi system dengan

system

dalam menentukan pilihan. Akan jadi memberatkan pengguna-pengguna

jika pertanyaan-pertanyaan yang diajukan ternyata pertanyaan yang diajukan diharapkan mendapat

sebelumnya.

Susunan

tidak sesuai dengan yang dibutuhkan penggunanya. respon positif dari pengguna karena ketepatan

Bukan terbantu, tapi akhirnya menjadi disusahkan pertanyaan

oleh recommender system itu sendiri. Oleh karenanya, mempercepat waktu interaksi pengguna dengan

menentukan pertanyaan yang kemungkinan besar system .

dari pengguna Hal ini penting karena harapan pengguna

merupakan hal yang sangat penting yang bisa dalam menggunakan sebuah fasilitas tentunya untuk

dilakukan oleh sebuah conversational recommender mempermudah keperluanhya. Bayangkan saja jika

system .

saat pengguna menggunakan sebuah conversational

recommender system , ternyata pengguna dihadapkan

2.2 Rinforcement Learning

dengan pertanyaan-pertanyaan yang sebenarnya Reinforcement learning adalah belajar tentang tidak

apa yang sebaiknya dilakukan, yaitu dengan cara kebutuhannya.

diharapkan atau

tidak sesuai dengan

memetakan situasi yang dihadapi kedalam sebuah akhirnya jadi mempersulit dan memperlama waktu

aksi untuk memaksimalkan nilai reward yang interaksi dengan system. Hal ini bisa membuat

diberikan system jika aksi yang diambil itu benar [1] pengguna bosan dan memberikan respon yang

[8]. Ibarat manusia yang selalu mencoba-coba negatif atau bahkan pergi begitu saja dari system

bermacam tindakan disaat dihadapkan pada suatu karena ketidakpuasannya. Oleh karena itulah,

masalah, kemudian mencari jalan keluar yang pertanyaan yang efisien sangat dibutuhkan selama

dianggap terbaik diantara pilihan-pilihan tindakan proses interaksi pengguna dengan system.

yang tersedia dengan mengamati hasil yang didapat dari setiap tindakan yang telah diambil. Jika

2. Landasan Teori

tindakan yang diambil itu ternyata baik, maka hasil

2.1 Conversational Recommender System

yang didapat juga baik, begitu sebaliknya. Recommender system bisa dikatakan sebagai

Sebagai contoh lain, seorang murid yang sebuah system yang mampu memberikan petunjuk

sedang belajar di kelas. Jika dia selalu bersikap baik dalam setiap tindakannya, tentu sang guru akan

atau rekomendasi

mengapresiasi murid tersebut dengan memberi nilai menggunakan cara-cara tertentu untuk memberikan yang baik. Namu sbaliknya, jika ternyata suatu saat pilihan yang kemungkinan besar berguna atau murid tersebut melakukan tindakan yang kurang menarik bagi pengguna dari sejumlah besar data [5].

baik, tentu guru tersebut juga akan memberi Recommender system

hukuman atas tindakannya tersebut. membantu pengguna dalam memilih produk ketika

diperkenalkan untuk

sejumlah besar katalog tersedia dan pengguna

2.2.1 Action Value

memiliki pengetahuan yang tidak cukup untuk Merupakan nilai estimasi atau nilai rata-rata mengambil pilihan yang terbaik secara mandiri [6].

dari reward yang didapat oleh sebuah aksi yang dalam Berbeda dengan recommender system pada

tugas akhir ini berupa pertanyaan setiap kali umumnya, conversational recommender system

pertanyaan tersebut dipilih untuk diajukan. Dengan dibuat lebih interaktif. Pengguna dapat berinteraksi

kata lain, jika pada saat interaksi ke t, pertanyaan a dengan system dengan melakukan tanya-jawab

telah diajukan sebanyak k a kali, dengan hasil reward seputar kebutuhannya. Layaknya seorang sales di

r 1 ,r 2 ,…,r ka , maka nilai estimasinya, dunia nyata, conversational recommender system

(r r   r

- Product

= merupakan class yang

merepresentasikan produk yang ada dalam Q

t a (a)  domain.

class yang proses komputasi yang besar karena nilai reward

Untuk menghindari alokasi memori dan

Component =

merupakan

merepresentasikan spesifikasi produk yang

yang terus bertambah setiap waktu, dengan memetakan antara kebutuhan fungsional dan melakukan incremental update, rata-rata reward

produk.

pada saat k+1 dapat dihitung dengan k 1 Pada [11] diajukan suatu model ontology

1 Q k 1

 . r (i) ket : i yang terdiri dari tiga class yang merepresentasikan

k 1 

 1 k  1

i 1

kebutuhan fungsional, produk dan spesifikasi k 1 produk. Semua class tersebut mempunyai subclass

 1 [r k 1 

 i i 1 ] ket : i  1 k  1 dan individu sebagai representasi dari sebuah

k 1

hirarki. Hihrarki class dihubungkan dengan class  1 [ r  kQ  Q  Q ]

lainnya lewat object property seperti yang

k k k k 1

k 1

ditunjukkan pada gambar 1.

[r  (k  1) . Q  Q ] k k 1 k k 1

2.4 Menentukan Hasil Rekomendasi

1 Q  Selama proses interaksi dengan pengguna,

[r Q ]

k k 1 k 1 system secara tidak langsung membangun preferensi (profil) pengguna yang nantinya digunakan untuk

atau secara umum dapat ditulis sebagai berikut [8] mencari kecocokan kebutuhan pengguna dengan katalog item yang ada dalam ontology. Profil

NewEstimate  OldEstimate  Stepsize  T arg et  OldEstimate 

pengguna ini menyimpan hardconstraint, dan softconstraint beserta derajat ketertarikan (degree of

2.2.2 Epsilon Greedy interest (Є-Greedy ) ) dari setiap softcontraint-nya.

Untuk menyeimbangkan proses ekplorasi dan Setelah profil pengguna terbentuk, produk eksploitasi ini dapat dilakukan dengan cara memilih

kemudian dibangkitkan berdasarkan kebutuhan greedy action dengan probabilitas (1- Є t ) dan memilih

fungsional yang dipilih dan dilakukan perankingan satu dari aksi yang lain dengan probabilitas Є t .

untuk didapatkan produk yang paling cocok dengan Sebagai contoh, nilai Є t

dapat didefinisikan sebagai kebutuhan pengguna. Pada [11] disebutkan beberapa definisi dalam pembangkitan produk.

berikut [3]. Definisi 1. Sebuah produk p dikatakan

memenuhi kebutuhan fungsional f, dinotasikan

G 2 t

p  f jika dan hanya jika

UpperS  c c.SuppBy  f ,c    UpperS

positif constants . Semakin besar nilai G1 dan G2,

Dimana G 2 >G 1 dan G 1 dan G 2 adalah large

 c c.SuppBy f , c 

   p ,c   

 c c.HasComp 

maka proses pembelajaran akan semakin lama.

Kita dapat mengenerate nilai random rand t diantara

0 sampai 1. Jika rand t lebih besar dari Є t maka pilih

Dimana:

greedy action , sebaliknya pilih aksi yang lain. - UpperS = Fungsi untuk medapatkan himpunan parents

dari sebuah himpunan node dalam ontology.

2.3 Struktur Ontology

- SuppBy = Relasi yang meghubungkan elemen-elemen himpunan individu pada hirarki Functional

rdfs:subclass of rdf:type of

class

Requirement dengan elemen-elemen himpunan individu

owl:object property

Supported by pada hirarki Component. Relasi ini menunjukkan bahwa

instance

suatu kebutuhan fungsional didukung oleh komponen tertentu.

Product

Supported by Component

Component of

- HasComp = Relasi yang menghubungkan elemen-

Component Product

Functional Requirement

elemen himpunan pada hirarki Product dengan elemen- elemen himpunan pada hirarki Component. Relasi ini

Component

menunjukkan bahwa suatu produk mempunyai

Supported by

Instances of Component

Instances of of

Instance of Component tertentu.

Definisi 2. Fungsi untuk mencari himpunan 3 Definisi 2. Fungsi untuk mencari himpunan 3

Supported by

Product

didefinisikan dengan fungsi SearchP .

SearchP :N N

Keterangan: Untuk suatu kebutuhan fungsional F R soft R hard ,

Gambar 1 Struktur Ontology

- Functional Requirement = merupakan class yang Maka himpunan produk yang sesuai dengan merepresentasikan kebutuhan fungsional.

kebutuhan fungsional adalah,

= banyaknya tingkat dukungan komponen SearchP F  p p. 

  s i R so ft  h j R h a rd

untuk kebutuhan fungsional FR .

2.4.1 Derajat Ketertarikan (Degree of Interest)

2.5 Penjelasan (Explanation)

Derajat ketertarikan (degree of interest Sebuah penjelasan (explanation) dalam disingkat

sebuah recommender system dapat memegang merepresentasikan tingkat ketertarikan pengguna

peranan penting dalam meningkatkan user experience dalam penggunaan recommender system

memiliki banyak atau kebutuhan fungsional yang ada. DOI bisa keuntungan, mulai dari menginspirasi kepercayaan didapatkan dengan menormalisasi dari nilai reward

terhadap sesuatu, dalam hal ini adalah softconstraint

pengguna untuk membantu pengguna mebuat suatu yang didapat oleh setiap kebutuhan fungsional

keputusan yang baik.

selama interaksi dengan pengguna sebelumnya. Berdasarkan [9] [10] ada tujuh kemungkinan

DOI  i

tujuan explanation dalam sebuah recmmender

system , yaitu:

1. Transparency, menjelaskan bagaimana suatu Jika belum ada data interaksi dari pengguna

i 1

system dapat bekerja.

sebelumnya, nilai DOI dibagi rata ke setiap kebutuhan

2. Scrutability, mengijinkan pengguna untuk fungsional yang dipilih. Nilai DOI ini nantinya

mengatakan kepada system bahwa sesuatu itu digunakan dalam perhitungan bersama dengan utility

salah.

function sebagai pertimbangan system dalam

3. Trustworthiness, meningkatkan kepercayaan perankingan produk yang ada.

pengguna terhadap system.

4. Effectiveness , membantu pengguna untuk Utility function digunakan untuk meranking

2.4.2 Utility Function

membuat suatu keputusan yang baik.

5. Persuasiveness, meyakinkan pengguna untuk produk yang didapat dari hasil penelusuran semantik

mencoba atau membeli suatu produk. pada ontology. Sebuah model preferensi berdasarkan

6. Efficiency, membantu pengguna untuk membuat metode MAUT (Multi-Attribute Utility Theory)

keputusan lebih cepat.

seperti yang disebutkan pada [2] dinyatakan sebagai

7. Satisfaction, meningkatkan kenyamanan

pasangan  V 1 ,V 2 ,...,V n  ,  w 1 ,w 2 ,..., w n  dengan V i adalah

pengguna pada saat berinteraksi dengan system. nilai dari atribut A i dan w i adalah relatif importance

Proses pembangkitan penjelasan dilakukan dari A

i . Dengan demikian utility dari produk masing lintasan node dan relasinya dalam user profil

dengan cara penelusuran backtrack pada masing-

a , a ,..., a  adalah sebagai berikut:

model, berawal dari suatu node produk yang akan

n direkomendasikan. Untuk menghasilkan penjelasan

U  a , a ,..., a 1 2 n  

a  (5) w i V i  i 

yang lebih natural, pembangkitan penjelasan akan

i 1

menggunakan template diapdukan dengan relasi

serta info dari node hasil penelusuran backtrack

Dengan  w i 1

pada user profil model [11]. Template yang Metode MAUT tersebut lebih sesuai untuk

i 1

digunakan adalah sebagai berikut,

sebuah preferensi yang mengacu pada atribut atau

fitur teknis dari sebuah produk secara langsung. <produk> cocok dengan kebutuhan Anda, karena Sedangkan

<produk> <relasi> <nodeinfo> <relasi> menyatakan

fungsional dari produk (bukan fitur), juga terdapat beberapa pertimbangan lain seperti DOI dan nilai

2.6 User Case Framework

support level dari setiap produk yang juga harus Merupakan skenario yang dipersiapkan untuk dilibatkan dalam perhitungan. Maka persamaan

menyelesaikan beberapa kasus yang mungkin terjadi diatas dapat disesuaikan menjadi:

pada saat system berinteraksi dengan pengguna. n j Setidaknya ada lima skenario yang dibahas pada

U  FR   DOI   S  c i  w i  FR

i 1

Dimana:

2.6.1 Case U1

– Empty User Profile

- DOI = DOI untuk masing-masing kebutuhan

Ini adalah kondisi pengguna saat pertama kali fungsional FR

- S  c i  = nilai support level dari tingkat dukungan

berinteraksi dengan system dimana profil pengguna masih kosong. Strategi yang dilakukan adalah

dengan menentukan pertanyaan awal untuk memulai - w interaksi.

Component c i (normalized).

i  FR  = relatif importance dari tingkat dukungan

Component c i untuk kebutuhan fungsional FR

. GenerateU1(UserModel(user))

/* memilih sejumlah maksimal

α nodes dari

sejumlah maksimal  a nodes dari masing-masing

himpunan nodes pada level 1.

Input : UserModel(User), current user model himpunan DG  g j  */

Q j  SelectQ  a  c  DE  g j  ,UserModel  user  Begin 

Output : Q, Set of Question */

/* F1 : set of Functional Requirement nodes level 1 Q QQ j

End

Q  SelectQ   ,F 1 ,UserModel  user 

End 2.6.3 Case 3 – Tidak Ada Satupun Produk Yang

Pada [11] dijelaskan bahwa SelecQ

Dipilih Pengguna

merupakan fungsi yang digunakan pada saat Dengan demikian system harus pembangkitan pertanyaan pada saat interaksi dengan

mempertimbangkan semua user profil model cara memilih sejumlah himpunan nodes yang

sebelumya yang tidak relevan. Strategi yang memang potensial untuk ditanyakan berdasarkan

dilakukan adalah dengan cara menelusuri nodes keadaan user profile saat ini.

pada user preference model, untuk menanyakan

SelecQ  max Q, A, UserModel  user  :

alternatif kebutuhan fungsional lain dalam satu level

 maupun backtrack ke nodes kebutuhan fungsional

BB P  A  , B  min  max Q, A  

pada level sebelumnya yang belum ditanyakan. Dimana:

GenerateU3(UserModel(user),i)

- A = himpunan nodes yang potensial untuk /* Input : i, (i>0) adalah level hirarki kebutuhan ditanyakan.

fungsional pada ontology yang terakhir ditanyakan.

UserModel(user), current user model - B = cardinalitas dari himpunan B.

- P  A  = powerset dari himpunan A.

Output : Q, Set of Question

F ab adalah set nodes kebutuhan fungsional pada

level a dengan status b */

2.6.2 Case U2 – Terdapat Lebih Dari Satu

Begin

Produk Hasil Rekomendasi Yang Dipilih

if i=1 then

Pengguna

candidat F i   F ivh F ivs F ix 

Hal ini menandakan pengguna masih ragu- ragu antara beberapa produk (k produk) yang dia

/* candidat adalah set nodes dari kebutuhan fungsional yang potensial untuk ditanyakan*/

pilih. Oleh karena itu harus dibangkitkan pertanyaan

if candidat   then

yang mengacu pada elemen pembeda antar Q  SelectQ  , candidat ,UserModel user kelompok produk untuk membantu pengguna

memilih dari sekian n produk yang dia pilih.

else

GenerateU 1  UserModel  user 

GenerateU2(UserModel(user))

/* Input : UserModel(User), current user model else

candidat   children  F  i 1  vs F  i 1  vh    F ivh F ivs F ix  

Output : Q, Set of Question */

Begin if candidat   then

/* Menentukan supporting elemen dari k produk

Q  SelectQ   , candidat ,UserModel  user 

yang dipilih pengguna */ else

For i  1 to k do

Temp  DL  CompOf  p i  

GenerateU 3  UserModel  user  ,i 1 

End

    p

i   Temp    DL  SuppBy{z } j  

SuppElement

  z j Temp   2.6.4 Case 4 – Definisi Kebutuhan Belum Cukup

/* Melakukan clustering terhadap himpunan produk Untuk Membangkitkan Rekomendasi

P */ Kebutuhan yang dimasukkan masih terlalu

umum, untuk itu perlu dibangkitkan kebutuhan /* Himpunan pertanyaan Q diinisialisasi dengan

Clustering  P 

fungsional yang lebih spesifik (level berikutnya), himpunan kosong */ dan tanyakan sejumlah α kebutuhan fungsional pada

Q   

level tersebut agar kebutuhan lebih spesifik. Pertanyaan yang diajukan system dalam interaksi

/* Menentukan Distinguishing element sekaligus selanjutnya adalah kebutuhan fungsional yang menentukan pertanyaan */ terkait dengan jawaban sebelumnya dari pengguna.

/* c adalah jumlah cluster*/ For j  1 to c do

GenerateU3(UserModel(user),i) GenerateU3(UserModel(user),i)

  

 i 1

UserModel(user), current user model /*masing-masing Qj didapatkan dengan memilih Output : Q, Set of Question */

Begin

/* Kandidat adalah set nodes dari kebutuhan

fungsional yang potensial untuk ditanyakan */ Recommendation Module Database History Module candidat  children  F

F ivs 

Dan Nilai Action

if candidat   then Membangkitkan Penjelasan

Value

(Explanation)

Mengelola Nilai Action Value

Q User Model Module  SelectQ   , candidat ,UserModel

user 

else Mencari Dan Membangkitkan

GenerateU 3  UserModel  user  ,i 

Merangking Hasil

Rekomendasi

Membangun User

Preference Model

Pertanyaan Menyimpan History

2.6.5 Case 5 – Tidak Ada Hasil Rekomendasi In Menampilkan Hasil

Rekomendaasi

Dengan User Tanya Jawab

Yang Cocok Dengan Profil Pengguna

Tidak ada produk yang sesuai dengan kebutuhan pengguna disebabkan oleh adanya

User

kontradiksi dari kombinasi hardconstraint pada saat produk retrieval, karena kombinasi query dari

softconstraint pasti menghasilkan produk. Dengan

Gambar 2 Gambaran Umum Sistem

demikian diberikan penjelasan bahwa ada satu atau beberapa hardconstraint yang telah dimasukkan

1. History Module

pengguna menyebabkan produk tidak ditemukan. Modul ini bertugas untuk mengelola data Strategi yang dialkukan adalah dengan merubah

history interaksi pengguna dan juga nilai action hardconstraint .

value yang sudah didapat oleh setiap kebutuhan fungsional dalam setiap interaksi. Reward yang

2.7 Evaluasi Hasil Rekomendasi

didapat setiap kebutuhan fungsional dalam setiap Evalusi hasil rekomendasi diperlukan untuk

interaksi, semuanya diakumulasi dan disimpan untuk melihat seberapa baik conversational recommender

kembali sebagai bahan system yang sudah dibuat dalam merekomendasikan

kemudian digunakan

pertimbangan pembangkitan pertanyaan di interaksi suaatu produk. Untuk menguji hal itu, dapat

berikutnya dilakukan oleh modul ini juga. dilakukan dengan menghitung rangking hasil

2. User Model Module

rekomendasi yang diberikan system kemudian Modul ini berfokus pada interaksi system mebandingkannya dengan ranking sebenarnya yang

dengan ontology. Bertugas untuk menyiapkan setiap diberikan oleh expert user, dalam hal ini orang yang

pertanyaan yang akan diajukan kepada pengguna. dianggap kompeten dan pengetahuan yang baik

Bersama dengan history module, modul ini mengenai domain produk yang digunakan dalam

mengelola node-node kebutuhan fungsional dari study kasus tugas akhir ini, yakni smartphone.

ontology dan mengurutkannya berdasarkan nilai Untuk pengujiannya sendiri, kita gunakan

action value masing-masing kebutuhan fungsional Mean Absolute Error (MAE) seperti yand dijelaskan

untuk kemudian diajukan kepada pengguna. pada [7]. MAE dapat digunakna untuk menghitung

3. User Interface Module

kesalahan absolut dantara ranking yang diberikan Modul ini bertugas sebagai user interface system dengan ranking yang sebenarnya diberikan

system terhadap pengguna. Semua interaksi system oleh expert user.

dengan pengguna dilakukan pada modul ini.

 Pertanyaan yang sudah disiapkan oleh user model

i r

module dan history module ditampilkan kepada Dimana:

n i 1

pengguna oleh modul ini. Sehingga memudahkan - n = jumlah produk yang direkomendasikan.

pengguna untuk berinteraksi secara langsung dengan system . Respon dari pengguna di setiap sesi,

- p i = ranking yang diberikan oleh system. kemudian dikirimkan ke history module untuk -

r i = ranking sesungguhnya yang diberikan oleh disimpan dan diolah untuk keperluan selanjutnya. expert user .

Pada saat sesi rekomendasi juga, modul ini yang bertugas

menampilkan semua hasil rekomendasi yang sudah diurutkan dan diberi

untuk

3. Perancangan Sistem

penjelasan oleh recommendation module.

3.1 Gambaran Umum Sistem

4. Recommendation Module

Secara garis besar, system yang dibangun Modul ini bertugas untuk mencari produk dalam tugas akhir ini dibagi menjadi empat buah

yang sesuai dengan profil pengguna kemudian modul yang masing-masing memiliki tugas

mengurutkannya berdasarkan nilai utility function- tersendri, yaitu history module, user model module,

nya untuk kemudian dikirimkan ke user interface recommendation module , dan user interface module.

module

untuk ditampilkan kepada pengguna untuk ditampilkan kepada pengguna

quantity threshold , maka system akan memberikan akan direkomendasikan kepada pengguna, sehingga

pertanyaan berupa kebutuhan fungsional yang lebih pengguna lebih mudah dalam memahami kelebihan

spesifik (Case U4).

dan kekurangan

Jika tidak ada produk yang memenuhi direkomendasikan oleh system.

hardconstraint dan softconstraint (Case U5), maka pengguna

akan

diminta

untuk merubah

hardconstraint ataupun softconstraint yang sudah Pada gambar 3 diperlihatkan alur interaksi

3.2 Alur Interaksi

dimasukkan untuk kemudian dilakukan pencarian system dari mulai awal interaksi hingga selesai. Pada

ulang berdasarkan hardconstraint atau softconstraint saat pertama kali pengguna berinteraksi dengan

yang baru.

conversational recommender system , pengguna akan

diberikan pertanyaan hardconstraint, dimana produk

4. Pengujian dan Analisis

4.1 Skenario Pengujian

yang nantinya direkomendasikan harus memenuhi Ada tiga scenario pengujian yang disiapkan untuk semua

mengevaluasi performansi dari system yang telash dibuat, Hardconstraint yang terdapat pada conversational

yakni pengjuian akurasi oleh expert, pengujian efisiensi recommender system ini berupa harga dan brand

interaksi, dan pengujian kepuasan pengguna. (merk) dari produk.

4.1.1 Pengujian Akurasi Oleh Expert

Pengujian akurasi oleh expert ini dilakukan

Mulai

Hardconstraint Pertanyaan

untuk mengevaluasi ranking yang telah diberikan oleh system. Pengujian ini dilakukan dengan cara

membandingkan hasil perangkingan yang diberikan

oleh system dengan ranking yang diberikan oleh

Pertanyaan

Softconstraint

expert . Expert yang dipilih untuk melakukan pengujian ini adalah mobile application developer yang mengerti seluk beluk mengenai domain

Ya Hardconstraint

Pada proses pengujian ini, dilakukan

Kasus U5?

Ya

Relaxation

masing-masing tiga kali percobaan ke setiap expert.

Tidak

Kasus U4?

jumlah masing-masing 5, 8, dan 10 produk yang akan diuji rankingnya. Hasil perankingan oleh expert

Tidak

ini

dengan hasil perangkingan system untuk dilihat errornya dengan

menggunakan persamaan 9.

Produk

4.1.2 Pengujian Efisiensi Interaksi

Pengujian ini dilakukan untuk mengevaluasi

Pertanyaan Yang

hasil learning pertanyaan yang diajukan kepada

Kasus U3? Tidak

Kasus U2? Ya

Membedakan

Produk

pengguna. Pada pengujian ini, tidak semua state

interaksi akan diuji, hanya sebagian saja. Pengujian ini dilakukan dengan mengamati banyaknya

Tidak

Selesai

kemunculan case U3 dalam sekali interaksi. Case U3

yang mengasumsikan pertanyaan yang lebih dulu ditanyakan tidak sesuai Setelah

Gambar 3 Alur Interaksi Sistem

ini merupakan kondisi

dengan kebutuhan pengguna atau hasil rekomendasi hardconstraint , system kemudian akan memberikan

memberikan

pertanyaan

yang diajukan tidak sesuai dengan harapan pertanyaan

pengguna karena kemungkinan pertanyaan yang fungsional dari produk yang ingin dicari oleh

diajukan sebelumnya kurang memuaskan pengguna pengguna. Produk yang nantinya dibangkitkan, tak

sehingga perlu dibangkitkan pertanyaan potensial harus memenuhi semua softcontrain yang dipilih

lain yang belum ditanyakan kepada pengguna. pengguna, jika produk hanya mensupport satu

Dengan begitu kita dapat menilai pertanyaan fungsional saja, maka produk tersebut akan tetap

yang diajukan pertama kali itu sudah sesuai dengan direkomendasikan.

kebutuhan pengguna atau tidak. Jika tidak sesuai Jika produk yang memenuhi hardconstraint

maka perlu dibangkitkan pertanyaan lain yaitu case dan softconstraint masih terlalu banyak, yakni dia atas

U3 yang berakibat lebih lamanya interaksi pengguna quantity threshold yang telah ditentukan sebelumnya,

dengan system.

maka system mencari produk yang memenuhi utility threshold . Jika ternyata yang

4.1.3 Pengujian Kepuasan Pengguna

Pengujian kepuasan pengguna ini dilakukan Pada tabel 3 terlihat bahwa jumlah produk 5 untuk mengevaluasi system yang telah dibuat dari

memiliki nilai MAE paling kecil, ini dikarenakan segi kenyamanan pengguna. Beberapa faktor yang

jumlahnya yang sedikit sehingga kemungkinan dievaluasi diantaranya:

kesalahan saat perankingngan juga kecil karena -

Metode tanya jawab yang digunakan proses sesleksi yang lebih ketat. Sedangkan untuk memudahkan pengguna dalam menentukan

jumlah prduk 8 maupun 10, memmpunyai nilai MAE kebutuhannya.

cenderung lebih besar, ini menunjukkan bahwa - System dapat membantu dengan baik selama

maka kemungkinan proses rekomendasi.

semakin banyak produk,

kesalahan perangkingan juga semakin besar. -

System membantu pengguna dalam Namun, pada jumlah produk 10 nilai MAE mempercepat pengambilan keputusan.

bisa lebih kecil dari pada jumlah produk 8 -

Penjelasan (Explanation) untuk setiap produk dikarenakan pada jumlah produk 10 kemungkinan yang

direkomendasikan membantu proses produk yang rankingnya terbawah tepat berada pada pengambilan keputusan pengguna.

ranking seharusnya sehingga nilai MAE nya lebih -

Kesesuaian pertanyaan dengan kebutuhan kecil dibandingkan dengan jumlah produk 8. pengguna.

Pengujian ini dilakukan kepada pengguna

4.2.2 Analisis Pengujian Efisiensi Interaksi

dalam rentang usia 19 s.d 23 tahun dengan jumlah Pada gambar 10 dapat dilihat data total 50 orang pengguna. kemunculan case U3 dalam 50 kali interaksi selama proses pengujian dilakukan.

4.2 Hasil Pengujian

4.2.1 Analisis Pengujian Akurasi Oleh Expert

Setelah dilakukan pengujian dengan dua Kemunculan Case U3 Pada Skema orang expert, didapatkan nilai MAE dari masing-

Random

maing jumlah produk dengan menggunakan persamaan 9.

1. Hasil pengujian dengan expert pertama, yaitu

Toufan D Tambunan.

Tabel 1 Hasil pengujian expert pertama

1 2 3 4 5 6 7 8 9 10 Gambar 2 Grafik kemunculan U3 dalam 10 kali interaksi

8 7 8 1 2 6 4 3 5 3.25 Pada gambar 11 dapat dilihat bahwa masih

10 5 2 8 3 4 1 10 7 9 6 2.4 menunjukkan bahwa learning yang dilakukan masih

2. Hasil pengujian dengan expert kedua, yaitu belum baik sehingga interaksi yang terjadi juga jadi Pramuko Aji.

kurang efisien. Kemungkinan ini terjadi karena

probabilitas untuk proses eksplorasi seperti yang

Tabel 2 Hasil pengujian dengan expert kedua

dijelasakan pada persamaan 3 masih terlalu besar

Jumlah

Ranking

MAE untuk memunculkan pertanyaan-pertanyaan yang

Produk

belum optimal masih dilakukan. Namun kemunculan

dibanding dengan random. Case U3 pada hali learning

paling banyak hanya muncul 2 kali dalam satu kali

interaksi, berbeda dengan pada saat random yang kemunculan U3 mencapai 4 kali dalam satu kali

Dari kedua hasil pengujian pada tabel 1-2 didapat

interaksi.

rata-rata dari MAE untuk setiap jumlah produk adalah seperti yang ditunjukkan pada tabel 3.

Tabel 3 Rata-rata MAE

Jumlah Produk

MAE

Learning

2.5 Sistem Dapat Memandu

1.5 Sangat Memandu Dengan Baik Bisa Memandu Dengan Baik

Cukup Bisa Memandu

Kurang Bisa Memandu

0 Tidak Sama Sekali

Gambar 3 Grafik kemunculan U3 dalam 42 kali interaksi

pada skema pembangkitan pertanyaan hasil learning

Gambar 5 Grafik kepuasan pengguna terhadap kemampuan

Dalam proses pembelajaran pertanyaan yang

system dalam memandu pengguna

optimal dengan menggunakan metode ini memang

memerlukan pengujian yang cukup lama atau

3. Kemampuan system dalam membantu dengan data uji yang banyak sampai nilai

mempercepat pengambilan keputusan probabilitas eksplorasinya konvergen ke nol.

Dari segi waktu, 30% pengguna menyatakan Sehingga yang tersisa nantinya hanya proses

sangat terbantu dalam mempercepat pengambilan eksploitasi saja terhadap pengetahuan yang sudah

keputusan, sehingga waktu mereka dapat digunakan didapat, yakni pengetahuan tentang pertanyaan-

secara efisien. Sebanyak 48% merasa terbantu, 18% pertanyaan

merasa cukup terbantu, dan sisanya ada yang merasa berdasarkan hasil pembelajaran.

yang

benar-benar sudah

optimal

kurang terbantu dan ada yang merasa tidak terbantu sama sekali. Selengkapnya dapat dilihat pada

4.2.3 Analisis Pengujian Kepuasan Pengguna

gambar 14.

Berdasarkan hasil pengujian kepuasan

terhadap pengguna, diperoleh hasil sebagai berikut:

1. Metode tanya jawab yang digunakan Membantu Mempercepat Keputusan Sebanyak 60% pengguna menyatakan bahwa

Sangat Membantu metode tanya jawab yang digunakan memudahkan, 18% menyatakan sangat memudahkan, 18% cukup Membantu dan 4% sisanya menyatakan kurang memudahkan. Cukup Membantu

Kurang Membantu

Ini menunjukkan bahwa secara keseluruhan metode

Tidak Sama Sekali

tanya jawab yang digunakan sudah baik. Detailnya dapat dilihat pada gambar 12. 0 5 10 15 20 25 30

Gambar 6 Grafik kepuasan pengguna terhadap kemampuan Metode Tanya Jawab system dalam membantu mempercepat keputusan

Sangat Memudahkan 4. Explanation

Sebagian besar pengguna merasa terbantu

Memudahkan

dengan adanya penjelasan (explanation) mengenai

Cukup Memudahkan

produk yang direkomendasikan, yakni sebanyak

Kurang Memudahkan

52%. Sebanyak 28% merasa sangat terbantu, 18% Tidak Sama Sekali merasa cukup dan hanya 2% saja yang tidak merasa

0 10 20 30 40 terbantu.

Gambar 4 Grafik kepuasan pengguna terhadap metode tanya

Explanation

jawab yang digunakan

Sangat Membantu

2. Kemampuan system dalam memandu pengguna

Membantu

Sebanyak 52% pengguna menyatakan system

yang dibuat bisa memandu pengguna dengan baik

Cukup Membantu

selama proses rekomendasi. Sebanyak 32% lainnya

Kurang Membantu

Tidak Sama Sekali

juga menyatakan bahwa system sangat bisa memandu mereka dalam mencari produk yang

0 5 10 15 20 25 30 mereka inginkan. Hanya 14% saja yang menyatakan

Gambar 7 Grafik kepuasan pengguna terhadap explanation yang disediakan oleh sistem

Ini menandakan

(explanation) cukup dibutuhkan oleh pengguna, Untuk penelitian kedepannya, proses learning terutama bagi mereka yang memang belum tau lebih

pertanyaan kebutuhan fungsional bisa dicoba jauh terhadap produk yang direkomendasikan,

dikombinasikan dengan relasi semantik yang terdapat pada produk, sehingga pertanyaan

sehingga memerlukan adanya penjelasan terhadap kebutuhan fungsional yang diajukan hanya yang produk tersebut. berelasi dengan produk yang yang diinginkan saja.

5. Kesesuaian Pertanyaan

Daftar Pustaka

Sebagian besar pengguna menyatakan bahwa [1] Barakbah, A. R. (n.d.). Reinforcement Learning pertanyaan mengenai kebutuhan fungsional yang

diajukan system sudah sesuai dengan kebutuhan Paradigma baru dalam Machine Learning. Soft Computation Research Group, EEPIS-ITS.

pengguna pada saat itu. Namun, meski begitu ada juga yang menyatakan bahwa pertanyaan yang diajukan

[2] Chen, L., & Pu, P. (2012). Preference-based kurang sesuai dengan kebutuhannya

Organization Interfaces: Aiding User Critiques bahkan ada yang menyatakan tidak sesuai sama

Recommender Systems . Lausanne, sekali. Hal ini dikarenakan proses learning yang

in

Switzerland: EPFL.

memang belum baik sehingga masih ada pertanyaan [3] Gosavi, A. (2013). A Tutorial for Reinforcement yang seharusnya tidak diajukan kepada pengguna

Learning. Rolla: Department of Engineering tetap diajukan, sehingga terjadi ketidakcocokan.

Management and Systems Engineering Missouri Lebih detailnya dapat dilihat pada gambar 16, yakni

University of Science and Technology. sebanyak 14% merasa sangat sesuai, 66% sudah

[4] HERLOCKER, J. L., KONSTAN, J. A., sesuai, 14% merasa cukup, 4% merasa kurang

TERVEEN, L. G., & RIEDL, J. T. (2004). sesuai, dan 2% sisanya merasa tidak sesuai sama

Evaluating

Collaborative Filtering Recommender Systems. ACM Transactions on

sekali. Information Systems (pp. 5-53). New York, USA: ACM, Inc.

Kesesuaian Pertanyaan [5] Jannach, D., Zanker, M., Relfenig, A., & Friedrich, G. (2012). Recommender System - An

Introduction. New York: Cambridge University

Sangat Sesuai

Press. Cukup [6] Mirzadeh, N., Ricci, F., & Bansal, M. (n.d.).

Sudah Sesuai

Feature Selection Methods for Conversational

Kurang Sesuai

Recommender System. Tidak Sesuai [7] Ricci, F., Rokach, L., Shapira, B., & Kantor, P.

0 10 20 30 40 B. (2011). Recommender System Handbook. New York, USA: Springer Science+Business Media, LLC.

Gambar 8 Grafik kepuasan pengguna terhadap kesesuaian pertanyaan tentang kebutuhan fungsional

[8] Sutton, R. S., & Barto, A. G. (2005).

Reinforcement Learning: An Introduction. Cambridge, Massachusetts, London, England:

5. Penutup

5.1 Kesimpulan

The MIT Press.

Explanations of kurang 50 orang pengguna, masih belum dapat

Berdasarkan hasil pengujian terhadap lebih

Recommendations . Minneapolis, Minnesota, terlihat efisiensi interaksi yang terjadi. Ini

USA: ACM. dikarenakan nilai probabilitas epsilon greedy [10] Tintatev, N., & Masthoff , J. (2007). Effective

untuk proses eksplorasi masih cukup besar atau

Recommendations: User- masih belum mendekati nol. Sehingga

Explanations of

Centered Design. Minneapolis, Minnesota, conversational recommender system yang dibuat

USA: ACM. [11] Widyantoro, D. H., & Baizal, Z. (2014). A

masih memberikan pertanyaan-pertanyaan yang belum optimal yang berakibat pada kurang

Framework of Conversational Recommender System based on User Functional Requirement.

efisiennya interaksi yang terjadi. Berdasarkan hasil pengujian juga dapat

International Conference on Information and Communication Technology

(pp. 160-165). dilihat, akurasi perankingan pada saat rekomendasi

produk yang paling baik adalah dengan jumlah IEEE Conference Publications. produk 5 dibandingkan dengan jumlah produk 8 dan

10. Ini dikarenakan, semakin sedikitnya produk yang ditampilkan, semakin kecil kemungkinan kesalahan dalam melakukan perankingan.

15