BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯƠNG ĐẠI HỌC QUY NHƠN
ĐÀO CHÍ THANH
TÍCH HỢP THƠNG TIN NGỮ CẢNH TRONG HỆ GỢI Ý
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
Mã số: 60.48.01.01
Bình Định - Năm 2020
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC QUY NHƠN
ĐÀO CHÍ THANH
ĐỀ TÀI
TÍCH HỢP THƠNG TIN NGỮ CẢNH TRONG HỆ GỢI Ý
Chuyên ngành : KHOA HỌC MÁY TÍNH
Mã số : 60. 48. 01. 01
Người hướng dẫn : TS. LÊ QUANG HÙNG
LỜI CAM ĐOAN
Tơi xin cam đoan các kết quả trình bày trong luận văn là q trình
nghiên cứu của tơi dưới sự hướng dẫn của các cán bộ hướng dẫn. Các số
liệu, các kết quả trình bày trong luận án hồn tồn trung thực. Các dữ liệu
tham khảo được trích dẫn đầy đủ.
Quy Nhơn, ngày tháng 9 năm 2020
Đào Chí Thanh
i
TÓM TẮT
Hệ gợi ý (recommender systems) là lớp con của hệ thống lọc thơng tin,
nó là một phương tiện có giá trị để giải quyết vấn đề quá tải thông tin. Với
mục đích đưa ra các gợi ý về các sản phẩm, dịch vụ phù hợp với người dùng
dựa trên hành vi của họ trong quá khứ hoặc dựa trên sự tương đồng về sở
thích với người dùng khác. Hệ gợi ý được ứng dụng ở nhiều lĩnh vực khác
nhau, đặc biệt là trong thương mại điện tử (ví dụ: Amazon1 , Netflix2 ,...).
Việc gợi ý sản phẩm phù hợp góp phần làm tăng doanh số bán hàng hoặc số
lượng truy cập vào hệ thống, đồng thời giúp cho khách hàng có được những
thơng tin thú vị hoặc những sản phẩm họ muốn tìm dễ dàng hơn.
Các hướng tiếp cận xây dựng hệ gợi ý có thể chia thành ba loại: hướng
tiếp cận lọc cộng tác, hướng tiếp cận dựa trên nội dung và hướng tiếp cận
kết hợp lọc cộng tác với dựa trên nội dung. Hướng tiếp cận thứ nhất khai
thác thuộc tính của sản phẩm, xác định các đặc điểm chung của các sản
phẩm người dùng quan tâm, từ đó gợi ý cho người dùng những sản phẩm
có đặc điểm tương tự. Hướng tiếp cận thứ hai khai thác dữ liệu về sở thích
của người dùng trong quá khứ và sự tương đồng giữa các người dùng hoặc
giữa các sản phẩm để đưa ra gợi ý. Nói cách khác, các hệ thống lọc cộng tác
giúp người dùng lựa chọn sản phẩm dựa vào ý kiến, sự đánh giá của những
người khác.
Hệ gợi ý truyền thống chỉ dựa trên thông tin về người dùng và sản phẩm
để đưa ra các gợi ý hoặc dự đoán đánh giá cho những cặp người dùng-sản
phẩm chưa biết. Tuy nhiên, hệ gợi ý truyền thống chưa đầy đủ, chưa phù
hợp với từng địa điểm, thời gian,... điều này ảnh hưởng đến đánh giá của
người dùng đối với các sản phẩm (ảnh hưởng chất lượng gợi ý).
Thông tin ngữ cảnh (thời gian, địa điểm, thời tiết, tâm trạng,...) đóng
một vai trị quan trọng và ảnh hưởng đến trải nghiệm sản phẩm của người
dùng. Sở thích của người dùng có thể thay đổi tùy vào ngữ cảnh. Chẳng
hạn, người dùng có thể chọn đến một nhà hàng khác khi họ đi với trẻ nhỏ
1
2
ii
thay vì đi với bạn bè. Người dùng có thể chọn đến Đà Lạt với khí hậu mát
mẻ trong mùa hè hơn là mùa đông. Hệ gợi ý theo ngữ cảnh là sự mở rộng
trên các hệ gợi ý truyền thống, khi đưa ra các gợi ý đến người dùng và có
xem xét đến các thơng tin ngữ cảnh.
Trong luận văn này, chúng tơi nghiên cứu về tích hợp thơng tin ngữ cảnh
trong hệ gợi ý, bao gồm:
1. Lọc trước ngữ cảnh: thông tin ngữ cảnh được dùng để lựa chọn hoặc
xây dựng tập dữ liệu phù hợp với ngữ cảnh đưa vào. Sau đó, các hệ
gợi ý truyền thống sẽ được áp dụng lên tập dữ liệu mới này và đưa ra
các gợi ý phù hợp.
2. Lọc sau ngữ cảnh: các hệ gợi ý truyền thống được sử dụng trực tiếp
trên tập dữ liệu đầu vào mà không cần quan tâm tới yếu tố ngữ cảnh.
Sau đó, các thơng tin ngữ cảnh được sử dụng để điều chỉnh các kết
quả đầu ra.
3. Mơ hình hóa ngữ cảnh: thơng tin ngữ cảnh được tích hợp trực tiếp
trong hàm gợi ý.
. Thực nghiệm được tiến hành trên các miền dữ liệu về du lịch và âm nhạc
cho thấy hiệu quả của hệ gợi ý theo ngữ cảnh so với hệ gợi ý truyền thống.
Từ khóa: Hệ gợi ý, ngữ cảnh, lọc trước theo ngữ cảnh, lọc sau theo
ngữ cảnh, mơ hình hóa ngữ cảnh.
iii
LỜI CẢM ƠN
Đầu tiên tôi xin gửi lời cảm ơn sâu sắc tới thầy TS. Lê Quang Hùng và
thầy Vũ Sơn Lâm, Khoa Công nghệ Thông tin, Trường Đại học Quy Nhơn,
người đã định hướng đề tài và tận tình hướng dẫn, chỉ bảo cho tơi trong
suốt q trình thực hiện luận văn tốt nghiệp này. Tôi cũng xin trân trọng
cảm ơn các thầy, cô trong Khoa Công nghệ Thông tin, Trường Đại học Quy
Nhơn đã tận tình giảng dạy, hướng dẫn nghiên cứu khoa học cho tôi trong
suốt thời gian theo học tại trường cũng như trong quá trình làm luận văn
này. Xin cảm ơn các anh, chị, em và các bạn học viên khoa học máy tính,
những người đã giúp đỡ, động viên tinh thần và chia sẻ kinh nghiệm q
báu giúp tơi vượt qua các khó khăn, vướng mắc để có thể hồn thành luận
văn này. Mặc dù đã cố gắng, nhưng tôi tin chắc luận văn của tơi cịn nhiều
thiếu sót và có rất nhiều nội dung có thể hồn thiện tốt hơn. Tơi rất mong
nhận được những ý kiến đánh giá, phê bình và góp ý của các thầy cô, anh
chị và các bạn.
Trân trọng,
Quy Nhơn, ngày tháng 9 năm 2020
Đào Chí Thanh
Luận văn này là sản phẩm của đề tài Khoa học và Công nghệ: "Nghiên cứu
ứng dụng học máy và tích hợp thơng tin ngữ cảnh trong hệ thống gợi ý về
du lịch", mã số B2020-DQN-08 (Bộ Giáo dục và Đào tạo).
iv
Mục lục
Danh mục các hình vẽ
vii
Danh mục các bảng
ix
1 GIỚI THIỆU
1.1 Tổng quan về hệ gợi ý . . . . . . . . . . . . . . . . . . . . .
1.1.1 Bài toán hệ gợi ý . . . . . . . . . . . . . . . . . . . .
1.1.2 Cách tiếp cận giải quyết bài toán . . . . . . . . . . .
1.1.2.1 Lọc cộng tác . . . . . . . . . . . . . . . . .
1.1.2.2 Dựa vào nội dung . . . . . . . . . . . . . . .
1.1.2.3 Cách tiếp cận kết hợp . . . . . . . . . . . .
1.1.3 Miền ứng dụng của hệ gợi ý . . . . . . . . . . . . . .
1.1.3.1 Thương mại điện tử . . . . . . . . . . . . .
1.1.3.2 Giải trí . . . . . . . . . . . . . . . . . . . .
1.1.3.3 Giáo dục . . . . . . . . . . . . . . . . . . .
1.2 Đánh giá hệ gợi ý . . . . . . . . . . . . . . . . . . . . . . . .
1.2.1 Các phương pháp đánh giá . . . . . . . . . . . . . . .
1.2.1.1 Phương pháp đánh giá trực tuyến . . . . . .
1.2.1.2 Phương pháp thực nghiệm không trực tuyến
1.2.1.3 Phương pháp nghiên cứu người dùng . . . .
1.2.2 Các độ đo . . . . . . . . . . . . . . . . . . . . . . . .
1.2.2.1 Độ đo RMSE và MAE . . . . . . . . . . . .
1.2.2.2 Độ đo NRMSE và NMAE . . . . . . . . . .
1.3 Thách thức của hệ gợi ý truyền thống . . . . . . . . . . . . .
1.4 Ngữ cảnh trong hệ gợi ý . . . . . . . . . . . . . . . . . . . .
1.4.1 Khái niệm ngữ cảnh . . . . . . . . . . . . . . . . . .
1.4.2 Thu thập thông tin ngữ cảnh . . . . . . . . . . . . .
1.5 Tổng kết chương 1 . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3
3
3
4
4
5
6
6
6
6
7
7
7
7
8
8
9
9
10
11
11
12
13
15
2 TÍCH HỢP THƠNG TIN NGỮ CẢNH TRONG HỆ GỢI Ý
2.1 Hệ gợi ý theo ngữ cảnh . . . . . . . . . . . . . . . . . . . . . . .
2.2 Các phương pháp tích hợp thơng tin ngữ cảnh trong hệ gợi ý . .
2.2.1 Lọc trước theo ngữ cảnh . . . . . . . . . . . . . . . . . .
2.2.2 Lọc sau ngữ cảnh . . . . . . . . . . . . . . . . . . . . .
2.2.3 Mơ hình hóa ngữ cảnh . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
16
16
17
18
21
22
v
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2.3
2.2.3.1 Cách tiếp cận dựa trên kinh nghiệm . . . . . . . . 23
2.2.3.2 Cách tiếp cận dựa trên mơ hình . . . . . . . . . . . 24
Kết luận chương 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3 THỰC NGHIỆM
3.1 Dữ liệu thực nghiệm .
3.2 Cài đặt thực nghiệm .
3.3 Kết quả thực nghiệm: .
3.4 Kết luận chương . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Tài liệu tham khảo
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
35
35
37
40
41
44
vi
CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT
Chữ viết tắt
Diễn giải
CRD
Tiếng Anh
Recommender System
Collaborative Filter
Matrix Factorization
Biases Matrix Factorization
Context-aware Matrix
Factorization
Contextual Rating Deviation
SGD
Stochastic Gradient Descent
OLAP
MSE
Online Analytical Processing
Context-awareness
Recommender System
Mean Square Error
RMSE
Root Mean Square Error
MAE
Mean Base Error
RS
CF
FM
BFM
CAMF
CARS
vii
Tiếng Việt
Hệ gợi ý
Lọc cộng tác
Phân rã ma trận
Phân rã ma trận thiên vị
Phân rã ma trận dựa trên ngữ
cảnh
Độ lệch xếp hạng ngữ cảnh
Kỹ thuật giảm gradient ngẫu
nhiên
Phân tích dữ liệu trực tuyến
Hệ gợi ý theo hướng ngữ cảnh
Sai số bình phương trung bình
Căn bậc hai Sai số bình
phương trung bình
Sai số tuyệt đối trung bình
Danh sách hình vẽ
1.1
Minh họa phương pháp lọc cộng tác. . . . . . . . . . . . . . . . . .
2.1
2.2
2.3
2.4
Các phương pháp tích hợp thông tin ngữ cảnh trong hệ gợi ý.
Bước hiệu chỉnh danh sách gợi ý trong lọc sau theo ngữ cảnh.
kỹ thuật này là phân rã ma trận X thành 2 ma trận nhỏ hơn.
Tối ưu hóa. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
18
22
25
27
3.1
3.2
3.3
3.4
3.5
3.6
3.7
3.8
3.9
Bộ dữ liệu có định dạng được mô tả . . . . . . . . . . . . . . . .
Bộ dữ liệu có định dạng được mơ tả . . . . . . . . . . . . . . . .
Cấu trúc công cụ nguồn mở CARSKIT . . . . . . . . . . . . . .
Bộ dữ liệu có định dạng được mơ tả . . . . . . . . . . . . . . . .
Tích hợp cơng cụ nguồn mở CARSKIT vào Eclipse Java 2018 .
Cấu hình tập tin setting.conf trong công cụ CARSKIT . . . . .
Tập tin results trong công cụ CARSKIT . . . . . . . . . . . . .
Độ sai số CAMF va MF theo RMSE với bộ dữ liệu Travel-STS .
Độ sai số CAMF và MF theo RMSE với bộ dữ liệu InCarMusic
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
36
37
38
38
39
39
40
41
41
viii
5
Danh sách bảng
1.1
Bảng ma trận trọng số đánh giá của hệ gợi ý. . . . . . . . . . . . .
2.1
2.2
Độ lệch xếp hạng theo ngữ cảnh. . . . . . . . . . . . . . . . . . . . 30
Không đề cập đến các yếu tố ngữ cảnh. . . . . . . . . . . . . . . . . 30
3.1
Độ sai số CAMF và MF theo RMSE với bộ dữ liệu Travel-STS và
bộ dữ liệu InCarMusic . . . . . . . . . . . . . . . . . . . . . . . . . 40
ix
4
MỞ ĐẦU
1. Lý do chọn đề tài
Hệ gợi ý (recommender systems) là lớp con của hệ thống lọc thông tin, nó là
một phương tiện có giá trị để giải quyết vấn đề q tải thơng tin. Với mục đích
đưa ra các gợi ý về các sản phẩm, dịch vụ phù hợp với người dùng dựa trên hành
vi của họ trong quá khứ hoặc dựa trên sự tương đồng về sở thích với người dùng
khác. Hệ gợi ý được ứng dụng ở nhiều lĩnh vực khác nhau, đặc biệt là trong thương
mại điện tử (ví dụ: Amazon3 , Netflix4 ,...). Việc gợi ý sản phẩm phù hợp góp phần
làm tăng doanh số bán hàng hoặc số lượng truy cập vào hệ thống, đồng thời giúp
cho khách hàng có được những thơng tin thú vị hoặc những sản phẩm họ muốn
tìm dễ dàng hơn.
Hệ gợi ý truyền thống chỉ dựa trên thông tin về người dùng và sản phẩm để
đưa ra các gợi ý hoặc dự đoán đánh giá cho những cặp người dùng-sản phẩm chưa
biết. Tuy nhiên, hệ gợi ý truyền thống chưa đầy đủ, chưa phù hợp với từng địa
điểm, thời gian,... điều này ảnh hưởng đến đánh giá của người dùng đối với các
sản phẩm (ảnh hưởng chất lượng gợi ý). Điều này đã thúc đẩy chúng tôi lựa chọn
và thực hiện đề tài “Tích hợp thơng tin ngữ cảnh trong hệ gợi ý”.
2. Mục tiêu của luận văn
Trong luận văn này, chúng tôi đặt ra ba mục tiêu chính:
❼ Thứ nhất, nghiên cứu cơ sở lý thuyết về hệ gợi ý, thông tin ngữ cảnh;
❼ Thứ hai, nghiên cứu phương pháp tích hợp thơng tin ngữ cảnh trong hệ gợi
ý;
❼ Thứ ba, cài đặt thực nghiệm về tích hợp thông tin ngữ cảnh trong hệ gợi ý.
3. Bố cục của luận văn
3
4
1
Ngoài phần mở đầu và kết luận, luận văn được tổ chức thành 3 chương, với bố
cục như sau:
❼ Chương 1. Giới thiệu tổng quan về các vấn đề nghiên cứu trong luận văn,
bao gồm: Hệ gợi ý, ngữ cảnh trong hệ gợi ý.
❼ Chương 2. Trình bày tích hợp thông tin ngữ cảnh trong hệ gợi ý gồm các
cơ chế lọc trước theo ngữ cảnh, lọc sau theo ngữ cảnh, mơ hình hóa ngữ
cảnh.
❼ Chương 3. Trình bày thực nghiệm, bao gồm cài đặt thực nghiệm, kết quả
thực nghiệm, đánh giá.
2
CHƯƠNG 1. GIỚI THIỆU
Trong chương này chúng tơi trình bày sơ lược hệ gợi ý, phát biểu bài toán,
cách tiếp cận giải quyết bài toán trong hệ gợi ý, các miền đã và đang được ứng
dụng, sau đó nêu định nghĩa ngữ cảnh và các độ đo liên quan đến việc đánh giá
hệ gợi ý.
1.1. Tổng quan về hệ gợi ý
1.1.1. Bài tốn hệ gợi ý
Hệ gợi ý có thể được định nghĩa như một dạng của hệ thống lọc thông tin để
đưa ra các sản phẩm1 , dịch vụ người dùng có thể quan tâm [1]. Hệ gợi ý được
ứng dụng rộng rãi trong các lĩnh vực như mua sắm trực tuyến, đọc tin tức, âm
nhạc, du lịch, xem phim, mạng xã hội (Amazon, Yahoo! Today News, Last.fm,
Tripadvisor, Netflix, Facebook). Các hướng tiếp cận xây dựng hệ gợi ý có thể chia
thành ba loại: hướng tiếp cận lọc cộng tác, hướng tiếp cận dựa trên nội dung và
hướng tiếp cận kết hợp lọc cộng tác với dựa trên nội dung [2].
Trong hệ gợi ý truyền thống, mỗi người dùng đánh giá sản phẩm như là một
cách thể hiện mức độ hài lịng (thích, quan tâm) của mình đối với sản phẩm đó.
Các giá trị này thuộc tập có thứ tự, chẳng hạn 1 − 5 trong đó 1 là rất khơng hài
lịng đến 5 là rất hài lịng. Chúng có thể được thu thập tường minh hoặc ngầm
định. Hệ gợi ý được xây dựng trên dữ liệu sở thích của người dùng về các sản phẩm
được biểu diễn dưới dạng ma trận U sers × Items. Trong đó, mỗi dòng là đại diện
cho một người dùng và các đánh giá của người dùng đó trên các sản phẩm khác
nhau của hệ thống. Mỗi cột là đại diện cho một sản phẩm và các đánh giá của
các người dùng khác nhau lên sản phẩm này. Thông thường, ma trận này thưa
vì có rất ít cặp user, item có dữ liệu đánh giá. Mục tiêu của hệ gợi ý là dự đốn
1
Chúng tơi sử dụng thuật ngữ "sản phẩm" để chỉ các đối tượng (sản phẩm, dịch vụ hoặc các
tin tức, bài báo, mẫu tin quảng cáo) người dùng quan tâm, đánh giá trong hệ gợi ý.
3
các đánh giá chưa biết cho các cặp user, item cịn lại, từ đó gợi ý đến người dùng
những sản phẩm có đánh giá dự đốn cao.
Một cách hình thức, gọi U là tập các người dùng, M = |U | là tổng số người
dùng trong U , u ∈ U là một người dùng trong U . I là tập các sản phẩm, N = |I|
là tổng số sản phẩm trong I, i ∈ I là một sản phẩm trong I. Gọi Y là ma trận
đánh giá và Yˆ là ma trận đánh giá được dự đoán. rui biểu diễn đánh giá của người
dùng u trên sản phẩm i và rˆui biểu diễn đánh giá dự đoán của người dùng u trên
sản phẩm i. Bài toán hệ gợi ý nhằm xây dựng hàm dự đoán đánh giá r sao cho
r : U × I → R, ánh xạ mỗi cặp (u, i) ∈ U × I vào tập giá trị đánh giá R, hay
r(u, i) = rˆui . Nói cách khác, thơng qua hàm dự đốn đánh giá r, lấp đầy ma trận
đánh giá R.
Trong hệ gợi ý, tính tiện ích của sản phẩm i thường biểu thị mức độ quan tâm
của người dùng tới một mặt hàng cụ thể thơng qua trọng số; ví dụ người dùng u1
đánh giá i3 có trọng số là 4 như trong Bảng 1.1.
Bảng 1.1: Bảng ma trận trọng số đánh giá của hệ gợi ý.
u1
u2
u3
u4
i1
5
2
1
1
i2
3
2
4
4
i3
4
4
5
2
i4
4
1
1
4
i5
?
4
2
3
1.1.2. Cách tiếp cận giải quyết bài tốn
Có ba cách tiếp cận để giải quyết bài toán:
1.1.2.1. Lọc cộng tác
Các thuật toán dựa trên lọc cộng tác khai thác dữ liệu về sở thích của người
dùng trong quá khứ và sự tương đồng giữa các người dùng hoặc giữa các sản phẩm
để đưa ra gợi ý [1, 3–7]. Nói cách khác, các hệ thống lọc cộng tác giúp người dùng
lựa chọn sản phẩm dựa vào ý kiến, sự đánh giá của những người khác [8]. Lọc
cộng tác có thể chia thành hai nhóm: phương pháp dựa trên láng giềng và phương
pháp dựa trên mơ hình. Các phương pháp lọc cộng tác dựa trên láng giềng sử
4
dụng trực tiếp dữ liệu đánh giá của các cặp người dùng - sản phẩm đã biết để dự
đoán các đánh giá chưa biết. Trong khi đó, với các phương pháp lọc cộng tác dựa
trên mơ hình, dữ liệu đánh giá được sử dụng để học mơ hình dự đốn đánh giá
[2]. Phương pháp lọc cộng tác dựa trên láng giềng lại được chia thành hai hướng
tiếp cận: dựa trên người dùng và dựa trên sản phẩm. Giả sử cần dự đoán đánh giá
của người dùng u cho sản phẩm i. Hướng tiếp cận thứ nhất có ý tưởng chính là:
hệ thống dựa vào các đánh giá của những người tương đồng với u (láng giềng của
u), để dự đoán đánh giá của u cho i. Ý tưởng chính của hướng tiếp cận thứ hai
là: hệ thống dựa trên lịch sử đánh giá của người dùng u trên các sản phẩm khác
tương đồng với i để dự đoán đánh giá của u cho i.
Ví dụ, đa số những người dùng đã đọc quyển sách "The 7 habits of highly
effective people" của Stephen R. Covey, và cuốn "Good To Great" của Jim Collins
họ đều tìm mua cuốn "Think and Grow Rich" của Napoleon Hill. Từ những thơng
tin này, có thể nhóm họ thành nhóm những người có cùng sở thích. Sau đó, khi có
một người dùng khác, họ muốn mua quyển sách "The 7 habits of effective people"
và "Good to great" hệ thống sẽ gợi ý cho họ cuốn sách "Think and grow rich" có
thể là cuốn sách mà họ quan tâm, minh họa Hình 1.1.
Hình 1.1: Minh họa phương pháp lọc cộng tác.
1.1.2.2. Dựa vào nội dung
Các thuật toán dựa trên nội dung khai thác thuộc tính của sản phẩm, xác
định các đặc điểm chung của các sản phẩm người dùng quan tâm, từ đó gợi ý cho
người dùng những sản phẩm có đặc điểm tương tự [9–13]. Ví dụ, trong hệ gợi ý
phim, các thuộc tính của phim (như thể loại, đạo diễn, diễn viên,...) được khai
5
thác để gợi ý những bộ phim người dùng có thể thích. Giả sử một người dùng
thường đánh giá tốt các bộ phim có diễn viên A tham gia, hệ thống sẽ gợi ý cho
người dùng này những bộ phim khác có đặc điểm như vậy.
1.1.2.3. Cách tiếp cận kết hợp
Kết hợp cả hai phương pháp lọc cộng tác và dựa trên nội dung. Nhiều hệ
thống gợi ý kết hợp nhiều phương pháp: nội dung sản phẩm (iteam-base), nội
dung người dùng (user-base), phân rã ma trận (metrix factorization) và cả nội
dung ngữ cảnh(content-base filtering).
Trong các cách tiếp cận trên tiếp cận dựa trên lọc cộng tác thường được sử
dụng nhiều nhất. Cách này dựa trên những hành vi quá khứ của người dùng (lịch
sử giao dịch, đánh giá sản phẩm, xem một bộ phim, nghe một bài hát),... và đặc
biệt là nó khơng cần thiết phải tạo ra các hồ sơ tường minh cho người dùng. Để
gợi ý các sản phẩm cho người dùng, hệ thống lọc cộng tác cần so sánh các đối
tượng cơ bản khác nhau như các sản phẩm và người dùng.
1.1.3. Miền ứng dụng của hệ gợi ý
Hệ gợi ý ứng dụng trong thực tế ở nhiều lĩnh vực miền khác nhau (Amazon,
Ebay, YouTube, Netflix, LastFM,...). Sau đây giới thiêu một số ứng dụng gần đây
trong thương mại điện tử, giải trí, giáo dục.
1.1.3.1. Thương mại điện tử
Đi đầu trong lĩnh vực này là Amazon và Ebay, họ đã rất thành cơng trong việc
tích hợp hệ gợi ý. nói riêng và các kỹ thuật trong khai phá dữ liệu nói chung vào
hệ thống.
1.1.3.2. Giải trí
❼ Last.fm là một hệ thống (website) gợi bài hát rất nổi tiếng trên thế giới.
Dựa trên các xếp hạng người dùng đã cho trên các bài hát trong quá khứ, hệ
thống gợi ý những bài hát kế tiếp mà người dùng được dự đốn là sẽ thích
6
chúng. Trong nước, một số hệ thống nghe nhạc trực tuyến có tích hợp kỹ
thuật gợi ý (nhaccuatui.com 2 , nhacso.net, p3.zing.vn,..).
❼ Netflix.com - một trong các hệ thống gợi ý phim nổi tiếng thế giới. Hệ thống
này cũng dựa trên các đánh giá trong quá khứ để dự đoán sở thích của người
dùng trên các bộ phim mà họ chưa xem.
1.1.3.3. Giáo dục
Nhóm tác giả [14] đã đề xuất sử dụng kỹ thuật (BMF) để dự đoán kết quả
học tập của sinh viên, từ đó đưa ra những gợi ý phù hợp cho sinh viên lựa chọn
những môn học tự chọn. Hệ thống này xử lý dữ liệu điểm của sinh viên, chuyển
chúng theo định dạng phù hợp với giải thuật BMF, tìm kiếm siêu tham số, đánh
giá và so sánh với các giải thuật khác.
1.2. Đánh giá hệ gợi ý
1.2.1. Các phương pháp đánh giá
Các phương pháp đánh giá hệ gợi ý có thể chia thành ba loại, bao gồm: đánh giá
trực tuyến (online evaluation), thực nghiệm không trực tuyến (offline experimental
setup) và nghiên cứu người dùng (user study).
1.2.1.1. Phương pháp đánh giá trực tuyến
Được sử dụng để so sánh các thuật tốn gợi ý, từ đó lựa chọn thuật tốn tốt
nhất, trong đó, các thuật tốn cần đánh giá sẽ được cài đặt trên một hệ thống
thực nghiệm trực tuyến. Với mỗi hành động từ người dùng, hệ thống sẽ gửi dữ
liệu (chẳng hạn như thông tin tương tác của người dùng với hệ thống) đến một
thuật toán và trả kết quả gợi ý từ thuật toán này đến người dùng. Thuật toán nào
trả về kết quả có tỷ lệ lựa chọn cao hơn sẽ là thuật toán tốt hơn. Độ đo thường
được sử dụng trong phương pháp này là CTR (Click Through Rate), thể hiện tỷ
lệ các gợi ý được người dùng nhấn vào so với tổng số gợi ý thuật toán đưa ra. Để
2
7
đảm bảo việc đánh giá cơng bằng, các thuật tốn sẽ được lựa chọn một cách ngẫu
nhiên [15].
Phương pháp này có ưu điểm là nhận được các phản hồi từ người dùng trong
môi trường thật. Những tương tác của người dùng với hệ thống thể hiện chính
xác hành vi, mong muốn của họ. Tuy nhiên, phương pháp này có một số hạn chế:
(i) việc cài đặt thực nghiệm cần nhiều thời gian và chi phí; nó u cầu phải tích
hợp các thuật toán vào một hệ thống đang hoạt động; (ii) có thể để lại cảm nhận
khơng tốt của người dùng tham gia thực nghiệm về hệ thống, khi các gợi ý từ các
thuật tốn đưa ra khơng phù hợp.
1.2.1.2. Phương pháp thực nghiệm không trực tuyến
Dựa trên tập dữ liệu sở thích của người dùng được thu thập trước, sử dụng
các độ đo thích hợp để đánh giá khả năng dự đốn của hệ gợi ý. Phương pháp
này có điểm mạnh là không cần tương tác với người dùng thực, do đó, có thể tiết
kiệm chi phí khi đánh giá thực nghiệm, so sánh giữa các thuật toán. Tuy nhiên,
vì khơng tương tác trực tiếp với người dùng thực, nên sẽ có một khoảng cách giữa
kết quả thực nghiệm và khi triển khai hệ thống trong môi trường thật, đồng thời
nó cũng khơng trả lời được một số câu hỏi khác mang tính trải nghiệm của người
dùng như: hệ thống có dễ sử dụng khơng? giao diện có thân thiện khơng? thời
gian phản hồi có chấp nhận được khơng?,... Phương pháp này được sử dụng để
đánh giá khả năng dự đoán của hệ gợi ý, so sánh giữa các thuật tốn để tìm ra
cái tối ưu, hoặc tìm kiếm các tham số tối ưu nhất cho thuật toán, làm cơ sở để
tiến hành các thực nghiệm sau như nghiên cứu trên người dùng hoặc thực nghiệm
trực tuyến.
1.2.1.3. Phương pháp nghiên cứu người dùng
Được thực hiện dựa trên việc thực nghiệm trên một nhóm đối tượng trong vai
trị là người dùng hệ thống. Những người này sẽ được yêu cầu thực hiện một số
tác vụ tương tác với hệ gợi ý (chẳng hạn như tìm kiếm, đọc, xem sản phẩm, thêm
vào giỏ hàng, thực hiện mua hàng). Trong quá trình họ tương tác với hệ thống,
chúng ta quan sát và ghi lại hành vi của họ (thủ công hoặc tự động) [16]. Các
thơng tin thu thập có thể mang tính định lượng (ví dụ: thời gian họ dừng lại ở mỗi
8
sản phẩm, thứ tự các sản phẩm được lựa chọn) hoặc định tính (ví dụ: họ có cảm
thấy giao diện thân thiện khơng? các thao tác với hệ thống có thuận lợi không?).
1.2.2. Các độ đo
Mỗi nhiệm vụ hệ gợi ý cần có các độ đo thích hợp để đánh giá hiệu quả của
hệ gợi ý. Trong phần này, chúng tơi tập trung trình bày nhiệm vụ phổ biến của hệ
gợi ý là dự đoán đánh giá. Với lớp bài toán này, hệ thống cần đưa ra các dự đoán
đánh giá (thường là 1 − 5 sao) cho mỗi cặp người dùng - sản phẩm trong tập kiểm
tra. Các độ đo đánh giá độ chính xác của thuật tốn gợi ý dựa trên việc đo lường
sự sai khác giữa giá trị đánh giá được dự đoán và giá trị đánh giá thực.
1.2.2.1. Độ đo RMSE và MAE
Các độ đo phổ biến cho nhiệm vụ này [17]. Gọi T là tập dữ liệu đánh giá gồm
các cặp (u, i) với giá trị đánh giá được ẩn đi. Độ đo RMSE được cho bởi công
thức:
RM SE =
1
|T |
(ˆ
rui − rui )2
(1.1)
|ˆ
rui − rui |
(1.2)
(u,i)∈T
và MAE được tính bởi cơng thức:
M AE =
1
|T |
(u,i)∈T
Người thiết kế hệ gợi ý có thể lựa chọn độ đo RMSE hoặc MAE để đánh giá
độ chính xác thuật tốn tùy thuộc vào mục đích của bài tốn. Cụ thể, RMSE sẽ
nghiêng về các thuật toán gây ra sự sai khác ít tại mỗi cặp (u, i), vì với mỗi lỗi,
RMSE sẽ bình phương độ lỗi trước khi tính trung bình. Nói cách khác, với cùng
tổng độ lỗi, RMSE sẽ đánh giá tốt hơn cho các thuật toán có lỗi phân bố trải rộng
trên nhiều trường hợp.
9
Các độ đo RMSE và MAE đều chỉ dựa trên độ lớn lỗi, nhưng không quan tâm
đến ngữ nghĩa của các đánh giá [16]. Chẳng hạn, trong hệ thống gợi ý xem phim
với khoảng đánh giá từ 1 − 5 sao, trong đó, 1 − 2 sao thể hiện rằng bộ phim này
khơng được khuyến khích xem, và 3 − 5 sao thể hiện bộ phim này được đánh giá
tốt ở các mức độ khác nhau. Chúng ta xét hai trường hợp sau: trường hợp thứ
nhất, một bộ phim được người dùng đánh giá là 2 sao và thuật toán dự đoán là 1
sao. Trường hợp thứ hai, bộ phim được đánh giá là 3 sao và thuật toán dự đốn là
2 sao. Cả hai trường hợp này đều có độ lỗi là 1, tuy nhiên, trong trường hợp thứ
nhất, 1 sao và 2 sao đều có nghĩa rằng bộ phim này khơng được khuyến khích để
xem nên có thể nói thuật tốn đã dự đốn chính xác, nhưng với trường hợp thứ
hai thì ngược lại.
1.2.2.2. Độ đo NRMSE và NMAE
Là hai độ đo dựa trên RMSE và MAE, nhưng chuẩn hóa theo khoảng đánh
giá (từ Rmin đến Rmax ). Điều này cho phép so sánh độ chính xác của các thuật
toán trên các miền bài toán với các khoảng đánh giá khác nhau (ví dụ, bài tốn
gợi ý xem phim có khoảng đánh giá từ 1 sao đến 5 sao, trong khi đó bài tốn gợi
ý du lịch có khoảng đánh giá từ 1 sao đến 10 sao) [17].
N RM SE =
N M AE =
RM SE
Rmax − Rmin
M AE
Rmax − Rmin
(1.3)
(1.4)
Trong một số trường hợp tập dữ liệu đánh giá có phân phối khơng cân bằng,
chẳng hạn, trong tập kiểm tra có một vài sản phẩm có tần suất đánh giá cao, và
RMSE/MAE bị ảnh hưởng tập trung ở các sản phẩm này. Điều đó dẫn đến giá
trị RMSE/MAE khơng có tính đại diện cho mọi sản phẩm. Một cách tiếp cận cho
vấn đề này là tính RMSE/MAE cho mỗi sản phẩm, sau đó tính trung bình trên
tồn bộ các sản phẩm trong tập kiểm tra. Tương tự, nếu tập kiểm tra có sự phân
phối khơng đồng đều giữa các người dùng, độ đo trung bình RMSE/MAE cũng
có thể được sử dụng.
10
1.3. Thách thức của hệ gợi ý truyền thống
Hiện nay, hệ gọi ý truyền thống gặp phải những thách thức như dữ liệu thưa,
sản phẩm mới, người dùng mới, Khả năng mở rộng phạm vi...được giới thiệu sơ
lược
1. Dữ liệu thưa (sparsity): Trường hợp thường thấy khi tập sản phẩm thường
lớn và ngày càng được mở rộng thêm, lượng người dùng mới cũng tăng theo
thời gian, cộng thêm người dùng chỉ xem một phần rất nhỏ trong danh sách
sản phẩm đó, dẫn đến ma trận U x I thưa. Người dùng đặc biệt người dùng
tại Việt Nam cũng khơng có thói quen đưa ra đánh giá hay nhận xét cho
sản phẩm họ xem hoặc mua, rất khó để nhận định họ thích hay khơng.
2. Khả năng mở rộng phạm vi: Khi số người dùng và sản phẩm ngày càng mở
rộng, phạm vi xử lý sẽ trở thành một vấn đề lớn.
3. Sản phẩm mới, người dùng mới (cold-start)[18]. Những đối tượng này rất
khó gợi ý nếu chưa hề hoặc ít thơng tin lịch sử trước đó. Khơng chỉ những
sản phẩm mới ngay cả những sản phẩm mô tả cụ thể, chung chung sẽ gây
nhầm. Với người dùng mới hệ thống cần học để hiểu về sở thích của họ, có
một số phương pháp đã đề xuất để giải quyết vấn đề này, theo hướng lai, kết
hợp các phương pháp, có thể lọc cộng tác và nội dung, ngồi ra cịn có một
kỹ thuật để xác định những sản phẩm tốt nhất cho người dùng mới được đề
cập trong [19], những kỹ thuật áp dụng cho lọc cộng tác.
4. Một số thách thức về môi trường như: Lượng bán lẻ, người dùng và sản
phẩm có thể rất lớn (lên tới hàng triệu); các ứng dụng thường yêu cầu kết
quả trả về trong thời gian thực (không quá nửa giây) trong khi vẫn phải đáp
ứng gợi ý chất lượng tốt; người dùng cũ có rất nhiều thơng tin thừa, người
dùng mới lại thiếu thơng tin và dữ liệu người dùng thì dễ bị bỏ quên.
1.4. Ngữ cảnh trong hệ gợi ý
Ngữ cảnh có ảnh hưởng như thế nào đến chất lượng, hiệu quả của hệ gợi ý,
trong mục này chúng tôi, giới thiệu khái niệm ngữ cảnh, cách thu thập thông tin
ngữ cảnh:
11
1.4.1. Khái niệm ngữ cảnh
Khái niệm về “ngữ cảnh” đã được nghiên cứu trong nhiều lĩnh vực khác nhau
[20]. Theo Dourish [21], ngữ cảnh có thể chia thành hai loại: góc nhìn biểu diễn
(representation view) và góc nhìn tương tác (interaction view). [20] phân nhóm
ngữ cảnh dựa trên hai khía cạnh: (i) mức độ hệ gợi ý biết về các yếu tố ngữ cảnh
(có đầy đủ thơng tin về ngữ cảnh, kể cả cấu trúc của nó; có một phần thơng tin
ngữ cảnh và khơng có thơng tin về ngữ cảnh) và (ii) sự thay đổi của yếu tố ngữ
cảnh theo thời gian (tĩnh; động). Hai chiều khía cạnh này tạo nên tổ hợp sáu
trường hợp về ngữ cảnh. Trong đó, trường hợp các yếu tố ngữ cảnh tĩnh (ổn định
không thay đổi theo thời gian) và hệ thống biết đầy đủ thông tin về ngữ cảnh
(danh sách các yếu tố ngữ cảnh, cấu trúc và giá trị của mỗi yếu tố) tương ứng với
góc nhìn biểu diễn của Dourish [21]. Và ở một thái cực khác, trong trường hợp
các yếu tố ngữ cảnh động và hệ gợi ý không có được thơng tin về các yếu tố ngữ
cảnh thì tương ứng với góc nhìn tương tác của Dourish [21].
Bài toán hệ gợi ý thường dựa trên dạng bài toán điền ma trận, trong đó, quan
tâm đến các tương tác giữa người dùng và sản phẩm (thường là các đánh giá)
nhằm dự đốn các giá trị cịn thiếu (những tương tác chưa được quan sát). Các
thuật toán được xây dựng nhằm học các mơ hình ghi lại (capture) hồ sơ sở thích
dài hạn của người dùng (long-term user preference profiles). Tuy nhiên trên thực
tế, nhiều ứng dụng cần xem xét cả ý định hoặc hành vi ngắn hạn của người dùng
nhằm đưa ra các gợi ý phù hợp [22]. Chẳng hạn [23], [24] là một dạng hệ gợi ý
dựa trên session, trong đó khơng có dữ liệu về sở thích người dùng trong quá khứ.
Thay vào đó, hệ thống khai thác các hành vi của người dùng không biết trước
(anonymous user) trong phiên làm việc hiện tại để đưa ra các gợi ý. Những ý
định ngắn hạn của người dùng chính là các thơng tin ngữ cảnh quan trọng cần
được xem xét khi gợi ý [24]. Các nghiên cứu trước đây [...] thường tập trung vào
ngữ cảnh theo góc nhìn biểu diễn (representational context [21]) mơ tả hồn cảnh
hiện tại của tương tác giữa người và sản phẩm như vị trí địa lý của người dùng,
tình hình thời tiết hiện tại, thời gian hiện tại. Tuy nhiên, các nghiên cứu gần đây
[25–27] cho thấy rằng các mẫu thông tin ngữ cảnh theo thời gian có thể nâng cao
độ chính xác của gợi ý. Đây là các thông tin ngữ cảnh theo góc nhìn tương tác
(interactional context [21]).
Dey [28] cũng đưa ra định nghĩa về tính tốn ngữ cảnh (context-aware computing), khái niệm được giới thiệu lần đầu bởi Schilit and Theimer [29] vào năm
12
1994: “A system is context-aware if it uses context to provide relevant information
and/or services to the user, where relevancy depends on the user’s task”.
1.4.2. Thu thập thông tin ngữ cảnh
Thông tin ngữ cảnh có thể được thu thập một cách tường minh, ngầm định
hoặc thông qua suy luận [30]:
❼ Thu thập tường minh (Explicitly): các thông tin ngữ cảnh được thu thập
bằng cách hỏi trực tiếp người dùng thông qua phỏng vấn, phiếu khảo sát
trực tuyến hoặc các phương tiện khác. Chẳng hạn, [31] xây dựng một website
khảo sát đánh giá của người dùng về các bộ phim cùng với các thông tin
ngữ cảnh như thời gian xem phim, địa điểm xem phim và xem cùng với ai.
Tổng cộng có 117 sinh viên tham gia khảo sát trong một năm, và thu thập
được 1755 đánh giá trên 210 bộ phim.
❼ Thu thập ngầm định (Implicitly): các thông tin ngữ cảnh được thu thập
một cách ngầm định từ dữ liệu hoặc mơi trường có liên quan đến người dùng
hoặc sản phẩm mà không cần sự tương tác trực tiếp với người dùng. Chẳng
hạn thơng tin về vị trí có thể được ngầm định rút trích ra từ thơng tin tọa
độ của thiết bị di động người dùng đang sử dụng, thông tin thời gian có thể
xác định dựa trên thời gian thực hiện giao dịch hoặc thông tin về thời tiết
hiện tại.
❼ Thu thập thông qua suy luận (Inferring): các thông tin ngữ cảnh thu được
từ việc áp dụng các phương pháp khai thác dữ liệu, thống kê. Phương pháp
này cũng không cần sự tương tác trực tiếp với người dùng. Trong nghiên cứu
của [32], thông tin ngữ cảnh về địa điểm xem phim (ở rạp hoặc ở nhà) được
suy luận bằng cách so sánh thời gian người dùng thực hiện đánh giá và thời
gian bộ phim được trình chiếu ở rạp. Nếu thời gian đánh giá trong khoảng 2
tháng kể từ khi bộ phim bắt đầu trình chiếu, thì bộ phim được cho là xem
ở rạp, ngược lại thì được cho là xem ở nhà.
Việc thu thập thông tin ngữ cảnh tường minh sẽ giúp người xây dựng hệ thống
gợi ý có được những thơng tin mong muốn, từ đó xây dựng mơ hình đưa ra các
gợi ý phù hợp với người dùng. Tuy nhiên, phương pháp này có một số hạn chế:
13
❼ Thứ nhất, người dùng có thể khơng sẵn lịng để lại đánh giá, việc yêu cầu
họ cung cấp thêm thơng tin ngữ cảnh lại càng khó hơn.
❼ Thứ hai, việc thu thập thơng tin ngữ cảnh có thể được thực hiện sau khi họ
đã trải nghiệm sản phẩm một thời gian lâu trong quá khứ. Điều đó dẫn đến
việc người tham gia khảo sát phải nhớ lại nhiều thông tin hơn, và có thể
cung cấp thơng tin khơng chính xác hoặc thiếu thông tin. Như vậy, khi thiết
kế hệ gợi ý, cần tính tốn đến số lượng, độ chi tiết của các thông tin ngữ
cảnh cần thu thập. Các giá trị/thuộc tính cho mỗi chiều ngữ cảnh khơng nên
q chi tiết để giúp việc thu thập dữ liệu chính xác hơn. Người thiết kế hệ
thống gợi ý cần phải cân nhắc giữa độ chính xác của dữ liệu và kích thước
dữ liệu. Ví dụ [31] đã thiết kế chiều Time chỉ bao gồm 2 giá trị là Weekday
và Weekend.
Ngược lại, thu thập thông tin ngữ cảnh ngầm định không yêu cầu sự tương
tác trực tiếp với người dùng. Việc thu thập ngữ cảnh là trong suốt (transparent)
với người dùng, thậm chí các đánh giá/sở thích của người dùng cũng có thể được
thu thập một cách ngầm định thơng qua các hoạt động của họ trên hệ thống, như
thời gian xem phim, thời gian xem sản phẩm, sự kiện mua sản phẩm. . . Chẳng
hạn, [33] đã sử dụng tần suất mua sản phẩm để thể hiện mức quan tâm của người
dùng về sản phẩm. Nghiên cứu của Nichols [34] đã đưa ra hàng loạt các ví dụ về
việc thu thập đánh giá ngầm định. Tuy nhiên, với phương pháp này, khơng phải
mọi thơng tin ngữ cảnh đều có thể thu thập được theo mong muốn của người xây
dựng hệ thống gợi ý.
Đối với mỗi miền bài toán, việc xây dựng các yếu tố của ngữ cảnh (context
factors) để thu thập dữ liệu là rất quan trọng. Bởi vì tùy theo lĩnh vực cụ thể, có
những yếu tố ngữ cảnh có liên quan, có tác động ảnh hưởng ở những mức độ khác
nhau đến việc trải nghiệm sản phẩm của người dùng, và cũng có những yếu tố
ngữ cảnh khơng liên quan. Sau khi dữ liệu đánh giá bao gồm thông tin ngữ cảnh
được thu thập, từ tập các yếu tố ngữ cảnh ban đầu, chúng ta có thể áp dụng một
số phương pháp kiểm định để chọn giữ lại những thơng tin ngữ cảnh thực sự có
tác động ảnh hưởng đến sở thích của người dùng, và loại bỏ đi những thơng tin
ngữ cảnh ít có ý nghĩa. Chẳng hạn [31] đã thực hiện pairwiset − test trên tập dữ
liệu đầu vào để kiểm định xem liệu rằng thời tiết tốt/xấu có ảnh hưởng đáng kể
đến trải nghiệm xem phim của người dùng không.
14