Nghiên cứu kỹ thuật phân tích ma trận trong các hệ thống khuyến nghị

  • Số trang: 65 |
  • Loại file: PDF |
  • Lượt xem: 66 |
  • Lượt tải: 1
nhattuvisu

Đã đăng 26946 tài liệu

Mô tả:

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ NGUYỄN THỊ HỒNG XUÂN NGHIÊN CỨU KỸ THUẬT PHÂN TÍCH MA TRẬN TRONG CÁC HỆ THỐNG KHUYẾN NGHỊ LUẬN VĂN THẠC SĨ HÀ NỘI - 2014 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ NGUYỄN THỊ HỒNG XUÂN NGHIÊN CỨU KỸ THUẬT PHÂN TÍCH MA TRẬN TRONG CÁC HỆ THỐNG KHUYẾN NGHỊ Ngành : Công nghệ thông tin Chuyên ngành : Kỹ thuật phần mềm Mã số : 60480103 LUẬN VĂN THẠC SĨ NGƯỜI HƯỚNG DẪN KHOA HỌC: TS. Nguyễn Văn Vinh HÀ NỘI - 2014 Lời cam đoan Tôi xin cam đoan rằng luận văn của tôi hoàn toàn là công trình nghiên cứu của bản thân. Luận văn hoàn toàn không phải là bản sao chép công trình nghiên cứu của một người khác, nó mang tính độc lập nhất định với tất cả các công trình nghiên cứu trước đây. Nếu có vi phạm, tôi xin hoàn toàn chịu trách nhiệm. Hà Nội, ngày 05 tháng 06 năm 2014 Học viên Nguyễn Thị Hồng Xuân Lời cảm ơn Đầu tiên, tôi xin gửi lời cảm ơn sâu sắc đến thầy giáo, cán bộ hướng dẫn khoa học TS. Nguyễn Văn Vinh, người thầy đã tận tình hướng dẫn cho tôi từ những buổi đầu tiên khi tiếp cận với đề tài tốt nghiệp. Thầy đã hướng dẫn, chỉ bảo tận tình cho tôi về phương pháp nghiên cứu khoa học, cách làm việc khoa học trong suốt thời gian qua. Tôi xin bày tỏ lòng biết ơn đến các thầy cô giáo ở trường Đại học Công nghệ - Đại học Quốc gia Hà Nội đã tận tình giảng dạy 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. Tôi xin chân thành cảm ơn bạn Nguyễn Tuấn Khoa, các bạn học viên khóa K18 Công nghệ phần mềm đã giúp đỡ tôi trong suốt quá trình học tập, nghiên cứu và thực hiện luận văn. Cuối cùng, tôi xin gửi lời cảm ơn sâu sắc nhất đến gia đình, đồng nghiệp và bạn bè tôi, 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. Hà Nội, ngày 05 tháng 06 năm 2014 Học viên Nguyễn Thị Hồng Xuân Danh mục các từ viết tắt STT 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Từ viết tắt Tiếng Anh U User P Product I Items V Items IR Information Retrieval IF Information Filtering RS Recommender Systems CF Collaborative Filtering MF Matrix Factorization MMMF Maximum Margin Matrix Factorization SVD Singular Value Decomposition LSI Latent Semantic Indexing SGD Stochastic Gradient Descent DSGD Distributed Stochastic Gradient Descent FPSGD Fast Parrael Stochastic Gradient Descent Tiếng việt Người dùng Sản phẩm Đối tượng Đối tượng Thu thập thông tin Lọc thông tin Hệ thống khuyến nghị Lọc cộng tác Phân tích ma trận Cực đại hóa biên trong phân tích ma trận Phân giải giá trị đơn Chỉ số ngữ nghĩa ẩn Phương pháp xuống đồi Phương pháp xuống đồi theo cách phân tán Phương pháp xuống đồi theo cách thực hiện nhanh và song song Danh mục hình vẽ trong luận văn Các hình vẽ được sử dụng trong luận văn: Hình 2.1: Trang khuyến nghị của Amazon ................................................................ 12 Hình 2.2: Trang khuyến nghị của MovieLens ............................................................ 13 Hình 2.3: Mô hình Bayes ........................................................................................... 24 Hình 3.1: Thuật toán SGD trong không gian 2 chiều ............................................... 30 Hình 3.2: Ví dụ về vấn đề locking trong DSGD ........................................................ 37 Hình 3.3: Phương pháp chọn ngẫu nhiên các xếp hạng để cập nhật ......................... 37 Hình 3.4: Minh họa các cách chia ma trận thành khối .............................................. 39 Hình 3.5: DoI trên 3 tập dữ liệu ................................................................................ 40 Hình 3.6: Phương pháp sắp thứ tự chọn các xếp hạng để cập nhật .......................... 40 Hình 3.7: So sánh giữa phương pháp ngẫu nhiên và phương pháp sắp thứ tự ........... 41 Hình 3.8: Minh họa phương pháp ngẫu nhiên từng phần .......................................... 41 Hình 3.9: So sánh phương pháp sắp thứ tự, ngẫu nhiên và ngẫu nhiên từng phần ... 42 Hình 4.1: Biểu đồ dữ liệu MovieLens 600K ................................................................ 47 Hình 4.2: Biểu đồ dữ liệu MovieLens với tham số k = 5 và γ = 0.003 ....................... 47 Hình 4.3: Biểu đồ dữ liệu MovieLens với tham số k = 10 và γ = 0.003 ..................... 48 Hình 4.4: Biểu đồ dữ liệu MovieLens với tham số k = 20 và γ = 0.003 ..................... 49 Hình 4.5: Biểu đồ dữ liệu MovieLens với tham số k = 50 và γ = 0.003 ..................... 49 Hình 4.5: Biểu đồ dữ liệu MovieLens với tham số k = 100 và γ = 0.003 ................... 50 Mở đầu Cùng với nhu cầu tìm kiếm thông tin trên Internet ngày càng trở nên phổ biến với một lượng lớn thông tin được đưa lên hằng ngày; một nhu cầu mới đặt ra là một thông tin nên hay không nên được đọc, được chia sẻ cho một đối tượng người sử dụng khác trên Internet? Thông tin nào sẽ có khả năng được đánh giá cao bởi một đối tượng người sử dụng? Và làm thế nào để xác định được thông tin đó có khả năng được người dùng đánh giá cao hay thấp? Để giải quyết vấn đề này đã có rất nhiều nghiên cứu thực hiện trên các lĩnh vực khác nhau, với những đối tượng thông tin khác nhau. Kết quả của các bài nghiên cứu đó nhằm hỗ trợ đưa ra một Hệ thống khuyến nghị (Recommender Systems - RS) phù hợp nhất. Hệ thống khuyến nghị có thể là một chương trình, một tập hợp các kỹ thuật nhằm đưa ra các khuyến nghị về các đối tượng cho người dùng khi nó có khả năng được sử dụng nhiều nhất. Quá trình đưa ra các khuyến nghị là một chuỗi các quá trình đưa ra các quyết định cho nhiều loại đối tượng. Trong những năm gần đây, hệ thống khuyến nghị đã hỗ trợ rất nhiều cho người dùng lựa chọn các thông tin thích hợp. Hệ thống này đã được ứng dụng trong nhiều lĩnh vực như: thương mại điện tử (Amazon, Netflic, Ebay); giải trí (MovieLens, Last.fm, Film-Conseil); tin tức trực tuyến (NetNews, Yahoo, Google); . . . Hệ thống khuyến nghị được phát triển dựa vào cách dự đoán, ước lượng xếp hạng (rating) cho các dữ liệu bằng cách sử dụng học máy, lý thuyết xấp xỉ, các thuật toán trong xác suất thống kê, . . . Từ đó, nó có thể đưa ra các thông tin phù hợp trong số những thông tin khổng lồ chưa có trật tự nào. Hệ thống này sử dụng các kỹ thuật lọc để chọn ra những loại thông tin đặc trưng nhằm hiển thị các phần tử thích hợp với sở thích của người dùng. Nhìn chung, các kỹ thuật lọc trong hệ khuyến nghị được phát triển bởi một trong hai cách tiếp cận là lọc nội dung (content filtering) và lọc cộng tác (collaborative filtering). Hiện nay, phần lớn các hệ thống khuyến nghị phát triển dựa vào lọc cộng tác dựa trên những hành vi quá khứ của người dùng như: lịch sử giao dịch, đánh giá sản phẩm, thời gian xem một mục tin,. . . ; đặc biệt nó không cần phải tạo các hồ sơ tường minh cho người dùng. Có hai nhánh nghiên cứu về lọc cộng tác là: tiếp cận láng giềng (neighborhood approach) và mô hình nhân tố ẩn (latent factor models). Mô hình nhân tố ẩn có dạng tương tự phương pháp phân tích giá trị đơn nhằm chuyển đổi các sản phẩm (items) và người dùng (users) vào cùng một không gian ẩn, do đó chúng có khả năng so sánh dữ liệu trực tiếp với nhau. Chính vì nhờ vào khả năng biểu diễn và so sánh, tiếp cận này có xu hướng cung cấp kết quả dự đoán cao hơn các mô hình láng vi giềng. Vì vậy trong luận văn này, tôi xin được trình bày về mô hình nhân tố ẩn cho hệ thống khuyến nghị. Cụ thể hơn, tôi tập trung nghiên cứu về kĩ thuật phân tích ma trận (một trong những phương pháp hiệu quả cho mô hình nhân tố ẩn) và ứng dụng trong hệ thống khuyến nghị. Trong phạm vi của luận văn, chúng ta nghiên cứu và phân tích các mô hình đang tồn tại, cụ thể là mô hình xác suất kết hợp với ma trận nhân tố cho hệ khuyến nghị sử dụng dự đoán học máy. Nội dung chính của bản luận văn này được chia làm 4 chương: Chương 1: Tổng quan về hệ khuyến nghị (Recommender System). Chương 2: Phương pháp lọc cộng tác. Chương 3: Kĩ thuật phân tích ma trận trong hệ khuyến nghị. Chương 4: Thực nghiệm và demo Cụ thể, trước khi đi vào xem xét trực tiếp mô hình, trong chương 1, chúng ta đi tìm hiểu chung về hệ khuyến nghị, phân tích một số chức năng của các hệ khuyến nghị, các phương pháp khai phá dữ liệu được sử dụng, các hướng tiếp cận như lọc dựa vào nội dung, lọc cộng tác. Trong chương 2, chúng ta nghiên cứu sâu hơn về lọc cộng tác, các phương pháp tiếp cận trong lọc cộng tác. Chương 3 giới thiệu kĩ thuật phân tích ma trận cho hệ khuyến nghị. Chương 4 đưa ra một số ví dụ tính toán và những đánh giá cụ thể để so sánh những kết quả thực nghiệm với mô hình lý thuyết đã nêu trong chương 3. Mục lục Lời Cam Đoan i Lời Cảm Ơn ii Danh mục các từ viết tắt iii Danh mục hình vẽ trong luận văn iv Mở đầu v 1 Tổng quan về hệ thống khuyến nghị 1.1 Mô hình hệ thống khuyến nghị . . . . . . . . . . . . . . . . . . . . . . . . 1.1.1 Các khái niệm chung về hệ thống khuyến nghị . . . . . . . . . . . 1.1.2 Phát biểu bài toán . . . . . . . . . . . . . . . . . . . . . . . . . . 1.1.3 Các chức năng của hệ thống khuyến nghị . . . . . . . . . . . . . . 1.1.4 Ứng dụng trong hệ thống khuyến nghị . . . . . . . . . . . . . . . 1.2 Các phương pháp khai phá dữ liệu được sử dụng . . . . . . . . . . . . . . 1.2.1 Khuyến nghị dựa trên nội dung (Content-Based Recommendation System) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2.2 Khuyến nghị lọc cộng tác (Collaborative Filtering Recomnendation System) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2.3 Kết hợp các phương pháp (Hybrid): . . . . . . . . . . . . . . . . . . . . . . . 1 1 1 2 5 6 6 . 7 . . 8 9 . . . . . . . . . . . 11 11 13 14 17 19 20 20 21 22 22 23 2 Phương pháp lọc cộng tác 2.1 Giới thiệu về lọc cộng tác . . . . . . . . . . . . . . . . . 2.1.1 Ưu điểm của lọc cộng tác . . . . . . . . . . . . . 2.1.2 Các hình thức tiếp cận . . . . . . . . . . . . . . . 2.2 Lọc cộng tác dựa trên bộ nhớ . . . . . . . . . . . . . . . 2.2.1 Tính toán độ tương tự . . . . . . . . . . . . . . . 2.2.2 Tính toán dự đoán và khuyến nghị . . . . . . . . 2.3 Lọc cộng tác dựa trên mô hình . . . . . . . . . . . . . . 2.4 Các cách tiếp cận liên quan trong hệ thống khuyến nghị 2.4.1 Ước lượng cơ sở (Baseline Estimates) . . . . . . . 2.4.2 Mô hình láng giềng (Neighborhood models) . . . 2.4.3 Mô hình nhân tố ẩn (Latent factor models) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . MỤC LỤC 2.5 Khó khăn và thách thức trong 2.5.1 Sự thưa thớt dữ liệu . 2.5.2 Khả năng mở rộng . . 2.5.3 Tính đồng nghĩa . . . 2.5.4 Sự mập mờ . . . . . . 2.5.5 Sự tấn công . . . . . . viii lọc . . . . . . . . . . cộng . . . . . . . . . . . . . . . tác . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Kĩ thuật phân tích ma trận cho hệ thống khuyến nghị 3.1 Kỹ thuật phân tích ma trận đơn giản . . . . . . . . . . . 3.2 Thuật toán SGD . . . . . . . . . . . . . . . . . . . . . . 3.2.1 Cơ sở lý thuyết . . . . . . . . . . . . . . . . . . . 3.2.2 Phát biểu bài toán . . . . . . . . . . . . . . . . . 3.2.3 Thuật toán SGD dùng cho phân tích ma trận . . 3.3 Thuật toán DSGD . . . . . . . . . . . . . . . . . . . . . 3.3.1 Tính có thể tráo đổi được (interchangeability) . . 3.3.2 Trường hợp đơn giản . . . . . . . . . . . . . . . . 3.3.3 Trường hợp tổng quát . . . . . . . . . . . . . . . 3.4 Thuật toán FPSGD . . . . . . . . . . . . . . . . . . . . . 3.4.1 Vấn đề locking . . . . . . . . . . . . . . . . . . . 3.4.2 Gián đoạn bộ nhớ . . . . . . . . . . . . . . . . . . 3.4.3 Giải quyết vấn đề . . . . . . . . . . . . . . . . . . 4 Thực nghiệm và đánh giá 4.1 Cấu hình thử nghiệm . . . . . 4.1.1 Dữ liệu thử nghiệm . . 4.1.2 Thực hiện thử nghiệm 4.2 Phân tích kết quả và đánh giá 4.2.1 Phân tích kết quả . . . 4.2.2 Nhận xét và đánh giá . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 24 25 25 26 26 . . . . . . . . . . . . . 28 28 30 30 31 31 32 32 33 35 36 36 37 38 . . . . . . 44 44 44 45 47 47 50 Kết luận 52 Tài liệu tham khảo 53 Chương 1 Tổng quan về hệ thống khuyến nghị 1.1 1.1.1 Mô hình hệ thống khuyến nghị Các khái niệm chung về hệ thống khuyến nghị Hệ thống khuyến nghị là hệ thống bao gồm các kỹ thuật và công cụ phần mềm nhằm đưa ra những gợi ý cho người sử dụng, đáp ứng nhu cầu của họ về một sản phẩm, dịch vụ nào đó trên Internet. Những gợi ý được cung cấp nhằm hỗ trợ người sử dụng đưa ra quyết định lựa chọn những sản phẩm, dịch vụ phù hợp với nhu cầu và thị hiếu của mình, chẳng hạn như: mua sản phẩm nào, nghe thể loại nhạc gì hay tin tức trực tuyến nào nên đọc, ... Item là thuật ngữ chung dùng để chỉ định những gì người dùng cần tương tác trong hệ thống khuyến nghị. Hệ thống khuyến nghị thông thường sẽ tập trung vào một thể loại Item cụ thể nào đó (CD, tin tức) theo thiết kế và giao diện đồ họa người dùng kết hợp với kỹ thuật, thuật toán gợi ý nhằm sinh ra các gợi ý tùy chỉnh, cung cấp những gợi ý có ích và hiệu quả cho Item đó. Hệ thống khuyến nghị nhằm hướng dẫn những người dùng thiếu kinh nghiệm hoặc chưa đủ thẩm quyền để đánh giá số lượng áp đảo các Item thay thế. Ví dụ, hệ thống khuyến nghị giúp người dùng lựa chọn sách trên trang web của Amazon đã sử dụng hệ thống khuyến nghị để cá nhân hóa các cửa hàng trực tuyến cho từng khách hàng (User). Khi hệ thống khuyến nghị được cá nhân hóa thì mỗi người dùng hay nhóm người dùng sẽ nhận được những gợi ý khác nhau từ những cá nhân khác. Mô hình đơn giản nhất của hệ thống khuyến nghị khi được cá nhân hóa là danh sách xếp hạng các Item. Khi thực hiện bảng xếp hạng này, hệ thống khuyến nghị sẽ thử dự đoán những sản phẩm hoặc dịch vụ phù hợp nhất với người dùng dựa trên sở thích và nhu cầu của họ. Để thực hiện được nhiệm vụ đó, RS thu thập sở thích của người dùng được thể hiện qua hệ thống (xếp hạng cho các sản phẩm) hoặc suy ra từ cách giải thích hành động của người dùng - là một tính năng ẩn có ưu tiên cho phần hiển thị của trang hoặc xem xét chuyến hướng đến một trang khác. Hệ thống khuyến nghị bắt đầu phát triển từ một quan sát khá đơn giản: một cá nhân thường dựa trên những gợi ý được cung cấp bởi những người khác trong việc đưa ra 1.1 Mô hình hệ thống khuyến nghị 2 những quyết định. Ví dụ, chúng ta thường dựa trên những gì bạn bè giới thiệu khi lựa chọn một cuốn sách để đọc, một bộ phim để xem; người dùng có khuynh hướng đọc và dựa vào các nhận xét của nhà phê bình phim nào đó viết và xuất hiện trên các trang báo họ đọc. Trong việc tìm kiếm để bắt chước hành vi này, đầu tiên 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 sau đó sẽ cung cấp cho người dùng đang hoạt động (người đang tìm kiếm các đề xuất). Các gợi ý đã cho các hạng mục mà người dùng tương tự (người có sở thích tương tự) đã thích. Phương pháp này được gọi là lọc cộng tác và nguyên lý hoạt động của nó là: nếu người dùng thỏa thuận trong quá khứ với một số người dùng khác, sau đó sẽ sử dụng các gợi ý khác đến từ những người dùng tương tự có cùng sự quan tâm liên quan đến người dùng đang hoạt động. Các website thương mại điện tử ngày càng phát triển, người dùng phải rất khó khăn để tìm kiếm những lựa chọn thích hợp khi mà các Item( sản phẩm và dịch vụ) ngày càng đa dạng và phong phú trên các website;do vậy một nhu cầu cấp bách đặt ra là cung cấp hệ thống khuyến nghị xuất phát từ lọc cộng tác các lựa chọn thay thế có sẵn. Trong những năm gần đây, hệ thống khuyến nghị là một phương tiện có giá trị để đối phó với vấn đề quá tải thông tin. Đích cuối cùng mà hệ thống khuyến nghị muốn hướng tới là hướng dẫn cho một người dùng mới về các Item chưa hoặc không được xem trước đó nhưng lại có liên quan đến tác vụ hiện hành của người dùng. Theo yêu cầu của người dùng, nó có thể được khớp nối hay không phụ thuộc vào phương pháp tiếp cận gợi ý theo bối cảnh và nhu cầu người dùng. Hệ thống khuyến nghị đưa ra các gợi ý sử dụng các biến thể khác nhau của kiến thức và dữ liệu người dùng, các Item có sẵn và các giao dịch trước đó được lưu trong cơ sở dữ liệu tùy biến. Sau đó người dùng có thể duyệt các gợi ý: chấp nhận hay không và ngay lập tức đưa ra thông tin phản hồi ngầm hay rõ ràng ở giai đoạn tiếp theo. Tất cả những hành động và phản hồi của người dùng được lưu trữ trong cơ sở dữ liệu và có thể được sử dụng để đưa ra các khuyến cáo mới trong sự tương tác với người sử dụng hệ thống tiếp theo. Một vài ứng dụng nổi tiếng về hệ thống khuyến nghị như: khuyến nghị sản phẩm của Amazon [26], hệ tư vấn phim của NetFlix [27]. Hệ thống khuyến nghị đã chứng minh được ý nghĩa to lớn trong việc giúp người sử dụng trực tuyến đối phó với tình trạng quá tải thông tin. Chính vì vây, hệ thống khuyến nghị trở thành một trong những công cụ mạnh mẽ và phổ biến trong thương mại điện tử và trên nhiều lĩnh vực khác. Trong hầu hết các trường hợp, bài toán khuyến nghị được coi là bài toán ước lượng xếp hạng (rating) của các Item (phim, cd, nhà hàng . . . ) chưa được người dùng xem xét. Việc ước lượng này thường dựa trên những đánh giá đã có của chính người dùng đó hoặc từ những người dùng khác. Những Item có xếp hạng cao nhất sẽ được dùng để khuyến nghị. Từ đó người dùng có những lựa chọn thích hợp với nhu cầu và thị hiếu của mình. 1.1.2 Phát biểu bài toán Bài toán khuyến nghị được mô tả như sau: Gọi U là tập tất cả người dùng (users); V là tập tất cả các sản phẩm (items) có thể tư 1.1 Mô hình hệ thống khuyến nghị 3 vấn. Tập V có thể rất lớn, từ hàng trăm ngàn (sách, cd. . . ) đến hàng triệu (như website). Hàm r(u, v) đo độ phù hợp (hay hạng) của sản phẩm v với user u: r : U × V 7−→ R Trong đó R là tập các đánh giá (rating) được sắp thứ tự. Với mỗi người dùng u ∈ U , cần tìm sản phẩm v ∈ V sao cho hàm r(u, v) đạt giá trị lớn nhất. Trong hệ thống khuyến nghị có 3 đối tượng dữ liệu chính được sử dụng là: các mục tin trên hệ thống (Items), người sử dụng (Users) và các giao dịch - Transactions (liên quan giữa các item và user) Các mục tin (Items): Items là những đối tượng được đề nghị. Các mục tin có đặc tính phức tạp và có giá trị hữu ích. Giá trị của một item có thể là tích cực nếu nó có ích cho người sử dụng hoặc tiêu cực nếu nó không phù hợp khi người có lựa chọn sai. Lưu ý rằng khi người dùng nhận một item nào đó thì anh ta phải chịu một chi phí bao gồm việc tìm kiếm các item và chi phí thực để trả tiền cho item đó. Khi đó, các nhà thiết kế hệ thống khuyến nghị phải đưa sự phức tạp này của item vào tài khoản người dùng, ví dụ về cấu trúc, văn bản đại diện và thời gian phụ thuộc sự quan trọng của bất kì một item tin tức nào. Nhưng đồng thời các nhà thiết kế phải hiểu rằng thâm chí khi người dùng không trả tiền để đọc tin tức thì luôn có một chi phí nhận thức liên quan đến tìm kiếm và đọc các mục tin. Nếu một sản phẩm được chọn có liên quan đến người dùng chi phí này được chi phối bởi các lợi ích của việc có nên mua lại một thông tin hữu ích nào đó hay không, trong khi đó nếu các item không liên quan đến giá trị thực của sản phẩm thì khi được đề nghị nó sẽ là item tiêu cực. Trong các lĩnh vực khác như xe hơi, đầu tư tài chính thì chi phí tiền tệ thực của sản phẩm trở thành một yếu tố quan trọng để xem xét khi lựa chọn các phương pháp khuyến nghị thích hợp nhất. Một số item được phân loại theo giá trị và chức năng như sau: - Các item phức tạp có giá trị thấp: tin tức, trang web, sách, đĩa CD, phim ảnh. - Các item phức tạp có giá trị cao: máy ảnh kĩ thuật số, điện thoại di động, máy tính, ... - Các item phức tạp nhất là những chính sách bảo hiểm, đầu tư tài chính, phương tiện đi lại, việc làm. Công nghệ cốt lõi của hệ thống khuyến nghị là sử dụng một loạt các tính chất và tính năng của các item. Ví dụ như trong hệ thống khuyến nghị phim bao gồm: thể loại (hài, kinh dị, ...), đạo diễn, diễn viên,... để mô tả một bộ phim và tìm hiểu các tiện ích của một item phụ thuộc vào tính năng của nó. Các item được đại diện bằng cách sử dụng thông tin và đại diện các cách tiếp cận khác nhau, chẳng hạn như một mã id duy nhất hoặc trong hình phức phong phú hơn là tập các thuộc tính, phức tạp hơn là khái niệm đại diện tên miền. 1.1 Mô hình hệ thống khuyến nghị 4 Người sử dụng (Users): Như đã đề cập ở trên, người sử dụng trong hệ thống khuyến nghị là đối tượng để gợi ý có những mục tiêu và đặc điểm rất đa dạng. Để cá nhân hóa các khuyến nghị và tương tác người máy, hệ thống khuyến nghị khai thác một loạt các thông tin về người sử dụng. Những thông tin này có thể được cấu trúc theo nhiều cách khác nhau và việc chọn thông tin phụ thuộc vào kĩ thuật khuyến nghị. Ví dụ, trong lọc cộng tác người dùng được mô hình hóa dưới dạng danh sách đơn giản chứa các xếp hạng được cung cấp bởi người sử dụng đối với một số item. Trong hệ thống khuyến nghị nhân khẩu học, các thuộc tính được sử dụng là tuổi, giới tính, nghề nghiệp, trình độ học vấn. Từ đó, các dữ liệu người dùng sẽ tạo nên mô hình cá nhân người dùng để mã hóa sở thích và nhu cầu của người đó. Người sử dụng cũng có thể được mô tả bằng mô hình hành vi của họ, ví dụ trong mô hình trình duyệt (hệ thống khuyến nghị Website), mô hình tìm kiếm du lịch (hệ thống khuyến nghị du lịch). Ngoài ra, dữ liệu người dùng còn có thể bao gồm mối quan hệ giữa người sử dụng như mức độ tin cậy của các mối quan hệ giữa các người dùng. Hệ thống khuyến nghị có thể sử dụng thông tin này để giới thiệu các item từ một người dùng đáng tin cậy khác đã thích item này. Giao dịch (Transactions): Chúng ta đề cập chung đến một giao dịch là bản ghi tương tác giữa người sử dụng và hệ thống khuyến nghị. Giao dịch là dữ liệu đăng nhập chứa các thông tin quan trọng được tạo ra trong quá trình tương tác người - máy và nó giúp ích cho thuật toán khuyến nghị mà hệ thống đang sử dụng. Trong trường hợp này, một bản ghi giao dịch có thể chứa một tham chiếu đến các sản phẩm được chọn bởi người sử dụng và mô tả ngữ cảnh (mục tiêu sử dụng / truy vấn) cho hệ thống khuyến nghị. Trên thực tế, hình thức phổ biến nhất của dữ liệu giao dịch mà hệ thống khuyến nghị thu thập là các xếp hạng. Những đánh giá này có thể được thu thập một cách rõ ràng hoặc dưới dạng các biến ẩn. Trong trường hợp các xếp hạng là rõ ràng, người dùng sẽ được yêu cầu cung cấp ý kiến của mình về một mục trên thang điểm đánh giá. Các xếp hạng có thể ở các hình thức sau: - Xếp hạng số từ 1 đến 5 sao (hệ thống khuyến nghị sách trên Amazon.com). - Xếp hạng thứ tự chẳng hạn như: hoàn toàn đồng ý; đồng ý; trung lập; không đồng ý. Ở đây, người dùng được yêu cầu chọn thuật ngữ tốt nhất cho ý kiến của mình. - Xếp hạng nhị phân lựa chọn mô hình trong đó người dùng chỉ việc chọn mục nào đó là tốt hay xấu. - Xếp hạng Unary có thể chỉ ra được người dùng đã quan sát hoặc mua một item nào đó hoặc đã đánh giá trực tiếp trên item đó. Trong trường hợp này, sự vắng mặt của đánh giá cho thấy chúng ta không có thông tin liên quan giữa người dùng với item (có thể người đó đã mua ở chỗ khác). 1.1 Mô hình hệ thống khuyến nghị 5 Một hình thức khác để đánh giá là gộp tất cả các thẻ liên quan giữa người dùng với các item của hệ thống. Ví dụ, trong hệ thống khuyến nghị của MovieLens [28] các thẻ biểu diễn việc người dùng cảm thấy thế nào sau khi xem một bộ phim, có thể là "quá dài" hoặc "hành động". Trong các giao dịch xếp hạng dưới dạng ẩn, mục đích của hệ thống là để đưa ra ý kiến người dùng dựa trên các hành động của người dùng đó. Ví dụ, nếu người dùng nhập từ khóa "Yoga" ở Amazon thì anh ta sẽ được cung cấp một danh sách dài các cuốn sách có liên quan. Mặt khác, người dùng có thể click vào một cuốn sách nào đó trong danh sách để nhận được thêm thông tin. Ở điểm này, hệ thống có thể suy ra được người dùng có phần quan tâm đến cuốn sách đó. Với các hệ thống đàm thoại (hệ thống hỗ trợ một quá trình tương tác) mô hình giao dịch sẽ tinh tế hơn (dùng các yêu cầu bằng hành động). 1.1.3 Các chức năng của hệ thống khuyến nghị Như đã đề cập ở trên, hệ thống khuyến nghị là công cụ phần mềm và kỹ thuật cung cấp các đề xuất cho người dùng những sản phẩm, dịch vụ mà họ có thể muốn sử dụng. Dưới đây là một số chức năng của hệ thống: Tăng số lượng các mặt hàng bán ra cho các hệ thống thương mại điện tử: Đây có lẽ là chức năng quan trọng nhất của hệ thống khuyến nghị. Thay vì người dùng chỉ mua một sản phẩm mà họ cần, họ được khuyến nghị mua những sản phẩm "có thể họ cũng quan tâm" mà bản thân họ không nhận ra. Hệ thống khuyến nghị tìm ra những "mối quan tâm ẩn". Bằng cách đó, hệ thống khuyến nghị làm gia tăng nhu cầu của người dùng và gia tăng số lượng mặt hàng bán ra. Tương tự đối với các hệ thống phi thương mại (như các trang báo), hệ thống khuyến nghị sẽ giúp người dùng tiếp cận với nhiều đối tượng thông tin mang tính đa chiều và được nhiều người quan tâm hơn. Bán các mặt hàng đa dạng hơn trên các hệ thống thương mại điện tử: Đây là chức năng quan trọng thứ hai của hệ thống khuyến nghị. Hầu hết các hệ thống thương mại đều có các mặt hàng hết sức đa dạng và phong phú. Do vậy, khi nắm bắt được nhu cầu của người dùng, hệ thống khuyến nghị dễ dàng mang đến sự đa dạng trong sự lựa chọn hàng hóa. Từ đó, đòi hỏi các hệ thống thương mại điện tử cung cấp nhiều mặt hàng đa dạng và phù hợp với người sử dụng hơn. Tăng sự hài lòng người dùng: Vai trò chủ đạo của hệ thống khuyến nghị là hiểu nhu cầu của người dùng, gợi ý cho họ những thứ họ cần...Chính vì vậy hệ thống khuyến nghị tăng sự hài lòng của người dùng trên hệ thống và được lựa chọn ưu tiên khi họ có những băn khoăn hoặc khi chưa có kiến thức về sản phẩm. Tăng độ tin cậy, độ trung thực của người dùng: Hệ thống khuyến nghị cho người dùng những lựa chọn và họ hài lòng về những gợi ý đó thì lòng tin của họ đối với hệ thống (nơi mà giúp họ tìm ra những thứ họ thực sự quan tâm) được nâng lên một cách đáng kể. Đây thật sự là một điều thích thú và thu hút người dùng. Có một điểm quan trọng là hệ thống khuyến nghị hoạt động dựa trên những xếp hạng thật từ chính bản thân người dùng trong quá khứ. Do đó, khi người dùng càng tin cậy vào hệ thống, đưa ra những đánh giá trung thực cho các sản phẩm, hệ thống sẽ mang lại cho người dùng 1.2 Các phương pháp khai phá dữ liệu được sử dụng 6 nhiều gợi ý chính xác hơn, phù hợp với nhu cầu, sở thích trong cộng đồng người sử dụng trên Internet. Hiểu rõ hơn về những gì người dùng muốn: Đây là một chức năng quan trọng khác của hệ thống khuyến nghị được kế thừa từ nhiều ứng dụng khác nhau là thu thập hoặc dự đoán sở thích người dùng thông qua hệ thống. Điều này giúp cho các nhà phát triển dịch vụ có thể quyết định tái sử dụng các Item theo mục tiêu cải thiện quản lý cửa hàng hoặc tiến hành sản xuất. 1.1.4 Ứng dụng trong hệ thống khuyến nghị Chúng ta đã đề cập một số ứng dụng quan trọng của hệ thống khuyến nghị, nhưng ở đây chúng ta sẽ củng cố thêm những ứng dụng cơ bản sau: i) Khuyến nghị sản phẩm: Có lẽ người dùng quan trọng nhất của hệ thống khuyến nghị là các cửa hàng bán hàng trực tuyến. Chúng ta đã biết đến Amazon hoặc các nhà cung cấp trực tuyến tương tự đang phấn đấu để lôi kéo người dùng quan tâm đến những gợi ý sản phẩm họ có thể mua. Những khuyến nghị này không phải ngẫu nhiên mà nó dựa trên các quyết định mua hàng được thực hiện trên các khách hàng tương tự hoặc trên các công nghệ khác. ii) Khuyến nghị phim ảnh: Netflix cung cấp cho khách hàng các khuyến nghị về những bộ phim mà họ thích. Những khuyến nghị này được dựa trên các xếp hạng được cung cấp bởi người sử dụng (biểu diễn dưới dạng ma trận xếp hạng). Các dự đoán xếp hạng chính xác có tầm quan trọng rất lớn, Netflix đã đưa ra giải thưởng một triệu đô la cho người đầu tiên có thuật toán đánh bại 10% hệ thống khuyến nghị của chính họ. Sau 3 năm nghiên cứu, cuối cùng giải thưởng giành chiến thắng trong năm 2009 thuộc về nhóm các nhà nghiên cứu Bellkor’s Pragmatic Chaos. iii) Các trang tin tức: Dịch vụ tin tức đã cố gắng xác định sự quan tâm của độc giả dựa trên các bài viết mà họ đã đọc trong quá khứ. Sự giống nhau có thể dựa trên các từ khóa tương tự trong tài liệu hoặc các bài viết đã được đọc từ người đọc có cùng thị hiếu. Nguyên tắc áp dụng để khuyến nghị là cập nhật thường xuyên nội dung giữa hàng triệu blog có sẵn, video trên YouTube hoặc trên các trang web khác. 1.2 Các phương pháp khai phá dữ liệu được sử dụng Có rất nhiều cách để dự đoán, ước lượng hạng/điểm cho các sản phẩm như sử dụng học máy, lý thuyết xác suất, các thuật toán dựa trên kinh nghiệm, . . . Các hệ thống tư vấn thường được phân thành ba loại dựa trên cách nó dùng để ước lượng hạng của sản phẩm: 1.2 Các phương pháp khai phá dữ liệu được sử dụng 1.2.1 7 Khuyến nghị dựa trên nội dung (Content-Based Recommendation System) Khuyến nghị dựa trên nội dung được dựa trên mô tả có sẵn về đối tượng. Phương pháp khuyến nghị dựa trên nội dung, dựa trên độ phù hợp r(u, v) của sản phẩm v với người dùng u được đánh giá dựa trên độ phù hợp r(u, vi ), trong đó vi ∈ V và tương tự như v. Ví dụ, để gợi ý một bộ phim cho người dùng u, hệ thống khuyến nghị 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 u 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 gợi ý 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). Cụ thể hơn, đặt Content(v) là tập thông tin (hay tập các đặc trưng) về sản phẩm v. Do hệ thống dựa trên nội dung được thiết kế chủ yếu để dành cho các sản phẩm là text, nên nội dung sản phẩm thường được biểu diễn bởi các từ khóa (keyword): Content(v) = (w1v , . . . , wkv ) với w1v , . . . , wkv là trọng số của các từ khóa từ 1 đến k. Ví dụ, ở hệ thống khuyến nghị website Fab biểu diễn nội dung các trang web bằng 100 từ quan trọng nhất. Tương tự, hệ thống Syskill & Webert biểu diễn văn bản bằng 128 từ có trọng số cao nhất. Đặt Profile(u) là hồ sơ về người dùng u, bao gồm các thông tin cơ bản về sở thích của u. Những thông tin này có được bằng cách phân tích nội dung của các sản phẩm từng được u đánh giá (rating) trước đó. Phương pháp được sử dụng thường là các kĩ thuật phân tích từ khóa của IR, do đó, Profile(u) cũng có thể được định nghĩa như một vector trọng số: Profile(u) = (w1u , . . . , wku ) với wi u biểu diễn độ quan trọng của từ khóa i với người dùng u. Trong hệ thống khuyến nghị dựa trên nội dung, độ phù hợp r(u, v) được xác định bởi công thức: r(u, v) = score(Profile(u), Content(v)) Cả Profile(u), Content(v) đều có thể được biểu diễn bằng vector trọng số (tương ứng là − →, − → w u wv ) nên có thể đo độ tương đồng của chúng bằng độ đo cosin: − →.− → w u wv →, − →) = r(u, v) = cos(− w w u v −−−→ −−→ kwu k × kwv k Ví dụ, nếu u đọc nhiều bài báo thuộc lĩnh vực sinh học thì các từ khóa liên quan tới sinh học (như: gen, protein, tế bào, ADN, ...) trong Profile(u) sẽ có trọng số cao. Hệ quả là với các bài báo v cũng thuộc lĩnh vực này sẽ có độ phù hợp r(u, v) cao hơn với người dùng u. 1.2 Các phương pháp khai phá dữ liệu được sử dụng 8 Bên cạnh các phương pháp IR, hệ thống khuyến nghị dựa trên nội dung còn sử dụng nhiều phương pháp học máy khác như: phân lớp Bayes, cây quyết định, mạng nowrron nhân tạo, ... Các phương pháp này khác với các phương pháp của IR ở chỗ nó dưa trên các mô hình học được từ dữ liệu nền tảng. Ví dụ, dựa trên tập các trang web đã được người dùng đánh giá là có nội dung "tốt" hoặc "xấu" có thể sử dụng phân lớp Bayes để phân loại các trang web chưa được đánh giá. Khuyến nghị dựa trên nội dung có những ưu điểm: i) Đầu tiên, nó không yêu cầu số lượng người sử dụng lớn để đạt được độ chính xác đề nghị hợp lý. ii) Ngoài ra, các mặt hàng mới có thể được khuyến nghị ngay dựa trên thuộc tính có sẵn. Tuy nhiên, nhược điểm của khuyến nghị dựa trên nội dung là khi thông tin mô tả đối tượng có chất lượng kém và bị lỗi. Trong một số trường hợp, những mô tả về nội dung rất khó để so sánh và rút ra gợi ý, chẳng hạn so sánh nội dung của các file video, audio,. . . Việc phân tích nội dung của các đối tượng sản phẩm để đưa ra các sản phẩm tương tự nhau, từ đó đưa ra các khuyến nghị cho người dùng vẫn chưa phản ánh đúng sở thích của người dùng đó với các sản phẩm. 1.2.2 Khuyến nghị lọc cộng tác (Collaborative Filtering Recomnendation System) Ý tưởng cơ bản của các hệ thống này là dựa vào các đánh giá của những người dùng quá khứ lên các sản phẩm, dịch vụ để dự đoán sự đánh giá của họ lên các sản phẩm, dịch vụ mà họ chưa đánh giá. Bài toán lọc cộng tác (hay đánh giá độ tương quan) dựa trên hành vi quá khứ của người dùng (trong việc đánh giá sản phẩm) để đưa ra dự đoán. Đầu vào của bài toán là ma trận thể hiện những hành vi quá khứ, gọi là ma trận Người dùng - Sản phẩm (ma trận U × V ) có hàng là người dùng, cột là sản phẩm, giá trị mỗi ô là đánh giá của người dùng lên sản phẩm đó. Đầu ra của bài toán là: đánh giá của người dùng lên những sản phẩm mà họ chưa đánh giá. Hệ thống khuyến nghị dựa trên các đánh giá này để xếp hạng các sản phẩm và gợi ý cho người dùng. Hệ thống khuyến nghị lọc cộng tác dự đoán độ phù hợp r(u, v) của một sản phẩm v với người dùng u dựa trên độ phù hợp r(ui , v) giữa người dùng ui và v, 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 cộng tác tìm những người dùng khác có cùng sở thích phim ảnh với u. Sau đó, những bộ phim được họ đánh giá cao sẽ được dùng để tư vấn cho u. Có nhiều hệ thống cộng tác đã được phát triển như: Youtube (video), Amazon (sách), . . . Các hệ thống này có thể chia thành hai loại: dựa trên kinh nghiệm (heuristic-based hay memory-based) và dựa trên mô hình (model-based). 1.2 Các phương pháp khai phá dữ liệu được sử dụng 1.2.3 9 Kết hợp các phương pháp (Hybrid): Các cách tiếp cận khác nhau có những ưu điểm và nhược điểm riêng. Do đó cần kết hợp các kỹ thuật khác nhau tận dụng ưu điểm và nhược điểm của từng cách tiếp cận nhằm có hệ thống khuyến nghị chính xác hơn. Một vài hệ thống khuyến nghị kết hợp cả phương pháp lọc cộng tác và lọc dựa trên nội dung nhằm tránh những hạn chế của cả hai phương pháp. Có thể phân thành bốn 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: - 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, sử dụng cách kết hợp tuyến tính (linear combination) hoặc thực hiện bỏ phiếu (voting scheme). - Cách 2: Tại mỗi thời điểm, chỉ chọn phương pháp cho kết quả tốt hơn (dựa trên một số độ đo chất lượng tư vấn nào đó). Ví dụ, hệ thống DailyLearner chọn phương pháp nào đưa ra gợi ý với độ chính xác (confidence) cao hơn. Tích hợp các đặc trưng của phương pháp dựa trên nội dung vào hệ thống cộng tác: Một số hệ thống lai (như Fab) chủ yếu dựa trên các kĩ thuật cộng tác nhưng vẫn duy trì hồ sơ về người dùng (theo dạng của mô hình dựa trên nội dung). Hồ sơ này được dùng để tính độ tương đồng giữa hai người dùng, nhờ đó giải quyết được trường hợp có quá ít sản phẩm chung được đánh giá bởi cả hai người. Một lợi ích khác là các gợi ý sẽ không chỉ giới hạn trong các sản phẩm được đánh giá cao bởi những người cùng sở thích (gián tiếp), mà còn cả với những sản phẩm có độ tương đồng cao với sở thích của chính người dùng đó (trực tiếp). Tích hợp các đặc trưng của phương pháp cộng tác vào hệ thống dựa trên nội dung: Hướng tiếp cận phổ biến nhất là dùng các kĩ thuật giảm số chiều trên tập hồ sơ của phương pháp dựa trên nội dung. Ví dụ, [15] sử dụng phân tích ngữ nghĩa ẩn (latent semantic analysis) để tạo ra hướng cộng tác (collaborative view) với tập hồ sơ người dùng (mỗi hồ sơ được biểu diễn bởi một vector từ khóa). Xây dựng mô hình hợp nhất, bao gồm các đặc trưng của cả hai phương pháp: Trong những năm gần đây đã có nhiều nghiên cứu về mô hình hợp nhất. [16] đề xuất kết hợp đặc trưng của cả hai phương pháp vào một bộ phân lớp dựa trên luật (rule-based classifier). Popescul và cộng sự trong [17] đưa ra phương pháp xác suất hợp nhất dựa trên phân tích xác suất ngữ nghĩa ẩn (probabilistic latent semantic analysis). [23] giới thiệu mô hình hồi quy Bayes sử dụng chuỗi Markov Monte Carlo để ước lượng tham số. Độ chính xác của hệ thống khuyến nghị kết hợp có thể được cải tiến bằng cách sử dụng các kĩ thuật dựa trên tri thức (knowledge-based) như case-based reasoning. Ví dụ, hệ thống Entrée dùng những tri thức về nhà hàng, thực phẩm (như: đồ biển không phải là thức ăn chay), ... để gợi ý những nhà hàng phù hợp với người dùng. Hạn chế chính của hệ thống dạng này là nó cần phải thu thập đủ tri thức, đây cũng là nút thắt cổ chai (bottle-neck) của rất nhiều hệ thống trí tuệ nhân tạo khác. Tuy nhiên, các hệ thống 1.2 Các phương pháp khai phá dữ liệu được sử dụng 10 khuyến nghị dựa trên tri thức hiện đang được phát triển trên các lĩnh vực mà miền tri thức của nó có thể biểu diễn ở dạng mà máy tính đọc được (như ontology). Ví dụ, hệ thống Quickstep và Foxtrot sử dụng ontology về chủ đề của các bài báo khoa học để gợi ý những bài báo phù hợp cho người dùng. Một bài báo như [9] đã thực hiện so sánh hiệu năng của hệ thống kết hợp với các hệ thống dựa trên nội dung và cộng tác thuần túy; từ đó cho thấy hệ thống kết hợp cho độ chính xác cao hơn.
- Xem thêm -