Thuật toán gradient descent ngẫu nhiên 37 

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 39)

  Stochastic gradient descent (SGD) [5] là một thuật toán đơn giản, mà liên tục thực  hiện các bước giảm nhỏ trên bề mặt sai số được xác định bởi một hàm tổn thất với một  vài tham số. Thuật toán này đạt hiệu quả cao khi tập dữ liệu huấn luyện lớn do đó SGD  được áp dụng thành công với quy mô lớn và các vấn đề học máy thưa thớt thường gặp  phải trong xếp hạng văn bản và xử lý ngôn ngữ tự nhiên, thuật toán SGD dễ dàng mở  rộng cho các trường hợp lớn hơn 105 mẫu huấn luyện và hơn 105 tính năng. 

a. Bài toán:   Cho ma trận đầu vào với dữ liệu thưa là RN*M (với i=1..N, j=1..M). và ma trận Wi  và ma trận Hj là hai ma trận thừa số của ma trận R.  Bài toán đặt ra là tìm ma trận W và H sao cho::  * * * N M N K K M RW H   Tương đương với:   ij i j rw h   (wi là vector nhân tố của người dùng i, hj là vector nhân tố của sản phẩm j)  Trong đó: với K là một trọng số bất kỳ và K <M,N  Ma trận WN*K là một hàng nhân tố của người dùng của ma trận R.  Ma trận HK*M là một cột nhân tố của sản phẩm của ma trận R 

  Giá trị bị mất mát được ký hiệu là: Lij(Wi*, H*j)  thể hiện sự tổn thất giá trị tại (i,j) và  được tính bằng công thức sau:     2 2 * ij i ,   *j   ij i j L W Hrw h   Hàm sai số trung bình (hay là mất mát trung bình) là:    2 ij i* *j (i, j) Z 1 W, (W , H ) L H L n      Mục tiêu bài toán là giá trị trung bình của hàm tổn thất càng nhỏ thì tính hiệu quả của  mô hình được đánh giá cao và ngược lại. Tức là tìm:   ij i* *j W , (i, j) Z arg min (W , H ) H L     b. Giải quyết vấn đề:    Mục tiêu của thuật toán SGD là giá trị tối thiểu θ*∈Rk  (với k ≥ 1) để tối thiểu 

hàm  sai  số  L(θ),  với  giá  trị  khởi  tạo  ban  đầu  là  θ0  ,  SGD  cập  nhật  các  hàm  xấp  xỉ  gradient Lˆ 0  hay chính là giá trị có nhiễu của L’(θ0), sau đó SGD sẽ điều chỉnh tham  số bằng việc lặp lại công thức cập nhật ngẫu nhiên: 

 

Trong đó: L(θ) là sai số tổng cộng của tất cả n phần tử so với ma trận W, H trong ma 

trận thừa số. 

n là kí hiệu số thứ tự của bước cập nhật 

{ɛn}  là  một  chuỗi  giảm  dần  xác  định  lượng  cập  nhật  (giá  trị  chuỗi  cập  nhật  là  không âm và hữu hạn) 

 n

L  là hướng giảm có độ dốc lớn nhất và  ˆ  

n

L   là giá trị có nhiễu của nó  Quá  trình  hoạt động của thuật  toán SGD khi  tham  số θ  nằm  trong  không  gian  2 chiều  được mô phỏng như sau: 

  Bước 1: Tìm giá trị tối thiểu θ*    Bước 2: khởi tạo giá trị ban đầu θ0    Bước 3:  

      Với mũi tên đỏ biểu thị định hướng của L 0  và mũi tên xanh biểu thị định hướng của   0 ˆ L       

  Lý  thuyết  xấp  xỉ  ngẫu  nhiên  chứng  tỏ  rằng  với  một  số  điều  kiện  rằng  buộc  thì  nhiễu trong xấp xỉ gradient sẽ triệt tiêu và SGD sẽ hội tụ đến một tập các điểm bất động  thỏa mãn L  = 0, tất nhiên các điểm bất động này có thể là cực tiểu, cực đại, hay là  các điểm yên ngựa và thường thì chúng sẽ hội tụ tại một điểm cực tiểu do tính có nhiễu  của bài toán. Tuy nhiên SGD chỉ là tìm ra một điểm cực tiểu mà không chắc đó là toàn 

 

cục  nên  có nhiều phương  pháp được  dùng  để  năng cao  khả năng  tìm  ra điểm  này  như  chạy thuật toán SGD nhiều lần và mỗi lần xuất phát tại một điểm lấy ngẫu nhiên nào đó.  2.4.4.3. Thuật toán SGD dùng cho phân tích ma trận (ma trận thừa số) 

  Để áp dụng thuật toán SGD cho bài toán phân tích ma trận, ta xác định tập θ =  (W,H), khi đó ta phân tích hàm sai số như sau:   ij * * (i, j) ( ) (W ,i j) z LL H      Trong đó:  tập dữ liệu huấn luyện Z  

Hàm  sai  số  Lij  là  sai  số  của  1  giá  trị  phần  tử  rij∈R  với  tích  của  2  vector  thành  phần wi và hj  Wi* là vector hàng thứ i của ma trận W  H*j là vector cột thứ j của ma trận H  Như vậy tổng sai số là:  ij * * (i, j) ( ) (W ,i j) z LL H        Ta ước lượng xấp xỉ gradient như sau: với N=|Z| và điểm huấn luyện z được chọn ngẫu  nhiên từ tập dữ liệu huấn luyện, ta có:  i j * * ˆ ( , z) (W , ) z z i j L   NLH  

Các giai đoạn thực hiện thuật toán SGD:

  Đầu tiên tôi chọn ngẫu nhiên mẫu dữ liệu huấn luyện z∈Z (Z là tập dữ liệu huấn  luyện  ).  Sau  khi  đã  chọn  được  mẫu  dữ  liệu  huấn  luyện  để  tiến  hành  thực  nghiệm  với  thuật toán SGD trên nó ta tính gradient xấp xỉ Lˆ0,z là giá trị có nhiễu củaL0, z,  từ đó ta cập nhật các tham số ɛn và Lˆ0,z để tính giá trị θ1: 

 

 

1 0 0Lˆ 0,z

      

  Để  tìm  được  tối  thiểu  hàm  sai  số L   thì  sẽ  thực  hiện  lặp  lại  n  lần  các  bước  trên, qua n lần cập nhật giá trị θn+1 là:    1 ˆ , n n nL n z           Thuật toán SGD thay vì truy cập toàn bộ tập dữ liệu huấn luyện thì sẽ truy cập dữ  liệu ngẫu nhiên (nghĩa là sẽ chọn một mẫu dữ liệu huấn luyện ngẫu nhiên) để thực hiện  thuật toán. Và giá trị trọng số θ được cập nhật ngay từ mẫu dữ liệu huấn luyện đầu tiên  thay vì toàn bộ bộ dữ liệu huấn luyện. Điều đó, giúp giảm thiểu thời gian thực hiện một  cách đáng kể. Ngoài ra do thuật toán SGD chỉ chọn một hoặc  một  số mẫu huấn luyện  thay vì sử dụng toàn bộ tập dữ liệu huấn luyện nên được sử dụng hiệu quả trong trường  hợp tập dữ liệu huấn luyện lớn.    Sự hội tụ của thuật toán Stochastic gradient descent đã được phân tích bằng cách  sử  dụng  các  lý  thuyết  về  tối  ưu  hóa  Convex (lồi)  và xấp  xỉ  ngẫu  nhiên . Khi  giá  trị  θ  giảm với một tỷ lệ thích hợp, và tùy thuộc vào các giả định, ngẫu nhiên gradient descent  hội tụ gần như chắc chắn đến mức tối thiểu địa phương.  

  Hình ảnh sau đây sẽ cho thấy được tính hiệu quả của thuật toán SGD so với một  số thuật toán khác như ALS và LBFGS được thử nghiệm trên tập dữ liệu của Netflix: 

 

 

  Thuật  toán  Stochastic  gradient  descent  (SGD)  là  thuật  toán  phổ  biến  cho  các  nghiên cứu một loạt các mô hình trong học máy: máy vector hỗ trợ, hồi quy logistic và  mô  hình  đồ  họa.  Thuật  toán  SGD  được  sử  dụng  rộng  rãi,  kết  hợp  với  thuật  toán  lan  truyền ngược thì SGD là thuật toán nghiên cứu tiêu chuẩn về mạng nơron nhân tạo.  2.4.4.4. So sánh giữa thuật toán GD và SGD

   GD  SGD 

Mẫu huấn luyện 

Truy  cập  đến  toàn  bô  bộ  dữ  liệu  huấn  luyện đầy đủ 

Chỉ  sử  dụng  một  hoặc  một  số  mẫu  huấn  luyện  lựa  chọn  ngẫu  nhiên  trong  bộ  dữ liệu huấn luyện 

Trọng số  Cập nhật qua bộ huấn luyện đầy đủ  Cập  nhật  ngay  từ  mẫu  đầu  tiên 

Thời gian  Đối vơi tập dữ liệu huấn luyện lớn sẽ mất  nhiều thời  gian  do  mỗi  lần  lặp  lại  khi  cập  nhật các giá trị trọng số phải chạy qua tập  dữ liệu huấn huyện đầy đủ 

Giảm  thời  gian  đáng  kể  vì  trọng  số  được  cập  nhật  ngay  từ  mẫu  huấn  luyện  đầu tiên. 

Hội tụ  Hội tụ chậm hơn  Nhanh hơn nhiều 

Xấp xỉ gần nhất 

Xác  định  do  truy  cập  toàn  bộ  tập  dữ  liệu  huấn luyện trong cùng một số lần lặp lại 

Tối  ưu  và  ngẫu  nhiên  theo  từng  mẫu  huấn  luyện  khác  nhau 

Bảng 2.6: So sánh giữa GD và SGD Nhận xét:

  Qua  quá  trình  nghiên  cứu  thì  có  thể  nhận  xét  về  ưu  điểm  và  nhược  điêm  của  thuật toán  SGD  như  sau:  Đối với  ưu điểm  như  đã  phân tích  ở  trên: SGD đạt hiệu  quả  khi sử dụng với tập dữ liệu huấn luyện lớn, với dữ liệu là thưa thớt, ngoài ra thuật toán  SGD  dễ  dàng  để  thực hiện,  đạt  hiệu  quả  cao  trong  vấn  đề  tối  thiểu  hàm  sai  số  đưa  ra  những khuyến nghị hữu ích phù hợp với quan điểm người sử dụng... Bên cạnh những ưu  điểm  thì  SGD cũng  có  những  nhược  điểm  là SGD  đòi  hỏi một  số  siêu  tham  số  như là  các tham số chính quy và số lần lặp lại và thuật toán SGD khó khăn khi dùng một cách  trực tiếp cho bài toán phân tích ma trận có kích thước lớn và rất lớn như một số dữ liệu 

 

dùng cho môi trường Web. Mặc dù, thuật toán SGD đã giảm thiểu được thời gian thực  hiện rất đáng kể nhưng chưa đạt mức tối ưu hóa thời gian thực hiện. 

2.5. Tiêu chuẩn đánh giá

2.5.1. Mean absolute error (MAE)

  Trong  lý  thuyết  thống  kê,  các sai  số  tuyệt  đối  trung  bình  (MAE)  [4] là  một  đại  lượng dùng để đo lường giá trị dự đoán với kết quả thực tế. MAE đo lường chính xác  cho các biến liên tục. MAE là tuyến tính nghĩa là tất cả các giá trị khác biệt có trọng số  bình đẳng trong giá trị trung bình. Tính toán của MAE là tương đối đơn giản, nó tổng  hợp  các  giá  trị  tuyệt  đối  của  lỗi  để  có  được  “tổng  lỗi”,  sau  đó  chia  cho  tổng  số  lỗi  n.  Như vậy, sai số tuyệt đối trung bình được định nghĩa bằng công thức sau:  1 1 ˆ n ij ij i MAE r r n    

Trong đó: rij là đánh giá thực tế của người dùng ui  cho sản phẩm pj và rˆij là đánh giá do  hệ thống dự đoán của người dùng ui  cho sản phẩm pj, n số lần dự đoán. 

2.5.2. Root mean square error (RMSE)

  Khi dự đoán đánh giá của người dùng ui đối với item pj thì việc xảy ra sai số so  với thực tế đánh giá của user ui đối với item pj là không tránh khỏi. Root Mean Square  Error (RMSE) [2] là một biện pháp thường được sử dụng trong sự trường hợp khác biệt  giữa các giá trị dự đoán của một mô hình và các giá trị thực sự quan sát từ môi trường  đang được mô hình hóa. Những khác biệt đó còn được gọi là phần dư, và RMSE nhằm  mục đích  để tổng hợp tất cả các phần dư  thành một thước đo duy nhất của khả năng dự  đoán của hệ thống khuyến nghị cho người dùng. 

  Các  RMSE  của  một  mô  hình dự  đoán định  nghĩa  là  căn  bậc  hai của  trung  bình  bình phương lỗi:        2 , ˆ ( ) test um um u m S test r r RMSE S    

 

Trong đó: (u,m)Stest là người dùng u đánh giá sản phẩm m thuộc tập dữ liệu kiểm tra.  Stest=n là số lần tiến hành kiểm tra. 

rum là đánh giá thực tế của người dùng u với sản phẩm m 

ˆum

r là  đánh  giá  dự  đoán  của  người  dùng  u  với  sản  phẩm  m  do  hệ  thống  khuyến  nghị dự đoán 

  Ta  có  thể  thấy  giá  trị  của  RMSE  càng  nhỏ  thì  mức  độ  hiệu  quả  của  hệ  thống  khuyến nghị cụ thể hơn là thuật toán được sử dụng càng cao. Do tầm quan trọng của hệ  thống  khuyến  nghị  trong  việc  cải  thiện  chất  lượng  dịch  vụ,  với  mục  tiêu  nhằm  giảm  thiểu sai số bình phương trung bình Netflix đã bắt đầu một cuộc thi với giải thưởng lớn  để thu hút các nhà nghiên cứu trên toàn thế giới để làm việc về vấn đề này. Hiện nay,  nhiều nhà nghiên cứu, bao gồm nhiều chuyên gia đang tập trung vào vấn đề này và đã  có những tiến bộ lớn.     MAE và RMSE có thể được sử dụng cùng nhau để chuẩn đoán sự thay đổi trong  các lỗi trong một tập dữ liệu các đánh giá. Cả MAE và RMSE đều có thể dao động từ 0  đến  và là những giá trị theo định hướng giảm: giá trị càng nhỏ càng tốt. 

  Trong  luận  văn  này,  chúng  tôi  sử  dụng  phương  pháp  sai  số  bình  phương  trung  bình RMSE để tiến hành thực nghiệm và so sánh với các phương pháp và thuật toán đã  nêu  ở  trên  là:  Khoảng  cách  Manhattan,  Euclidean,  hệ  số  tương  quan  Pearson,  hệ  số  tương tự Cosine, K- nearest neighbor dựa trên sản phẩm và thuật toán SGD. 

 

CHƯƠNG 3: THỰC NGHIỆM VÀ ĐÁNH GIÁ VỚI DỮ LIỆU PHIM ẢNH

  Mục tiêu chính của chương này là chạy thực nghiệm tập dữ liệu  của Movielens  để  so  sánh  và  đánh  giá  mức  độ  hiệu  quả  của từng  phương  pháp  và  thuật toán  đã  trình  bày đối với hệ thống khuyến nghị dựa vào lọc cộng tác. Trong chương 2, chúng tôi đã  giới thiệu các phương pháp tính độ tương tự giữa các người dùng cơ bản là: Manhattan,  Euclidean, Pearson, Cosine, K-nearest neighbor và một phương pháp khác của lọc cộng  tác  nhằm  mục  đích  để  cực tiểu  hóa  hàm  sai  số  là  thuật  toán  SGD  (Stochastic  gradient  descent), chúng tôi sẽ tiến hành thực nghiệm để so sánh và đánh giá hiệu quả giữa các  phương pháp: Manhattan , Euclidean, Pearson, Cosine, K-nearest neighbor dựa vào sản  phẩm và thuật toán SGD. 

3.1. Dữ liệu thực nghiệm. 3.1.1. Tập dữ liệu thực nghiệm. 3.1.1. Tập dữ liệu thực nghiệm.

Để  thực  nghiệm  tôi  sử  dụng  một  trong  các  bộ  dữ  liệu  được  đăng  tải  trên  trang  Movielens  của  nhóm  nghiêm cứu  GroupLens.  GroupLens  là một  nhóm  nghiên  cứu  tại  Khoa  Khoa  học  Máy  tính  và  Kỹ  thuật  của  Đại  học  Minnesota,  chuyên  về  hệ  thống  khuyến nghị, cộng đồng trực tuyến, công nghệ di động, thư viện kỹ thuật số, và các hệ  thống  thông  tin  địa  lý  địa  phương.  Các  thành  viên  của  dự  án  nghiên  cứu  GroupLens  được tham gia vào nhiều dự án nghiên cứu liên quan đến các lĩnh vực lọc thông tin, lọc  cộng  tác,  và  hệ  thống  khuyến  nghị.  Dự  án  được  dẫn  dắt  bởi  giáo  sư  John  Riedl  và  Joseph Konstan. Dự án bắt đầu để khám phá lọc cộng tác tự động vào năm 1992, nhưng  nổi  tiếng  nhất  trên  toàn  thế  giới  cho  thử nghiệm là  một  hệ  thống  lọc cộng  tác  tự động  cho Usenet News năm 1996. Kể từ đó dự án đã mở rộng phạm vi nghiên cứu tổng thể  các giải pháp lọc thông tin, tích hợp trong phương pháp dựa trên nội dung cũng như cải  tiến công nghệ lọc cộng tác hiện tại. 

Movielens  là  một  hệ  thống  khuyến  phổ  biến,  là  một  website  gợi  ý  phim  cho  người dùng xem, dựa trên sở thích phim của họ và sử dụng phương pháp lọc cộng tác,  được nhóm GroupLens tạo ra vào năm 1997. 

Bộ dữ liệu tôi sử dụng của Movielens chứa các dữ liệu đánh giá rõ ràng cho các  phim, có đặc điểm sau:  

 

 Với  100000  đánh  giá  được  thực  hiện  bởi  1000 người  dùng  trên  1700 bộ  phim.  Các phim nhận giá trị đánh giá trong khoảng từ 1 đến 5.  

 Mỗi người sử dụng đã đánh giá ít nhất là 20 phim. 

 Thông tin cá nhân đơn giản cho người sử dụng (tuổi, giới tính, nghề nghiệp, zip  code_mã bưu chính) 

 Các  dữ  liệu  được  thu  thập  thông  qua  các  trang  web  MovieLens  (Movielens.umn.edu) trong khoảng thời gian bảy tháng từ ngày 19 tháng 9 năm  1997  và  được  thông  qua  ngày  22  tháng  04  năm  1998.  Trong  bộ  dữ  liệu  này,  người sử dụng có ít hơn 20 xếp hạng hoặc không có thông tin cá nhân hoàn chỉnh  sẽ bị loại bỏ khỏi bộ dữ liệu. 

3.1.2. Thông tin chi tiết về định dạng của bộ dữ liệu của Movielens[15]

ml-data.tar.gz   - tập tin nén tar. Để xây dựng lại các tập tin dữ liệu u:            gunzip ml-data.tar.gz  

          tar xvf ml-data.tar             mku.sh  

u.data   -  Bộ  u  dữ  liệu  đầy  đủ,  100000  xếp  hạng  của  943  người  dùng  trên  1682  mặt  hàng  Mỗi  người  dùng  có  đánh  giá  ít  nhất  là  20  phim.  Người  sử  dụng  và  các  mặt  hàng  được  đánh  số  liên  tục  từ  1  và  dữ  liệu  được  sắp  xếp  ngẫu  nhiên.  Cấu  trúc  của  1  nhãn riêng biệt:    user id | item id | rating | timestamp  Các dấu thời gian là unix giây kể từ 01/01/1970 theo giờ UTC  u.info  - Số người users, items, and rating trong các u tập dữ liệu  u.item   - Thông tin về các items (movies, một nhãn có dạng:         movie id | movie title | release date | video release date |        IMDb URL | unknown | Action | Adventure | Animation |        Children's | Comedy | Crime | Documentary | Drama | Fantasy | 

        Film-Noir | Horror | Musical | Mystery | Romance | Sci-Fi |        Thriller | War | Western |    movie id là được sử dụng trong tập dữ liệu u.data.   u.genre  - Một danh sách các thể loại phim  u.user  - thông tin cá nhân của user; một nhãn có dạng:  user id | age | gender | occupation | zip code    user id là những người sử dụng trong tập dữ liệu u.data.  u.occupation - Danh sách các ngành nghề.  

u1.base 943 users, 1650 items, 80.000 ratings  - Bộ dữ liệu u.data được tách thành  các bộ ui.base và ui.test (với i=1..5)  để  làm  các  bộ  dữ  liệu  huấn  luyện  và  kiểm  tra  bởi  mku.sh.  Mỗi  u1,  ...,u5 có bộ kiểm tra riêng biệt.  u1.test 459 users, 1410 items, 20.000 ratings  u2.base 943 users, 1648 items, 80.000 ratings  u2.test 653 users, 1420 items, 80.000 ratings  u3.base 943 users, 1650 items, 80.000 ratings  u3.test 869 users, 1423 items, 80.000 ratings  u4.base 943 users, 1660 items, 80.000 ratings  u4.test 923 users, 1394 items, 80.000 ratings  u5.base 943 users, 1650 items, 80.000 ratings  u5.test 927 users, 1407 items, 80.000 ratings 

Bảng 3.1: Định dạng các bộ dữ liệu huấn luyện và kiểm tra của Movielens mku.sh   - Một kịch bản để tạo ra tất cả các dữ liệu từ bộ .data 

 

3.2. Phương pháp thực nghiệm 3.2.1. Môi trường thực nghiệm 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 39)