Tải bản đầy đủ (.pdf) (65 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (872.49 KB, 65 trang )

ĐẠ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 Từ viết tắt Tiếng Anh Tiếng việt
1 U User Người dùng
2 P Product Sản phẩm
3 I Items Đối tượng
4 V Items Đối tượng
5 IR Information Retrieval Thu thập thông tin
6 IF Information Filtering Lọc thông tin
7 RS Recommender Systems Hệ thống khuyến nghị
8 CF Collaborative Filtering Lọc cộng tác
9 MF Matrix Factorization Phân tích ma trận
10 MMMF Maximum Margin Matrix Fac-
torization
Cực đại hóa biên trong phân
tích ma trận
11 SVD Singular Value Decomposition Phân giải giá trị đơn
12 LSI Latent Semantic Indexing Chỉ số ngữ nghĩa ẩn
13 SGD Stochastic Gradient Descent Phương pháp xuống đồi

14 DSGD Distributed Stochastic Gradi-
ent Descent
Phương pháp xuống đồi theo
cách phân tán
15 FPSGD Fast Parrael Stochastic Gradi-
ent Descent
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.1 Mô hình hệ thống khuyến nghị . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.1 Các khái niệm chung về hệ thống khuyến nghị . . . . . . . . . . . . 1
1.1.2 Phát biểu bài toán . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1.3 Các chức năng của hệ thống khuyến nghị . . . . . . . . . . . . . . . 5
1.1.4 Ứng dụng trong hệ thống khuyến nghị . . . . . . . . . . . . . . . . 6
1.2 Các phương pháp khai phá dữ liệu được sử dụng . . . . . . . . . . . . . . . 6
1.2.1 Khuyến nghị dựa trên nội dung (Content-Based Recommendation
System) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2.2 Khuyến nghị lọc cộng tác (Collaborative Filtering Recomnendation
System) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.2.3 Kết hợp các phương pháp (Hybrid): . . . . . . . . . . . . . . . . . . 9
2 Phương pháp lọc cộng tác 11
2.1 Giới thiệu về lọc cộng tác . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.1.1 Ưu điểm của lọc cộng tác . . . . . . . . . . . . . . . . . . . . . . . 13
2.1.2 Các hình thức tiếp cận . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2 Lọc cộng tác dựa trên bộ nhớ . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.2.1 Tính toán độ tương tự . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2.2 Tính toán dự đoán và khuyến nghị . . . . . . . . . . . . . . . . . . 20
2.3 Lọc cộng tác dựa trên mô hình . . . . . . . . . . . . . . . . . . . . . . . . 20
2.4 Các cách tiếp cận liên quan trong hệ thống khuyến nghị . . . . . . . . . . 21
2.4.1 Ước lượng cơ sở (Baseline Estimates) . . . . . . . . . . . . . . . . . 22
2.4.2 Mô hình láng giềng (Neighborhood models) . . . . . . . . . . . . . 22
2.4.3 Mô hình nhân tố ẩn (Latent factor models) . . . . . . . . . . . . . . 23
MỤC LỤC viii
2.5 Khó khăn và thách thức trong lọc cộng tác . . . . . . . . . . . . . . . . . . 23
2.5.1 Sự thưa thớt dữ liệu . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.5.2 Khả năng mở rộng . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.5.3 Tính đồng nghĩa . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.5.4 Sự mập mờ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.5.5 Sự tấn công . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

3 Kĩ thuật phân tích ma trận cho hệ thống khuyến nghị 28
3.1 Kỹ thuật phân tích ma trận đơn giản . . . . . . . . . . . . . . . . . . . . . 28
3.2 Thuật toán SGD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.2.1 Cơ sở lý thuyết . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.2.2 Phát biểu bài toán . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.2.3 Thuật toán SGD dùng cho phân tích ma trận . . . . . . . . . . . . 31
3.3 Thuật toán DSGD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.3.1 Tính có thể tráo đổi được (interchangeability) . . . . . . . . . . . . 32
3.3.2 Trường hợp đơn giản . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.3.3 Trường hợp tổng quát . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.4 Thuật toán FPSGD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.4.1 Vấn đề locking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.4.2 Gián đoạn bộ nhớ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.4.3 Giải quyết vấn đề . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4 Thực nghiệm và đánh giá 44
4.1 Cấu hình thử nghiệm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.1.1 Dữ liệu thử nghiệm . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.1.2 Thực hiện thử nghiệm . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.2 Phân tích kết quả và đánh giá . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.2.1 Phân tích kết quả . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.2.2 Nhận xét và đánh giá . . . . . . . . . . . . . . . . . . . . . . . . . . 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 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ị
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 −→ 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 7
1.2.1 Khuyến nghị dựa trên nội dung (Content-Based Recom-
mendation 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, v
i
), trong đó v
i
∈ 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) = (w
1v

, . . . , w
kv
) với w
1v
, . . . , w
kv
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) = (w
1u
, . . . , w
ku
) với w
i
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

,
−→
w
v
) nên có thể đo độ tương đồng của chúng bằng độ đo cosin:
r(u, v) = cos(
−→
w
u
,
−→
w
v
) =
−→
w
u
.
−→
w
v
−−−→
w
u
 ×
−−→
w
v

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 Recom-
nendation 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(u
i
, v) giữa người dùng u
i
và v, trong đó u
i

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 9
1.2.3 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.
Chương 2
Phương pháp lọc cộng tác
2.1 Giới thiệu về lọc cộng tác
Các nhà phát triển hệ thống khuyến nghị đầu tiên đã đưa ra thuật ngữ collabrative
filtering (lọc cộng tác). Giả thuyết của lọc cộng tác là: “nếu người dùng i và j dánh giá
cho n sản phẩm tương tự nhau, hoặc có hành vi tương tự nhau (như: xem, mua, nghe .)
thì họ sẽ có các đánh giá tương tự nhau đối với các sản phẩm khác”.
Hệ thống khuyến nghị thường dựa trên lọc cộng tác (Collaborative filtering - CF),
dựa trên những hành vi quá khứ của người dùng, ví dụ như: lịch sử giao dịch, đánh giá
sản phẩm, thời gian xem một mục tin . và đặc biệt là nó không cần thiết phải tạo
ra các hồ sơ tường minh (explicit feedback) cho người dùng. Để gợi ý được các mục tin,
hệ thống CF cần so sánh các đối tượng cơ bản khác nhau như các mục tin (items) và
người dùng (users). Có hai nhánh nghiên cứu chính của lọc cộng tác là tiếp cận láng giềng
(neighborhood approach) và các mô hình nhân tố ẩn (latent factor models).
Trong hầu hết những hệ lọc cộng tác, dữ liệu luôn sẵn sàng dưới dạng những đánh giá
của người dùng về sản phẩm. Cụ thể, ta đặt U là tập người dùng, P là tập sản phẩm, và
dữ liệu D là tập bộ ba (i, x, r), trong đó i ∈ U là một người dùng, x ∈ P là một sản phẩm,
và r ∈ R
+
là trọng số của sản phẩm x do người dùng i đánh giá. Để đơn giản những ký
hiệu này, chúng ta biểu diễn r
ix
là trọng số của của người dùng i cho sản phẩm x – tức là
r
ix

= (i, x, r). Hơn nữa, ứng với mỗi người dùng i ∈ U chúng ta biểu diễn P
i
⊆ P là tập
các sản phẩm được đánh giá bởi người dùng i. Tương tự thế, U
x
⊆ U là tập người dùng
đã đưa đánh giá cho sản phẩm x.
Dựa vào mỗi người dùng i ∈ U và sản phẩm x ∈ P/P
i
, dự đoán trọng số sản phẩm
chính là dự đoán trọng số của người dùng i cho sản phẩm x. Mở rộng của vấn đề này là
tìm tập k sản phẩm mà rất có thể người dùng sẽ quan tâm là công việc chính trong các
hệ thống khuyến nghị hiện nay. Giả sử rằng chúng ta có một hệ thống dự đoán các đánh
giá của người dùng lên các sản phẩm mới, và dựa vào đó ta có thể lấy ra k sản phẩm
được dự đoán có trọng số cao nhất. Cuối cùng, hai vấn đề quan trọng nhất đó là làm thế
nào để tìm được tập k người dùng tương tự với người dùng i nhất dựa trên thị hiếu về
sản phẩm hay làm thế nào để tìm ra tập k sản phẩm tương tự với sản phẩm x nhất để có
thể đưa ra các dự đoán trọng số đánh giá của người dùng và sản phẩm tương ứng. Trong
2.1 Giới thiệu về lọc cộng tác 12
lọc cộng tác, các kỹ thuật này được chia thành hai nhóm chính là phương pháp tiếp cận
dựa trên bộ nhớ (mục 2.2) và phương pháp tiếp cận dựa trên mô hình (mục 2.3).
Hình 2.1 Trang khuyến nghị của www.amazon.com
Với phương pháp lọc cộng tác dựa trên bộ nhớ, các hệ thống thường có xu hướng sử
dụng toàn bộ dữ liệu đánh giá của người dùng để dự đoán đánh giá của người dùng nào
đó về một sản phẩm mới. Nhờ lợi thế là có khả năng đưa trực tiếp dữ liệu mới vào bảng
dữ liệu, do đó nó đạt được khá nhiều thành công khi được áp dụng vào thực tế. Cũng do
đó mà các kỹ thuật này thường đưa ra các dự đoán chính xác hơn trong các hệ trực tuyến
– nơi mà ở đó luôn có dữ liệu mới được cập nhật. Kỹ thuật này đã được áp dụng khá
thành công trong nhiều hệ thống thương mại như Amazon , Ebay, Tuy nhiên, chúng ta
sẽ nhận thấy rằng các hệ thống thế này thường gặp phải vấn đề thưa thớt dữ liệu. Có

thể dễ dàng nhận ra một vài giới hạn trong kỹ thuật lọc cộng tác dựa trên bộ nhớ. Như
trên thực tế, giá trị tương tự (mục 2.2.1) là dựa trên các đánh giá trên cùng sản phẩm
hoặc được đưa ra bởi cùng người dùng, vì vậy khi dữ liệu ít thì nó không còn đáng tin
cậy nữa. Để đạt được hiệu suất dự đoán tốt hơn và khắc phục những thiếu sót của thuật
toán lọc cộng tác dựa trên bộ nhớ, phương pháp lọc cộng tác dựa trên mô hình ra đời
(mục 2.3). Phương pháp tiếp cận dựa trên mô hình không sử dụng tất cả cá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 của người dùng. Những phương pháp như vậy
có nhiều thuận lợi trong việc cung cấp nhanh và có những dự đoán chính xác, giảm thiểu
đi tính nhạy cảm trong trường hợp ít dữ liệu. Tuy nhiên, chúng thường yêu cầu nhiều
thời gian để nắm bắt mô hình, làm giảm đi hiệu quả trong việc cài đặt trên các ứng dụng
trực tuyến – nơi mà dữ liệu thường xuyên được thêm vào.
2.1 Giới thiệu về lọc cộng tác 13
Hình 2.2 Trang khuyến nghị của movielens.umn.edu
2.1.1 Ưu điểm của lọc cộng tác
Khi xây dựng Hệ thống khuyến nghị dựa trên phương pháp tiếp cận nội dung (Content-
Based Recommendation), có các phát sinh như sau:
i) Đặc tính nội dung của một Đối tượng là không đủ để sử dụng khi khuyến nghị. Ví
dụ như chúng ta không thể xác định được một bài hát đó hay hoặc không hay nếu
chỉ dựa vào tông nhạc khi 2 bài hát đó sử dụng cùng một tông.
ii) Khuyến nghị bị giới hạn: khi có một bài hát mới vào hệ thống thì bài hát đó được
xác định là sẽ được người dùng U đánh giá cao nếu như nó các các đặc tính tương
đồng cao với các bài hát mà người dùng U thích trong quá khứ và ngược lại. Chính
điều này làm giới hạn việc khuyến nghị khi có một số sản phẩm có thể người dùng
U thích nhưng lại không có các đặc tính tương đồng với các bài hát mà người dùng
U đã thích trong quá khứ.
iii) Tốc độ xử lý: tốc độ xử lý bị ảnh hưởng khi nội dung của Đối tượng dùng để khuyến
nghị có tính chất phức tạp như hình ảnh, âm thanh. . .
Ngay từ khi ra đời, các hệ thống lọc cộng tác đã thể hiện sự ưu việt hơn các hệ thống
khuyến nghị lựa chọn dựa trên lọc nội dung. Những ưu điểm của hệ lọc cộng tác như: có

thể lọc kết hợp nhiều loại thông tin, không cần mô tả thông tin chi tiết về item hay người
dùng có thể nhận được những khuyến nghị bất ngờ, và đặc biệt, các hệ lọc cộng tác có
thể dễ cài đặt hơn nhiều.
i) Có thể lọc thông tin thuộc bất kỳ loại nào: Lọc cộng tác dựa trên đánh giá
của người dùng về hàng hóa, sản phẩm, phim, tài liệu, . không có giới hạn về lĩnh
vực, không cần phải phân tích, hiểu hoặc đánh chỉ số cho nội dung cần lọc. Ưu điểm
này đã khắc phục được một trong những hạn chế chính của lọc theo nội dung bởi
lọc theo nội dung đòi hỏi các item cần phải có nội dung được cấu trúc tốt và yêu
cầu một quá trình phân tích chuyển đổi, trích ra những thành phần đặc trưng. Lọc
theo nội dung chỉ phù hợp với dữ liệu văn bản. Với những lĩnh vực không thuộc tài
liệu văn bản như phim, âm nhac, . thì lọc theo nội dung vẫn cần phải có sự chuyển
2.1 Giới thiệu về lọc cộng tác 14
đổi thích hợp để đưa về dạng tài liệu như là tên diễn viên, đạo diễn, nhận xét của
người dùng Những phân tích chuyển đổi này rất tốn kém công sức để thu nhập,
tính toán. Thêm vào đó, với lọc cộng tác, nhiều lĩnh vực khác nhau có thể cùng sử
dụng chung một phương pháp, cùng nền tảng. Cùng một hệ thống lọc cộng tác có
thể áp dụng để lọc các bản tin, sản phẩm, hàng hóa, phim, âm nhạc, tranh ảnh và
sách .
ii) Không cần xác định thông tin mô tả yêu cầu: Trong lọc theo nội dung, hệ
thống cần phải xây dựng kho thông tin mô tả yêu cầu, sở thích của người dùng
dưới dạng tiểu sử. Hệ thống lọc cộng tác không yêu cầu phải mô tả những thông
tin này một cách tường minh. Các hàng hóa, sản phẩm được lọc và gợi ý cho người
dùng dựa vào mối quan hệ, sự tương đồng sâu xa giữa người dùng với nhau thể hiện
thông qua những đánh giá của họ trên các hàng hóa, sản phẩm của hệ thống. Ví
dụ, lọc cộng tác có thẻ được sử dụng để xây dựng hệ thống khuyến nghị lựa chọn
gợi ý những tài liệu được viết tốt trong khi lọc nội dung lại khó khăn trong việc
phân biệt giữa các tài liệu viết tồi với các tài liệu viết tốt vì chỉ dựa trên thống kê,
không thực sự dựa trên quan điểm suy nghĩ của con người.
iii) Người dùng có thể nhận được những gợi ý bất ngờ: Gợi ý bất ngờ là những
gợi ý về các sản phẩm, hàng hóa không chứa những thông tin mà người dùng đang

thực sự tìm kiếm. Đó là bởi vì trong lọc cộng tác, một mục được gợi ý cho người
dùng nếu một người dùng khác có sở thích tương đồng quan tâm, do đó hoàn toàn
có khả năng người dùng có sở thích tương đồng quan tâm lại không phải là cái mà
người được khuyến nghị đang tìm kiếm. Còn trong lọc nội dung, người dùng phải
cung cấp cho hệ thống mô tả về những mục quan tâm và hệ thống sẽ chỉ gợi ý cho
người dùng những mục khoản thỏa mãn mô tả đó.
iv) Khả năng ứng dụng thực tiễn cao: Nghiên cứu đầu tiên về lọc cộng tác được
thực hiện vào năm 1994. Từ đó đến nay, các nghiên cứu cũng như ứng dụng vào
thương mại của lọc cộng tác đã phát triển khá nhanh và rộng. Một số công ty đã
được thành lập để thương mại hóa công nghệ này, trong đó có cả Net Perceptions
[29] vốn bắt nguồn từ những nghiên cứu của Đại học Minnesota, và cả website mua
bán lớn nhất thế giới Amazon [26]. Sự chuyển dịch thành công của lọc cộng tác từ
nghiên cứu sang thương mại trong một thời gian ngắn một phần là do ưu điểm, tính
hữu ích, cùng với khả năng ứng dụng lớn của nó đã được công nhận.
2.1.2 Các hình thức tiếp cận
Phương pháp tiếp cận dựa trên bộ nhớ (Memory base)
Ý tưởng
Tính toán toàn bộ và lưu vào ma trận U × V
Vấn đề chuẩn hóa (Normalization)
Các phương pháp chuẩn hóa:
2.1 Giới thiệu về lọc cộng tác 15
Phương pháp Mean-Centering: Ý tưởng chính của phương pháp này là so sánh một Đánh
giá của người dùng là âm hay dương (tốt hay xấu) so với đánh giá trung bình như sau:
H(r
uv
) = r
uv
− r
uv
Nhược điểm của phương pháp này là khi hai người dùng A và B có cùng giá trị trung

bình của các đánh giá, thì sự phản ảnh của 2 người dùng này là giống nhau mặc dù trên
thực tế người dùng A có thể có các đánh giá 2,3,4 trong khi người dùng B lại có cả 3
đánh giá đều mang giá trị là 3.
Phương pháp Z-Score:
Phương pháp này khắc phục được nhược điểm của phương pháp Mean-Centering. Phương
pháp này phân hóa các đánh giá là tốt hay xấu dựa trên độ lệch chuẩn của các đánh giá.
H(r
uv
) =
r
uv
− r
uv
uv
Phương pháp tính độ tương tự
Các phương pháp tính Độ tương đồng:
- Phương pháp dựa trên Cosine Vector:
- Phương pháp dựa trên Peason Correalation:
- Phương pháp dựa trên Adjusted Cosine:
- Phương pháp dựa trên Mean Squared Different (MSD).
- Phương pháp dựa trên Spearman Rank Corelation (SRC).
Lựa chọn số lượng lân cận (Neighborhood Selection)
Việc lựa chọn số lượng lân cận trong phương pháp tiếp cận Memory-Based là rất quan
trọng vì nó ảnh hưởng trực tiếp đến chất lượng của khuyến nghị. Nếu chọn số lượng lân
cận lớn rõ ràng chất lượng của khuyến nghị sẽ được nâng lên. Tuy nhiên, đi theo đó là
các chi phí về bộ nhớ, thời gian tính toán cũng phải tăng theo. Ngược lại, nếu lựa chọn số
lân cận quá thấp thì sẽ ảnh hưởng đến chất lượng của khuyến nghị. Có một vài phương
pháp nhằm giải quyết việc lựa chọn như sau:
- Chọn top -N: Chọn ra N lân cận có độ tương đồng cao nhất và lưu trữ các chỉ số
tương đồng này lại trong cơ sở dữ liệu. Khi tính toán thì chỉ cần tính toán trên các

lân cận này.
- Chọn theo ngưỡng: Định ra một ngưỡng cho độ tương đồng, các lân cận nào có độ
tương đồng vượt qua ngưỡng thì được lưu trữ lại và tính toán.
- Tính âm
Ưu điểm và nhược điểm
* Ưu điểm:

×