1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

57 1,5K 6

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 57
Dung lượng 1,11 MB

Nội dung

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 trường đại học quốc gia hà nộiluậ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 trường đại học quốc gia hà nộiluậ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 trường đại học quốc gia hà nội

Trang 1

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

  

 

HÀ NỘI - 2014

Trang 2

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

NGHIÊN CỨU HỆ THỐNG KHUYẾN NGHỊ

NGƯỜI DÙNG DỰA VÀO LỌC CỘNG TÁC

Chuyên ngành:  Kỹ thuật phần mềm  

   LUẬN VĂN THẠC SĨ  CÔNG NGHỆ THÔNG TIN NGƯỜI HƯỚNG DẪN KHOA HỌC: TS NGUYỄN VĂN VINH 

    

 

 

 

HÀ NỘI – 2014

Trang 3

Lời cam đoan

Tôi xin cam đoan luận văn này là công trình nghiên cứu hoàn toàn của bản thân. Trong toàn bộ nội dung của luận văn, những điều được trình bày hoặc là của cá nhân tôi hoặc là được tổng hợp từ nhiều nguồn tài liệu. Tất cả các tài liệu tham khảo đều có xuất 

xứ rõ ràng và được trích dẫn hợp pháp. 

Tôi xin chịu hoàn toàn trách nhiệm và chịu mọi hình thức kỷ luật theo quy định cho lời cam đoan của mình.  

 

Nam Định, ngày 28 tháng 09 năm 2014 

Người cam đoan 

  Phạm Thị My  

Trang 4

Lời cảm ơn

  Đầu tiên, tôi xin chân thành cảm ơn thầy giáo Nguyễn Văn Vinh là cán bộ hướng dẫn khoa học, thầy đã tận tình giúp đỡ và hướng dẫn tôi về cả chuyên môn, nghiên cứu 

và định hướng phát triển trong suốt quá trình làm luận văn. 

  Để hoàn thành luận văn tốt nghiệp là cả một quá trình đầy khó khăn và thử thách trong học tập và nghiên cứu tại trường Đại học Công Nghệ. Và để có được những thành quả như ngày hôm nay, ngoài những nỗ lực của bản thân, không thể không nhắc tới là 

sự động viên, giúp đỡ của các Thầy, Cô giáo, bạn bè, đồng nghiệp và người thân trong gia đình.  

  Tôi cũng xin gửi lời cám ơn tới các Thầy, Cô giáo của Khoa Công Nghệ Thông Tin, vì đã tận tình giảng dạy những kiến thức bổ ích, hiện đại về lĩnh vực Kỹ thuật phần mềm tôi học tập và tạo mọi điều kiện cho tôi học tập nghiên cứu và hoàn thành luận văn này. 

  Với gia đình, tôi xin bày tỏ lòng biết ơn sâu sắc vì gia đình đã luôn ở bên và ủng 

hộ tôi trên con đường học tập và nghiên cứu.  

  Cuối cùng, tôi cũng xin gửi lời càm ơn đến đồng nghiệp và bạn bè tôi là những người đã động viên, tạo mọi điều kiện cho tôi lao động và học tập trong suốt thời gian qua.  

Trang 5

Bảng các ký hiệu và chữ viết tắt

4  IR  Information Retrieval  Thu thập thông tin 

5  IF  Information Filtering  Lọc thông tin 

6  RS  Recommender Systems  Hệ thống khuyến nghị 

7  CF  Collaborative Filtering  Lọc cộng tác 

8  KNN  K-nearest neighbor  K-hàng xóm gần nhất 

9  RMSE  Root Mean Square Error  Hàm sai số bình phương trung bình 

10  MAE  Mean absolute error  Sai số tuyệt đối trung bình 

Trang 6

Danh mục bảng và biểu đồ

Bảng 2.1: Ví dụ 1 về người dùng đánh giá sản phẩm   17 

Bảng 2.2: Ví dụ 2 về người dùng đánh giá sản phẩm   20 

Bảng 2.3: Ví dụ 3 về người dùng đánh giá sản phẩm   23 

Bảng 2.4: Ma trận đánh giá dày đặc   32 

Bảng 2.5: Ma trận đánh giá thưa thớt   32 

Bảng 2.6: So sánh giữa GD và SGD   43 

Bảng 3.1: Định dạng các bộ dữ liệu huấn luyện và kiểm tra của Movielens   48 

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

Danh mục hình ảnh Hình 1.1: Mô hình hệ thống lọc thông tin   9 

Hình 1.2: Một ví dụ về mô hình khuyến nghị sản phẩm   10 

Hình 1.3: Mô hình kỹ thuật lọc dựa theo nội dung   12 

Hình 2.1: Mô hình đồ thị tính khoảng cách Manhattan   18 

Hình 2.2: Mô hình đồ thị tính khoảng cách Euclidean   19 

Hình 2.3: Mô hình đồ thị tính hệ số tương quan Pearson   22 

Hình 2.4: Mô hình đồ thị tính hệ số tương tự Cosine   24 

Hình 2.5: Phương pháp tiếp cận vùng lân cận   30 

Hình 2.6: Định hướng người dùng đối với phim ảnh   31 

Hình 2.7: Phương pháp ma trận thừa số   35 

Hình 2.8: Mô hình phương pháp Gradient descent   36 

Hình 2.9: Đồ thị biểu thị thuật toán SGD thử nghiệm trên tập dữ liệu của Netflix   42 

Trang 7

MỤC LỤC

Lời cam đoan   1 

Lời cảm ơn   2 

Bảng các ký hiệu và chữ viết tắt   3 

Danh mục bảng và biểu đồ   4 

Danh mục hình ảnh   4 

Mở đầu   7 

CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN VỀ   HỆ THỐNG KHUYẾN NGHỊ   9 

1.1 Khái niệm chung:   9 

1.1.1 Lọc thông tin (Information Filtering _IF)  9 

1.1.2 Hệ thống khuyến nghị (Recommender System)   10 

1.1.3 Giới thiệu bài toán về hệ thống khuyến nghị:   11 

1.2 Các kỹ thuật lọc cho hệ thống khuyến nghị [4]   11 

1.2.1 Kỹ thuật lọc dựa theo nội dung:   12 

1.2.2 Kỹ thuật lọc cộng tác  (Collaborative Filtering)   12 

1.2.3, Kỹ thuật Hybrid   13 

1.3 Các phương pháp lọc cộng tác   13 

1.3.1, Lọc cộng tác dựa vào bộ nhớ   14 

1.3.2, Lọc cộng tác dựa vào mô hình (Model-Based Collaborative Filtering)   14 

CHƯƠNG 2: KỸ THUẬT LỌC CỘNG TÁC   16 

2.1.  Giới thiệu bài toán lọc cộng tác   16 

2.2.  Các phương pháp tính độ tương tự giữa các người dùng   16 

2.2.1.  Khoảng cách Manhattan  16 

2.2.2.  Khoảng cách Euclidean.   18 

2.2.3.  Hệ số tương quan Pearson.   20 

2.2.4.  Hệ số tương tự Cosine.   22 

2.3.  Phương pháp cải tiến K-hàng xóm gần nhất (k-nearest neighbor)   24 

2.3.1  Thuật toán KNN dựa trên người dùng.   25 

2.3.2  Thuật toán KNN dựa trên sản phẩm:   27 

2.4.  Mô hình nhân tố ẩn.   29 

2.4.1  Phương pháp tiếp cận vùng lân cận (the neighborhood approach)   29 

2.4.2  Mô hình nhân tố ẩn (latent factor models) [3]   30 

2.4.2.1 Cơ sở lý thuyết   30 

2.4.2.2 Bài toán:   31 

2.4.3 Phương pháp ma trận thừa số (Matrix Factorization Methods) [6]   32 

2.4.4 Thuật toán gradient descent ngẫu nhiên.   35 

2.4.4.1 Thuật toán Gradient descent (GD)   35 

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

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ố)   41 

Trang 8

2.4.4.4 So sánh giữa thuật toán GD và SGD   43 

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

2.5.1. Mean absolute error (MAE)   44 

2.5.2 Root mean square error (RMSE)   44 

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

3.1 Dữ liệu thực nghiệm.   46 

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

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

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

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

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

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

3.3.1 Kết quả thực nghiệm   50 

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

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

3.3.2.2 Thuật toán SGD   52 

KẾT LUẬN   54 

TÀI LIỆU THAM KHẢO   55 

       

Trang 9

Mở đầu

  Tương tác cá nhân là hoạt động/ sự việc diễn ra trên toàn thế giới, thậm chí có từ hàng  trăm  năm  trước  cho  đến  ngày  nay.  Những  năm  1990,  tương  tác  cá  nhân  ít  nhiều cũng đã có mặt. Theo thường lệ, khi đi vào một cửa hàng sách quen thuộc, chủ hàng sẽ chào  đón  như:  “Có  báo  mới  ngày  hôm  nay  đấy!”,  chủ  hàng  biết  rằng  khách  hàng  của mình  muốn  điều  gì  khi  đến  đây.  Hoặc  chủ  hàng  có  thể  giới  thiệu  cho  một  vài  quyển sách mà khách hàng của mình có thể quan tâm dựa trên những sở thích của khách. Hoặc khi đi vào quán nước quen, người phục vụ sẽ hỏi: “Như thường lệ chứ?” 

  Khoảng 30 năm về trước, khi bạn muốn mua chiếc tivi ở cửa hàng điện máy thì 

có vài sự lựa chọn phổ biến cho bạn: Panasonic và Samsung hay LG. Những năm sau 

đó, bạn có nhiều sự lựa chọn phong phú hơn, bạn chọn hãng Samsung thì trong đó còn nhiều lựa chọn như: LED hay LCD, bao nhiêu inch?… 

  Hàng ngày có hàng trăm bài hát được thu âm, hàng trăm đầu sách được xuất bản trên thế giới, trong khi đó các cửa hàng chỉ có giới hạn các đầu sách hoặc các bài hát, các bộ phim… Từ đó, các dịch vụ trực tuyến được ra đời và đáp ứng nhu cầu ngày càng cao của người dùng. 

  Cho đến ngày nay, sự tương tác cá nhân vẫn luôn tồn tại, thậm chí bạn có hàng triệu  sự  lựa  chọn.  Mỗi  giây  các  phương  tiện  truyền  thông  được  thêm  vào  mạng.  Mỗi phút 100 tập tin mới có sẵn trên usenet.  24/24 giờ video được tải lên YouTube. Mỗi giờ 

180 cuốn sách mới được xuất bản. Mỗi ngày càng có thêm nhiều lựa chọn các sản phẩm 

để mua trong thế giới thực. 

  Bạn muốn mua một số bài nhạc?  iTunes có khoảng 11 triệu bài hát để lựa chọn 

và họ đã bán được 16 tỷ bài hát  vào tháng 10 năm 2011. Nếu bạn muốn nhiều hơn sự lựa chọn thì có thể đi đến Spotify với 15 triệu bài hát. Bạn muốn mua một cuốn sách, Amazon cung cấp hơn 2 triệu cuốn sách để bạn lựa chọn. 

  Trong cuộc sống của chúng ta ngày nay, với sự phát triển không ngừng của công nghệ thông tin, nguồn thông tin quá phong phú làm cho bạn không có đủ thời gian để xem xét lựa chọn tất cả các cuốn sách, phim, tạp chí hay bài hát… bạn không biết mình nên xem phim gì, đọc cuốn sách nào phù hợp với sở thích, nhu cầu của bản thân.  

  Vấn  đề  cấp  thiết  đặt  ra  là  cần  một  hệ  thống  hỗ  trợ  người  dùng  chọn  lựa  những sản  phẩm  phù  hợp  với  nhu  cầu  của  người  dùng,  từ  đó  hệ  thống  khuyến  nghị  được 

Trang 10

  Chính  vì  vậy  trong  luận  văn  này,  chúng  tôi  xin  được  trình  bày  về  hệ  thống khuyến  nghị.  Trong phạm vi  luận  văn, chúng  tôi tập  trung  nghiên cứu  về  kỹ  thuật  lọc cộng tác và phân tích các phương pháp cơ bản để tìm một người hoặc một nhóm người gần nhất với người dùng hiện tại cần khuyến nghị. Để giảm thiểu sai số trong dự đoán chúng tôi trình bày nghiên cứu của mình về phương pháp ma trận thừa số cụ thể hơn là thuật toán gradient descent ngẫu nhiên. Nội dung chính của luận văn này được chia làm 

3 chương: 

Chương 1: Giới thiệu tổng quan về hệ thống khuyến nghị Chương 2: Kỹ thuật lọc cộng tác 

Chương 3: Thực nghiệm và đánh giá với dữ liệu phim ảnh 

  Trong  chương  1,  chúng  tôi  đi  tìm  hiểu  chung  về  hệ  thống  khuyến  nghị,  các  kỹ thuật lọc thông tin trong hệ thống khuyến nghị: lọc dựa vào nội dung, lọc cộng tác và kỹ thuật  kết  hợp  Hybrid, các  phương  pháp  lọc  cộng  tác  như:  Lọc  dựa  vào  bộ  nhớ  và  lọc dựa vào mô hình. Trong chương 2, chúng tôi trình bày chi tiết hơn về kỹ thuật lọc cộng tác, các phương pháp tính độ tương tự giữa các người dùng, phương pháp ma trận thừa 

số, thuật toán gradient descent ngẫu nhiên và các tiêu chuẩn đánh giá dự đoán. Chương 

3, chúng tôi tiến hành thực nghiệm trên bộ dữ liệu của Movielens với 100.000 đánh giá, sau đó dựa vào kết quả thực nghiệm để đánh giá, phân tích và so sánh tính hiệu quả của từng phương pháp và thuật toán đã nêu trong chương 2. 

Trang 11

CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN VỀ

HỆ THỐNG KHUYẾN NGHỊ

1.1 Khái niệm chung:

1.1.1 Lọc thông tin (Information Filtering _IF)

Trang 12

động  đang  thực  hiện  nghiên  cứu  cá  nhân  được  ưu  tiên  hàng  đầu.  Nghiên  cứu  khách hàng và tiếp thị có một truyền thống lâu đời. Với những tiến bộ trong công nghệ thông tin,  nó  đã  phát  triển  và  ngày  càng  tinh  vi  mang  lại  hiệu  quả  cho  các  hệ  thống  trực tuyến. Lọc  cộng  tác,  hệ  thống  khuyến  nghị,  hệ  thống  trợ  giúp  cá  nhân,  lọc  xã  hội,  hệ thống khai thác dữ liệu xã hội, và các hệ thống thích nghi người dùng có thể được gọi chung là hệ thống lọc thông tin (IF ). Ngày nay, hệ thống lọc thông tin ở khắp mọi nơi, trong mọi ngành công nghiệp và dịch vụ, từ tiếp thị cho sức khỏe, du lịch, giáo dục, giải trí,  

Vậy, hệ thống lọc thông tin là một hệ thống loại bỏ thông tin dư thừa hoặc không mong muốn từ một luồng thông tin sử dụng tự động trên máy vi tính 

Mục tiêu chính của nó là quản lý của tình trạng quá tải thông tin và tăng tỷ lệ ngữ nghĩa của tín hiệu trên nhiễu. Để thực hiện các hồ sơ này được so sánh với một số đặc tính tham khảo. 

1.1.2 Hệ thống khuyến nghị (Recommender System)

  Hệ  thống  khuyến nghị  (Recommender System) [7] là  một  loại hình  cụ  thể  của  kỹ 

thuật  lọc  thông  tin  (như  phim  ảnh,  âm  nhạc,  trang  web,  tin  tức)  mà  người  dùng  quan tâm. Nó rất quan trọng cho sự thành công của thương mại điện tử và ngành công nghiệp CNTT hiện nay, và dần dần trở nên phổ cập trong các ứng dụng khác nhau (ví dụ như 

dự  án  Netflix,  Google tin  tức, Amazon).  Là  một  hệ  thống khuyến  nghị chuyên  nghiệp xây  dựng  dựa  trên  hồ  sơ  quá  khứ  của  người  dùng,  hệ  thống  so  sánh  hồ  sơ  của  người dùng  với  một  số  đặc  điểm  tài  liệu  tham  khảo,  và  tìm  cách  để  dự  đoán  “đánh  giá”  mà người dùng sẽ cung cấp cho một mục mà người dùng đó vẫn chưa đánh giá . Trong hầu hết các trường hợp, hệ thống khuyến nghị tương ứng với một vấn đề khai thác dữ liệu quy mô lớn. Là hệ thống có khả năng tự động phân tích, phân loại, lựa chọn và cung cấp cho người dùng những thông tin, hàng hóa hay dịch vụ mà họ quan tâm. 

 

Hình 1.2: Một ví dụ về mô hình khuyến nghị sản phẩm

Trang 13

1.1.3 Giới thiệu bài toán về hệ thống khuyến nghị:

  Cho  U  là  tập  tất  cả  người  dùng;  P  là  tập  tất  cả  các  sản  phẩm(sách,  bài  hát, phim…) có thể tư vấn. Tập P có thể rất lớn, từ hàng trăm ngàn đến hàng triệu sản phẩm. Tập U trong một số trường hợp cũng có thể lên tới hàng triệu người dùng. Hàm r(u,p) là những đánh giá mức độ phù hợp (xếp hạng) của sản phẩm p với người dùng u, r: UxP 

R. Với mỗi người dùng u ∈ U cần tìm sản phẩm p’   P sao cho hàm r(u,p’) đạt giá trị ∈lớn nhất:  u  U,p’=arg max∀ ∈ p∈ P r(u,p) 

  Trong hệ thống khuyến nghị, những đánh giá  được thể hiện bằng các hình thức thông  thường  như:  thích  và  không  thích  (hình  bàn  tay  với  ngón  trỏ:  youtube.com),  số sao (thường từ 1- 5 sao)… 

1.2 Các kỹ thuật lọc cho hệ thống khuyến nghị [4]

Trong việc lựa chọn sản phẩm hoặc dịch vụ (gọi chung là Item), người dùng thường gặp phải những khó khăn là:  

 Lượng  Item:  Mỗi  ngày,  có  hàng  triệu  thông  tin  được  đăng  tải  lên  internet  mỗi ngày, người dùng không biết mình nên và không nên sử dụng Item nào?  

 Thông  tin  về  Item:  do  lượng  Item  là  vô  cùng  lớn,  nên  User  không  thể  tìm  hiểu được tất cả các Item về nội dung, chức năng cũng như Item có phù hợp với nhu cầu của user không?  

Gợi ý đặt ra để giải quyết các vấn đề khó khăn trên là: 

 Khai thác những khía cạnh cạnh liên quan đến nội dung thông tin sản phẩm hoặc người dùng đã từng sử dụng hay truy nhập trong quá khứ để khuyến nghị. Đây là 

kỹ thuật lọc dựa theo nội dung (Content-Based Filtering) 

 Lựa  chọn  dựa  trên  ý  kiến  hay  lời  khuyên  của  những  người  dùng  khác  về  các Item. Hệ thống khuyến nghị áp dụng các thuật toán tận dụng các gợi ý được cung cấp  bởi  một  cộng  đồng  người  dùng  tương  tự  sau  đó  cung  cấp  cho  người  dùng đang hoạt động (người đang tìm kiếm các đề xuất). Phương pháp này được gọi là lọc cộng tác (Collaborative Filtering _CF) 

So với lọc theo nội dung, lọc cộng tác có một số ưu điểm như đơn giản trong cài đặt và 

có thể lọc được mọi loại thông tin hay hàng hoá mà không cần phải biểu diễn dưới dạng văn bản. 

Trang 14

1.2.1 Kỹ thuật lọc dựa theo nội dung:

Với kỹ thuật khuyến nghị dựa trên nội dung[10], mức độ phù hợp r(u,p) của sản phẩm phẩm p với người dùng u được đánh giá dựa trên mức độ phù hợp r(u,pj), trong đó pj   

P và tương tự như p. Ví dụ, để gợi ý một bộ phim cho người dùng u, hệ thống tư vấn sẽ tìm  các  đặc  điểm  của  những  bộ  phim  từng  được  u  đánh  giá  cao  (như  diễn  viên,  đạo diễn…); sau đó chỉ những bộ phim tương đồng với sở thích của c mới được giới thiệu. Hướng tiếp cận dựa trên nội dung bắt nguồn từ những nghiên cứu về thu thập thông tin  (IR  -  information  retrieval)  và  lọc  thông  tin  (IF  -  information  filtering).  Do  đó,  rất nhiều hệ thống dựa trên nội dung hiện nay tập trung vào tư vấn các đối tượng chứa dữ liệu text như văn bản, tin tức, website… Những tiến bộ so với hướng tiếp cận cũ của IR 

là do việc sử dụng hồ sơ về người dùng (chứa thông tin về sở thích, nhu cầu…). Hồ sơ này được xây dựng dựa trên những thông tin được người dùng cung cấp trực tiếp (khi trả lời khảo sát) hoặc gián tiếp (do khai phá thông tin từ các giao dịch của người dùng). 

 

Hình 1.3: Mô hình kỹ thuật lọc dựa theo nội dung

1.2.2 Kỹ thuật lọc cộng tác  (Collaborative Filtering)

  Kỹ thuật lọc cộng tác (Collaborative Filtering) dựa trên nguyên tắc hoạt động là các khuyến nghị dựa trên ảnh hưởng của nhiều người khác nhau, các cộng tác của nhiều người  này  sẽ  trở  thành  khuyến  nghị.  Khác  so  với  kỹ  thuật  lọc  cộng  tác  dựa  trên  nội dụng, hệ thống cộng tác dự đoán mức độ phù hợp r(u,p) của một sản phẩm p với người dùng u dựa trên mức độ phù hợp r(ui, p) giữa người dùng ui và p, trong đó ui là người có cùng sở thích với u. Ví dụ, để gợi ý một bộ phim cho người dùng u, đầu tiên hệ thống 

Trang 15

sẽ được tôi trình bày trong chương 2. 

1.2.3, Kỹ thuật Hybrid

  Kỹ thuật Hybrid[9] là phương pháp kết hợp của cả hai kỹ thuật trên. Một số ứng dụng  kết  hợp  cả  hai  kỹ  thuật  lọc  cho  hệ  thống  khuyến  nghị  dựa  theo  nội  dung  và  lọc cộng tác. Mỗi kỹ thuật đều có những ưu điểm và nhược điểm riêng, do đó khi kết hợp 

có thể khắc phục những hạn chế của từng kỹ thuật. Nó cải thiện hiệu suất dự đoán, quan trọng  hơn,  từ  đó  vượt  qua  những  vấn  đề  lọc  thông  tin  như  thưa  thớt  và  mất  thông tin. Tuy  nhiên,  sự  kết  hợp  của  hai  kỹ  thuật  để  thực  hiện  sẽ  gia  tăng  phức  tạp  và  giá thành  cao.  Thông  thường  hầu  hết  các  hệ  thống  khuyến  nghị  thương  mại  là  Hybrid,  ví dụ: hệ thống khuyến nghị tin tức của Google 

Thông thường có 4 cách để kết hợp như sau: 

 Cài đặt hai phương pháp riêng rẽ rồi kết hợp dự đoán của chúng với nhau: Có hai kịch bản cho trường hợp này là: 

+ Cách  1:  Kết  hợp  kết  quả  của  cả  hai  phương  pháp  thành  một  kết  quả  chung duy nhất.  

  Với số lượng quá lớn các sản phẩm có trên internet thì thông thường một người dùng  chỉ  đánh  giá  hữu  hạn  m  sản  phẩm  (với  m  sản  phẩm  được  đánh  giá  nhỏ  hơn  rất nhiều so với tập M sản phẩm). Khó khăn đặt ra là dự đoán đánh giá một người dùng cho tập  M  sản  phẩm là  điều  rất  khó  khăn,  hơn  nữa  tập  M  sản  phẩm  luôn  luôn  thay  đổi  và theo thời gian thì ngày càng tăng lên. Ngoài ra để dự đoán đánh giá của N người dùng với  M  sản  phẩm  sẽ  gây  ra  tốc  độ  xử  lý  chậm  =>  mất  nhiều  thời  gian,  lãng  phí  tài 

Trang 16

nguyên…  Một  trong  những  giải  pháp  đặt  ra  để  giải  quyết  vấn  đề  trên  là:  kỹ  thuật  lọc cộng tác (Collaborative Filtering)  

  Lọc  cộng  tác  cho  hệ  thống  khuyến  nghị  được  tiếp  cận  theo  hai  phương  pháp chính:  Lọc  cộng  tác  dựa  vào  bộ  nhớ  (Memory-Based  Collaborative  Filtering)  và  lọc cộng tác dựa vào mô hình (Model-Based Collaborative Filtering) . Điểm khác biệt quan trọng trong hai phương pháp tiếp cận là: Lọc dựa vào bộ nhớ tiến hành xây dựng đồng thời mô hình huấn luyện và mô hình dự đoán. Ngược lại, lọc dựa vào mô hình xây dựng 

mô hình huấn luyện và mô hình dự đoán độc lập nhau. So với lọc cộng tác dựa vào mô hình, lọc cộng tác dựa vào bộ nhớ được áp dụng rộng rãi hơn do tính hiệu quả, đơn giản 

và có độ chính xác khá cao. 

1.3.1, Lọc cộng tác dựa vào bộ nhớ

  Phương pháp lọc cộng tác dựa vào bộ nhớ [11] thường sử dụng toàn bộ dữ liệu đã 

có của người dùng để dự đoán đánh giá của người đó về một sản phẩm mới. Là phương pháp có khả năng đưa trực tiếp dữ liệu mới vào bảng dữ liệu nên nó đạt khá nhiều thành công khi được áp dụng vào các ứng dụng thực tế. Đặc biệt, kỹ thuật này phát huy tính hiệu quả cao trong các hệ thống trực tuyến (là nơi luôn có dữ liệu mới được cập nhật) thường đưa ra các dự đoán chính xác hơn. 

  Lọc cộng tác dựa vào bộ nhớ (Memory-Based Collaborative Filtering) được thực hiện  theo  hai  phương pháp  chính:  Lọc dựa  vào  người  dùng  (User-Based  Collaborative Filtering) và lọc dựa vào sản phẩm (Item-Based Collaborative Filtering) . Hiệu quả của các phương pháp lọc dựa vào bộ nhớ phụ thuộc vào độ đo tương tự giữa các cặp người dùng hoặc sản phẩm. Phương pháp lọc cộng tác dựa vào bộ nhớ, tôi sẽ trình bày cụ thể hơn trong chương 2. 

1.3.2, Lọc cộng tác dựa vào mô hình (Model-Based Collaborative Filtering)

  Phương pháp tiếp cận dựa trên mô hình [17] không sử dụng tất cả dữ liệu đã có để đưa ra dự đoán, thay vào đó chúng nắm bắt thông tin trong từng bước giống như một sự thỏa thuận về mô hình các sở thích người dùng. Các mô hình được phát triển bằng cách 

sử dụng phương thức khai thác dữ liệu, thuật toán học máy để tìm mô hình dựa trên dữ liệu  huấn  luyện. Chúng  được  sử  dụng  để  đưa  ra  dự  đoán  cho  dữ  liệu  thực  tế. Có  rất nhiều thuật toán CF dựa trên mô hình như: mạng Bayes , mô hình phân nhóm , mô hình ngữ nghĩa tiềm ẩn. 

Trang 17

  Ưu điểm của mô hình này là xử lý dữ liệu thưa thớt tốt hơn so với lọc dựa trên bộ nhớ. Điều này giúp với khả năng mở rộng với các tập dữ liệu lớn, nó cải thiện hiệu suất 

dự đoán. Những nhược điểm của phương pháp này là giá thành cao trong việc xây dựng 

mô hình, cần phải có một sự cân bằng giữa hiệu suất và khả năng mở rộng dự đoán, có thể bị mất thông tin hữu ích do mô hình giảm và một số mô hình có khó khăn trong việc giải nghĩa các dự đoán. 

Trang 18

CHƯƠNG 2: KỸ THUẬT LỌC CỘNG TÁC

  Phương  pháp  khuyến  nghị  tôi  đang  xem  xét  trong  chương  này  được  gọi  là  lọc cộng  tác.  Nó  được  gọi  là  cộng  tác  bởi  vì  nó  đưa  ra  các  khuyến  nghị  dựa  trên  những người dùng khác trong thực tế, mọi người cộng tác để đưa ra khuyến nghị. Nguyên lý hoạt động của hệ thống khuyến nghị là: giả sử để giới thiệu một cuốn sách cho bạn. Tôi tìm  kiếm  những  người  sử  dụng  khác  của  trang  web  để  tìm  một  trong  số  đó  là  người tương tự như bạn dựa trên những cuốn sách mà bạn và người sử dụng đó thích.  

2.1 Giới thiệu bài toán lọc cộng tác

Cho một tập hữu hạn gồm có N người dùng U = { u1,u2,…,uN }, một tập gồm M sản phẩm P = { p1,p2,…,pM }. Mỗi sản phẩm pj ∈  P có thể là phim, ảnh, tạp chí, tài liệu, sách, báo,hàng hóa, dịch vụ hoặc bất kỳ dạng thông tin nào mà người dùng cần đến. Một ma trận R = ( rij ) với i = 1,…N ; j = 1,…,M thể hiện mối quan hệ giữa tập người  dùng  U  và  tập  sản  phẩm  P.  Trong  đó  rij  là  đánh  giá  của  người  dùng  ui  cho  sản phẩm pj.  

  Các giá trị rij nhận giá trị theo các hình thức: thu thập trực tiếp ý kiến đánh giá của người dùng ui về sản phầm pj hoặc thu thập gián tiếp thông qua cơ chế phản hồi của người dùng.  

  Gọi  ux  là  người  dùng  hiện  thời  cần  được  khuyến  nghị  sản  phẩm  py,  với  rxy=Ø (nghĩa là người dùng ux chưa đánh giá hoặc chưa từng biết đến sản phẩm py). Bài toán lọc cộng tác có nhiệm vụ dự đoán đánh giá rxy của người dùng ux với sản phẩm py. Từ 

đó,  giới  thiệu  cho  người  dùng  ux  những  sản  phẩm  phù  hợp  nhất  dựa  trên  giá  trị  rxy, những sản phẩm được khuyến nghị cho người dùng ux là những sản phẩm có đánh giá cao. 

2.2 Các phương pháp tính độ tương tự giữa các người dùng

  Cho ui là người dùng hiện thời, ua là người dùng cần tính độ tương tự với người dùng ui, rip là đánh giá của người dùng ui cho sản phẩm p và rap là đánh giá của người dùng ua cho sản phẩm p. Với tập m sản phẩm là những sản phẩm mà người dùng ui và người dùng ua cùng đánh giá. 

2.2.1 Khoảng cách Manhattan

Trang 19

  Một trong những cách đơn giản nhất để đo khoảng cách giữa hai điểm dữ liệu là khoảng cách Manhattan[1]. 

Tính  độ  tương  tự  giữa  người  dùng  ua  và  ui  sử  dụng  phương  pháp  khoảng  cách Manhattan được tính bằng công thức sau: 

| x1 - x2| + | y1 - y2 | Cho bảng ví dụ 1 sau: 

Trang 20

Hình 2.1: Mô hình đồ thị tính khoảng cách Manhattan 

  Giá trị khoảng cách giữa Peter và John khi áp dụng phương pháp tính khoảng cách Manhattan là: dManhattan=4. Áp dụng tương tự phương pháp này để tính khoảng cách với người dùng khác, sau đó sẽ chọn người dùng có giá trị khoảng cách nhỏ nhất với người dùng hiện tại. 

2.2.2 Khoảng cách Euclidean. 

  Ưu điểm rất rõ ràng khi sử dụng công thức tính khoảng cách Manhattan là tính toán đơn giản và rất nhanh. Tuy nhiên, khoảng cách Euclidean[1] thay vì đi xung quanh các khối thì bạn chỉ cần vẽ một đường thẳng giữa hai điểm dữ liệu và đo khoảng cách giữa hai điểm bằng cách sử dụng định lý Pythagorean. 

Trang 21

  Trong  không  gian  2  chiều,  áp  dụng  công  thức  tính  khoảng  cách  Euclidean  như sau: Với hai điểm dữ liệu (x1,y1) và (x2,y2) lần lượt là các điểm dữ liệu thể hiện đánh giá của ua và  ui cho 2 sản phẩm khác nhau x và y. 

  Bảng  dữ  liệu  2.1  thể  hiện  đánh  giá  của  Peter  và  John  đối  với  2  bộ  phim  The Hobbit và Harry Potter là: 

Trang 22

2.2.3 Hệ số tương quan Pearson

  Phức  tạp  hơn  hai  công  thức  tính  khoảng  cách  Manhattan  và  khoảng  cách Euclidean nhưng thường nhận kết quả tốt hơn với dữ liệu không bình thường, tôi đang nói  đến  là  trường  hợp  người  dùng  có  những  hành  vi  đánh  giá  là  khác  nhau  như:  một người dùng chỉ cung cấp những đánh giá xấu (đánh giá thấp) cho hầu hết tất cả các sản phẩm người đó đánh giá, người dùng khác lại thường xuyên cung cấp những đánh giá cao  (tốt)  cho  các  sản  phẩm  người  đó  đã  đánh  giá,…  Trong  trường  hợp  này,  sử  dụng phương pháp hệ số tương quan Pearson[1] sẽ đạt kết quả tối ưu hơn so với hai phương pháp trên. Hơn nữa trong thực tế, do tính chất đa người dùng dẫn tới nhiều quan điểm khác nhau nên trường hợp này phần lớn đều xảy ra. 

  Hệ  số  tương  quan  Pearson  sẽ  có  giá  trị  nằm  trong  khoảng  từ  -11.  Khi  tính khoảng  cách  giữa  hai  người  dùng  mà  Rpearson=1  thì  hai  người  dùng  đó  có  quan  điểm đánh giá giống nhau hoàn toàn,  Rpearson= -1 thì hai người dùng này sẽ bất đồng với nhau 

về mặt quan điểm đánh giá. Vì vậy dựa vào hệ số tương quan Pearson này chúng tôi có thể tìm ra một người giống với người mà chúng tôi quan tâm  mà không bị ảnh hưởng bởi hành vi người dùng. 

a p ip p

Trang 23

  Áp dụng công thức tính hệ số tương quan Pearson ta có thể tính được sự tương tự giữa Peter và John như sau: 

p

ap

p

r r

Trang 24

  Trong  không  gian  hai  chiều  thì  ta  có  phương  pháp  hệ  số  tương  quan  Pearson được định nghĩa lại và biểu diễn như sau:  

là 900 thì có độ tương tự là 0 và hai vector  được coi là đối nghịch nhau nếu có độ tương đồng là -1. Cosine tương tự được đặc biệt sử dụng trong không gian dương tính, trong 

đó kết quả trong khoảng [0,1]. 

Trang 25

  Đối với mạng trực tuyến, với số lượng người dùng và sản phẩm là khổng lồ dẫn đến vấn đề thực tế là các tập dữ liệu đều rất lớn và thưa thớt, nghĩa là với tập các sản phẩm vô cùng đồ sộ rất nhiều trường hợp có nhiểu sản phẩm không được đánh giá hoặc không được người dùng biết đến. Năm 2011, Amazon có hơn 2 triệu đầu sách dẫn đến trường hợp nhiều người dùng không hề đánh giá một trong những đầu sách tôi đánh giá. Spotify có khoảng 15 triệu bài hát, vậy thì để tìm thấy người dùng tương tự tôi  thì đa phần khả năng xảy ra sẽ là tôi và người dùng khác có số bài hát cùng nghe chung bằng 

m

ap ip p

r r Cos u u

Trang 26

Hình 2.4: Mô hình đồ thị tính hệ số tương tự Cosine

  Hệ  số  tương  tự  Cosine  cũng  có  phạm  vi  từ  -11  giống  như  hệ  số  tương  quan Pearson, khi giá trị  Cos(ua,ui) = 1 thì người dùng  ua với người dùng ui tương đồng nhau ,  họ  giống  nhau  một  cách  hoàn  hảo  về  sở  thích,  khi  giá  trị    Cos(ua,ui)  =  -1  thì  người dùng ua với người dùng ui không tương đồng nhau , khác nhau hoàn toàn về sở thích.    Các phương pháp tính độ tương tự giữa các người dùng vừa được trình bày ở trên 

là những phương pháp cơ bản nhất. Tùy vào trạng thái của tập dữ liệu khac nhau để áp dụng các phương pháp tính khoảng cách giữa hai người dùng, nhằm mục đích phát huy được tính hiệu quả và khắc phục được nhược điểm của từng phương pháp. 

2.3 Phương pháp cải tiến K-hàng xóm gần nhất (k-nearest neighbor)

  KNN (còn được gọi là phương pháp tiếp cận dựa trên bộ nhớ) sử dụng toàn bộ cơ 

sở dữ liệu người dùng sản phẩm để tạo ra các dự đoán trực tiếp. 

  Hành vi đánh giá của người dùng có nhiều đặc điểm khác nhau như: người dùng luôn  cho  các  đánh  giá  tương  đối  cao,  người  dùng  khác  khá  khó  tính  lại  cho  đánh  giá luôn ở  mức  thấp,  hoặc  người  dùng này  lại  đánh giá cho  một sản  phẩm  chỉ  vì  lý  do cá nhân  nào  đấy…  Dẫn  đến,  vấn  đề  khuyến  nghị  dựa  vào  một  người  dùng  gần  nhất  cho người dùng hiện tại gặp khó khăn. Vì thế, giải pháp đặt ra là nên dựa vào nhiều hơn 1 người dùng tương tự để tiến hành khuyến nghị cho người dùng hiện tại. Tuy nhiên, bốn 

Trang 27

Bài toán:

Cho tập hữu hạn U={u1, u2,…., uN} là tập N người dùng; P={p1, p2, …, pM} là tập 

M các sản phẩm có thể tư vấn cho người dùng ua. 

Một người dùng dựa trên phương pháp lọc cộng tác KNN bao gồm hai giai đoạn chính là: 

 Giai đoạn tìm k người dùng gần nhất (hay còn gọi là giai đoạn hình thành vùng lân cận) 

 Giai đoạn khuyến nghị sản phẩm. 

Với  mỗi  giai  đoạn  thì  có  rất  nhiều  phương  pháp  để  thực  hiện,  tuy nhiên  ở  đây  tôi  chỉ trình bày mỗi giai đoạn một phương pháp. 

K-láng giềng gần nhất được phân ra làm hai phương pháp cơ bản là: 

2.3.1 Thuật toán KNN dựa trên người dùng

Yêu cầu thuật toán:  Tìm  tập  K=(ux1,  ux2,…,uxk)   người dùng  tương  tự nhất với  ua (xác định vùng lân cận). Sau đó, dựa vào đánh giá của K người dùng này với sản phẩm pj để 

k={min i d(u i ,u a )}

Bước 2: Sau khi tìm được k người dùng gần nhất thì tiến hành dự đoán đánh giá của ua cho sản phẩm pj 

Trang 28

a Với k=1 thì lúc này thuật toán k-láng giềng gần nhất dựa trên người dùng trở thành thuật  toán  tìm  người  dùng  tương  tự  nhất  đối  với  người  dùng  u,  và  chúng  ta  sẽ  sử dụng một trong 4 phương pháp tìm người dùng tương tự nhất đã trình bày ở trên. 

b Với k≠1 thì ta có: Những vấn đề nảy sinh và giải pháp: 

 Khi  đã  có  k  người  dùng  gần  nhất  thì  lựa  chọn  người  dùng  uxi  nào  để  dựa  vào đánh giá của người dùng đó với pj để dự đoán đánh giá của người dùng ua cho sản phẩm pj, nếu chọn tất cả thì phải tổng hợp ra sao để ra được một dự đoán đánh giá rxj (là giá trị dự đoán được tổng hợp của k người dùng gần nhất đối với sản phẩm pj). Trong trường hợp này, tôi có công thức dự đoán đánh giá raj bằng công thức sau: 

aj

1

( )

k xij i xi i

1

,,

a xi k

a x

i xi

i i

Ngày đăng: 10/05/2015, 16:31

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w