Đang tải... (xem toàn văn)
luận văn: nghiên cứu hệ thống khuyến nghị người dùng dựa vào lọc cộng tác trường đại học quốc gia hà nộiluận văn: nghiên cứu hệ thống khuyến nghị người dùng dựa vào lọc cộng tác trường đại học quốc gia hà nộiluận văn: nghiên cứu hệ thống khuyến nghị người dùng dựa vào lọc cộng tác trường đại học quốc gia hà nội
ĐẠ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. [...]... thời mô hình huấn luyện và mô hình dự đoán. Ngược lại, lọc dựa vào mô hình xây dựng mô hình huấn luyện và mô hình dự đoán độc lập nhau. So với lọc cộng tác dựa vào mô hình, lọc cộng tác dựa vào bộ nhớ được áp dụng rộng rãi hơn do tính hiệu quả, đơn giản và có độ chính xác khá cao. 1.3.1, Lọc cộng tác dựa vào bộ nhớ Phương pháp lọc cộng tác dựa vào bộ nhớ [11] thường sử dụng toàn bộ dữ liệu đã có của người dùng để dự đoán đánh giá của người đó về một sản phẩm mới. Là phương ... các khuyến nghị dựa trên ảnh hưởng của nhiều người khác nhau, các cộng tác của nhiều người này sẽ trở thành khuyến nghị. Khác so với kỹ thuật lọc cộng tác dựa trên nội dụng, hệ thống cộng tác dự đoán mức độ phù hợp r(u,p) của một sản phẩm p với người dùng u dựa trên mức độ phù hợp r(ui, p) giữa người dùng ui và p, trong đó ui là người có cùng sở thích với u. Ví dụ, để gợi ý một bộ phim cho người dùng u, đầu tiên hệ thống 13 cộng tác tìm những người dùng khác có cùng sở thích phim ảnh với u. Sau đó, những bộ ... hàng và tiếp thị có một truyền thống lâu đời. Với những tiến bộ trong công nghệ 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ọc cộng tác, hệ thống khuyến nghị, hệ thống trợ giúp cá nhân, lọc xã hội, hệ thống khai thác dữ liệu xã hội, và các hệ thống thích nghi người dùng có thể được gọi chung là hệ thống lọc thông tin (IF ). Ngày nay, hệ thống lọc thông tin ở khắp mọi nơi, ... THUẬT LỌC CỘNG TÁC Phương pháp khuyến nghị tôi đang xem xét trong chương này được gọi là lọc cộng tác. Nó được gọi là cộng tác bởi vì nó đưa ra các khuyến nghị dựa trên những người dùng khác trong thực tế, mọi người cộng tác để đưa ra khuyến nghị. Nguyên lý hoạt động của hệ thống khuyến nghị là: giả sử để giới thiệu một cuốn sách cho bạn. Tôi tìm kiếm những người ... của người dùng u cho một sản phẩm p’ dựa trên các người dùng “láng giềng” với người dùng u. “Láng giềng” với người dùng u là người dùng khác mà có quan điểm về các sản phẩm tương tự như người dùng u. Ví dụ: để gợi ý một sản phẩm cho người dùng u, đầu tiên hệ thống cộng tác tìm những người dùng khác có cùng sở thích với người dùng u được gọi là “láng giềng” với người dùng u. Sau đó, những sản phẩm được các “láng giềng” đánh giá cao ... đấy… Dẫn đến, vấn đề khuyến nghị dựa vào một người dùng gần nhất cho người dùng hiện tại gặp khó khăn. Vì thế, giải pháp đặt ra là nên dựa vào nhiều hơn 1 người dùng tương tự để tiến hành khuyến nghị cho người dùng hiện tại. Tuy nhiên, bốn 25 phương pháp tính độ tương tự được trình bày ở trên chỉ dựa vào người dùng gần nhất để khuyến nghị cho người dùng hiện tại nên trong phần này chúng tôi sẽ trình bày nghiên ... đề trên là: kỹ thuật lọc cộng tác (Collaborative Filtering) Lọc cộng tác cho hệ thống khuyến nghị được tiếp cận theo hai 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ộng tác dựa vào mô hình (Model-Based Collaborative Filtering) . Điểm khác biệt quan trọng trong hai phương pháp tiếp cận là: Lọc dựa vào bộ nhớ tiến hành xây dựng đồng ... hiện theo hai phương pháp chính: Lọc dựa vào người dùng (User-Based Collaborative Filtering) và lọc dựa vào sản phẩm (Item-Based Collaborative Filtering) . Hiệu quả của các phương pháp lọc dựa vào bộ nhớ phụ thuộc vào độ đo tương tự giữa các cặp người dùng hoặc sản phẩm. Phương pháp lọc cộng tác dựa vào bộ nhớ, tôi sẽ trình bày cụ thể hơn trong chương 2. 1.3.2, Lọc cộng tác dựa vào mô hình (Model-Based Collaborative Filtering) Phương pháp tiếp cận dựa trên mô hình [17] không sử dụng tất cả dữ liệu đã có để ... này được xây dựng dựa trên những thông tin được người dùng cung cấp trực tiếp (khi trả lời khảo sát) hoặc gián tiếp (do khai phá thông tin từ các giao dịch của người dù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ật lọc cộng tác (Collaborative Filtering) dựa trên nguyên tắc hoạt động là các khuyến nghị dựa trên ảnh hưởng của nhiều người khác nhau, các cộng tác của nhiều ... Khai thác những khía cạnh cạnh liên quan đến nội dung thông tin sản phẩm hoặc người dùng đã từng sử dụng hay truy nhập trong quá khứ để khuyến nghị. Đây là kỹ thuật lọc dựa theo nội dung (Content-Based Filtering) Lựa chọn dựa trên ý kiến hay lời khuyên của những người dùng khác về các Item. Hệ thống khuyến nghị áp dụng các thuật toán tận dụng các gợi ý được cung cấp bởi một cộng đồng người dùng tương tự sau đó cung cấp cho người dùng . Trongchương1,chúngtôiđitìmhiểuchungvề hệ thống khuyến nghị, cáckỹ thuật lọc thôngtintrong hệ thống khuyến nghị: lọc dựa vào nộidung, lọc cộng tác vàkỹ thuậtkếthợpHybrid,cácphươngpháp lọc cộng tác như: Lọc dựa vào bộnhớvà lọc dựa vào môhình.Trongchương2,chúngtôitrìnhbàychitiếthơnvềkỹthuật lọc cộng tác, cácphươngpháptínhđộtươngtựgiữacác người dù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ựa vào kếtquảthựcnghiệmđểđánhgiá,phântíchvàsosánhtínhhiệuquảcủa từngphươngphápvàthuậttoánđãnêutrongchương2. . quả cho các hệ thống trực tuyến. Lọc cộng tác, hệ thống khuyến nghị, hệ thống trợgiúpcánhân, lọc xãhội, hệ thống khaithácdữliệuxãhội,vàcác hệ thống thíchnghi người dùng cóthểđượcgọi chunglà hệ thống lọc thôngtin(IF).Ngàynay, hệ thống lọc thô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í,. 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.