ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
PHẠM THỊ MY
NGHIÊN CỨU HỆ THỐNG KHUYẾN NGHỊ
NGƯỜI DÙNG DỰA VÀO LỌC CỘNG TÁC
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
HÀ NỘI - 2014
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
PHẠM THỊ MY
NGHIÊN CỨU HỆ THỐNG KHUYẾN NGHỊ
NGƯỜI DÙNG DỰA VÀO LỌC CỘNG TÁC
Ngành: Côngnghệthôngtin
Chuyênngành:Kỹthuậtphầnmềm
Mãsố: 60480103
LUẬNVĂNTHẠCSĨCÔNGNGHỆTHÔNGTIN
NGƯỜI HƯỚNG DẪN KHOA HỌC: TS. NGUYỄN VĂN VINH
HÀ NỘI – 2014
1
Lời cam đoan
Tôixincamđoanluậnvănnàylà
côngtrìnhnghiêncứuhoàntoàncủabảnthân.
Trongtoànbộnộidungcủaluậnvăn,nhữngđiềuđượctrìnhbàyhoặclàcủacánhântôi
hoặclàđượctổnghợptừnhiềunguồntàiliệu.Tấtcảcáctàiliệuthamkhảođềucóxuất
xứrõràngvàđượctríchdẫnhợppháp.
Tôixinchịuhoàntoàntráchnhiệmvàchịumọihìnhthứckỷluậttheoquyđịnhcho
lờicamđoancủamình.
NamĐịnh,ngày28tháng09năm2014
Ngườicamđoan
Phạm Thị My
2
Lời cảm ơn
Đầutiên,tôixinchânthànhcảmơnthầygiáoNguyễnVănVinhlàcánbộhướng
dẫnkhoahọc,thầyđãtậntìnhgiúpđỡvàhướngdẫntôivềcảchuyênmôn,nghiêncứu
vàđịnhhướngpháttriểntrongsuốtquátrìnhlàmluậnvăn.
Đểhoànthànhluậnvăntốtnghiệplàcảmộtquátrìnhđầykhókhănvàthửthách
tronghọctậpvànghiêncứutạitrườngĐạihọcCôngNghệ.Vàđểcóđượcnhữngthành
quảnhưngàyhômnay,ngoàinhữngnỗlựccủabảnthân,khôngthểkhôngnhắctớilà
sựđộngviên,giúpđỡcủacácThầy,Côgiáo,bạnbè,đồngnghiệpvàngườithântrong
giađình.
TôicũngxingửilờicámơntớicácThầy,CôgiáocủaKhoaCôngNghệThông
Tin,vìđãtậntìnhgiảngdạynhữngkiếnthứcbổích,hiệnđạivềlĩnhvựcKỹthuậtphần
mềmtôihọctậpvàtạomọiđiềukiệnchotôihọctậpnghiêncứuvàhoànthànhluậnvăn
này.
Vớigiađình,tôixinbàytỏlòngbiếtơnsâusắcvìgiađìnhđãluônởbênvàủng
hộtôitrênconđườnghọctậpvànghiêncứu.
Cuốicùng,tôicũngxingửilờicàmơnđếnđồngnghiệpvàbạnbètôilànhững
ngườiđãđộngviên,tạomọiđiềukiệnchotôilaođộngvàhọctậptrongsuốtthờigian
qua.
NamĐịnh,ngày28tháng09năm2014
Học viên
Phạm Thị My
3
Bảng các ký hiệu và chữ viết tắt
STT
Ký hiệu Diễn giải Tiếng Việt
1 U User Ngườidùng
2 I Item Sảnphẩm
3 R Rating Đánhgiá
4 IR InformationRetrieval Thuthậpthôngtin
5 IF InformationFiltering Lọcthôngtin
6 RS RecommenderSystems Hệthốngkhuyếnnghị
7 CF CollaborativeFiltering Lọccộngtác
8 KNN K-nearestneighbor K-hàngxómgầnnhất
9 RMSE RootMeanSquareError Hàmsaisốbìnhphươngtrungbình
10 MAE Meanabsoluteerror Saisốtuyệtđốitrungbình
11 MF MatrixFactorization Matrậnthừasố
12 GD Gradientdescent Giảmđộlệch
13 SGD Stochasticgradientdescent Giảmđộlệchngẫunhiên
4
Danh mục bảng và biểu đồ
Bảng2.1:Vídụ1vềngườidùngđánhgiásảnphẩm 17
Bảng2.2:Vídụ2vềngườidùngđánhgiásảnphẩm 20
Bảng2.3:Vídụ3vềngườidùngđánhgiásảnphẩm 23
Bảng2.4:Matrậnđánhgiádàyđặc 32
Bảng2.5:Matrậnđánhgiáthưathớt 32
Bảng2.6:SosánhgiữaGDvàSGD 43
Bảng3.1:ĐịnhdạngcácbộdữliệuhuấnluyệnvàkiểmtracủaMovielens 48
Bảng3.2:GiátrịRMSEvàRMSE
tb
thựcnghiệmtrêntậpdữliệuMovielens 50
Danh mục hình ảnh
Hình1.1:Môhìnhhệthốnglọcthôngtin 9
Hình1.2:Mộtvídụvềmôhìnhkhuyếnnghịsảnphẩm 10
Hình1.3:Môhìnhkỹthuậtlọcdựatheonộidung 12
Hình2.1:MôhìnhđồthịtínhkhoảngcáchManhattan 18
Hình2.2:MôhìnhđồthịtínhkhoảngcáchEuclidean 19
Hình2.3:MôhìnhđồthịtínhhệsốtươngquanPearson 22
Hình2.4:MôhìnhđồthịtínhhệsốtươngtựCosine 24
Hình2.5:Phươngpháptiếpcậnvùnglâncận 30
Hình2.6:Địnhhướngngườidùngđốivớiphimảnh 31
Hình2.7:Phươngphápmatrậnthừasố 35
Hình2.8:MôhìnhphươngphápGradientdescent 36
Hình2.9:ĐồthịbiểuthịthuậttoánSGDthửnghiệmtrêntậpdữliệucủaNetflix 42
5
MỤC LỤC
Lời cam đoan 1
Lời cảm ơn 2
Bảng các ký hiệu và chữ viết tắt 3
Danh mục bảng và biểu đồ 4
Danh mục hình ảnh 4
Mở đầu 7
CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN VỀHỆ THỐNG KHUYẾN NGHỊ 9
1.1. Khái niệm chung: 9
1.1.1. Lọc thông tin (Information Filtering _IF) 9
1.1.2. Hệ thống khuyến nghị (Recommender System) 10
1.1.3. Giới thiệu bài toán về hệ thống khuyến nghị: 11
1.2. Các kỹ thuật lọc cho hệ thống khuyến nghị
[4]
11
1.2.1. Kỹ thuật lọc dựa theo nội dung: 12
1.2.2. Kỹ thuật lọc cộng tác (Collaborative Filtering) 12
1.2.3, Kỹ thuật Hybrid 13
1.3. Các phương pháp lọc cộng tác 13
1.3.1, Lọc cộng tác dựa vào bộ nhớ 14
1.3.2, Lọc cộng tác dựa vào mô hình (Model-Based Collaborative Filtering) 14
CHƯƠNG 2: KỸ THUẬT LỌC CỘNG TÁC 16
2.1. Giới thiệu bài toán lọc cộng tác 16
2.2. Các phương pháp tính độ tương tự giữa các người dùng 16
2.2.1. Khoảng cách Manhattan 16
2.2.2. Khoảng cách Euclidean. 18
2.2.3. Hệ số tương quan Pearson. 20
2.2.4. Hệ số tương tự Cosine. 22
2.3. Phương pháp cải tiến K-hàng xóm gần nhất (k-nearest neighbor) 24
2.3.1 Thuật toán KNN dựa trên người dùng. 25
2.3.2 Thuật toán KNN dựa trên sản phẩm: 27
2.4. Mô hình nhân tố ẩn. 29
2.4.1 Phương pháp tiếp cận vùng lân cận (the neighborhood approach) 29
2.4.2 Mô hình nhân tố ẩn (latent factor models)
[3]
30
2.4.2.1. Cơ sở lý thuyết 30
2.4.2.2. Bài toán: 31
2.4.3. Phương pháp ma trận thừa số (Matrix Factorization Methods)
[6]
32
2.4.4. Thuật toán gradient descent ngẫu nhiên. 35
2.4.4.1. Thuật toán Gradient descent (GD) 35
2.4.4.2.Thuật toán gradient descent ngẫu nhiên 37
2.4.4.3. Thuật toán SGD dùng cho phân tích ma trận (ma trận thừa số) 41
6
2.4.4.4. So sánh giữa thuật toán GD và SGD 43
2.5. Tiêu chuẩn đánh giá 44
2.5.1.Mean absolute error (MAE) 44
2.5.2. Root mean square error (RMSE) 44
CHƯƠNG 3: THỰC NGHIỆM VÀ ĐÁNH GIÁVỚI DỮ LIỆU PHIM ẢNH 46
3.1. Dữ liệu thực nghiệm. 46
3.1.1. Tập dữ liệu thực nghiệm. 46
3.1.2. Thông tin chi tiết về định dạng của bộ dữ liệu của Movielens
[15]
47
3.2. Phương pháp thực nghiệm 49
3.2.1. Môi trường thực nghiệm 49
3.2.2. Phương pháp tiến hành thực nghiệm 49
3.3. So sánh và đánh giá kết quả thực nghiệm 50
3.3.1. Kết quả thực nghiệm 50
3.3.2. So sánh và đánh giá 52
3.3.2.1. Các phương pháp cơ sở 52
3.3.2.2. Thuật toán SGD 52
KẾT LUẬN 54
TÀI LIỆU THAM KHẢO 55
7
Mở đầu
Tươngtáccánhânlàhoạtđộng/sựviệcdiễnratrêntoànthếgiới,thậmchícótừ
hàngtrămnămtrướcchođếnngàynay.Nhữngnăm1990,tươngtáccánhânítnhiều
cũngđãcómặt.Theothườnglệ,khiđivàomộtcửahàngsáchquenthuộc,chủhàngsẽ
chàođónnhư:“Cóbáomớingàyhômnayđấy!”,chủhàngbiếtrằngkháchhàngcủa
mìnhmuốn điềugìkhiđếnđây.Hoặcchủhàngcóthểgiới thiệucho mộtvàiquyển
sáchmàkháchhàngcủamìnhcóthểquantâmdựatrênnhữngsởthíchcủakhách.Hoặc
khiđivàoquánnướcquen,ngườiphụcvụsẽhỏi:“Nhưthườnglệchứ?”
Khoảng30nămvềtrước,khibạnmuốnmuachiếctiviởcửahàngđiệnmáythì
cóvàisựlựachọnphổbiếnchobạn:PanasonicvàSamsunghayLG.Nhữngnămsau
đó,bạncónhiềusựlựachọnphongphúhơn,bạnchọnhãngSamsungthìtrongđócòn
nhiềulựachọnnhư:LEDhayLCD,baonhiêuinch?…
Hàngngàycóhàngtrămbàihátđượcthuâm,hàngtrămđầusáchđượcxuấtbản
trênthếgiới,trongkhiđócáccửahàngchỉcógiớihạncácđầusáchhoặccácbàihát,
cácbộphim…Từđó,cácdịchvụtrựctuyếnđượcrađờivàđápứngnhucầungàycàng
caocủangườidùng.
Chođếnngàynay,sựtươngtáccánhânvẫnluôntồntại,thậmchíbạncóhàng
triệusự lựachọn.Mỗigiâycácphương tiệntruyềnthôngđược thêmvàomạng.Mỗi
phút100tậptinmớicósẵntrênusenet.24/24giờvideođượctảilênYouTube.Mỗigiờ
180cuốnsáchmớiđượcxuấtbản.Mỗingàycàngcóthêmnhiềulựachọncácsảnphẩm
đểmuatrongthếgiớithực.
Bạnmuốnmuamộtsốbàinhạc?iTunescókhoảng11triệubàihátđểlựachọn
vàhọđãbánđược16tỷbàihátvàotháng10năm2011.Nếubạnmuốnnhiềuhơnsự
lựachọnthìcóthểđiđếnSpotifyvới15triệubàihát.Bạnmuốnmuamộtcuốnsách,
Amazoncungcấphơn2triệucuốnsáchđểbạnlựachọn.
Trongcuộcsốngcủachúngtangàynay,vớisựpháttriểnkhôngngừngcủacông
nghệthôngtin,nguồnthôngtinquáphongphúlàmchobạnkhôngcóđủthờigianđể
xemxétlựachọntấtcảcáccuốnsách,phim,tạpchíhaybàihát…bạnkhôngbiếtmình
nênxemphimgì,đọccuốnsáchnàophùhợpvớisởthích,nhucầucủabảnthân.
Vấnđềcấpthiếtđặtralàcầnmộthệthốnghỗtrợngườidùngchọnlựanhững
sản phẩm phù hợp với nhu cầu của người dùng, từ đó hệ thống khuyến nghị được
8
nghiêncứuvàpháttriểnkhôngngừngnhằmđạthiệuquảnhấttrongviệctươngtácvới
ngườidùng.Hệthốngkhuyếnnghị(RecommenderSystems-RS)làgiảipháphiệuquả
nhấtgiảiquyếtvấnđềtrên.
Chính vì vậy trong luận văn này, chúng tôi xin được trình bày về hệ thống
khuyếnnghị.Trongphạmviluậnvăn,chúngtôitậptrungnghiêncứuvềkỹthuậtlọc
cộngtácvàphântíchcácphươngphápcơbảnđểtìmmộtngườihoặcmộtnhómngười
gầnnhấtvớingườidùnghiệntạicầnkhuyếnnghị.Đểgiảmthiểusaisốtrongdựđoán
chúngtôitrìnhbàynghiêncứucủamìnhvềphươngphápmatrậnthừasốcụthểhơnlà
thuậttoángradientdescentngẫunhiên.Nộidungchínhcủaluậnvănnàyđượcchialàm
3chương:
Chương 1:Giớithiệutổngquanvềhệthốngkhuyếnnghị
Chương 2:Kỹthuậtlọccộngtác
Chương 3:Thựcnghiệmvàđánhgiávớidữliệuphimảnh
Trongchương1,chúngtôiđitìmhiểuchungvềhệthốngkhuyếnnghị,cáckỹ
thuậtlọcthôngtintronghệthốngkhuyếnnghị:lọcdựavàonộidung,lọccộngtácvàkỹ
thuậtkếthợpHybrid,cácphươngpháplọccộngtácnhư:Lọcdựavàobộnhớvàlọc
dựavàomôhình.Trongchương2,chúngtôitrìnhbàychitiếthơnvềkỹthuậtlọccộng
tác,cácphươngpháptínhđộtươngtựgiữacácngườidùng,phươngphápmatrậnthừa
số,thuậttoángradientdescentngẫunhiênvàcáctiêuchuẩnđánhgiádựđoán.Chương
3,chúngtôitiếnhànhthựcnghiệmtrênbộdữliệucủaMovielensvới100.000đánhgiá,
sauđódựavàokếtquảthựcnghiệmđểđánhgiá,phântíchvàsosánhtínhhiệuquảcủa
từngphươngphápvàthuậttoánđãnêutrongchương2.
9
CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN VỀ
HỆ THỐNG KHUYẾN NGHỊ
1.1. Khái niệm chung:
1.1.1. Lọc thông tin (Information Filtering _IF)
Hình 1.1: Mô hình hệ thống lọc thông tin
Giảmquátảithôngtinlàmụctiêuchínhcủalọcthôngtin(Information Filtering
_IF)vànóđãđượccôngnhậnlàmộttrongnhữngưutiêntrongviệcpháttriểnhệthống
thôngtindựatrênwebhiệnnay.Cungcấpcáctàiliệucóliênquandựatrênsởthích
kháchhàng.Côngnghệkhuyếnnghịđượctrìnhbàynhưlàmộtmôhìnhmớicủasựtìm
kiếmnơimàcácmặthàngcóliênquantìmrangườisửdụngthayvìngườisửdụngtìm
kiếmchúng.Xuhướngmớitrongcôngnghệthôngtinnhưmạngxãhộivàthiếtbịdi
10
động đang thực hiện nghiên cứu cá nhân được ưu tiên hàng đầu. Nghiên cứu khách
hàngvàtiếpthịcómộttruyềnthốnglâuđời.Vớinhữngtiếnbộtrongcôngnghệthông
tin, nó đã phát triển và ngày càng tinh vi mang lại hiệu quả cho các hệ thống trực
tuyến.Lọccộngtác,hệthốngkhuyếnnghị,hệ thốngtrợgiúpcánhân,lọcxãhội,hệ
thốngkhaithácdữliệuxãhội,vàcáchệthốngthíchnghingườidùng cóthểđượcgọi
chunglàhệthốnglọcthôngtin(IF).Ngàynay,hệthốnglọcthôngtinởkhắpmọinơi,
trongmọingànhcôngnghiệpvàdịchvụ,từtiếpthịchosứckhỏe,dulịch,giáodục,giải
trí,
Vậy,hệthốnglọcthôngtinlàmộthệthốngloạibỏthôngtindưthừahoặckhông
mongmuốntừmộtluồngthôngtinsửdụngtựđộngtrênmáyvitính
Mụctiêuchínhcủanólàquảnlýcủatìnhtrạngquátảithôngtinvàtăngtỷlệngữ
nghĩacủatínhiệutrênnhiễu.Đểthựchiệncáchồsơnàyđượcsosánhvớimộtsốđặc
tínhthamkhảo.
1.1.2. Hệ thống khuyến nghị (Recommender System)
Hệthốngkhuyếnnghị(Recommender System)
[7]
làmộtloạihìnhcụthểcủakỹ
thuậtlọcthôngtin(nhưphimảnh,âmnhạc,trangweb,tintức)màngườidùngquan
tâm.Nórấtquantrọngchosựthànhcôngcủathươngmạiđiệntửvàngànhcôngnghiệp
CNTThiệnnay,vàdầndầntrởnênphổcậptrongcácứngdụngkhácnhau(vídụnhư
dựánNetflix,Googletintức,Amazon).Làmộthệthốngkhuyếnnghịchuyênnghiệp
xâydựngdựatrênhồsơquákhứcủangườidùng,hệthốngsosánhhồsơcủangười
dùngvớimộtsốđặcđiểmtàiliệuthamkhảo,vàtìmcáchđểdựđoán“đánhgiá”mà
ngườidùngsẽcungcấpchomộtmụcmàngườidùngđóvẫnchưađánhgiá.Tronghầu
hếtcáctrườnghợp,hệthốngkhuyếnnghịtươngứngvớimộtvấnđềkhaithácdữliệu
quymôlớn.Làhệthốngcókhảnăngtựđộngphântích,phânloại,lựachọnvàcungcấp
chongườidùngnhữngthôngtin,hànghóahaydịchvụmàhọquantâm.
Hình 1.2: Một ví dụ về mô hình khuyến nghị sản phẩm
11
1.1.3. Giới thiệu bài toán về hệ thống khuyến nghị:
Cho U là tập tất cả người dùng; P là tập tất cả các sản phẩm(sách, bài hát,
phim…)cóthểtưvấn.TậpPcóthểrấtlớn,từhàngtrămngànđếnhàngtriệusảnphẩm.
TậpUtrongmộtsốtrườnghợpcũngcóthểlêntớihàngtriệungườidùng.Hàmr(u,p)là
nhữngđánhgiámứcđộphùhợp(xếphạng)củasảnphẩmpvớingườidùngu,r:UxP
R.Vớimỗingườidùngu
∈
Ucầntìms
∈
ảnphẩmp’ Psaochohàmr(u,p’)đạtgiátrị
lớnnh
∀ ∈
ất: u U,p’=argmax
p
∈
P
r(u,p)
Tronghệthốngkhuyếnnghị,nhữngđánhgiáđượcthểhiệnbằngcáchìnhthức
thôngthườngnhư:thíchvàkhôngthích(hìnhbàntayvớingóntrỏ:youtube.com),số
sao(thườngtừ1-5sao)…
1.2. Các kỹ thuật lọc cho hệ thống khuyến nghị
[4]
Trongviệclựachọnsảnphẩmhoặcdịchvụ(gọichunglàItem),ngườidùngthườnggặp
phảinhữngkhókhănlà:
LượngItem:Mỗi ngày,cóhàngtriệuthông tinđượcđăngtảilêninternetmỗi
ngày,ngườidùngkhôngbiếtmìnhnênvàkhôngnênsửdụngItemnào?
ThôngtinvềItem:dolượngItemlàvôcùnglớn,nênUserkhôngthểtìmhiểu
đượctấtcảcácItemvềnộidung,chứcnăngcũngnhưItemcóphùhợpvớinhu
cầucủauserkhông?
Gợiýđặtrađểgiảiquyếtcácvấnđềkhókhăntrênlà:
Khaithácnhữngkhíacạnhcạnhliênquanđếnnộidungthôngtinsảnphẩmhoặc
ngườidùngđãtừngsửdụnghaytruynhậptrongquákhứđểkhuyếnnghị.Đâylà
kỹthuậtlọcdựatheonộidung(Content-BasedFiltering)
Lựa chọn dựa trên ý kiến hay lời khuyên của những ngườidùng khác về các
Item.Hệthốngkhuyếnnghịápdụngcácthuậttoántậndụngcácgợiýđượccung
cấpbởimộtcộng đồngngười dùngtươngtựsauđócung cấpcho ngườidùng
đanghoạtđộng(ngườiđangtìmkiếmcácđềxuất).Phươngphápnàyđượcgọilà
lọccộngtác(CollaborativeFiltering_CF)
Sovớilọctheonộidung,lọccộngtáccómộtsốưuđiểmnhưđơngiảntrongcàiđặtvà
cóthểlọcđượcmọiloạithôngtinhayhànghoámàkhôngcầnphảibiểudiễndướidạng
vănbản.
12
1.2.1. Kỹ thuật lọc dựa theo nội dung:
Vớikỹthuậtkhuyếnnghịdựatrênnộidung
[10]
,mứcđộphùhợpr(u,p)củasảnphẩm
phẩmpvớingườidùnguđượcđánhgiádựatrênmứcđộphùhợpr(u,p
j
),trongđóp
j
Pvàtươngtựnhưp.Vídụ,đểgợiýmộtbộphimchongườidùngu,hệthốngtưvấnsẽ
tìmcácđặcđiểmcủa nhữngbộ phimtừng đượcuđánh giá cao(nhưdiễn viên, đạo
diễn…);sauđóchỉnhữngbộphimtươngđồngvớisởthíchcủacmớiđượcgiớithiệu.
Hướngtiếpcậndựatrênnộidungbắtnguồntừnhữngnghiêncứuvềthuthậpthông
tin(IR-informationretrieval)vàlọcthôngtin(IF-informationfiltering).Dođó,rất
nhiềuhệthốngdựatrênnộidunghiệnnaytậptrungvàotưvấncácđốitượngchứadữ
liệutextnhưvănbản,tintức,website…NhữngtiếnbộsovớihướngtiếpcậncũcủaIR
làdoviệcsửdụnghồsơvềngườidùng(chứathôngtinvềsởthích,nhucầu…).Hồsơ
nàyđượcxâydựngdựatrênnhữngthôngtinđượcngườidùngcungcấptrựctiếp(khi
trảlờikhảosát)hoặcgiántiếp(dokhaipháthôngtintừcácgiaodịchcủangườidùng).
Hình 1.3: Mô hình kỹ thuật lọc dựa theo nội dung
1.2.2. Kỹ thuật lọc cộng tác
(
Collaborative Filtering
)
Kỹthuậtlọccộngtác
(
CollaborativeFiltering
)
dựatrênnguyêntắchoạtđộnglà
cáckhuyếnnghịdựatrênảnhhưởngcủanhiềungườikhácnhau,cáccộngtáccủanhiều
ngườinàysẽtrở thành khuyến nghị. Khácsovớikỹ thuậtlọc cộng tác dựa trên nội
dụng,hệthốngcộngtácdựđoánmứcđộphùhợpr(u,p)củamộtsảnphẩmpvớingười
dùngudựatrênmứcđộphùhợpr(u
i
,p)giữangườidùngu
i
vàp,trongđóu
i
làngườicó
cùngsởthíchvớiu.Vídụ,đểgợiýmộtbộphimchongườidùngu,đầutiênhệthống
13
cộngtáctìmnhữngngườidùngkháccócùngsởthíchphimảnhvớiu.Sauđó,nhữngbộ
phimđượchọđánhgiácaosẽđượcdùngđểtưvấnchou.Chitiếtcụthểvềkỹthuậtnày
sẽđượctôitrìnhbàytrongchương2.
1.2.3, Kỹ thuật Hybrid
KỹthuậtHybrid
[9]
làphươngphápkếthợpcủacảhaikỹthuậttrên.Mộtsốứng
dụngkếthợpcảhaikỹthuậtlọcchohệthốngkhuyếnnghịdựatheonộidungvàlọc
cộngtác.Mỗikỹthuậtđềucónhữngưuđiểmvànhượcđiểmriêng,dođókhikếthợp
cóthểkhắcphụcnhữnghạnchếcủatừngkỹthuật.Nócảithiệnhiệusuấtdựđoán,quan
trọng hơn, từ đó vượt qua những vấn đề lọc thông tin như thưa thớt và mất thông
tin.Tuy nhiên, sự kếthợp của hai kỹ thuật để thực hiện sẽ gia tăng phức tạp và giá
thànhcao.ThôngthườnghầuhếtcáchệthốngkhuyếnnghịthươngmạilàHybrid,ví
dụ:hệthốngkhuyếnnghịtintứccủaGoogle
Thôngthườngcó4cáchđểkếthợpnhưsau:
Càiđặthaiphươngphápriêngrẽrồikếthợpdựđoáncủachúngvớinhau:Cóhai
kịchbảnchotrườnghợpnàylà:
+ Cách1:Kếthợpkếtquảcủacảhaiphươngphápthànhmộtkếtquảchung
duynhất.
+ Cách2:Tạimỗithờiđiểmchọnmộtphươngphápchokếtquảtốthơn(vídụ:
HệthốngDailylearner)
Tíchhợpcácđặctrưngcủaphươngphápdựatrênnộidungvàohệthốngcộng
tác.
Tích hợp các đặc trưng của phương pháp cộng tácvào hệ thống dựa trên nội
dung.
Xâydựngmôhìnhhợpnhất,baogồmcácđặctrưngcủacảhaiphươngpháp.
1.3. Các phương pháp lọc cộng tác
Vớisốlượngquálớncácsảnphẩmcótrêninternetthìthôngthườngmộtngười
dùngchỉđánhgiáhữuhạnmsảnphẩm(vớimsảnphẩmđượcđánhgiánhỏhơnrất
nhiềusovớitậpMsảnphẩm).Khókhănđặtralàdựđoánđánhgiámộtngườidùngcho
tậpMsảnphẩmlàđiềurấtkhókhăn,hơnnữatậpMsảnphẩmluônluônthayđổivà
theothờigianthìngàycàngtănglên.NgoàirađểdựđoánđánhgiácủaNngườidùng
với M sản phẩm sẽ gây ra tốc độ xử lý chậm => mất nhiều thời gian, lãng phí tài
14
nguyên…Mộttrongnhữnggiảiphápđặtrađểgiảiquyếtvấnđềtrênlà:kỹthuậtlọc
cộngtác(CollaborativeFiltering)
Lọc cộng tác chohệ thống khuyến nghị được tiếp cận theohai phương pháp
chính: Lọc cộng tác dựa vào bộ nhớ (Memory-Based Collaborative Filtering) và lọc
cộngtácdựavàomôhình(Model-BasedCollaborativeFiltering).Điểmkhácbiệtquan
trọngtronghaiphươngpháptiếpcậnlà:Lọcdựavàobộnhớtiếnhànhxâydựngđồng
thờimôhìnhhuấnluyệnvàmôhìnhdựđoán.Ngượclại,lọcdựavàomôhìnhxâydựng
môhìnhhuấnluyệnvàmôhìnhdựđoánđộclậpnhau.Sovớilọccộngtácdựavàomô
hình,lọccộngtácdựavàobộnhớđượcápdụngrộngrãihơndotínhhiệuquả,đơngiản
vàcóđộchínhxáckhácao.
1.3.1, Lọc cộng tác dựa vào bộ nhớ
Phươngpháplọccộngtácdựavàobộnhớ
[11]
thườngsửdụngtoànbộdữliệuđã
cócủangườidùngđểdựđoánđánhgiácủangườiđóvềmộtsảnphẩmmới.Làphương
phápcókhảnăngđưatrựctiếpdữliệumớivàobảngdữliệunênnóđạtkhánhiềuthành
côngkhiđượcápdụngvàocácứngdụngthựctế.Đặcbiệt,kỹthuậtnàypháthuytính
hiệuquảcaotrongcáchệthốngtrựctuyến(lànơiluôncódữliệumớiđượccậpnhật)
thườngđưaracácdựđoánchínhxáchơn.
Lọccộngtácdựavàobộnhớ(Memory-BasedCollaborativeFiltering)đượcthực
hiệntheohaiphươngphápchính:Lọcdựavàongườidùng(User-BasedCollaborative
Filtering)vàlọcdựavàosảnphẩm(Item-BasedCollaborativeFiltering).Hiệuquảcủa
cácphươngpháplọcdựavàobộnhớphụthuộcvàođộđotươngtựgiữacáccặpngười
dùnghoặcsảnphẩm.Phươngpháplọccộngtácdựavàobộnhớ,tôisẽtrìnhbàycụthể
hơntrongchương2.
1.3.2, Lọc cộng tác dựa vào mô hình (Model-Based Collaborative Filtering)
Phươngpháptiếpcậndựatrênmôhình
[17]
khôngsửdụngtấtcảdữliệuđãcóđể
đưaradựđoán,thayvàođóchúngnắmbắtthôngtintrongtừngbướcgiốngnhưmộtsự
thỏathuậnvềmôhìnhcácsởthíchngườidùng.Cácmôhìnhđượcpháttriểnbằngcách
sửdụngphươngthứckhaithácdữliệu,thuậttoánhọcmáyđểtìmmôhìnhdựatrêndữ
liệu huấn luyện.Chúng được sử dụngđể đưa radựđoán cho dữ liệu thực tế.Có rất
nhiềuthuậttoánCFdựatrênmôhìnhnhư:mạngBayes,môhìnhphânnhóm,môhình
ngữnghĩatiềmẩn.
15
Ưuđiểmcủamôhìnhnàylàxửlýdữliệuthưathớttốthơnsovớilọcdựatrênbộ
nhớ.Điềunàygiúpvớikhảnăngmởrộngvớicáctậpdữliệulớn,nócảithiệnhiệusuất
dựđoán.Nhữngnhượcđiểmcủaphươngphápnàylàgiáthànhcaotrongviệcxâydựng
môhình,cầnphảicómộtsựcânbằnggiữahiệusuấtvàkhảnăngmởrộngdựđoán,có
thểbịmấtthôngtinhữuíchdomôhìnhgiảmvàmộtsốmôhìnhcókhókhăntrongviệc
giảinghĩacácdựđoán.
16
CHƯƠNG 2: KỸ THUẬT LỌC CỘNG TÁC
Phươngpháp khuyếnnghịtôiđangxemxéttrongchươngnàyđượcgọilàlọc
cộngtác.Nó đượcgọilàcộng tác bởivì nóđưa racáckhuyến nghị dựatrên những
ngườidùngkháctrongthựctế,mọingườicộngtácđểđưarakhuyếnnghị.Nguyênlý
hoạtđộngcủahệthốngkhuyếnnghịlà:giảsửđểgiớithiệumộtcuốnsáchchobạn.Tôi
tìmkiếmnhữngngười sửdụng khác củatrangwebđể tìmmộttrong sốđólà người
tươngtựnhưbạndựatrênnhữngcuốnsáchmàbạnvàngườisửdụngđóthích.
2.1.
Giới thiệu bài toán lọc cộng tác
ChomộttậphữuhạngồmcóNngườidùngU={u
1
,u
2
,…,u
N
},mộttập
gồmMsảnphẩmP={p
1
,p
2
,…,p
M
}.Mỗisảnphẩmp
j
∈Pcóthểlàphim,ảnh,tạp
chí,tàiliệu,sách,báo,hànghóa,dịchvụhoặcbấtkỳdạngthôngtinnàomàngườidùng
cầnđến.MộtmatrậnR=(r
ij
)vớii=1,…N;j=1,…,Mthểhiệnmốiquanhệgiữatập
ngườidùngUvàtậpsảnphẩmP.Trongđór
ij
làđánhgiácủangườidùngu
i
chosản
phẩmp
j
.
Cácgiátrịr
ij
nhậngiátrịtheocáchìnhthức:thuthậptrựctiếpýkiếnđánhgiá
củangườidùngu
i
vềsảnphầmp
j
hoặcthuthậpgiántiếpthôngquacơchếphảnhồicủa
ngườidùng.
Gọi u
x
làngườidùnghiện thờicầnđược khuyến nghịsản phẩm p
y
, vớir
xy
=Ø
(nghĩalàngườidùngu
x
chưađánhgiáhoặcchưatừngbiếtđếnsảnphẩmp
y
).Bàitoán
lọccộngtáccónhiệmvụdựđoánđánhgiár
xy
củangườidùngu
x
vớisảnphẩmp
y
.Từ
đó, giới thiệu cho người dùng u
x
nhữngsản phẩm phù hợp nhấtdựa trên giátrị r
xy
,
nhữngsảnphẩmđượckhuyếnnghịchongườidùngu
x
lànhữngsảnphẩmcóđánhgiá
cao.
2.2.
Các phương pháp tính độ tương tự giữa các người dùng
Chou
i
làngườidùnghiệnthời,u
a
làngườidùngcầntínhđộtươngtựvớingười
dùngu
i
,r
ip
làđánhgiácủangườidùngu
i
chosảnphẩmpvàr
ap
làđánhgiácủangười
dùngu
a
chosảnphẩmp.Vớitậpmsảnphẩmlànhữngsảnphẩmmàngườidùngu
i
và
ngườidùngu
a
cùngđánhgiá.
2.2.1. Khoảng cách Manhattan
17
Mộttrongnhữngcáchđơngiảnnhấtđểđokhoảngcáchgiữahaiđiểmdữliệulà
khoảngcáchManhattan
[1]
.
Tính độ tương tự giữa người dùng u
a
và u
i
sử dụng phương pháp khoảng cách
Manhattanđượctínhbằngcôngthứcsau:
1
,
Manhattan a
p
p
i
m
ip a
d u u
r r
Trongkhônggian2chiều,mỗingườidùngđượcđạidiệnbởimộtđiểm(x,y),tôi
sẽbổsungthêmsubscriptchoxvàyđểthamkhảonhữngngườidùngkhácnhau.Vì
vậy,tacó(x
1
,y
1
)và(x
2
,y
2
)lầnlượtlàcácđiểmdữliệuthểhiệnđánhgiácủau
a
vàu
i
cho2sảnphẩmkhácnhauxvày.KhiđókhoảngcáchManhattanđượctínhbằngcông
thứcsau:
|x1-x2|+|y1-y2|
Chobảngvídụ1sau:
TheHobbit HarryPotter
John 2 2
Peter 4 4
Bảng 2.1: Ví dụ 1 về người dùng đánh giá sản phẩm
Khiđó,khoảng cáchManhattanđượcđịnhnghĩalạivàbiểudiễntrongkhônggian2
chiềunhưsau:
18
Hình 2.1: Mô hình đồ thị tính khoảng cách Manhattan
d
Manhattan
(Peter, John)=|2-4|+|2-4|=2+2=4
GiátrịkhoảngcáchgiữaPetervàJohnkhiápdụngphươngpháptínhkhoảng
cáchManhattanlà:d
Manhattan
=4.Ápdụngtươngtựphươngphápnàyđểtínhkhoảngcách
vớingườidùngkhác,sauđósẽchọnngườidùngcógiátrịkhoảngcáchnhỏnhấtvới
ngườidùnghiệntại.
2.2.2. Khoảng cách Euclidean.
ƯuđiểmrấtrõràngkhisửdụngcôngthứctínhkhoảngcáchManhattanlàtính
toánđơngiảnvàrấtnhanh.Tuynhiên,khoảngcáchEuclidean
[1]
thayvìđixungquanh
cáckhốithìbạnchỉcầnvẽmộtđườngthẳnggiữahaiđiểmdữliệuvàđokhoảngcách
giữahaiđiểmbằngcáchsửdụngđịnhlýPythagorean.
CôngthứctínhkhoảngcáchEuclideantổngquát:
2
1
,
Euclidean a i
m
ip ap
p
d u u r r
19
Trongkhônggian2chiều,ápdụngcôngthứctínhkhoảngcáchEuclideannhư
sau:Vớihaiđiểmdữliệu(x
1
,y
1
)và(x
2
,y
2
)lầnlượtlàcácđiểmdữliệuthểhiệnđánhgiá
củau
a
vàu
i
cho2sảnphẩmkhácnhauxvày.
Bảng dữ liệu 2.1thể hiện đánh giá củaPeter và John đối với 2bộ phim The
HobbitvàHarryPotterlà:
TheHobbit HarryPotter
John 2 2
Peter 4 4
Khiđó,khoảngcáchEuclideanđượctínhnhưsau:
Hình 2.2: Mô hình đồ thị tính khoảng cách Euclidean
2 2
(Peter,John) 2 4 2 4 8 2.8
Euclidean
d
GiátrịkhoảngcáchgiữaPetervàJohnkhiápdụngphươngpháptínhkhoảng
cáchEuclideanlà:d
Euclidean
=2.8.Ápdụngtươngtựphươngphápnàyđểtínhkhoảng
cáchvớingườidùngkhác,sauđósẽchọnngườidùngcógiátrịkhoảngcáchnhỏnhất
vớingườidùnghiệntại.
20
2.2.3. Hệ số tương quan Pearson.
Phức tạp hơn hai công thức tính khoảng cách Manhattan và khoảng cách
Euclideannhưngthườngnhậnkếtquảtốthơnvớidữliệukhôngbìnhthường,tôiđang
nóiđếnlàtrườnghợpngườidùngcónhữnghànhviđánhgiálàkhácnhaunhư: một
ngườidùngchỉcungcấpnhữngđánhgiáxấu(đánhgiáthấp)chohầuhếttấtcảcácsản
phẩmngườiđóđánhgiá,ngườidùngkháclạithườngxuyêncungcấpnhữngđánhgiá
cao (tốt)cho các sảnphẩm người đóđãđánh giá,…Trongtrườnghợp này,sửdụng
phươngpháphệsốtươngquanPearson
[1]
sẽđạtkếtquảtốiưuhơnsovớihaiphương
pháptrên.Hơnnữatrongthựctế,dotínhchấtđangườidùngdẫntớinhiềuquanđiểm
khácnhaunêntrườnghợpnàyphầnlớnđềuxảyra.
Hệ sốtương quan Pearson sẽ có giá trị nằm trong khoảng từ-11. Khi tính
khoảng cách giữa hai người dùng màR
pearson
=1 thì haingười dùng đócó quanđiểm
đánhgiágiốngnhauhoàntoàn,R
pearson
=-1thìhaingườidùngnàysẽbấtđồngvớinhau
vềmặtquanđiểmđánhgiá.VìvậydựavàohệsốtươngquanPearsonnàychúngtôicó
thểtìmramộtngườigiốngvớingườimàchúngtôiquantâmmàkhôngbịảnhhưởng
bởihànhvingườidùng.
HệsốtươngquanPearsonđượctínhbằngcôngthứctínhsau:
1 1
1
2 2
1 1
2 2
1 1
,
.
*
m m
ap ip
m
p p
ap ip
p
m m
ap ip
P e a rs o n
m m
p p
ap i
p p
i
p
a
r r
r r
m
r r
r r
m m
R u u
Chobảngdữliệu2sau:
Book1 Book2 Book3 Book4 Book5
Peter 1,5 1,5 3 2,7 5
John 1 2 2 3 4
Bảng 2.2: Ví dụ 2 về người dùng đánh giá sản phẩm
21
ÁpdụngcôngthứctínhhệsốtươngquanPearsontacóthểtínhđượcsựtươngtự
giữaPetervàJohnnhưsau:
1
m
ap ip
p
r r
=
1*1,5 1,5*2 3*2 2,7*3 5*4
=38,6
1
m
ap
p
r
=1,5+1,5+3+2,7+5=12
1
m
ip
p
r
=1,5+2+2+3+4=12,5
2
1
m
ap
p
r
=1,5
2
+1,5
2
+3
2
+2,7
2
+5
2
=45,79
2
1
m
ip
p
r
=1
2
+2
2
+2
2
+3
2
+4
2
=34
2
2
1
2
1
13,7
45,79 45,79 37,54 8,25
5
m
ap
m
p
ap
p
r
r
m
2
2
1
2
1
12
34 34 28,8 5,2
5
m
ap
m
p
ap
p
r
r
m
Vớicácgiátrịthamsốtrêntacó:
13,7*12
38,6
5,72
5
0,87
6,55
8,25*5,2
Peter,John
Pearson
R
SaukhiápdụngcôngthứctínhhệsốtươngquanPearsoncóthểthấyđượcgiátrị
khoảngcáchgiữaPetervàJohnlà:R
Pearson
=0,87.Ápdụngtươngtựphươngphápnàyđể
22
tínhkhoảngcáchvớingườidùngkhác,sauđósẽchọnngườidùngcógiátrịR
Pearson
với
ngườidùnghiệntạisaochogần1nhất.
Trong không gian hai chiều thì tacó phương pháp hệ số tương quan Pearson
đượcđịnhnghĩalạivàbiểudiễnnhưsau:
Hình 2.3: Mô hình đồ thị tính hệ số tương quan Pearson
2.2.4. Hệ số tương tự Cosine.
HệsốtươngtựCosine
[1]
(hayhệsốtươngđồngCosine)làđolườngvềsựgiống
nhau giữa hai vectơ của mộtvùng bên trong sản phẩm, cụ thể sẽ đogóc cosin giữa
chúng.HệsốtươngtựCosinephánđoánvềđịnhhướngchứkhôngphảivềđộlớn:hai
vectorcócùngđịnhhướnglàcóhệsốtươngđồngCosinelà1,haivectorcógiátrịgóc
là90
0
thìcóđộtươngtựlà0vàhaivectorđượccoilàđốinghịchnhaunếucóđộtương
đồnglà-1.Cosinetươngtựđượcđặcbiệtsửdụngtrongkhônggiandươngtính,trong
đókếtquảtrongkhoảng[0,1].
23
Đốivớimạngtrựctuyến,vớisốlượngngườidùngvàsảnphẩmlàkhổnglồdẫn
đếnvấnđềthựctếlàcáctậpdữliệuđềurấtlớnvàthưathớt,nghĩalàvớitậpcácsản
phẩmvôcùngđồsộrấtnhiềutrườnghợpcónhiểusảnphẩmkhôngđượcđánhgiáhoặc
khôngđượcngườidùngbiếtđến.Năm2011,Amazoncóhơn2triệuđầusáchdẫnđến
trườnghợpnhiềungườidùngkhônghềđánhgiámộttrongnhữngđầusáchtôiđánhgiá.
Spotifycókhoảng15triệubàihát,vậythìđểtìmthấyngườidùngtươngtựtôithìđa
phầnkhảnăngxảyrasẽlàtôivàngườidùngkháccósốbàihátcùngnghechungbằng
0.
HệsốtươngtựCosinesẽkhắcphụcphầnnàovấnđềthưathớtdữliệunày,nósẽ
bỏquacáckếtquả0-0.HệsốtươngtựCosineđượcđịnhnghĩanhưsau:
1
2 2
1 1
,
m
ap ip
p
a i
m m
ap ip
p p
r r
Cos u u
r r
Chobảngsốliệu2.3sau:
KafkaontheShore TheLittleprince
Peter 4 2
John 3 3
Bảng 2.3: Ví dụ 3 về người dùng đánh giá sản phẩm
Tacó:
1
2 2 2 2
2 2
1 1
4*3 2*3 18
, 0,77
23, 24
4 2 3 3
m
ap ip
p
a i
m m
ap ip
p p
r r
COS u u
r r
Trongkhônggianhaichiều,hệsốtươngtựCosineđượcđịnhnghĩalạivàbiếu
diễndướidạngđồthịkhônggianhaichiềunhưsau: