Phương pháp thực nghiệm 49 

Một phần của tài liệu luận văn: nghiên cứu hệ thống khuyến nghị người dùng dựa vào lọc cộng tác (Trang 51)

3.2.1. Môi trường thực nghiệm

Tôi tiến hành thực nghiệm dựa trên các cơ sở sau: 

 Cấu hình máy: Chip Intel(R) Core i3, Ram 2GB, 32-bit 

 Ngôn ngữ lập trình: Python 

 Phần mềm hỗ trợ: Python 2.7.8 và Pycharm 3.4.1, cmd trên Windows 7 

 Tập  dữ  liệu  sử  dụng  để  thực  nghiệm:  Movielens  gói  dữ  liệu  100.000  đánh  giá  được đánh giá bởi 1000 người dùng với 1700 bộ phim. 

 Các phương pháp, thuật toán để tiến hành thực nghiệm và đánh giá:  Manhattan ,  Euclidean, Pearson, Cosine, K-nearest neighbor và thuật toán SGD. 

3.2.2. Phương pháp tiến hành thực nghiệm

  Để có thể tiến hành so sánh các phương pháp thì tôi dựa vào bộ dữ liệu 100.000  đánh  giá  của Movielens  để  thực  nghiệm.  Tôi  tiến  hành  thực  nghiệm  các  bước  sau  với  mỗi phương pháp và thuật toán được nghiên cứu và trình bày trong luận văn như mục  đích  thực nghiệm đã  nêu: đầu  tiên, tôi  sử  dụng tập  u1.test  làm tập dữ  liệu  kiểm  tra  và  u1.base làm tập dữ liệu huấn luyện để tiến hành thực nghiệm: dự đoán các đánh giá rx  của người dùng dựa vào tập dữ liệu huấn luyện u1.base. Như vậy, với mỗi người dùng  ui sẽ có hai giá trị là: dự đoán đánh giá rx và đánh giá thực tế rij. Chúng tôi sử dụng hàm  sai số RMSE để tiến hành tính giá trị sai số của những dự đoán so với những giá trị thực  tế rij. Sau khi thực nghiệm với tập dữ liệu u1.test tôi thu được giá trị RMSE1. Để kết quả  thực nghiệm đạt hiệu quả tôi tiến hành việc kiểm thử lặp đi lặp lại nhiều lần bằng cách:  chọn tập dữ liệu kiểm tra khác nhau để tiến hành thực nghiệm dựa trên các phương pháp  đã nêu .Tôi tiến hành tương tự với các bộ tập dữ liệu ui.test và ui.base tôi thu được các  giá trị RMSEi (với i=2..5) 

  Như  vậy,  với  mỗi  phương  pháp  tôi  sẽ  thu  được  các  giá  trị  RMSEi  (với  i=1..5)  tương ứng sau 5 lần thử nghiệm. Từ đây, tôi tìm được sai số trung bình của mỗi phương  pháp theo công thức tính RMSEtb. 

Đối với mỗi phương pháp sẽ tìm ra được một giá trị RMSEtb tương ứng, tôi sẽ so  sánh mức độ hiệu quả của các phương pháp dựa vào các giá trị RMSEtb, giá trị RMSEtb 

 

3.3. So sánh và đánh giá kết quả thực nghiệm 3.3.1. Kết quả thực nghiệm 3.3.1. Kết quả thực nghiệm

  Sau  khi  tiến  hành  thực  nghiệm  trên  5  tập  dữ  liệu  kiểm  tra  khác  nhau  bằng  các  phương  pháp  lần  lượt  là:  Manhattan  ,  Euclidean,  Pearson,  Cosine,  K-nearest  neighbor  và thuật toán SGD thì tôi thu được kết quả sai số bình phương RMSE với từng tập dữ  liệu kiểm tra và RMSEtb của 5 lần kiểm thử của từng phương pháp thể hiện ở bảng 3.2  sau:    Phương pháp Tập dữ liệu test RMSETB Tập số 1 Tập số 2 Tập số 3 Tập số 4 Tập số 5 Manhattan 1.861018  1.675538  1.612171  1.849643  1.927305  1.785135  Euclidean 2.070323  1.952278  1.838074  1.933170  1.991735  1.957116  Pearson 1.368335  1.353072  1.349650  1.347620  1.352212  1.354178  Cosine 1.382027  1.291765  1.306816  1.388582  1.386989  1.351236  K-nearest neighbor 1.338633  1.354632  1.339307  1.296286  1.322525  1.330277  Thuật toán SGD 1.19697  0.81295  1.26116  0.9704  0.94966  1.038228 

Bảng 3.2: Giá trị RMSE và RMSEtb thực nghiệm trên tập dữ liệu Movielens

Biểu đồ biểu thị các giá trị RMSE của từng phương pháp được kiểm thử trên 5 tập dữ  liệu kiểm tra khác nhau và các tập dữ liệu huấn luyện khác nhau. 

 

Biểu đồ 3.1: RMSE sau 5 lần thực nghiệm với tập dữ liệu Movielens

Biểu đồ biểu thị các giá trị RMSEtb của các phương pháp và thuật toán đã nêu. 

 

 

3.3.2. So sánh và đánh giá

Từ  các  số  liệu và  kết quả  thực  nghiệm  đã  được  đưa  ra  ở  trên,  ta có  thể  đưa ra một số  nhận định sau: 

3.3.2.1. Các phương pháp cơ sở

Tính hiệu quả:  Đối  với  các  phương  pháp  cơ  bản  thì  ta  thấy  K-nearest  neighbor 

cho  kết  quả  RMSEtb  nhỏ  nhất,  từ  những  nghiêm  cứu  và  tìm  hiểu  cho  đến  việc  phân tích các giá trị sau thực nghiệm ta có thể thấy được phương pháp K-nearest  neighbor bên cạnh việc kế thừa những ưu điểm của các phương pháp trước trong vấn  đề lọc cộng tác mà còn khác phục những hạn chế của lọc cộng tác dựa trên người dùng. 

Tính ổn định: Tập dữ liệu của Movielens tôi sử dụng để thực nghiệm có đặc điểm 

là  thưa  thớt  và  người  dùng  có  những  hành  vi  khác  nhau. Căn cứ vào các kết quả  kiểm thử các thuật toán lọc cộng tác ở bảng 1 thì mỗi cách tiếp cận bằng phương pháp  khác nhau cho ra những kết quả đo lường khác nhau, thử nghiệm trên các tập dữ liệu  kiểm tra khác nhau cũng cho ra các giá trị sai số RMSE khác nhau. Tuy nhiên ta  có thể thấy được qua biểu đồ 1 thì các phương pháp Pearson, Cosine và KNN có  tính  ổn  định  hơn  hai  phương  pháp  Manhattan  và  Euclidean.  Nghĩa  là  dù  tiến  hành trên các tập dữ liệu kiểm tra và huấn luyện khác nhau nhưng sai số RMSE  của các phương pháp Pearson, Cosine và KNN thì nhỏ hơn đáng kể. Kết quả thu  được  như  trên  vì  lý  do  như  đã  nghiên  cứu  và  trình  bày  trong  chương  2  hai  phương pháp Pearson, Cosine đạt hiệu quả khi sử dụng với tập dữ liệu thưa thớt  hoặc  có  những  hành  vi  khác  nhau  trong  việc  đánh  giá  sản  phẩm  vì  thế  trong  trường  hợp  này  2  phương  pháp  này  đạt  hiệu  quả  hơn  so  với  phương  pháp  Manhattan và Euclidean chỉ phù hợp khi tập dữ liệu là dày đặc.  3.3.2.2. Thuật toán SGD   Qua quan sát ở bảng 3.2, biểu đồ 3.1 và biểu đồ 3.2 thì ta có thể thấy kết quả sai  số bình phương trung bình RMSE của các phương pháp thì có thể thấy thuật toán SGD  đạt được hiệu quả vượt trội và tối ưu hơn nhiều so với các phương pháp khác. Bên cạnh  đó, các phương pháp cơ bản đã được trình bày ở chương 2 chỉ quan tâm đến hai yếu tố  người dùng và sản phẩm, còn phương pháp nhân tố tiềm ẩn hay cụ thể hơn là thuật toán  SGD quan tâm chi tiết hơn rất nhiều cụ thể là đến từng nhân tố như: thể loại, đạo diễn,  diễn viên… đi sâu vào các đặc tính của người dùng và sản phẩm. 

 

Ngoài  ra,  do  SGD  chỉ  sử  dụng  một  số  mẫu  dữ  liệu  huấn  luyến  chứ  không  phải 

truy  cập  toàn  bộ  dữ  liệu  huấn  luyện,  hơn  nữa  trọng  số  θ  được  cập  nhật  ngay  từ  mẫu 

huấn luyện đầu tiên nên thuật toán SGD mang lại hiệu quả về thời gian đáng kể so với  các phương pháp khác. Bên cạnh đó, độ tiệm cận về 0 nhanh, mang lại giá trị xấp xỉ gần  nhất  tối  ưu  và  ngẫu  nhiên  (phụ  thuộc  vào  mẫu  huấn  luyện  lựa  chọn).  Từ  đó  cải  thiện  hiệu quả tối đa của hệ thống khuyến nghị và đưa ra các khuyến nghị hữu ích cho người  sử dụng. 

 

KẾT LUẬN

 

1. Kết quả đạt được:

 Nghiên  cứu  tổng  quát  về  hệ  thống  khuyến  nghị:  các  kỹ  thuật  lọc  cho  hệ  thống  khuyến nghị, luận văn nghiên cứu tập trung về kỹ thuật lọc cộng tác. 

 Trình  bày  nghiên  cứu  về  các  phương  pháp  cơ  bản  để  tìm  kiếm  một  hoặc  một  nhóm người dùng gần nhất:  

+ Phương pháp cơ bản: Manhattan, Euclidean, Pearson, Cosine 

+ Phương  pháp  cải  tiến  lọc  cộng  tác:  K-nearest  neighbor  dựa  vào  người  dùng và K-nearest neighbor dựa vào sản phẩm   Luận văn trình bày về mô hình nhân tố tiềm ẩn với phương pháp ma trận thừa số,  cụ thể hơn là thuật toán SGD (Stochastic gradient descent) mục đích để cực tiểu  hóa hàm sai số, áp dụng đạt hiệu quả khi tập dữ liệu huấn luyện lớn, tối ưu thời  gian và đạt hiệu quả cao trong các hệ thống khuyến nghị.   Sau đó, chúng tôi tiến hành thực nghiệm trên tập dữ liệu Movielens gói dữ liệu  100.000 đánh giá được đánh giá bởi 1000 người dùng với 1700 bộ phim.   Cuối cùng, chúng tôi sẽ phân tích, so sánh và đánh giá tính hiệu quả từng phương  pháp và thuật toán đã được trình bày dựa trên kết quả thực nghiệm. 

2. Hướng nghiên cứu tiếp theo của luận văn

  Hướng nghiên cứu tiếp theo sẽ tập trung vào việc kết hợp giữa kỹ thuật lọc cộng  tác và kỹ thuật lọc dựa vào nội dung, sau đó tiến hành kiểm nghiệm hiệu quả. Đây cũng  là chủ đề mang tính thời sự cao của cộng đồng nghiên cứu về lọc thông tin 

 

TÀI LIỆU THAM KHẢO

[1]. Ron  zacharski,  A programmer’s Guide to Data Mining, The Ancient Art of the

Numerati, 2012 

[2]. Zheng Wen, Recommendation System Based on Collaborative Filtering, 2008 

[3]. Yehuda  Koren,  Robert  Bell  and  Chris  Volinsky,  Matrix factorization techniques

for recommender system, IEEE Computer, 2009

[4]. Badrul  Sarwar,  George  Karypis,  Joseph  Konstan,  and  John  Riedl, Item-Based

Collaborative Filtering Recommendation Algorithms,  University  of  Minnesota, 

Minneapolis, MN 55455 

[5]. Léon Bottou, Stochastic Gradient Descent Tricks, Microsoft Research, Redmond, 

WA,2012 

[6]. Shameem  Ahamed  Puthiya  Parambath, Matrix Factorization Methods for

Recommender Systems, Master's Thesis in Computing Science, 2013.

[7]. Francesco  Ricci,  Lior  Rokach,  Bracha  Shapira,  Paul  B.  Kantor,  Recommender

Systems Handbook, Springer, 2011. 

[8]. Xiaoyuan  Su,  Taghi  M.  Khoshgoftaar,  A Survey of Collaborative Filtering

Techniques,Department of Computer Science and Engineering,  Florida  Atlantic 

University, 2009. 

[9]. Michael  D.Ekstrand,  John  T.  Riedl,  Joseph  A.  Konstan,  Collaborative Filtering

Recommender Systems, University of Minnesota, 2011 

[10].Francesco  Ricci,  Lior  Rokach,  Bracha  Shapira,  Paul  B.  Kantor,  Recommender

Systems Handbook, Springer, 2011. 

[11].Michael  D.Ekstrand,  John  T.  Riedl,  Joseph  A.  Konstan,  Collaborative Filtering

Recommender Systems, University of Minnesota, 2011 

[12].T.  Hofmann,  Latent Semantic Models for Collaborative Filtering,  ACM  Trans. 

Inf.Syst., 22(1):89-115, 2004.  [13].http://www.amazon.com  [14].https://www.netflix.com  [15].https://movielens.umn.edu 

[16].https://lists.cc.gatech.edu/pipermail/mlpack/2013-April/000077.html 

[17].Jonathan  L.  Herlcocker,  Joseph  A.  Konstan,  Loren  G.  Terveen,  and  John  T.  Riedl, 

Evaluating Collaborative Filtering Recommender Systems, Oregon  State  University  and 

Một phần của tài liệu luận văn: nghiên cứu hệ thống khuyến nghị người dùng dựa vào lọc cộng tác (Trang 51)

Tải bản đầy đủ (PDF)

(57 trang)