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
Trang 1See discussions, stats, and author profiles for this publication at: https://www.researchgate.net/publication/310059523
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
Nguyen Thai-Nghe
Can Tho University
38 PUBLICATIONS 513 CITATIONS
SEE PROFILE
All content following this page was uploaded by Nguyen Thai-Nghe on 13 November 2016.
The user has requested enhancement of the downloaded file.
Trang 2Chươ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ơ
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ệ
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
Trang 3khá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
Trang 4Trong 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
Trang 5• 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à r ui ∈ R (R ⊂ ℜ) là xếp hạng của
người dùng u trên mục thông tin i
• Gọi D train ⊆ U × I × R là tập dữ liệu huấn luyện
• Gọi D test ⊆ U × I × R là tập dữ liệu kiểm thử
• Gọi r: U × I → R (u, i) ↦ r ui
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
i u ui
2 ) , (
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) r ui 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 e-learning
Giá trị r ui 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 r ui 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:
Trang 6o Phương pháp láng giềng (Neighborhood-based, còn gọi là based), trong đó hoặc là dựa trên dữ liệu quá khứ của người dùng “tương
Memory-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 the-art) trong hệ thống gợi ý
(state-of-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 đó:
Trang 7rui và ru’i là đánh giá của người dùng u và u’ trên item i tương ứng
I uu' 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 đó:
U ii' 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
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
Trang 8Trong đó, 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; K i 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)
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 ~ WH T , đượ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
Trang 9Gọi w uk và h ik 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:
T ik
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:
K k
ik uk ui
ui ui
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:
ik ui ui MF
uk
h r r O
w =−2( − ˆ )
∂
∂
uk ui ui MF
ik
w r r O
h =−2( − ˆ )
∂
∂
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:
ik ui ui
old uk MF uk
old uk
new
w w
old ik MF ik
old ik
new
h h
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ờ
K k
ik uk ui
O
,
2 2
2
1
λ
Trang 10Trong đó λ 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 w uk và h ik được cập nhật qua công thức:
uk ik
ui ui
old uk
ui ui
old ik
new
ik h r r w h
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, r ui ) 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ố parameters): Số lần lặp (Iter); số nhân tố tiềm ẩn K; tốc độ học β; và regularization λ
(hyper-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
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])
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 http://en.wikipedia.org/wiki/Matrix_norm#Frobenius_norm
Trang 11=
=
K k
ik uk
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)
Trang 12Vớ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 k
ik uk i
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:
K k
ik uk i
u ui
O
,
2 2
2
1
λ µ
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ử
Trang 13dụ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)