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

Chương 2 Hệ thống gợi ý Kỹ thuật và ứng dụng Nguyễn Thái Nghe

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 (3.09 MB, 27 trang )

See discussions, stats, and author profiles for this publication at: />
Hệ thống gợi ý: Kỹ thuật và ứng dụng
Chapter · March 2016

CITATIONS

READS

0

4,285

1 author:
Nguyen Thai-Nghe
Can Tho University
38 PUBLICATIONS   513 CITATIONS   
SEE PROFILE

Some of the authors of this publication are also working on these related projects:

Geodata for Agriculture and Water in Vietnam/ Angiang, Soctrang provinces View project

All content following this page was uploaded by Nguyen Thai-Nghe on 13 November 2016.
The user has requested enhancement of the downloaded file.


Chương 2. Hệ thống gợi ý: Kỹ thuật và ứng dụng
Nguyễn Thái Nghe
Khoa Công nghệ thông tin và Truyền thông, Trường Đại học Cần Thơ
Email:
Abstract. Recommender Systems (RS) are successfully applied in predicting user


preferences. For instance, RS has been used in many areas such as in e-commerce (for online
shopping), in entertainments (music/movie/video clip... recommendation), and in education
(learning resource recommendation). Because of its usefulness and popularity, RS becomes an
interesting and potential research topic. It is widely used for building intelligent systems,
especially decision support systems. In this work, we introduce about the RS and the current
techniques which are commonly used in RS. We then thoroughly describe one of the
prominent techniques which is Matrix Factorization (MF) and its variant models. We also
introduce several applications of RS that we have recently conducted and present their
experimental results.
Keywords. Recommender systems, collaborative filtering, rating prediction, matrix
factorization
Tóm tắt. Hệ thống gợi ý (Recommender Systems – RS) được ứng dụng rất thành công trong
dự đoán sở thích/thói quen của người dùng dựa vào sở thích/thói quen của họ trong quá khứ.
RS đang được ứng dụng trong rất nhiều lĩnh vực khác nhau như thương mại điện tử (hỗ trợ
bán hàng trực tuyến), giải trí (gợi ý phim ảnh, bài hát,..), giáo dục đào tạo (gợi ý nguồn tài
nguyên học tập, nghiên cứu,..). Chính vì khả năng ứng dụng rộng rãi của nó, RS mở ra nhiều
tiềm năng trong nghiên cứu cũng như trong xây dựng các hệ thống thực tế, đặc biệt là các hệ
hỗ trợ người dùng ra quyết định.
Trong bài viết này, chúng tôi sẽ giới thiệu sơ lược về hệ thống gợi ý và những vấn đề liên
quan, các nhóm kỹ thuật hiện đang được ứng dụng trong RS, từ đó trình bày chi tiết một vài
kỹ thuật cho kết quả dự đoán tin cậy nhất hiện nay - như kỹ thuật phân rã ma trận (matrix
factorization) và những biến thể của nó. Bên cạnh đó, chúng tôi cũng giới thiệu các lĩnh vực
ứng dụng chính của RS trong các công trình đã và đang xuất bản gần đây, kèm theo là các kết
quả thực nghiệm và hệ thống minh họa cho từng lĩnh vực.
Từ khóa. Hệ thống gợi ý, lọc cộng tác, dự đoán xếp hạng, kỹ thuật phân rã ma trận.

2.1 Giới thiệu
Hệ thống gợi ý (Recommender Systems - RS) là một dạng của hệ thống lọc thông
tin (information filtering), nó được sử dụng để dự đoán sở thích (preferences) hay xếp
hạng (rating) mà người dùng có thể dành cho một mục thông tin (item) nào đó mà họ

chưa xem xét tới trong quá khứ (item có thể là bài hát, bộ phim, đoạn video clip, sách,
bài báo,..).
Ví dụ, trong hệ thống bán hàng trực tuyến (chẳng hạn như Amazon), nhằm tối ưu
hóa khả năng mua sắm của khách hàng (user), người ta quan tâm đến việc những


khách hàng nào đã ‘yêu thích’ những sản phẩm (item) nào bằng cách dựa vào dữ liệu
quá khứ của họ (dữ liệu này có thể là xếp hạng mà người dùng đã bình chọn trên sản
phẩm, thời gian duyệt (browse) trên sản phẩm, số lần click chuột trên sản phẩm,..) từ
đó hệ thống sẽ dự đoán được người dùng có thể thích sản phẩm nào và đưa ra những
gợi ý phù hợp cho họ. Hình 1 là một ví dụ minh họa cho hệ thống gợi ý bán hàng của
Amazon.
Ngoài lĩnh vực thương mại điện tử như đã thấy ở ví dụ trên, hiện tại RS cũng được
ứng dụng khá thành công trong nhiều lĩnh vực khác như trong giải trí: gợi ý bài hát
cho người nghe (ví dụ, hệ thống của LastFM - www.last.fm), gợi ý phim ảnh (ví dụ, hệ
thống của Netflix - www.netflix.com), gợi ý các video clip (ví dụ, hệ thống của
YouTube - www.youtube.com); trong giáo dục và đào tạo (gợi ý nguồn tài nguyên học
tập như sách, bài báo, địa chỉ web,… cho người học); trong các hệ thống trợ giảng
thông minh (như dự đoán năng lực học tập của người học) (Thai-Nghe et.al, 2012,
2011a).

Hình 1. Hệ thống gợi ý sản phẩm của Amazon
Hệ thống gợi ý không chỉ đơn thuần là một dạng Hệ thống thông tin mà nó còn là
cả một lĩnh vực nghiên cứu hiện đang rất được các nhà khoa học quan tâm. Kể từ năm
2007 đến nay, hàng năm đều có hội thảo chuyên về hệ thống gợi ý của ACM (ACM
RecSys) cũng như các tiểu bang dành riêng cho RS trong các hội nghị lớn khác như
ACM KDD, ACM CIKM,..
Đã có rất nhiều công bố quốc tế trong lĩnh vực này, bạn đọc có quan tâm có thể
tham khảo thêm tại các trang web của các hội thảo trên hoặc xem trong (Su et.al.,
2009), (Ricci et.al., 2010), (Bobadilla et.al., 2013). Trong nước, cũng đã xuất hiện một

vài công bố khoa học về lĩnh vực này, như của nhóm tác giả (Nguyễn Duy Phương và
Từ Minh Phương, 2013) đã đề xuất phương pháp tính toán mức độ tương tự giữa các
cặp người dùng hoặc sản phẩm đựa trên đồ thị người dùng – sản phẩm. Một nghiên
cứu khác của nhóm tác giả (Phạm Minh Chuẩn và cộng sự, 2013) đã trình bày hệ
thống khuyến nghị công việc bằng cách sử dụng phương pháp phát hiện chủ đề ẩn dựa
trên mô hình xác suất toán học kết hợp với kỹ thuật dựa trên lọc công tác. Tuy vậy,
khu vực Đồng bằng sông cửu long vẫn chưa thấy xuất hiện các nhóm nghiên cứu về
RS.


Trong khuôn khổ của bài viết này, chúng tôi sẽ giới thiệu sơ lược về hệ thống gợi ý
và vấn đề dự đoán xếp hạng (rating prediction) trong hệ thống gợi ý. Bài viết này cũng
sẽ giới thiệu những nhóm kỹ thuật chính được sử dụng phổ biến nhất trong RS, sau đó
đi sâu vào tìm hiểu chi tiết một kỹ thuật nổi trội nhất (state-of-the-art) hiện nay trong
RS – chính là kỹ thuật phân rã ma trận (matrix factorization – MF) (Koren, 2009) và
các biến thể của nó. Bên cạnh đó, chúng tôi cũng trình bày các lĩnh vực ứng dụng
chính của RS, kèm theo một số kết quả minh họa cho từng lĩnh vực.
2.2 Hệ thống gợi ý (Recommender Systems - RS)
2.2.1 Các khái niệm chính
Trong RS, thông thường người ta quan tâm đến ba thông tin chính là người dùng
(user), mục tin (item, item có thể là sản phẩm, bộ phim, bài hát, bài báo,.. tùy hệ
thống), và phản hồi (feedback) của người dùng trên mục tin đó (thường là các xếp
hạng/đánh giá – rating biểu diễn mức độ thích/quan tâm của họ). Các thông tin này
được biểu diễn thông qua một ma trận như trong Hình 2. Ở đó, mỗi dòng là một user,
mỗi cột là một item, và mỗi ô là một giá trị phản hồi (ví dụ, xếp hạng) biểu diễn “mức
độ thích” của user trên item tương ứng. Các ô có giá trị là những item mà các user đã
xếp hạng trong quá khứ. Những ô trống là những item chưa được xếp hạng (điều đáng
lưu ý là mỗi user chỉ xếp hạng cho một vài item trong quá khứ, do vậy có rất nhiều ô
trống trong ma trận này – còn gọi là ma trận thưa – sparse matrix).


Hình 2. Ma trận biểu diễn dữ liệu trong RS (user-item-rating matrix)
Nhiệm vụ chính của RS là dựa vào các ô đã có giá trị trong ma trận trên (dữ liệu
thu được từ quá khứ), thông qua mô hình đã được xây dựng, RS dự đoán các ô còn
trống (của user hiện hành), sau đó sắp xếp kết quả dự đoán (ví dụ, từ cao xuống thấp)
và chọn ra Top-N items theo thứ tự, từ đó gợi ý chúng cho người dùng.
Một cách hình thức:
• Gọi U là một tập hợp n người dùng (user), |U| = n, và u là một người dùng cụ thể
nào đó (u ∈ U).
• Gọi I là một tập hợp m mục thông tin (item), |I| = m, và i là một mục thông tin cụ
thể nào đó (i ∈ I).


• Gọi R là một tập hợp các giá trị phản hồi của người dùng (các phản hồi này thường
là ‘sở thích’ (preference) của người dùng) và rui ∈ R (R ⊂ ℜ) là xếp hạng của
người dùng u trên mục thông tin i.
• Gọi Dtrain ⊆ U × I × R là tập dữ liệu huấn luyện
• Gọi Dtest ⊆ U × I × R là tập dữ liệu kiểm thử.
• Gọi
r: U × I → R
(u, i) ↦ rui
Mục tiêu của RS là tìm một hàm rˆ : U × I → ℜ Sao cho một hàm ξ(r, rˆ ) thỏa mãn
một điều kiện nào đó. Ví dụ, nếu ξ là một hàm ước lượng độ chính xác thì nó cần
phải được tối đa hóa, còn nếu ξ là hàm để đo độ lỗi như Root Mean Squared Error
RMSE =

1
(testrui − rˆ(u,i) )2

test
| D | u ,i ,r∈D


thì nó cần phải được tối tiểu.
2.2.2 Thông tin phản hồi từ người dùng và hai dạng bài toán chính trong RS
Trong RS, giá trị phản hồi (feedback) rui của mỗi người dùng trên mục tin sẽ được
ghi nhận lại để làm cơ sở cho việc dự đoán các giá trị kế tiếp. Tùy theo hệ thống mà
giá trị này sẽ có ý nghĩa khác nhau, ví dụ nó có thể dùng để đo độ “phù hợp” hay “mức
độ thích” (thường là các đánh giá trên các sản phẩm) trong các hệ thống thương mại
điện tử hay “năng lực/kết quả thực hiện” của người dùng trong các hệ thống elearning.
Giá trị rui có thể được xác định một cách tường minh (explicit feedbacks) như
thông qua việc đánh giá/xếp hạng (ví dụ, rating từ « đến «««««; hay like (1) và
dislike (0),…) mà u đã bình chọn cho i; hoặc rui có thể được xác định một cách không
tường minh (implicit feedbacks) thông qua số lần click chuột, thời gian mà u đã
duyệt/xem i,…
Có 2 dạng bài toán chính trong RS là dự đoán xếp hạng (rating prediction) của các
hệ thống có phản hồi tường minh như đã trình bày ở trên và dự đoán mục thông tin
(item prediction/recommendation) là việc xác định xác suất mà người dùng thích mục
tin tương ứng (Pilaszy & Tikk, 2009). Trong khuôn khổ bài viết này, chúng tôi sẽ tập
trung nhiều trên lĩnh vực dự đoán xếp hạng.
2.3 Các kỹ thuật chính trong RS
Hiện tại, trong RS có rất nhiều giải thuật được đề xuất, tuy nhiên có thể gom chúng
vào trong các nhóm chính (xem thêm trong (Su et.al., 2009), (Ricci et.al., 2010),
(Bobadilla et.al., 2013))
• Nhóm giải thuật lọc cộng tác (Collaborative Filtering): trong nhóm này, các giải
thuật chủ yếu sử dụng:


o Phương pháp láng giềng (Neighborhood-based, còn gọi là Memorybased), trong đó hoặc là dựa trên dữ liệu quá khứ của người dùng “tương
tự - similarity” (user-based approach), hoặc là dựa trên dữ liệu quá khứ
của những item “tương tự” (item-based approach)
o Dựa trên mô hình (Model-based): Nhóm này liên quan đến việc xây

dựng các mô hình dự đoán dựa trên dữ liệu thu thập được trong quá khứ.
Như mô hình Bayesian, các mô hình nhân tố tiềm ẩn (latent factor
models): trong đó kỹ thuật phân rã ma trận (matrix factorization) là một
điển hình.
• Nhóm giải thuật lọc trên nội dung (Content-based Filtering): Gợi ý các item dựa
vào hồ sơ (profiles) của người dùng hoặc dựa vào nội dung/thuộc tính
(attributes) của những item tương tự như item mà người dùng đã chọn trong quá
khứ.
• Nhóm lai ghép: Kết hợp cả 2 cách trên.
• Nhóm kỹ thuật không cá nhân hóa (non-personalization)
Một trong những khuyết điểm của phương pháp lọc theo nội dung là khó khăn
trong việc thu thập thông tin, trong khi phần lớn các mô hình dựa trên lọc cộng tác chỉ
cần 3 thông tin (user id, item id, feedback) là có thể hoạt động tốt. Do vậy khuynh
hướng hiện nay đa phần các nhà nghiên cứu thiên về nhóm lọc cộng tác.
Sau đây chúng tôi sẽ trình bày tóm tắt các kỹ thuật thông dụng và nổi trội (state-ofthe-art) trong hệ thống gợi ý.
2.3.1 Kỹ thuật k láng giềng dựa trên người dùng/mục tin (User/Item kNNs)
Có hai cách tiếp cận của lọc cộng tác theo mô hình K láng giềng là dựa trên người
dùng (User_kNN) – dự đoán dựa trên sự tương tự giữa các người dùng và dựa trên
mục tin (Item_kNN) – dự đoán dựa trên sự tương tự giữa các mục tin.
Kỹ thuật k láng giềng dựa trên người dùng (User_kNN) xác định độ tương tự giữa
hai người dùng thông qua việc so sánh các đánh giá của họ trên cùng sản phẩm, sau đó
dự đoán xếp hạng trên sản phẩm i bởi người dùng u, thông qua các xếp hạng của
những người dùng tương tự với người dùng u. Độ tương tự giữa người dùng u và
người dùng u' có thể được tính theo Cosine hoặc Pearson như sau (Herlocker et al.,
1999):

Trong đó:


rui và ru’i là đánh giá của người dùng u và u’ trên item i tương ứng

Iuu' là tập các item được đánh giá bởi cả người dùng u và người dùng u'
𝑟# là giá trị đánh giá trung bình trên tất cả các item của người dùng u
𝑟#% là giá trị đánh giá trung bình trên tất cả các item của người dùng u'
Tương tự, kỹ thuật k láng giềng dựa trên mục tin (Item_kNN) cũng xác định độ
tương tự dựa trên các mục tin bằng phương pháp Cosine hoặc Pearson như sau:

Trong đó:
Uii' là tập các người dùng có đánh trên cả hai mục tin i và i’
𝑟& là giá trị đánh giá trung bình của tất cả các người dùng trên item i
𝑟&% là giá trị đánh giá trung bình của tất cả các người dùng trên item i’
Sau khi tính toán độ tương tự giữa các người dùng hay giữa các sản phẩm, đánh
giá của người dùng u trên sản phẩm i được dự đoán theo các công thức như bên dưới
(Resnick et al., 1994).
Với phương pháp User_kNN, xếp hạng (đánh giá/ feedback) của người dùng u
trên sản phẩm i được dự đoán qua công thức

Trong đó Sim(u,u') là độ tương tự giữa người dùng u và u' được xác định bằng
phương pháp Cosine hoặc Pearson như đã trình bày; Ku là số người dùng có độ lân
cận gần người dùng u (k láng giềng của u)
Với phương pháp Item_kNN, xếp hạng (đánh giá/ feedback) của người dùng u trên
sản phẩm i được dự đoán qua công thức


Trong đó, Sim(i, i') độ tương tự giữa mục tin i và i’ được xác định bằng phương
pháp Cosine hoặc Pearson như đã trình bày; Ki là số item có độ lân cận gần item i (k
láng giềng của i).
Phương pháp User_kNN để dự đoán đánh giá của người dùng u trên sản phẩm i
được biểu diễn bằng ngôn ngữ giả như sau (Nguyễn Hùng Dũng và Nguyễn Thái
Nghe, 2014)
1:procedureUSERKNN-CF(𝑟# , r, Dtrain)

2:

for u=1 to N do

3:

Tính Sim_uu'

4:

end for

5: Sort Sim_uu' // sắp xếp giảm dần độ tương tự
6:
7:

for k=1 to K do
Ku ← k // Các người dùng k gần nhất của u

8:

end for

9:

for i = 1 to M do

10:

Tính


𝑟#(

11: end for
12:end procedure

2.3.2 Kỹ thuật Phân rã ma trận (Matrix factorization - MF)
Kỹ thuật phân rã ma trận là việc chia một ma trận lớn X thành hai ma trận có kích
thước nhỏ hơn W và H, sao cho ta có thể xây dựng lại X từ hai ma trận nhỏ hơn này
càng chính xác càng tốt (Koren et al., 2009), nghĩa là X ~ WHT, được minh họa như
trong Hình 3.
Trong đó, W ∈ ℜ|U|×K là một ma trận mà mỗi dòng u là một véc tơ bao gồm K nhân
tố tiềm ẩn (latent factors) mô tả người dùng u; và H ∈ ℜ|I|×K là một ma trận mà mỗi
dòng i là một véc tơ bao gồm K nhân tố tiềm ẩn mô tả cho item i (lưu ý: K<<|U| và
K<<|I|)

Hình 3. Minh họa kỹ thuật phân rã ma trận


Gọi wuk và hik là các phần tử tương ứng của hai ma trận W và H, khi đó xếp hạng
của người dùng u trên mục tin i được dự đoán bởi công thức:
K

rˆui = ∑ wuk hik = w.hT
k =1

Như vậy vấn đề then chốt của kỹ thuật MF là làm sao để tìm được giá trị của hai
tham số W và H. Hai tham số này có được bằng cách tối ưu hóa hàm mục tiêu
(objective function). Hàm mục tiêu thông dụng nhất trong RS tương tự như hàm lỗi
RMSE, biểu diễn như sau:


O

MF

K


= ∑ (rui − rˆui ) = ∑ ⎜ rui − ∑ wuk hik ⎟
k =1

u ,i∈Dtrain
u ,i∈Dtrain ⎝

2

2

Một trong những kỹ thuật có thể dùng để tối ưu hóa hàm mục tiêu là dùng SGD
(Stochastic Gradient Descent) (Bottou, 2004; Bell & Koren, 2007). Để tối ưu hóa hàm
mục tiêu (3), trước tiên ta khởi tạo các giá trị ngẫu nhiên cho W và H, sau đó từng
bước cập nhật giá trị của chúng cho đến khi hàm mục tiêu hội tụ về giá trị nhỏ nhất
(convergence).
Để làm được điều đó, ta cần phải biết là nên tăng hay nên giảm các giá trị của
W và H qua mỗi lần cập nhật, do vậy cần phải tìm đạo hàm tương ứng của chúng:


O MF = −2(rui − rˆui )hik
∂wuk


O MF = −2(rui − rˆui ) wuk
∂hik
Sau khi tìm đạo hàm, các phần tử của W và H sẽ được cập nhật ngược hướng với giá
trị của đạo hàm (Takacs et al., 2009), qua công thức:
wuknew = wukold − β ⋅


O MF = wukold + 2β ⋅ (rui − rˆui )hik
∂wuk

hiknew = hikold − β ⋅


O MF = hikold + 2β ⋅ (rui − rˆui ) wuk
∂hik

Trong đó β là tốc độ học (learning rate, 0 < β < 1). Quá trình cập nhật sẽ được thực
hiện đến khi nào hàm mục tiêu đạt được giá trị nhỏ nhất.
Chính tắc hóa (Regularization): Để ngăn chặn sự quá khớp (overfitting), người ta thay
đổi hàm mục tiêu để thêm vào một đại lượng gọi là chính tắc hóa (regularization) để
điều khiển độ lớn của các giá trị trong W và H (Koren, 2009). Hàm mục tiêu bây giờ
trở thành:
2

O

MF

K



= ∑ ⎜ rui − ∑ wuk hik ⎟ + λ ⋅ W
k =1

u ,i∈Dtrain ⎝

(

2
F

+ H

2
F

)


Trong đó λ là hệ số chính tắc hóa (0 ≤ λ <1) và || ⋅ || 2F là chuẩn Frobenius1.
Với hàm mục tiêu mới này, giá trị của wuk và hik được cập nhật qua công thức:
wuknew = wukold + β ⋅ 2(rui − rˆui )hik − λ ⋅ wukold

(

)

(

)


hiknew = hikold + β ⋅ 2(rui − rˆui ) wuk − λ ⋅ hikold

Giải thuật 1 mô tả chi tiết quá trình huấn luyện mô hình MF bằng kỹ thuật SGD. Trước
hết, giá trị của W và H được khởi tạo một cách ngẫu nhiên, ví dụ, lấy từ phân phối
chuẩn N (0, σ2) với trung bình là 0 và độ lệch là σ2 = 0.01, như ở dòng 2-3. Ở mỗi lần
lặp, ta chọn ngẫu nhiên một dòng (u, i, rui) từ tập dữ liệu huấn luyện, kế tiếp là tính giá
trị dự đoán cho u và i này, như ở các dòng 5-9. Sau đó cập nhật các giá trị của W and
H tương ứng của u và i như ở dòng 11-14.
Giải thuật 1. Kỹ thuật phân rã ma trận sử dụng SGD. Các siêu tham số (hyperparameters): Số lần lặp (Iter); số nhân tố tiềm ẩn K; tốc độ học β; và regularization λ
1: procedure MF-SGD(DTrain, Iter, K, β, λ)
// W[|U|][K] và H[|I|][K] là 2 ma trận nhân tố tiềm ẩn cần tìm
2: W := N(0,σ2) // Khởi tạo ngẫu nhiên theo phân phối chuẩn
3: H := N(0,σ2) ) // Khởi tạo ngẫu nhiên theo phân phối chuẩn
4: for (iter:=1; iter <= Iter * |DTrain|; iter++)
5:
Chọn ngẫu nhiên một dòng (u, i, rui) từ DTrain
6:
rˆui := 0
7:
8:

for (k:=1; k<=K; k++)
rˆui := rˆui + W[u][k] * H[i][k]

9:
10:

end for
eui = rui – rˆui


11: for (k:=1; k<=K; k++)
12:
W[u][k] := W[u][k] + β * (eui * H[i][k] - λ * W[u][k])
13:
H[i][k] := H[i][k] + β * (eui * W[u][k] - λ * H[i][k])
14: end for
15: Break nếu đã convergence
16: end for
17: return {W, H}
18: end procedure
Dự đoán kết quả:
Sau quá trình tối ưu (huấn luyện), ta có được hai tham số W và H, khi đó, xếp hạng
của người dùng u cho mục thông tin i được dự đoán qua công thức:
1

/>

K

rˆui = ∑ wuk hik
k =1

Ví dụ: Dự đoán xếp hạng của user 2 cho item 2 trong Hình 3:
rˆui = 0.5*0.8 + 0.6*0.1 =0.46

2.3.3 Các kỹ thuật không cá nhân hóa
Trong nhóm kỹ thuật này, do chúng khá đơn giản, dễ cài đặt nên nên thường
được các website/hệ thống tích hợp vào, gồm cả các website thương mại, website
tin tức, hay giải trí. Chẳng hạn như trong các hệ thống bán hàng trực tuyến, người

ta thường gợi ý các sản phẩm được xem/mua/bình luận/.. nhiều nhất; gợi ý các sản
phẩm mới nhất; gợi ý các sản phẩm cùng loại/ cùng nhà sản xuất/..; gợi ý các sản
phẩm được mua/chọn cùng nhau. Một ví dụ khá điển hình là thông qua luật kết hợp
(như Apriori), Amazon đã áp dụng khá thành công để tìm ra các sản phẩm hay
được mua cùng nhau như minh họa trong Hình 4.
Tuy vậy, bất lợi của các phương pháp này là không cá nhân hóa cho từng người
dùng, nghĩa là tất cả các user đều được gợi ý giống nhau khi chọn cùng sản phẩm.

Hình 4. Gợi ý sản phẩm thường được mua cùng nhau
2.4 Các kỹ thuật nâng cao
2.4.1 Kỹ thuật Phân rã ma trận thiên vị (Biased matrix factorization - BMF)
Kỹ thuật Phân rã ma trận thiên vị BMF là một biến thể của kỹ thuật Matrix
Factorization (MF) cộng thêm các giá trị thiên vị/lệch (biases).


Với kỹ thuật BMF, xếp hạng của người dùng u cho mục tin i được dự đoán như sau:
K

rˆui = µ + bu + bi + ∑ wuk hik
k =1

Trong đó, µ là giá trị trung bình toàn cục, được xác định từ tập dữ liệu huấn luyện
qua công thức

Giá trị bu là độ thiên vị (bias) của người dùng u, xác định bỡi:

Giá trị bi là độ thiên vị (bias) của item i, xác định bởi:

Hàm mục tiêu của BMF có dạng:
2


O

BMF

K


= ∑ ⎜ rui − µ − bu − bi − ∑ wuk hik ⎟ + λ ⋅ W
k =1

u ,i∈Dtrain ⎝

(

2
F

+ H

2
F

)

Tương tự như kỹ thuật MF, sau khi tối ưu hóa hàm mục tiêu, ta cũng xác định được
các tham số tương ứng và từ đó có thể dễ dàng dự đoán kết quả.
Thực nghiệm đã cho thấy, trong khá nhiều trường hợp, BMF cho kết quả tốt hơn
hẵn so với kỹ thuật MF (Koren et.al., 2009; Huỳnh Lý Thanh Nhàn và Nguyễn Thái
Nghe, 2013; Thai-Nghe et.al., 2011a, 2012).

2.4.2 Kỹ thuật phân rã ma trận đa quan hệ (Multi-relational Matrix
Factorization - MRMF)
Kỹ thuật phân rã ma trận đa quan hệ (Multi-relational Matrix Factorization –
MRMF) là kỹ thuật mở rộng từ kỹ thuật MF với ý tưởng là tận dụng tất cả các mối
quan hệ có thể có trong cơ sở dữ liệu của hệ thống.
Nếu như trong MF, ta chỉ sử dụng 1 ma trận (tương ứng với 1 quan hệ trong sơ đồ
ERD, ví dụ như “Entity1-Relation1-Entity2” trong Hình 5 thì trong MRMF ta sẽ sử


dụng tất cả các ma trận tương ứng với các thực thể và các quan hệ có thể có, như minh
họa trong Hình 5.

Hình 5. Biểu diễn dữ liệu trong MRMF
Hàm mục tiêu của MRMF được viết dưới dạng tổng quát cho N thực thể và M
quan hệ như sau:

Tương tự trong MF, sử dụng stochastic gradient descent, ta cũng xây dựng được
mô hình MRMF như trong thủ tục bên dưới. Trong đó

Chi tiết về MRMF, vui lòng tham khảo thêm trong tài liệu (Nguyen
Thai-Nghe and Lars Schmidt-Thieme, 2015b) và (Nguyễn Thái Nghe, Huỳnh
Xuân Hiệp, 2012).


2.4.3 Gợi ý theo ngữ cảnh
Trong RS hai chiều như đã trình bày, người ta thường biểu diễn dữ liệu vào ma trận
user-item do vậy chỉ quan tâm đến người dùng và mục tin là chính chứ không quan
tâm đến các thông tin ngữ cảnh (context) bên ngoài có tác động đến quyết định của
người dùng hay không. “Thông tin ngữ cảnh là những thông tin có thể mô tả được
hoàn cảnh của một thực thể” (Gediminas et.al., 2011). Ví dụ: thời gian, nơi chốn, thời

tiết, tâm trạng… là những thông tin ngữ cảnh, chúng có thể ảnh hưởng đến đánh giá
của người dùng đối với các item, từ đó dẫn đến sự ảnh hưởng của những gợi ý trong
RS.
Với hệ thống gợi ý theo ngữ cảnh (đa chiều), hàm dự đoán 𝑟 được bổ sung thêm
thông tin ngữ cảnh (Context) và trở thành:
𝑟: U × I × C → R

(C là thông tin ngữ cảnh)

Ví dụ, trong hệ thống gợi ý du lịch, user là khách du lịch, item là những địa
điểm du lịch, và ngữ cảnh có thể là thời gian (buổi sáng/tối, cuối tuần, mùa, lễ, tết,..),
bạn đồng hành (đi một mình, đi với bạn trai/bạn gái, đi với gia đình, trẻ nhỏ…)…
Những đánh giá cho một điểm du lịch bởi một người dùng có thể sẽ phụ thuộc vào


những ngữ cảnh đó. Ví dụ vào buổi tối mùa xuân đi cùng gia đình thì địa điểm ABC là
hấp dẫn nhất, nhưng khi đi cùng bạn gái thì có thể địa điểm đó không phù hợp nữa.
Các phương pháp tiếp cận trong hệ thống gợi ý đa chiều có thể được tóm tắt như sau:
• Xử lý ngữ cảnh đầu vào (Contextual pre-filtering): Trong tiếp cận này, thông tin về
ngữ cảnh được sử dụng để lựa chọn hoặc xây dựng các thiết lập có liên quan đến
dữ liệu (xếp hạng). Sau khi lọc thông tin ngữ cảnh, hệ thống đa chiều sẽ trở thành
hệ thống hai chiều và ta có thể sử dụng bất kỳ phương pháp gợi ý truyền thống nào
trên các dữ liệu đã chọn.
• Xử lý ngữ cảnh đầu ra (Contextual post-filtering): Trong tiếp cận này, ngữ cảnh
thông tin ban đầu bị bỏ qua, và xếp hạng được dự đoán bằng cách sử dụng bất kỳ
phương pháp gợi ý truyền thống trên toàn bộ dữ liệu. Sau đó, các gợi ý được điều
chỉnh cho mỗi người sử dụng bằng cách sử dụng các thông tin theo ngữ cảnh
• Mô hình hóa ngữ cảnh (Contextual modeling): Phương pháp này xây dựng một mô
hình dự đoán. Ví dụ, mô hình này có thể đưa ra xác suất một người dùng cụ thể
chọn một sản phẩm cụ thể trong một bối cảnh cụ thể là bao nhiêu. Sau đó xác suất

này được dùng để điều chỉnh và tìm ra gợi ý phù hợp.
Để xây dựng hệ thống gợi ý theo ngữ cảnh, nhóm tác giả (Lư Chân Thiện và
Nguyễn Thái Nghe, 2015) đã đề xuất kết hợp các phương pháp như minh họa trong
Hình 6: Trước tiên xử lý thông tin ngữ cảnh đầu vào, kế đến dùng kỹ thuật phân rã ma
trận để dự đoán kết quả, sau đó xử lý thông tin ngữ cảnh đầu ra.

Hình 6. Quy trình gợi ý theo ngữ cảnh
Xử lý thông tin ngữ cảnh đầu vào: Phương pháp này dùng những điều kiện
ngữ cảnh hiện tại được cung cấp trực tiếp từ người dùng (sở thích, tâm trạng…) hoặc
từ môi trường (thời gian, thời tiết, vị trí hiện tại…) sau đó truy vấn, tìm kiếm những
nguồn tài nguyên thích hợp nhất để đưa ra gợi ý. Dữ liệu đầu vào là một tập bao gồm:
người dùng, đối tượng, ngữ cảnh và những đánh giá tương ứng. Sau đó dùng điều kiện
ngữ cảnh hiện tại của người dùng cung cấp để lọc ra tập dữ liệu có liên quan đến ngữ
cảnh đó. Sau khi lọc ta có thể bỏ qua thông tin ngữ cảnh, như vậy bài toán gợi ý đa
chiều lúc này trở về dạng bài toán gợi ý hai chiều như minh họa trong Hình 7. Từ đây,
ta có thể áp dụng bất kỳ phương pháp gợi ý hai chiều nào để dự đoán các item cho
người dùng. Lợi ích của việc này là có thể tái sử dụng tất cả những phương pháp gợi ý
hai chiều sau khi chiều ngữ cảnh được thu giảm.


Hình 7. Sử dụng phương pháp Pre-filtering
Xử lý thông tin ngữ cảnh đầu ra: Trong phương pháp này, thông tin ngữ cảnh
được sử dụng sau khi đã có lời gợi ý. Đầu vào của phương pháp này vẫn là tập dữ liệu
bao gồm cả thông tin ngữ cảnh. Tuy nhiên, ta giả định các thông tin ngữ cảnh chưa
ảnh hưởng đến các đánh giá của người dùng lên các đối tượng. Sau đó dùng những kỹ
thuật gợi ý hai chiều để tiến hành dự đoán các đánh giá và gợi ý trên toàn bộ tập dữ
liệu ban đầu. Sau khi có kết quả gợi ý cho người dùng, ta sẽ lọc ra những lời gợi ý phù
hợp với thông tin ngữ cảnh ban đầu rồi mới chuyển đến người dùng.
Thủ tục tổng quát cho xây dựng hệ thống gợi ý theo ngữ cảnh kết hợp xử lý ngữ
cảnh đầu vào, dùng mô hình phân rã ma trận, và xử lý ngữ cảnh đầu ra được minh họa

trong thủ tục ContextAware-MF. Các siêu tham số (hyper-parameters): Số lần lặp
(Iter), Số nhân tố tiềm ẩn K, tốc độ học β, và hệ số chính tắc hóa λ (regularization)
nhằm tránh học vẹt (over-fitting). Các siêu tham số này sẽ được xác định bằng phương
pháp tìm kiếm siêu tham số (Thai-Nghe et.al., 2010).
1: procedure ContextAware-MF (DTrain, Iter, K, β, λ)
// W[|U|][K] và H[|I|][K] là 2 tham số cần tìm
2: W := N(0,σ2) //khởi tạo giá trị theo phân phối chuẩn
3: H := N(0,σ2) //khởi tạo giá trị theo phân phối chuẩn
4: DTrainC = Pre-filtering(DTrain)
5: for (iter:=1; iter <= Iter * |DTrainC|; iter++)
6:
Chọn ngẫu nhiên một dòng (u, i, rui) từ DTrainC
rˆui := 0
7:
8:
9:

for (k:=1; k<=K; k++)
rˆui := rˆui + W[u][k] * H[i][k]

10:
11:

end for
eui = rui – rˆui

12:
13:
14:
15:


for (k:=1; k<=K; k++)
W[u][k] := W[u][k] + β * (eui * H[i][k] - λ * W[u][k])
H[i][k] := H[i][k] + β * (eui * W[u][k] - λ * H[i][k])
end for


16: Break nếu đã hội tụ
17: end for
18: return {W, H}
19: Post-filtering(Tập kết quả được dự đoán dùng W, H)
20: end procedure
2.5 Các phương pháp đánh giá
2.5.1 Đánh giá độ tin cậy của giải thuật
Có nhiều phương pháp khác nhau có thể được sử dụng để đánh giá giải thuật như:
F-Measure, Area Under the ROC Curve (AUC),… mỗi phương pháp đánh giá sẽ thích
hợp cho từng lĩnh vực cụ thể. Trong RS, độ đo lỗi RMSE (Root Mean Squared Error)
là độ đo phổ biến mà cộng đồng người dùng trong lĩnh vực RS thường sử dụng. RMSE
hay được dùng cho bài toán dự đoán xếp hạng (Rating Prediction) còn MAE hay được
dùng cho dự đoán mục tin (Item Prediction) (Guy and Asela, 2011). RMSE và MAE
được xác định bằng các công thức sau:
RMSE =

MAE =

1
(rui − rˆui )2

test
| D | u,i,r∈Dtest


1
∑ (rui − rˆui )
| D test | u,i,r∈D test

2.5.2 Đánh giá hiệu quả của việc gợi ý
Để đánh giá hiệu quả của việc gợi ý, người ta thường dùng các độ đo liên quan
đến sự “phù hợp trên kết quả trả về” tương tự như trong truy tìm thông tin. Gợi ý được
xem là phù hợp khi người dùng chọn mục tin từ danh sách các mục tin đã được hệ
thống gợi ý cho người dùng. Sự phù hợp này có thể được đánh giá qua các độ đo như
Precision, Recall, F-Measure (Guy and Asela, 2011).
Precision là tỷ lệ giữa số lượng các gợi ý phù hợp trên tổng số các gợi ý đã tạo ra.
𝑆ố𝑙ượ𝑛𝑔𝑔ợ𝑖ý𝑝ℎùℎợ𝑝
𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 =
𝑆ố𝑙ượ𝑛𝑔𝑔ợ𝑖ý𝑡ạ𝑜𝑟𝑎
Còn Recall là tỷ lệ giữa số lượng các gợi ý phù hợp và số lượng các mục tin mà
người dùng đã chọn lựa (xem, nghe, mua, đọc,..). Recall được sử dụng để đo khả năng
hệ thống tìm được những mục dữ liệu phù hợp so với những gì mà người dùng cần.
𝑆ố𝑙ượ𝑛𝑔𝑔ợ𝑖ý𝑝ℎùℎợ𝑝
𝑅𝑒𝑐𝑎𝑙𝑙 =
𝑆ố𝑙ượ𝑛𝑔𝑠ả𝑛𝑝ℎẩ𝑚𝑚𝑢𝑎𝑏ở𝑖𝑛𝑔ườ𝑖𝑑ù𝑛𝑔
F-Measure được sử dụng để đánh giá hiệu quả tổng thể của hệ thống bằng cách
kết hợp cả hai chỉ số Recall và Precision.


𝐹 − 𝑠𝑐𝑜𝑟𝑒 =

2×𝑃𝑟𝑒𝑐𝑖𝑠𝑜𝑛×𝑅𝑒𝑐𝑎𝑙𝑙
𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 + 𝑅𝑒𝑐𝑎𝑙𝑙


2.6 Các lĩnh vực ứng dụng chính
Có rất nhiều ứng dụng liên quan đến tích hợp RS vào thực tế trong nhiều lĩnh vực
khác nhau, như của Amazon, Ebay, YouTube, Netflix, LastFM,… Sau đây chúng tôi
sẽ tóm tắt một số ứng dụng mà nhóm nghiên cứu đã thực hiện trong thời gian gần đây
liên quan đến các lĩnh vực như Thương mại điện tử, giải trí, giáo dục, khoa học.
2.6.1 Ứng dụng RS trong 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.
Tuy vậy, trong nước vẫn chưa thấy những công bố liên quan đến việc ứng dụng RS
vào lĩnh vực này.
2.6.1.1 Gợi ý sản phẩm dựa trên phản hồi tường minh
Nhóm tác giả (Nguyễn Hùng Dũng và Nguyễn Thái Nghe, 2014) đã đề xuất xây
dựng hệ thống gợi ý cho bán hàng trực tuyến sử dụng kỹ thuật lọc cộng tác sử dụng
phản hồi tường minh từ người dùng thông qua các đánh giá trên sản phẩm. Các tác giả
đã tiến hành xây dựng một hệ thống bán hàng trực tuyến, từ đó tích hợp kỹ thuật gợi ý
vào hệ thống để tư vấn cho khách hàng những sản phẩm họ có thể yêu thích nhất.
Nhóm tác giả cũng đã đề xuất kết hợp cả lọc cộng tác (collaborative filtering)
và lọc dựa trên một số thuộc tính của người dùng cung cấp để dự đoán sở thích của
khách hàng mới nhằm khắc phục vấn đề “người dùng mới” trong RS. Cụ thể, thông
qua việc đăng ký thông tin tài khoản của khách hàng, tác giả đã thu thập thêm một số
thông tin của người dùng mới bằng cách tạo một biểu mẫu (form) cho người dùng
nhập một số thông tin cần thiết như: tính cách, nghề nghiệp, thu nhập hoặc một số
thông tin về sở thích.... Việc ghi nhận lại các thông tin này của người dùng sẽ giúp hệ
thống tư vấn tốt hơn cho người dùng mới này. Đối với sản phẩm mới nhập vào, chúng
được hiển thị đầu tiên trên trang web và có biểu tượng 'New' để nhận biết đây là sản
phẩm mới của hệ thống. Ngoài ra, khi hiển thị chi tiết mỗi sản phẩm, trang web có một
không gian để hiển thị các sản phẩm tương tự với sản phẩm mà người dùng đang xem
dựa vào một số thuộc tính tương tự. Vì vậy những sản phẩm mới nhập cũng có thể
được gợi ý cho người dùng. Thực nghiệm và minh họa (như trong Hình 8) cho thấy
chức năng gợi ý hoạt động khá tốt.



Hình 8. Hệ thống gợi ý sản phẩm sử dụng phản hồi tường minh
2.6.1.2 Gợi ý sản phẩm dựa trên phản hồi tiềm ẩn
Với những hệ thống gợi ý thu thập thông tin phản hồi từ khách hàng một cách
tường minh thì người dùng sẽ trực tiếp đánh giá trên sản phẩm, như bình chọn từ «
(không thích) đến ««««« (rất thích); hay thu thập thông tin qua like(C)/
dislike(D),.. Thông qua việc thu thập phản hồi tường minh, hệ thống dễ dàng xác định
mức độ yêu thích của người dùng trên sản phẩm, từ đó dự đoán các sản phẩm tiếp theo
mà người dùng có thể thích để gợi ý cho họ. Tuy nhiên, điều này có thể gây bất lợi do
không phải người dùng lúc nào cũng sẳn sàng/vui lòng để lại các phản hồi của họ, vì
vậy hệ thống phải nên tự xác định người dùng cần gì thông qua phản hồi tiềm ẩn.
Từ phân tích trên, nhóm tác giả (Lưu Nguyễn Anh Thư, 2014) đã đề xuất một
giải pháp xây dựng hệ thống gợi ý dành cho bán hàng trực tuyến sử dụng phản hồi
tiềm ẩn (implicit feedbacks) từ người dùng. Trước hết các tác giả đề xuất phương pháp
thu thập thông tin phản hồi tiềm ẩn, sau đó tìm hiểu các phương pháp gợi phù hợp từ
đó đề xuất sử dụng phương pháp tập hợp mô hình để kết hợp các mô hình dự đoán
nhằm tăng độ chính xác. Kế đến là việc cài đặt, điều chỉnh, kiểm thử và và tích hợp
các mô hình đã đề xuất vào hệ thống nhằm gợi ý các sản phẩm phù hợp với sở thích
của người dùng. Sau cùng, là việc thu thập phản hồi từ người dùng thực nhằm đánh giá
hiệu quả của phương pháp đã đề xuất. Kết quả cho thấy mô hình đề xuất có khả năng
gợi ý tốt cho người dùng và hoàn toàn có thể tích hợp vào các hệ thống bán hàng trực
tuyến như minh họa trong Hình 9 và Hình 10.


Hình 9. So sánh độ lỗi của phương pháp kết hợp các phản hồi tiềm ẩn

Hình 10. Gợi ý sản phẩm sử dụng phản hồi tiềm ẩn
2.6.2 Ứng dụng RS trong Giải trí
2.6.2.1 Gợi ý bài hát

Last.fm là một trang web (hệ thống) 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 mà 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ự đoán là sẽ thích chúng. Trong nước,
cũng có rất nhiều trang nghe nhạc trực tuyến có tích hợp kỹ thuật gợi ý như
nhaccuatui.com, nhacso.net, mp3.zing.vn,.. tuy nhiên phần lớn các hệ thống này gợi ý
dạng không cá nhân hóa, nghĩa là gợi ý dựa vào các bài hát cùng ca sĩ, cùng thể loại,..
Nhóm tác giả (Nguyễn Tấn Phong và Nguyễn Thái Nghe, 2014) đã giới thiệu
một giải pháp trong xây dựng Hệ thống gợi ý bài hát dựa vào phản hổi tiềm ẩn
(implicit feedback) từ người dùng. Đây là một dạng trong bài toán gợi ý mục tin (item
recommendation. Mặc dù có khá nhiều phương pháp đã được sử dụng cho vấn đề gợi
ý mục tin dựa vào phản hồi tiềm ẩn, phổ biến nhất kỹ thuật lọc cộng tác k-láng giềng
(kNN), thường dùng tương quan Pearson hoặc Cosine để tìm độ tương tự giữa những
người dùng cùng sở thích hoặc các mục tin được xếp hạng bởi cùng người dùng, hoặc
sử dụng kỹ thuật phân rã ma trận (matrix factorization - MF). Tuy nhiên các giải thuật
này thích hợp hơn cho những hệ thống sử dụng phản hồi tường minh (explicit
feedbacks) thông qua những phản hồi/xếp hạng cụ thể. Ở đây, nhóm tác giả đã đề xuất


sử dụng phản hồi tiềm ẩn từ người dùng (như tỷ lệ thời lượng mà người dùng đã nghe
trên tổng thời lượng bài hát) và từ đó đề xuất sử dụng giải thuật xếp hạng cá nhân
Bayes để xây dựng “Hệ thống gợi ý bài hát” (minh họa trong Hình 11) do kỹ thuật này
hoạt động tốt trên dữ liệu phản hồi tiềm ẩn. Thực nghiệm trên dữ liệu từ thực tế gồm
109 người dùng (user), 50 bài hát (item) và 1109 thông tin phản hồi (rating) cho thấy
giải pháp này cho độ lỗi chấp nhận được và hoàn toàn có khả năng triển khai thực tế.

Hình 11. Hệ thống gợi ý bài hát dựa vào thông tin phản hồi tiềm ẩn
2.6.2.2 Gợi ý phim
Một trong các hệ thống gợi ý phim nổi tiếng thế giới là Netflix.com. 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.

Bên cạnh đó, (Triệu Vĩnh Viêm và Nguyễn Thái Nghe, 2013) cũng đã đề xuất
xây dựng hệ thống gợi ý phim dựa trên mô hình đã được (Koren, 2010) đề xuất. Mô
hình này có khả năng cải tiến được độ chính xác ngang bằng với mô hình nhân tố tiềm
ẩn. Nó không những duy trì được các thuận lợi của mô hình láng giềng, mà còn xử lý
được ngay lập tức vấn đề người dùng mới (còn gọi là Cold Start Problem) khi xếp
hạng lần đầu mà không cần phải huấn luyện lại. Tiếp cận này được tác giả đặt tên là
“Factor in the Neighbors” (Asymmetric SVD – Koren 2008) với khả năng mở rộng có
thể tích hợp được nhiều thông tin đầu vào của người dùng (implicit feedback, explicit
feedback) và đạt được độ chính xác đáng kể. Bên cạnh việc kế thừa kết quả nghiên cứu
của Koren, nhóm tác giả đã điều chỉnh mô hình đã có bằng cách đưa vào các hệ số
chính tắc hóa (regularization) trên từng tham số khác nhau của mô hình nhằm cải tiến


kết quả dự đoán. Kết quả so sánh lỗi RMSE với các phương pháp khác được minh họa
trong Hình 12 (trái) và giao diện của hệ thống gợi ý phim (phải).

Hình 12. Hệ thống gợi ý phim
2.6.2.3 Gợi ý du lịch
Nhóm tác giả (Lư Chân Thiện, 2013) đã đề xuất một giải pháp trong xây dựng
Hệ thống gợi ý theo ngữ cảnh, áp dụng cho gợi ý du lịch nhằm gợi ý các điểm du lịch
phù hợp nhất với du khách. Hệ thống này kết hợp các phương pháp như gợi ý dựa trên
ngữ cảnh đầu vào (contextual pre-filtering), tích hợp với kỹ thuật phân rã ma trận
(matrix factorization), và xử lý ngữ cảnh đầu ra (contextual post-filtering) nhằm tăng
độ chính xác cho hệ thống. Sau khi xây dựng hệ thống và tích hợp các giải thuât gợi ý,
các tác giả đã thu thập thông tin từ người dùng thực nhằm đánh giá hiệu quả của hệ
thống đã đề xuất. Thực nghiệm và minh họa (Hình 13) đã cho thấy việc ứng dụng giải
pháp này trong hỗ trợ phát triển du lịch là hoàn toàn khả thi.


Hình 13. Hệ thống gợi ý du lịch theo ngữ cảnh

2.6.3 Ứng dụng RS trong Giáo dục
Nhóm tác giả (Huỳnh Lý Thanh Nhàn và Nguyễn Thái Nghe, 2013) đã đề xuất sử
dụng kỹ thuật Biased Matrix Factorization (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. nhóm tác giả đã tiến hành 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.
Các tác giả đã sử dụng tập dữ liệu điểm của khoa CNTT&TT được thu thập 10 năm
từ năm 1994 đến năm 2004. Tập dữ liệu bao gồm 4017 sinh viên (4017 user) và 353
môn học (353 item) của 3 ngành học và gồm 279536 điểm chi tiết (279536 ratings).
Kết quả thực nghiệm cho thấy lỗi trên hệ thống là chấp nhận được, như minh họa trong
Hình 14 và Hình 15.


1.30
1.25
1.20

1.240

GlobalAverage
StudentAverage
ItemAverage
MatrixFactorization
BiasMatrixFactorization

1.197

1.15
1.10

1.05

1.032

1.013

1.00
0.95

0.913

0.90

Hình 14. Độ đo lỗi của các phương pháp trong Hệ thống gợi ý chọn môn học

Hình 15. Hệ thống gợi ý lựa chọn môn học
Ngoài ra, việc ứng dụng các kỹ thuật của RS để dự đoán năng lực học tập của sinh
viên trong hệ trợ giảng thông minh cũng đã được tác giả trình bày trong các tài liệu
(Nguyen Thai-Nghe and Lars Schmidt-Thieme, 2015b), (Nguyen Thai-Nghe et.al.,
2012a, 2012b, 2011a, 2011b, 2011c, 2010, 2009, 2007).
2.7 Các nguồn tài nguyên hỗ trợ học tập, nghiên cứu RS
Bên cạnh việc sử dụng các công cụ tiềm kiếm về các tài nguyên sẵn có trong RS,
trang “bách khoa toàn thư” về RS () cũng bao gồm rất
nhiều thông tin hữu ích có thể hỗ trợ cho việc học tập, nghiên cứu như: Các tập dữ liệu


dùng chung (như Bibsonomy, LastFM, movielens,...) và các phần mềm hỗ trợ/nguồn
mở (như MyMediaLite, Mahout,..).
Bên cạnh đó, ở các hội thảo chuyên về RS của ACM đều được tổ chức hàng năm
(recsys.acm.org) và những session chuyên dành cho RS tại các hội thảo nổi tiếng khác

như ACM KDD, ACM CIKM,.. những người quan tâm có thể tìm thấy những bài viết
rất chuyên sâu về tất cả các khía cạnh trong RS.
2.8 Kết luận
Bài viết này đã giới thiệu cho bạn đọc một cái nhìn tổng quát về hệ thống gợi ý.
Tác giả đã tóm lược các vấn đề cơ bản trong hệ thống gợi ý (RS) cũng như các nhóm
kỹ thuật phổ biến hiện nay trong RS, từ đó đi sâu vào trình bày chi tiết một vài kỹ
thuật cho kết quả dự đoán tin cậy nhất hiện nay (state-of-the-art, như kỹ thuật liên
quan đến phân rã ma trận - matrix factorization) và những biến thể của nó. Bên cạnh
đó, bài viết cũng đã trình bày các lĩnh vực ứng dụng chính của RS, kèm theo các kết
quả minh họa cho từng lĩnh vực. Đồng thời bài viết cũng giới thiệu các nguồn tài
nguyên sẵn có hỗ trợ học tập và nghiên cứu RS.
Việc tích hợp nhân tố thời gian cũng như xử lý ngôn ngữ tự nhiên vào các giải
thuật trong hệ thống gợi ý sẽ là các chủ đề nghiên cứu kế tiếp của tác giả trong tương
lai.
Tài liệu tham khảo
[1] Bobadilla J., Ortega F., Hernando A., Gutiérrez H. 2013. Recommender systems survey.
Knowledge-Based Systems. 46 (2013) 109–132. Elsevier.
[2] Guy Shani and Asela Gunawardana. Evaluating recommendation systems. 2011. In
Recommender Systems Handbook, pages 257–297. Springer.
[3] Gediminas Adomavicius, Alexander Tuzhilin. Context-Aware Recommender Systems,
Recommender Systems Handbook. 2011, pp 217-253. Spinger.
[4] Huỳnh Lý Thanh Nhàn, Nguyễn Thái Nghe. 2013. Hệ thống dự đoán kết quả học tập và
gợi ý lựa chọn môn học. Kỷ yếu hội thảo quốc gia lần thứ XVI: Một số vấn đề chọc lọc
của CNTT&TT (@2013), trang 110-118. Nhà xuất bản Khoa học kỹ thuật. ISBN: 987604-67-0251-1
[5] Koren, Y., Bell, R., & Volinsky, C. 2009. Matrix factorization techniques for
recommender systems. IEEE Computer Society Press, 42(8), 30-37.
[6] Lưu Nguyễn Anh Thư và Nguyễn Thái Nghe. 2015. PHƯƠNG PHÁP XÂY DỰNG HỆ
THỐNG GỢI Ý SẢN PHẨM SỬ DỤNG PHẢN HỒI TIỀM ẨN. Kỷ yếu Hội nghị quốc
gia lần thứ VIII "Nghiên cứu cơ bản và ứng dụng Công nghệ thông tin" (FAIR 2015)
[7] Lư Chân Thiện và Nguyễn Thái Nghe. 2015. MỘT TIẾP CẬN TRONG XÂY DỰNG

HỆ THỐNG GỢI Ý THEO NGỮ CẢNH. Kỷ yếu Hội nghị quốc gia lần thứ VIII "Nghiên
cứu cơ bản và ứng dụng Công nghệ thông tin" (FAIR 2015)
[8] Manouselis, N., Drachsler, H., Vuorikari, R., Hummel, H., & Koper, R. 2010.
Recommender systems in technology enhanced learning. In P. B. Kantor, F. Ricci, L.


×