Kỷ yếu Hội nghị Quốc gia lần thứ VIII về Nghiên cứu cơ bản và ứng dụng Công nghệ thông tin (FAIR); Hà Nội, ngày 9-10/7/2015<br />
DOI: 10.15625/vap.2015.000185<br />
<br />
MỘT TIẾP CẬN TRONG XÂY DỰNG HỆ THỐNG GỢI Ý THEO NGỮ CẢNH<br />
1<br />
<br />
Lư Chân Thiện1 và Nguyễn Thái Nghe2<br />
<br />
Khoa Kỹ thuật Công nghệ, Trường Cao đẳng Cộng đồng Kiên Giang, E-mail: lcthien_kgcc@yahoo.com<br />
2<br />
Khoa Công nghệ Thông tin và Truyền thông, Trường Đại học Cần Thơ, E-mail: ntnghe@cit.ctu.edu.vn<br />
<br />
Tóm tắt - Hệ thống gợi ý (Recommender Systems - RS) đang được ứng dụng rộng rãi trong nhiều lĩnh vực (như thương mại điện<br />
tử, giải trí, giáo dục,...) nhằm dự đoán sở thích của người dùng nhờ vào thông tin cá nhân hoặc những phản hồi (đánh giá) của họ.<br />
Bài viết này đề 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<br />
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 prefiltering), 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 độ<br />
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 ý, chúng tôi thu thập thông tin từ người dùng thực<br />
nhằm đánh giá hiệu quả của hệ thống đã đề xuất. Thực nghiệm 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à<br />
hoàn toàn khả thi.<br />
Từ khóa: Hệ thống gợi ý theo ngữ cảnh, hệ thống gợi ý du lịch, kỹ thuật phân rã ma trận, lọc cộng tác.<br />
<br />
I. GIỚI THIỆU<br />
Ngành du lịch trong những năm qua đã phát triển mạnh mẽ, đem lại lợi ích to lớn về kinh tế - xã hội, góp phần thúc<br />
đẩy các ngành sản xuất và dịch vụ phát triển. Với tiềm năng du lịch đa dạng và phong phú, Việt Nam là một nước có nhiều<br />
danh lam thắng cảnh, từ đó thu hút không ít khách du lịch cả trong và ngoài nước. Tuy nhiên, khách du lịch thường gặp phải<br />
rất nhiều khó khăn khi đi đến những thành phố lạ lẫm. Họ cần phải nhờ đến sự trợ giúp của hướng dẫn viên du lịch hoặc ít<br />
nhất là phải dựa vào sách hướng dẫn hay bản đồ để có được những thông tin mà họ cần tìm. Tuy nhiên những sự trợ giúp<br />
này cũng có những hạn chế nhất định như: Khách du lịch sẽ có thể khó tìm thấy những thông tin chi tiết về những địa điểm<br />
du lịch cần tham quan để có sự chuẩn bị cần thiết. Hoặc là, những hướng dẫn viên du lịch thường hướng dẫn cho cả đoàn<br />
khách, họ đi theo những tour du lịch đã được định sẵn và chỉ được tham quan những điểm du lịch chính, trong khi những<br />
điểm du lịch thú vị lại không được tham quan, mặc dù cách địa điểm chính rất gần.. Như vậy làm thế nào để hỗ trợ khách<br />
khi đi du lịch có thể dễ dàng tìm thấy những địa điểm phù hợp với họ, phù hợp với những điều kiện ngữ cảnh xung quanh<br />
(như thời tiết, tâm trạng, bạn đồng hành,...).<br />
Để đáp ứng những đòi hỏi trên, việc ứng dụng các công nghệ trong hệ thống gợi ý với các yếu tố ngữ cảnh có thể sẽ<br />
cho kết quả phù hợp. Hệ thống gợi ý (Recommender Systems - RS) là một dạng kỹ thuật trong lọc thông tin, RS đang được<br />
ứng dụng rộng rãi trong nhiều lĩnh vực (như thương mại điện tử, giải trí, giáo dục,...) nhằm dự đoán sở thích của người dùng<br />
nhờ vào thông tin cá nhân hoặc những phản hồi (đánh giá) của họ.<br />
Bài viết này đề xuất một giải pháp xây dựng hệ thống gợi ý dựa trên ngữ cảnh, sau đó ứng dụng giải pháp này cho<br />
bài toán gợi ý các điểm du lịch. Hệ thống có thể vận hành trên nền Web để hỗ trợ khách du lịch nhằm đem lại sự thoải mái<br />
và sự tiện dụng tối đa cho họ khi tham gia vào hệ thống.<br />
Để thực hiện, chúng tôi đã nghiên cứu các phương pháp hiện có và đề xuất phương pháp xây dựng hệ thống bằng<br />
cách kết hợp phương pháp 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<br />
(matrix factorization) và xử lý ngữ cảnh đầu ra (contextual post-filtering), đồng thời tìm hiểu và đề xuất hướng khắc phục<br />
vấn đề người dùng mới trong hệ thống. Sau khi xây dựng hệ thống hoàn chỉnh, chúng tôi thu thập ý kiến phản hồi từ người<br />
dùng thực, từ đó đánh giá hiệu quả của hệ thống đã xây dựng.<br />
II. HỆ THỐNG GỢI Ý (RECOMMENDER SYSTEMS - RS) VÀ CÁC NGHIÊN CỨU LIÊN QUAN<br />
Hệ thống gợi ý (RS) là hệ thống có khả năng dự đoán và cung cấp cho người dùng những thông tin, sản phẩm hay<br />
dịch vụ mà họ có thể thích/quan tâm. RS sẽ đưa ra các gợi ý dựa trên phản hồi trong quá khứ của người dùng (như bình<br />
luận, đánh giá,…) trên sản phẩm, bài hát, bộ phim, điểm du lịch,... Các hệ thống gợi ý nổi tiếng hiện có như: gợi ý sản<br />
phẩm của Amazon/Ebay, gợi ý phim/video clip của NetFlix/Youtube,…<br />
RS đã cho thấy được ý nghĩa to lớn của nó trong việc giúp người dùng giải quyết tình trạng quá tải thông tin. Có hai<br />
loại mô hình RS được nghiên cứu và ứng dụng trong thực tiễn đó là: hệ thống gợi ý 2 chiều (2D RS) và hệ thống gợi ý<br />
theo ngữ cảnh (đa chiều, thông thường là 3 chiều – 3D RS).<br />
A. Hệ thống gợi ý hai chiều<br />
Trong hệ thống gợi ý 2 chiều có hai khái niệm chính là người dùng (user) và mục tin (item) cần được gợi ý đến<br />
cho người dùng. Quá trình gợi ý dựa vào các phản hồi (feedbacks/rating) của người dùng về các đối tượng. Ví dụ, đánh giá<br />
của người dùng về các sản phẩm mà họ đã từng mua trên Amazon từ đến<br />
. Nhiệm vụ của RS là dự đoán các<br />
đánh giá của những người dùng đối với những item mà họ chưa thấy/mua và sau đó gợi ý cho họ.<br />
Một cách hình thức, gọi U là tập người dùng (users); I là tập mục tin (items). Tập I có thể rất lớn, từ hàng trăm<br />
ngàn (sách, CD,…) đến hàng triệu (như bài báo, bản tin,…). R là tập các giá trị đánh giá của người dùng trên các mục tin.<br />
<br />
486<br />
4<br />
<br />
MỘT TIẾP CẬ TRONG XÂY DỰNG HỆ TH<br />
ẬN<br />
Y<br />
HỐNG GỢI Ý TH<br />
HEO NGỮ CẢNH<br />
H<br />
<br />
Thông thường dữ liệu được biểu diễn tro một ma trận 2 chiều, t<br />
T<br />
g<br />
c<br />
ong<br />
trong đó mỗi dòng là một user, mỗi cột là một item v<br />
u<br />
và<br />
mỗi ô là đánh giá của user trên item tươn ứng). Với m người dùn u ∈ U, cần tìm mục i ∈ I (u chưa xem/<br />
m<br />
t<br />
ng<br />
mỗi<br />
ng<br />
/mua i) sao ch<br />
ho<br />
hàm ̂ đo độ p hợp (xếp hạng/đánh giá của người dù u đạt giá trị lớn nhất trê i:<br />
h<br />
phù<br />
h<br />
á)<br />
ùng<br />
ên<br />
̂: U × I → R<br />
<br />
(1<br />
1)<br />
<br />
Các kỹ thuật trong R thường đượ phân thành ba nhóm [1]:<br />
RS<br />
ợc<br />
Dựa t<br />
trên nội dung (content-base filtering): người dùng đư gợi ý nhữ item tương tự như các i<br />
ed<br />
n<br />
ược<br />
ững<br />
g<br />
item từng đượ<br />
ợc<br />
họ đá giá cao;<br />
ánh<br />
- Lọc c<br />
cộng tác (colla<br />
aborative filte<br />
ering): người d<br />
dùng được gợ ý các sản ph mà những người cùng sở thích với h<br />
ợi<br />
hẩm<br />
g<br />
họ<br />
đánh giá cao. Đây là kỹ thuật thư<br />
ường được sử dụng nhất;<br />
ử<br />
- Lai ghép (hybrid): kết hợp cả 2 p<br />
phương pháp trên.<br />
-<br />
<br />
Ý tưởn chính của kỹ thuật lọc cộ tác là dự đoán độ phù h của item i được đánh gi bởi người d<br />
ng<br />
k<br />
ộng<br />
đ<br />
hợp<br />
iá<br />
dùng u dựa trê<br />
ên<br />
tập N(ui,i) giữa người dùng ui và i, trong đó ui là ngườ có cùng sở t<br />
t<br />
ời<br />
thích với u. Ví dụ, để gợi ý một điểm du lịch cho ngườ<br />
ời<br />
dùng u, đầu tiê hệ thống lọ cộng tác tìm những ngườ dùng khác c cùng sở thích với u. Sau đó, những nơ được họ đán<br />
d<br />
ên<br />
ọc<br />
m<br />
ời<br />
có<br />
ơi<br />
nh<br />
giá cao sẽ đượ dùng để gợi ý cho u.<br />
g<br />
ợc<br />
i<br />
B. Hệ thống g ý theo ngữ cảnh (Contex<br />
B<br />
gợi<br />
ữ<br />
xt-aware RS)<br />
Thông thường trong RS hai chiều, người ta thườ biểu diễn dữ liệu vào m trận user-it do vậy ch quan tâm đế<br />
,<br />
ờng<br />
n<br />
ma<br />
tem<br />
hỉ<br />
ến<br />
người dùng v mục tin là chính chứ kh<br />
n<br />
và<br />
hông quan tâm đến các thô tin ngữ c<br />
m<br />
ông<br />
cảnh (context) bên ngoài có tác động đế<br />
)<br />
ến<br />
quyết định của người dùng hay không. “T<br />
q<br />
a<br />
Thông tin ngữ cảnh là nhữn thông tin c thể mô tả đư hoàn cản của một thự<br />
ữ<br />
ng<br />
có<br />
được<br />
nh<br />
ực<br />
thể” [3]. Ví dụ thời gian, nơi chốn, thời tiết, tâm trạng<br />
t<br />
ụ:<br />
n<br />
g,… là những thông tin ngữ cảnh, chúng có thể ảnh h<br />
g<br />
ữ<br />
g<br />
hưởng đến đán<br />
nh<br />
giá của người dùng đối với các item, từ đ dẫn đến sự ảnh hưởng củ những gợi ý trong RS.<br />
g<br />
đó<br />
ủa<br />
đa<br />
ng<br />
g<br />
h<br />
Với hệ thống gợi ý đ chiều, hàm ̂ được bổ sun thêm thông tin ngữ cảnh (context) và trở thành:<br />
̂: U × I × C → R<br />
<br />
(C là th<br />
hông tin ngữ c<br />
cảnh)<br />
<br />
trong hệ thống gợi ý du lịch user là khác du lịch, item là những đị điểm du lịch và ngữ cảnh có thể là thờ<br />
g<br />
h,<br />
ch<br />
m<br />
ịa<br />
h,<br />
ời<br />
ví dụ, t<br />
gian (buổi sán<br />
g<br />
ng/tối, cuối tu<br />
uần, mùa, lễ, t<br />
tết,…), bạn đ<br />
đồng hành (đi một mình, đi với bạn trai/<br />
i<br />
/bạn gái, đi vớ gia đình, tr<br />
ới<br />
rẻ<br />
nhỏ…). Những đánh giá ch một điểm d lịch bởi một người dùng có thể sẽ phụ thuộc vào nh<br />
n<br />
g<br />
ho<br />
du<br />
ụ<br />
hững ngữ cảnh đó. Ví dụ và<br />
h<br />
ào<br />
buổi tối mùa x<br />
b<br />
xuân đi cùng gia đình thì đ điểm ABC là hấp dẫn n<br />
địa<br />
C<br />
nhất, nhưng khi đi cùng bạ gái thì có th địa điểm đó<br />
k<br />
ạn<br />
hể<br />
đ<br />
không phù hợp nữa.<br />
k<br />
p<br />
Không gian gợi ý b chiều có th được mô tả trong khối lập phương như ở Hình 1 Ô tô đậm c biết chỉ s<br />
ba<br />
hể<br />
t<br />
n<br />
1.<br />
cho<br />
số<br />
R(101,7,1) = 6 có ý nghĩa là người dùng có mã số 101 đánh giá sản phẩm có mã số 7 trong điều kiện thời g có mã số 1<br />
R<br />
1<br />
n<br />
gian<br />
với giá trị đán giá là 6. Trong khối lập phương này không phải ô nào cũng có giá trị, nhữ ô không c giá trị là do<br />
v<br />
nh<br />
T<br />
p<br />
y,<br />
c<br />
ững<br />
có<br />
d<br />
người dùng ch đánh giá. Mục tiêu của hệ thống gợi ý là dự đoán giá trị tại nhữ ô còn thiế đó, từ đó đ ra lời gợi ý<br />
n<br />
hưa<br />
a<br />
i<br />
n<br />
ững<br />
ếu<br />
đưa<br />
đến với người dùng.<br />
đ<br />
<br />
Hình 1. Minh họa cho không gian gợi ý ba chiều (ng<br />
.<br />
guồn [3])<br />
<br />
ếp<br />
hệ<br />
hể<br />
t<br />
]:<br />
Các phương pháp tiế cận trong h thống gợi ý đa chiều có th được tóm tắt như sau [3]<br />
•<br />
<br />
Xử lý ngữ cảnh đầu và (Contextua pre-filtering Trong tiếp cận này, thô tin về ngữ cảnh được s dụng để lự<br />
ữ<br />
ào<br />
al<br />
g):<br />
p<br />
ông<br />
ữ<br />
sử<br />
ựa<br />
chọn hoặc xây dựng cá thiết lập có liên quan đế dữ liệu (xế hạng). Sau khi lọc thôn tin ngữ cản hệ thống đ<br />
c<br />
ác<br />
ó<br />
ến<br />
ếp<br />
u<br />
ng<br />
nh,<br />
đa<br />
chiều sẽ tr thành hệ th<br />
rở<br />
hống hai chiều và ta có thể sử dụng bất k phương phá gợi ý truyề thống nào t<br />
u<br />
kỳ<br />
áp<br />
ền<br />
trên các dữ liệ<br />
ệu<br />
đã chọn.<br />
<br />
Lư Chân Thiện, N<br />
L<br />
Nguyễn Thái Ngh<br />
he<br />
<br />
•<br />
•<br />
<br />
48<br />
87<br />
<br />
Xử lý ngữ cảnh đầu ra (Contextual post-filtering) Trong tiếp cận này, ngữ cảnh thông ti ban đầu bị bỏ qua và xế<br />
ữ<br />
a<br />
):<br />
in<br />
ếp<br />
hạng được dự đoán bằn cách sử dụ bất kỳ phư<br />
c<br />
ng<br />
ụng<br />
ương pháp gợi ý truyền thống trên toàn bộ dữ liệu. Sa đó, các gợi ý<br />
i<br />
b<br />
au<br />
được điều chỉnh cho mỗ người sử dụ bằng cách sử dụng các thông tin theo ngữ cảnh.<br />
u<br />
ỗi<br />
ụng<br />
h<br />
o<br />
Mô hình h ngữ cảnh (Contextual m<br />
hóa<br />
modeling): Ph<br />
hương pháp nà xây dựng một mô hình d đoán. Ví dụ mô hình nà<br />
ày<br />
m<br />
dự<br />
ụ,<br />
ày<br />
có thể đưa ra xác suất m người dù cụ thể chọ một sản ph<br />
a<br />
một<br />
ùng<br />
ọn<br />
hẩm cụ thể tro một bối cả cụ thể là bao nhiêu. Sa<br />
ong<br />
ảnh<br />
au<br />
đó xác suấ này được dù để điều ch<br />
ất<br />
ùng<br />
hỉnh và tìm ra gợi ý phù hợ<br />
a<br />
ợp.<br />
<br />
C. Các nghiên cứu liên qua<br />
C<br />
n<br />
an<br />
Hiện cũ đã có nhi nghiên cứ về xây dựn hệ thống gợ ý hỗ trợ du lịch, nhưng đa phần là sử dụng phươn<br />
ũng<br />
iều<br />
ứu<br />
ng<br />
ợi<br />
u<br />
ử<br />
ng<br />
pháp lọc theo nội dung (co<br />
p<br />
o<br />
ontent-based filtering) (Ge<br />
ediminas Adomavicius and Alexander T<br />
d<br />
Tuzhilin, 2008 (Francesc<br />
8),<br />
co<br />
Ricci, 2002), (<br />
R<br />
(Linaza et al., 2011). Ngoài ra, cũng đã c nhiều nghiê cứu xây dự hệ thống gợi ý du lịch trên nền thiết b<br />
i<br />
có<br />
ên<br />
ựng<br />
g<br />
bị<br />
di động, như tr<br />
d<br />
rình bày trong (José et al., 2<br />
g<br />
2012), (Damia<br />
anos et al., 2014), (Gavalas et al., 2013) (<br />
s<br />
(Manuel et al. 2012).<br />
.,<br />
Ở đây c<br />
chúng tôi sẽ đ xuất xây dự hệ thống gợi ý có tích hợp các phươ pháp như xử lý ngữ cản đầu vào, kế<br />
đề<br />
ựng<br />
ơng<br />
nh<br />
ết<br />
hợp với kỹ thu phân rã ma trận (matrix factorization (Koren et al 2009) (Ngu<br />
h<br />
uật<br />
a<br />
x<br />
n)<br />
l.,<br />
uyễn Thái Ngh 2013), và x lý ngữ cản<br />
he,<br />
xử<br />
nh<br />
đầu ra.<br />
đ<br />
III. PHƯƠ<br />
ƠNG PHÁP Đ XUẤT<br />
ĐỀ<br />
y<br />
ng<br />
ngữ<br />
úng<br />
t<br />
phương pháp như minh họa trong Hình 2<br />
a<br />
2:<br />
Để xây dựng hệ thốn gợi ý theo n cảnh, chú tôi đề xuất kết hợp các p<br />
Trước tiên xử lý thông tin n cảnh đầu vào, kế đến dùng kỹ thuật p<br />
T<br />
ngữ<br />
phân rã ma trậ để dự đoán kết quả, sau đó xử lý thôn<br />
ận<br />
n<br />
ng<br />
tin ngữ cảnh đ ra.<br />
t<br />
đầu<br />
<br />
Hình 2. Qu trình gợi ý th ngữ cảnh<br />
uy<br />
heo<br />
<br />
A. Xử lý thông tin ngữ cảnh đầu vào<br />
A<br />
g<br />
h<br />
Phương pháp này dù những điều kiện ngữ cảnh hiện tại được cung cấ trực tiếp từ người dùng (sở thích, tâm<br />
g<br />
ùng<br />
c<br />
ấp<br />
ừ<br />
g<br />
m<br />
trạng,…) hoặc từ môi trườn (thời gian, t<br />
t<br />
c<br />
ng<br />
thời tiết, vị trí hiện tại,…) s đó truy vấn tìm kiếm nh<br />
sau<br />
n,<br />
hững nguồn tà nguyên thíc<br />
ài<br />
ch<br />
hợp nhất để đư ra gợi ý. Dữ liệu đầu và là một tập b gồm: ngư dùng, đối t<br />
h<br />
ưa<br />
D<br />
ào<br />
bao<br />
ười<br />
tượng, ngữ cả và những đ<br />
ảnh<br />
đánh giá tươn<br />
ng<br />
ứng. Sau đó dù điều kiện ngữ cảnh hiệ tại của ngườ dùng cung cấp để lọc ra tập dữ liệu có liên quan đế ngữ cảnh đó<br />
ứ<br />
ùng<br />
n<br />
ện<br />
ời<br />
ó<br />
ến<br />
ó.<br />
Sau khi lọc ta có thể bỏ qu thông tin n cảnh, như vậy bài toán gợi ý đa chiề lúc này trở về dạng bài toán gợi ý ha<br />
S<br />
a<br />
ua<br />
ngữ<br />
ư<br />
n<br />
ều<br />
ở<br />
ai<br />
chiều như min họa trong H<br />
c<br />
nh<br />
Hình 3. Từ đâ ta có thể áp dụng bất kỳ phương pháp gợi ý hai ch nào để dự đoán các item<br />
ây,<br />
p<br />
ỳ<br />
p<br />
hiều<br />
ự<br />
m<br />
cho người dùn Lợi ích củ việc này là có thể tái sử dụng tất cả n<br />
c<br />
ng.<br />
ủa<br />
à<br />
ử<br />
những phương pháp gợi ý hai chiều sau khi chiều ng<br />
g<br />
u<br />
gữ<br />
cảnh được thu giảm.<br />
c<br />
u<br />
<br />
Hình 3. Sử dụ phương phá Pre-filtering<br />
ụng<br />
áp<br />
<br />
Ví dụ: Giả sử ta có tập dữ liệu ngữ cảnh gợi ý d lịch như Bả 1, gồm: n<br />
ữ<br />
du<br />
ảng<br />
người dùng (us<br />
ser), địa điểm du lịch (item<br />
m<br />
m),<br />
các thông tin n cảnh (thời gian, bạn đồ hành, thời tiết) và đánh giá của người dùng trên địa điểm du lịch tương ứng.<br />
c<br />
ngữ<br />
i<br />
ồng<br />
i<br />
a<br />
h<br />
Bả 1. Minh hoạ tập dữ liệu du lịch với ngữ cảnh<br />
ảng<br />
ạ<br />
u<br />
<br />
user<br />
1<br />
1<br />
1<br />
2<br />
2<br />
3<br />
3<br />
4<br />
<br />
item<br />
2<br />
5<br />
3<br />
2<br />
1<br />
5<br />
4<br />
3<br />
<br />
time<br />
Cuối tuần<br />
C<br />
Cuối tuần<br />
C<br />
Lễ - tết<br />
Ngà trong tuần<br />
ày<br />
Lễ - tết<br />
Lễ - tết<br />
Cuối tuần<br />
C<br />
Lễ - tết<br />
<br />
Bạn Đồng hành<br />
g<br />
Bạn b<br />
bè<br />
Một m<br />
mình<br />
Gia đì<br />
ình<br />
Bạn b<br />
bè<br />
Gia đì<br />
ình<br />
Gia đì<br />
ình<br />
Bạn b<br />
bè<br />
Gia đì<br />
ình<br />
<br />
Thời tiết<br />
Trời nắng<br />
Trời âm u<br />
Trời<br />
T trong xan<br />
nh<br />
Trời nắng<br />
Trời<br />
T trong xan<br />
nh<br />
Trời<br />
T trong xan<br />
nh<br />
Trời nắng<br />
Trời<br />
T trong xan<br />
nh<br />
<br />
ra<br />
ate<br />
4<br />
1<br />
5<br />
2<br />
3<br />
4<br />
3<br />
5<br />
<br />
488<br />
4<br />
<br />
MỘT TIẾP CẬ TRONG XÂY DỰNG HỆ TH<br />
ẬN<br />
Y<br />
HỐNG GỢI Ý TH<br />
HEO NGỮ CẢNH<br />
H<br />
<br />
Để gợi ý cho người dùng với các thông tin ngữ cảnh là: (dịp Lễ - tết, đi cù Gia đình, Trời trong xa<br />
d<br />
ữ<br />
ùng<br />
anh) ta sử dụn<br />
ng<br />
phương pháp x lý ngữ cảnh đầu vào để l ra (các dòn được tô đậ tập dữ liệu như trong Bảng 2.<br />
p<br />
xử<br />
h<br />
lọc<br />
ng<br />
ậm)<br />
u<br />
Bảng 2. Tập dữ liệu sau khi sử dụng Pre-filteri<br />
l<br />
ing<br />
<br />
user<br />
<br />
item<br />
<br />
rate<br />
e<br />
<br />
1<br />
<br />
3<br />
<br />
5<br />
<br />
2<br />
<br />
1<br />
<br />
3<br />
<br />
3<br />
<br />
5<br />
<br />
4<br />
<br />
4<br />
<br />
3<br />
<br />
5<br />
<br />
Như vậ sau khi xử lý xong ta sẽ được một tập dữ liệu hai ch<br />
ậy<br />
hiều. Lúc này, ta có thể áp dụng các thuậ toán trong h<br />
ật<br />
hệ<br />
thống gợi ý tru<br />
t<br />
uyền thống để dự đoán xếp hạng và gợi ý cho người dùng. Trong bài viết này, chúng tôi sử d<br />
ể<br />
p<br />
b<br />
c<br />
dụng một tron<br />
ng<br />
những phương pháp lọc cộn tác dựa trên mô hình đó là kỹ thuật p<br />
n<br />
g<br />
ng<br />
ó<br />
phân rã ma trậ (Matrix Fac<br />
ận<br />
ctorization - M trên tập d<br />
MF)<br />
dữ<br />
liệu đã được x lý ngữ cảnh đầu vào. Kỹ thuật MF có độ tin cậy ca hơn so với các kỹ thuật khác hiện nay (Koren et al<br />
xử<br />
h<br />
ỹ<br />
ó<br />
ao<br />
y<br />
l.,<br />
2009).<br />
2<br />
B. Kỹ thuật ph rã ma trậ (Matrix Fac<br />
B<br />
hân<br />
ận<br />
ctorization - M<br />
MF)<br />
Kỹ thuậ phân rã ma trận là việc ch một ma trậ lớn X thành hai ma trận có kích thước nhỏ hơn W v H, sao cho ta<br />
ật<br />
hia<br />
ận<br />
h<br />
c<br />
và<br />
t<br />
có thể xây dựn lại X từ hai ma trận nhỏ h này càng chính xác càng tốt, nghĩa là X ~ WHT, như minh họa tro Hình 4.<br />
c<br />
ng<br />
hơn<br />
c<br />
g<br />
ư<br />
ong<br />
<br />
Hình 4. Minh họa kỹ thuật p<br />
h<br />
phân rã ma trận<br />
K<br />
Trong đ W∈ℜ|U|×K là một ma tr mà mỗi dò u là một v<br />
đó,<br />
rận<br />
òng<br />
véctơ bao gồm K nhân tố ti<br />
m<br />
iềm ẩn (latent factors) mô tả<br />
t<br />
t<br />
|I|×K<br />
người dùng u; và H∈ℜ<br />
n<br />
;<br />
ận<br />
éctơ bao gồm K nhân tố tiề ẩn mô tả c item i. Gọ<br />
m<br />
ềm<br />
cho<br />
ọi<br />
là một ma trậ mà mỗi dòng i là một vé<br />
wuk và hik là cá phần tử tươ ứng của ha ma trận W và H, khi đó x hạng của người dùng u trên mục tin i được dự đoá<br />
ác<br />
ơng<br />
ai<br />
xếp<br />
án<br />
bởi công thức:<br />
b<br />
:<br />
<br />
K<br />
<br />
ˆ<br />
rui = ∑ wuk hik = w.hT<br />
<br />
(1<br />
1)<br />
<br />
k =1<br />
<br />
Như vậ vấn đề then chốt của kỹ thuật MF là làm thế nào để tìm được giá trị của hai th số W và H Hai tham s<br />
ậy,<br />
n<br />
ể<br />
á<br />
ham<br />
H.<br />
số<br />
này có được bằ cách tối ư hóa hàm mụ tiêu (object function). Trong RS, hà mục tiêu củ MF hay đượ sử dụng nh<br />
n<br />
ằng<br />
ưu<br />
ục<br />
tive<br />
àm<br />
ủa<br />
ợc<br />
hư<br />
sau:<br />
s<br />
<br />
O MF =<br />
<br />
∑<br />
<br />
u ,i∈D train<br />
<br />
ˆ<br />
( rui − rui ) 2 =<br />
<br />
K<br />
⎛<br />
⎞<br />
∑train ⎜ rui − ∑ wuk hik ⎟<br />
t<br />
k =1<br />
⎝<br />
⎠<br />
u ,i∈D<br />
<br />
2<br />
<br />
(2<br />
2)<br />
<br />
Một tro những kỹ thuật có thể d<br />
ong<br />
dùng để tối ưu hóa hàm mục tiêu là dùng S<br />
c<br />
SGD (Stochas Gradient D<br />
stic<br />
Descent). Để tố<br />
ối<br />
ưu hóa hàm m tiêu (2), tr<br />
ư<br />
mục<br />
rước tiên ta kh tạo các gi trị ngẫu nhi cho W và H, sau đó từ bước cập n<br />
hởi<br />
iá<br />
iên<br />
à<br />
ừng<br />
nhật giá trị củ<br />
ủa<br />
chúng cho đến khi hàm mục tiêu hội tụ v giá trị nhỏ n (converge<br />
c<br />
n<br />
c<br />
về<br />
nhất<br />
ence). Để làm được điều đó ta cần phải x định là nê<br />
m<br />
ó,<br />
xác<br />
ên<br />
tăng hay nên g<br />
t<br />
giảm các giá trị của W và H qua mỗi lần cập nhật, do vậ cần phải tìm đạo hàm từn phần của ch<br />
ị<br />
ậy<br />
m<br />
ng<br />
húng:<br />
<br />
∂<br />
ˆ<br />
O MF = −2(ruii − rui )hik<br />
∂wuk<br />
<br />
3)<br />
(3<br />
<br />
∂ MF<br />
ˆ<br />
O = −2(rui − rui )wuk<br />
∂hik<br />
<br />
(4<br />
4)<br />
<br />
Lư Chân Thiện, N<br />
L<br />
Nguyễn Thái Ngh<br />
he<br />
<br />
48<br />
89<br />
<br />
Sau khi tìm đạo hàm, các phần tử c W và H sẽ được cập nhậ ngược hướn với giá trị củ đạo hàm, qu công thức:<br />
i<br />
,<br />
của<br />
ẽ<br />
ật<br />
ng<br />
ủa<br />
ua<br />
n<br />
old<br />
wukew = wuk − β ⋅<br />
k<br />
<br />
ne<br />
old<br />
hikew = hik − β ⋅<br />
<br />
∂<br />
old<br />
ˆ<br />
O MF = wuk + 2β ⋅ (rui − rui )hik<br />
∂wuk<br />
<br />
∂ MF<br />
old<br />
ˆ<br />
O = hik + 2β ⋅ (rui − rui ) wuk<br />
∂hik<br />
<br />
5)<br />
(5<br />
<br />
(6<br />
6)<br />
<br />
Trong đ β là tốc độ học (learning rate, 0 < β