Tương tác cá nhân là hoạt động sự việc diễn ra trên toàn thế giới, thậm chí có từ hàng trăm năm trước cho đến ngày nay. Những năm 1990, tương tác cá nhân ít nhiều cũng đã có mặt. Theo thường lệ, khi đi vào một cửa hàng sách quen thuộc, chủ hàng sẽ chào đón như: “Có báo mới ngày hôm nay đấy”, chủ hàng biết rằng khách hàng của mình muốn điều gì khi đến đây. Hoặc chủ hàng có thể giới thiệu cho một vài quyển sách mà khách hàng của mình có thể quan tâm dựa trên những sở thích của khách. Hoặc khi đi vào quán nước quen, người phục vụ sẽ hỏi: “Như thường lệ chứ?” Khoảng 30 năm về trước, khi bạn muốn mua chiếc tivi ở cửa hàng điện máy thì có vài sự lựa chọn phổ biến cho bạn: Panasonic và Samsung hay LG. Những năm sau đó, bạn có nhiều sự lựa chọn phong phú hơn, bạn chọn hãng Samsung thì trong đó còn nhiều lựa chọn như: LED hay LCD, bao nhiêu inch?… Hàng ngày có hàng trăm bài hát được thu âm, hàng trăm đầu sách được xuất bản trên thế giới, trong khi đó các cửa hàng chỉ có giới hạn các đầu sách hoặc các bài hát, các bộ phim… Từ đó, các dịch vụ trực tuyến được ra đời và đáp ứng nhu cầu ngày càng cao của người dùng. Cho đến ngày nay, sự tương tác cá nhân vẫn luôn tồn tại, thậm chí bạn có hàng triệu sự lựa chọn. Mỗi giây các phương tiện truyền thông được thêm vào mạng. Mỗi phút 100 tập tin mới có sẵn trên usenet. 2424 giờ video được tải lên YouTube. Mỗi giờ 180 cuốn sách mới được xuất bản. Mỗi ngày càng có thêm nhiều lựa chọn các sản phẩm để mua trong thế giới thực.
Trang 14 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
Trang 22.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
Trang 3Khoảng 30 năm về trước, khi bạn muốn mua chiếc tivi ở cửa hàng điện máy thì có vài sựlựa chọn phổ biến cho bạn: Panasonic và Samsung hay LG Những năm sau đó, bạn cónhiều sự lựa chọn phong phú hơn, bạn chọn hãng Samsung thì trong đó còn nhiều lựachọn như: LED hay LCD, bao nhiêu inch?…
Hàng ngày có hàng trăm bài hát được thu âm, hàng trăm đầu sách được xuất bản trên thếgiới, trong khi đó các cửa hàng chỉ có giới hạn các đầu sách hoặc các bài hát, các bộphim… Từ đó, các dịch vụ trực tuyến được ra đời và đáp ứng nhu cầu ngày càng cao củangười dùng
Cho đến ngày nay, sự tương tác cá nhân vẫn luôn tồn tại, thậm chí bạn có hàng triệu sựlựa chọn Mỗi giây các phương tiện truyền thông được thêm vào mạng Mỗi phút 100 tậptin mới có sẵn trên usenet 24/24 giờ video được tải lên YouTube Mỗi giờ 180 cuốn sáchmới được xuất bản Mỗi ngày càng có thêm nhiều lựa chọn các sản phẩm để mua trongthế giới thực
Bạn muốn mua một số bài nhạc? iTunes có khoảng 11 triệu bài hát để lựa chọn và họ đãbán được 16 tỷ bài hát vào tháng 10 năm 2011 Nếu bạn muốn nhiều hơn sự lựa chọn thì
có thể đi đến Spotify với 15 triệu bài hát Bạn muốn mua một cuốn sách, Amazon cungcấp hơn 2 triệu cuốn sách để bạn lựa chọn
Trong cuộc sống của chúng ta ngày nay, với sự phát triển không ngừng của công nghệthông tin, nguồn thông tin quá phong phú làm cho bạn không có đủ thời gian để xem xétlựa chọn tất cả các cuốn sách, phim, tạp chí hay bài hát… bạn không biết mình nên xemphim gì, đọc cuốn sách nào phù hợp với sở thích, nhu cầu của bản thân
Trang 4Vấn đề cấp thiết đặt ra là cần một hệ thống hỗ trợ người dùng chọn lựa những sản phẩmphù hợp với nhu cầu của người dùng, từ đó hệ thống khuyến nghị được nghiên cứu vàphát triển không ngừng nhằm đạt hiệu quả nhất trong việc tương tác với người dùng Hệthống khuyến nghị (Recommender Systems - RS) là giải pháp hiệu quả nhất giải quyế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ến nghị.Trong phạm vi luận văn, chúng tôi tập trung nghiên cứu về kỹ thuật lọc cộng tác và phântích các phương pháp cơ bản để tìm một người hoặc một nhóm người gần nhất với ngườidùng hiện tại cần khuyến nghị Để giảm thiểu sai số trong dự đoán chúng tôi trình bàynghiên cứu của mình về phương pháp ma trận thừa số cụ thể hơn là thuật toán gradientdescent ngẫu nhiên Nội dung chính của luận văn này được chia làm
Trang 5CHƯƠ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ảm quá tải thông tin là mục tiêu chính của lọc thông tin (Information Filtering_IF) và nó đã được công nhận là một trong những ưu tiên trong việc phát triển hệ thốngthông tin dựa trên web hiện nay Cung cấp các tài liệu có liên quan dựa trên sở thíchkhách hàng Công nghệ khuyến nghị được trình bày như là một mô hình mới của sự tìmkiếm nơi mà các mặt hàng có liên quan tìm ra người sử dụng thay vì người sử dụng tìmkiếm chúng Xu hướng mới trong công nghệ thông tin như mạng xã hội và thiết bị di động
Trang 6đ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àng và tiếpthị 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áttriể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ôngtin (IF ) Ngày nay, hệ thống lọc thông tin ở khắp mọi nơi, trong mọi ngành công nghiệp
và dịch vụ, từ tiếp thị cho sức khỏe, du lịch, giáo dục, giải trí,
Vậy, hệ thống lọc thông tin là một hệ thống loại bỏ thông tin dư thừa hoặc khôngmong muốn từ một luồng thông tin sử dụng tự động trên máy vi tính
Mục tiêu chính của nó là quản lý của tình trạng quá tải thông tin và tăng tỷ lệ ngữnghĩa của tín hiệu trên nhiễu Để thực hiện các hồ sơ này được so sánh với một số đặc tínhtham khảo
1.1.2 Hệ thống khuyến nghị (Recommender System)
Hệ thống khuyến nghị (Recommender System)[7] là một loại hình cụ thể của kỹ thuật lọcthông tin (như phim ảnh, âm nhạc, trang web, tin tức) mà người dùng quan tâm Nó rấtquan trọng cho sự thành công của thương mại điện tử và ngành công nghiệp CNTT hiệnnay, và dần dần trở nên phổ cập trong các ứng dụng khác nhau (ví dụ như dự án Netflix,Google tin tức, Amazon) Là một hệ thống khuyến nghị chuyên nghiệp xây dựng dựa trên
hồ sơ quá khứ của người dùng, hệ thống so sánh hồ sơ của người dùng với một số đặcđiểm tài liệu tham khảo, và tìm cách để dự đoán “đánh giá” mà người dùng sẽ cung cấpcho một mục mà người dùng đó vẫn chưa đánh giá Trong hầu hết các trường hợp, hệthống khuyến nghị tương ứng với một vấn đề khai thác dữ liệu quy mô lớn Là hệ thống
có khả năng tự động phân tích, phân loại, lựa chọn và cung cấp cho người dùng nhữngthông tin, hàng hóa hay dịch vụ mà họ quan tâm
Hình 1.2: Một ví dụ về mô hình khuyến nghị sản phẩm
Trang 71.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ập P có thể rất lớn, từ hàng trăm ngàn đến hàng triệu sản phẩm Tập U trong một
số trường hợp cũng có thể lên tới hàng triệu người dùng Hàm r(u,p) là những đánh giámức độ phù hợp (xếp hạng) của sản phẩm p với người dùng u, r: UxP R Với mỗi ngườidùng u ∈ U cần tìm sản phẩm p’ ∈ P sao cho hàm r(u,p’) đạt giá trị lớn nhất: ∀u
∈U,p’=arg maxp∈ P r(u,p)
Trong hệ thống khuyến nghị, những đánh giá được thể hiện bằng các hình thức thôngthường như: thích và không thích (hình bàn tay với ngón trỏ: youtube.com), số sao(thường từ 1- 5 sao)…
1.2 Các kỹ thuật lọc cho hệ thống khuyến nghị [4]
Trong việc lựa chọn sản phẩm hoặc dịch vụ (gọi chung là Item), người dùng thường gặpphải những khó khăn là:
Lượng Item: Mỗi ngày, có hàng triệu thông tin được đăng tải lên internet mỗingày, người dùng không biết mình nên và không nên sử dụng Item nào?
Thông tin về Item: do lượng Item là vô cùng lớn, nên User không thể tìm hiểuđược tất cả các Item về nội dung, chức năng cũng như Item có phù hợp với nhucầu của user không?
Gợi ý đặt ra để giải quyết các vấn đề khó khăn trên là:
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ặcngườ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ấpbởi một cộng đồng người dùng tương tự sau đó cung cấp cho người dùng đanghoạt động (người đang tìm kiếm các đề xuất) Phương pháp này được gọi là lọccộng tác (Collaborative Filtering _CF)
So với lọc theo nội dung, lọc cộng tác có một số ưu điểm như đơn giản trong cài đặt và cóthể lọc được mọi loại thông tin hay hàng hoá mà không cần phải biểu diễn dưới dạng vănbản
Trang 81.2.1 Kỹ thuật lọc dựa theo nội dung:
Với kỹ thuật khuyến nghị dựa trên nội dung[10], mức độ phù hợp r(u,p) của sản phẩmphẩm p với người dùng u được đánh giá dựa trên mức độ phù hợp r(u,pj), trong đó pj P
và tương tự như p Ví dụ, để gợi ý một bộ phim cho người dùng u, hệ thống tư vấn sẽ tìmcác đặc điểm của những bộ phim từng được u đánh giá cao (như diễn viên, đạo diễn…);sau đó chỉ những bộ phim tương đồng với sở thích của c mới được giới thiệu
Hướng tiếp cận dựa trên nội dung bắt nguồn từ những nghiên cứu về thu thập thông tin(IR - information retrieval) và lọc thông tin (IF - information filtering) Do đó, rất nhiều
hệ thống dựa trên nội dung hiện nay tập trung vào tư vấn các đối tượng chứa dữ liệu textnhư văn bản, tin tức, website… Những tiến bộ so với hướng tiếp cận cũ của IR là do việc
sử dụng hồ sơ về người dùng (chứa thông tin về sở thích, nhu cầu…) Hồ sơ này được xâydự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áckhuyế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ườinà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ựatrê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íchvới u Ví dụ, để gợi ý một bộ phim cho người dùng u, đầu tiên hệ thống cộng tác tìm
Trang 9những người dùng khác có cùng sở thích phim ảnh với u Sau đó, những bộ phim được họđánh giá cao sẽ được dùng để tư vấn cho u Chi tiết cụ thể về kỹ thuật này sẽ được tôitrình bày trong chương 2
Thông thường có 4 cách để kết hợp như sau:
Cài đặt hai phương pháp riêng rẽ rồi kết hợp dự đoán của chúng với nhau: Có haikịch bản cho trường hợp này là:
+ Cách 1: Kết hợp kết quả của cả hai phương pháp thành một kết quả chung duynhất
+ Cách 2: Tại mỗi thời điểm chọn một phương pháp cho kết quả tốt hơn (ví dụ: Hệthống Dailylearner)
Tích hợp các đặc trưng của phương pháp dựa trên nội dung vào hệ thống cộng tác
Tích hợp các đặc trưng của phương pháp cộng tác vào hệ thống dựa trên nội dung
Xây dựng mô hình hợp nhất, bao gồm các đặc trưng của cả hai phương pháp 1.3 Các phương pháp lọc cộng tác
Với số lượng quá lớn các sản phẩm có trên internet thì thông thường một người dùng chỉđánh giá hữu hạn m sản phẩm (với m sản phẩm được đánh giá nhỏ hơn rất nhiều so vớitập M sản phẩm) Khó khăn đặt ra là dự đoán đánh giá một người dùng cho tập M sảnphẩm là điều rất khó khăn, hơn nữa tập M sản phẩm luôn luôn thay đổi và theo thời gianthì ngày càng tăng lên Ngoài ra để dự đoán đánh giá của N người dù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 nguyên… Một trong
Trang 10những giải pháp đặt ra để giải quyết vấn đề trên là: kỹ thuật lọc cộng tác (CollaborativeFiltering)
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ọccộ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 haiphươ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 thời mô hình huấnluyệ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ựavà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ủangười dùng để dự đoán đánh giá của người đó về một sản phẩm mới Là phương pháp cókhả năng đưa trực tiếp dữ liệu mới vào bảng dữ liệu nên nó đạt khá nhiều thành công khiđược áp dụng vào các ứng dụng thực tế Đặc biệt, kỹ thuật này phát huy tính hiệu quả caotrong các hệ thống trực tuyến (là nơi luôn có dữ liệu mới được cập nhật) thường đưa racác dự đoán chính xác hơn
Lọc cộng tác dựa vào bộ nhớ (Memory-Based Collaborative Filtering) được thực hiệntheo hai phương pháp chính: Lọc dựa vào người dùng (User-Based CollaborativeFiltering) và lọc dựa vào sản phẩm (Item-Based Collaborative Filtering) Hiệu quả củacá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ườidù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ó để đưa ra
dự đoán, thay vào đó chúng nắm bắt thông tin trong từng bước giống như một sự thỏathuận về mô hình các sở thích người dùng Các mô hình được phát triển bằng cách sửdụng phương thức khai thác dữ liệu, thuật toán học máy để tìm mô hình dựa trên dữ liệuhuấn luyện Chúng được sử dụng để đưa ra dự đoán cho dữ liệu thực tế Có rất nhiều thuậttoán CF dựa trên mô hình như: mạng Bayes , mô hình phân nhóm , mô hình ngữ nghĩatiềm ẩn
Trang 11Ưu điểm của mô hình này là xử lý dữ liệu thưa thớt tốt hơn so với lọc dựa trên bộ nhớ Điều này giúp với khả năng mở rộng với các tập dữ liệu lớn, nó cải thiện hiệu suất
dự đoán Những nhược điểm của phương pháp này là giá thành cao trong việc xây dựng
mô hình, cần phải có một sự cân bằng giữa hiệu suất và khả năng mở rộng dự đoán, có thể
bị mất thông tin hữu ích do mô hình giảm và một số mô hình có khó khăn trong việc giải nghĩa các dự đoán
Trang 12CHƯƠNG 2: KỸ 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ùngkhá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ữngngười sử dụng khác của trang web để tìm một trong số đó là người tương tự như bạn dựatrên những cuốn sách mà bạn và người sử dụng đó thích
2.1 Giới thiệu bài toán lọc cộng tác
Cho một tập hữu hạn gồm có N người dùng U = { u1,u2,…,uN }, một tập gồm Msản phẩm P = { p1,p2,…,pM } Mỗi sản phẩm pj ∈ P có thể là phim, ảnh, tạp chí, tài liệu,sách, báo,hàng hóa, dịch vụ hoặc bất kỳ dạng thông tin nào mà người dùng cần đến Một
ma trận R = ( rij ) với i = 1,…N ; j = 1,…,M thể hiện mối quan hệ giữa tập người dùng U
và tập sản phẩm P Trong đó rij là đánh giá của người dùng ui cho sản phẩm pj
Các giá trị rij nhận giá trị theo các hình thức: thu thập trực tiếp ý kiến đánh giá của ngườidùng ui về sản phầm pj hoặc thu thập gián tiếp thông qua cơ chế phản hồi của người dùng Gọi ux là người dùng hiện thời cần được khuyến nghị sản phẩm py, với rxy=Ø (nghĩa làngười dùng ux chưa đánh giá hoặc chưa từng biết đến sản phẩm py) Bài toán lọc cộng tác
có nhiệm vụ dự đoán đánh giá rxy của người dùng ux với sản phẩm py Từ đó, giới thiệucho người dùng ux những sản phẩm phù hợp nhất dựa trên giá trị rxy, những sản phẩmđược khuyến nghị cho người dùng ux là những sản phẩm có đánh giá cao
2.2 Các phương pháp tính độ tương tự giữa các người dùng
Cho ui là người dùng hiện thời, ua là người dùng cần tính độ tương tự với người dùng ui,
rip là đánh giá của người dùng ui cho sản phẩm p và rap là đánh giá của người dùng ua chosản phẩm p Với tập m sản phẩm là những sản phẩm mà người dùng ui và người dùng ua
cùng đánh giá
2.2.1 Khoảng cách Manhattan
Một trong những cách đơn giản nhất để đo khoảng cách giữa hai điểm dữ liệu làkhoảng cách Manhattan[1]
Trang 13Tính độ tương tự giữa người dùng ua và ui sử dụng phương pháp khoảng cách Manhattanđược tính bằng công thức sau:
m
dManhattan ua, ui rip rap
p1
Trong không gian 2 chiều, mỗi người dùng được đại diện bởi một điểm (x,y), tôi sẽ
bổ sung thêm subscript cho x và y để tham khảo những người dùng khác nhau Vì vậy, ta
có (x1,y1) và (x2,y2) lần lượt là các điểm dữ liệu thể hiện đánh giá của ua và ui cho 2 sảnphẩm khác nhau x và y Khi đó khoảng cách Manhattan được tính bằng công thức sau:
Trang 14Hình 2.1: Mô hình đồ thị tính khoảng cách Manhattan dManhattan(Peter, John)=|2-4|+|2-4|=2+2=4
Giá trị khoảng cách giữa Peter và John khi áp dụng phương pháp tính khoảng cáchManhattan là: dManhattan=4 Áp dụng tương tự phương pháp này để tính khoảng cách với người dùng khác, sau đó sẽ chọn người dùng có giá trị khoảng cách nhỏ nhất với người dùng hiện tại
2.2.2 Khoảng cách Euclidean
Ưu điểm rất rõ ràng khi sử dụng công thức tính khoảng cách Manhattan là tính toán đơngiản và rất nhanh Tuy nhiên, khoảng cách Euclidean[1] thay vì đi xung quanh các khối thìbạn chỉ cần vẽ một đường thẳng giữa hai điểm dữ liệu và đo khoảng cách giữa hai điểmbằng cách sử dụng định lý Pythagorean Công thức tính khoảng cách Euclidean tổngquát:
ua, ui rip rap
p1
Trang 15Trong không gian 2 chiều, áp dụng công thức tính khoảng cách Euclidean như sau:Với hai điểm dữ liệu (x1,y1) và (x2,y2) lần lượt là các điểm dữ liệu thể hiện đánh giá của ua
Khi đó, khoảng cách Euclidean được tính như sau:
Hình 2.2: Mô hình đồ thị tính khoảng cách Euclidean
dEuclidean (Peter,John) 24 2 24 2 8 2.8
Giá trị khoảng cách giữa Peter và John khi áp dụng phương pháp tính khoảng cáchEuclidean là: dEuclidean=2.8 Áp dụng tương tự phương pháp này để tính khoảng cách với người dùng khác, sau đó sẽ chọn người dùng có giá trị khoảng cách nhỏ nhất với người dùng hiện tại
2.2.3 Hệ số tương quan Pearson
Trang 16Phức tạp hơn hai công thức tính khoảng cách Manhattan và khoảng cách Euclideannhưng thường nhận kết quả tốt hơn với dữ liệu không bình thường, tôi đang nói đến làtrường hợp người dùng có những hành vi đánh giá là khác nhau như: một người dùng chỉcung cấp những đánh giá xấu (đánh giá thấp) cho hầu hết tất cả các sản phẩm người đóđánh giá, người dùng khác lại thường xuyên cung cấp những đánh giá cao (tốt) cho cácsản phẩm người đó đã đánh giá,… Trong trường hợp này, sử dụng phương pháp hệ sốtương quan Pearson[1] sẽ đạt kết quả tối ưu hơn so với hai phương pháp trên Hơn nữatrong thực tế, do tính chất đa người dùng dẫn tới nhiều quan điểm khác nhau nên trườnghợp này phần lớn đều xảy ra
Hệ số tương quan Pearson sẽ có giá trị nằm trong khoảng từ -11 Khi tính khoảng cáchgiữa hai người dùng mà Rpearson=1 thì hai người dùng đó có quan điểm đánh giá giốngnhau hoàn toàn, Rpearson= -1 thì hai người dùng này sẽ bất đồng với nhau về mặt quanđiểm đánh giá Vì vậy dựa vào hệ số tương quan Pearson này chúng tôi có thể tìm ra mộtngười giống với người mà chúng tôi quan tâm mà không bị ảnh hưởng bởi hành vi ngườidùng
Hệ số tương quan Pearson được tính bằng công thức tính sau:
Cho bảng dữ liệu 2 sau:
ap ip p
Trang 18người dùng hiện tại sao cho gần 1 nhất
Trong không gian hai chiều thì ta có phương pháp hệ số tương quan Pearson được địnhnghĩa lại và biểu diễn như sau:
Hình 2.3: Mô hình đồ thị tính hệ số tương quan Pearson
Trang 19cùng định hướng là có hệ số tương đồng Cosine là 1, hai vector có giá trị góc là 900 thì có
độ tương tự là 0 và hai vector được coi là đối nghịch nhau nếu có độ tương đồng là -1.Cosine tương tự được đặc biệt sử dụng trong không gian dương tính, trong đó kết quảtrong khoảng [0,1]
Đối với mạng trực tuyến, với số lượng người dùng và sản phẩm là khổng lồ dẫnđến vấn đề thực tế là các tập dữ liệu đều rất lớn và thưa thớt, nghĩa là với tập các sảnphẩm vô cùng đồ sộ rất nhiều trường hợp có nhiểu sản phẩm không được đánh giá hoặckhông được người dùng biết đến Năm 2011, Amazon có hơn 2 triệu đầu sách dẫn đếntrường hợp nhiều người dùng không hề đánh giá một trong những đầu sách tôi đánh giá.Spotify có khoảng 15 triệu bài hát, vậy thì để tìm thấy người dùng tương tự tôi thì đaphần khả năng xảy ra sẽ là tôi và người dùng khác có số bài hát cùng nghe chung bằng
Cho bảng số liệu 2.3 sau:
Kafka on the Shore The Little prince
Trang 20Trong không gian hai chiều, hệ số tương tự Cosine được định nghĩa lại và biếu diễn dướidạng đồ thị không gian hai chiều như sau:
Hình 2.4: Mô hình đồ thị tính hệ số tương tự Cosine
Hệ số tương tự Cosine cũng có phạm vi từ -11 giống như hệ số tương quan Pearson,khi giá trị Cos(ua,ui) = 1 thì người dùng ua với người dùng ui tương đồng nhau , họ giốngnhau một cách hoàn hảo về sở thích, khi giá trị Cos(ua,ui) = -1 thì người dùng ua vớingười dùng ui không tương đồng nhau , khác nhau hoàn toàn về sở thích Các phươngpháp tính độ tương tự giữa các người dùng vừa được trình bày ở trên là những phươngpháp cơ bản nhất Tùy vào trạng thái của tập dữ liệu khac nhau để áp dụng các phươngpháp tính khoảng cách giữa hai người dùng, nhằm mục đích phát huy được tính hiệu quả
và khắc phục được nhược điểm của từng phương pháp
2.3 Phương pháp cải tiến K-hàng xóm gần nhất (k-nearest neighbor)
KNN (còn được gọi là phương pháp tiếp cận dựa trên bộ nhớ) sử dụng toàn bộ cơ
sở dữ liệu người dùng sản phẩm để tạo ra các dự đoán trực tiếp
Trang 21Hành vi đánh giá của người dùng có nhiều đặc điểm khác nhau như: người dùng luôn chocác đánh giá tương đối cao, người dùng khác khá khó tính lại cho đánh giá luôn ở mứcthấp, hoặc người dùng này lại đánh giá cho một sản phẩm chỉ vì lý do cá nhân nào đấ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ạigặ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 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ị chongườ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 cứu của mình vềmột phương pháp khuyến nghị dựa trên một tập người dùng tương tự nhất là phương phápK-láng giềng gần nhất Thuật toán dựa trên nguyên tắc thực tế là nếu chúng ta muốn dựđoán hành vi của một cá nhân nào đó, chúng ta bắt đầu bằng cách nhìn vào các hành vicủa những cá nhân gần nhất với cá nhân đó Và giá trị trung bình của các hành vi của cácláng giềng này sẽ dự đoán hành vi của cá nhân đó
Bài toán:
Cho tập hữu hạn U={u1, u2,…., uN} là tập N người dùng; P={p1, p2, …, pM} là tập Mcác sản phẩm có thể tư vấn cho người dùng ua
Một người dùng dựa trên phương pháp lọc cộng tác KNN bao gồm hai giai đoạn chính là:
Giai đoạn tìm k người dùng gần nhất (hay còn gọi là giai đoạn hình thành vùng lâncận)
Giai đoạn khuyến nghị sản phẩm
Với mỗi giai đoạn thì có rất nhiều phương pháp để thực hiện, tuy nhiên ở đây tôi chỉ trìnhbày mỗi giai đoạn một phương pháp
K-láng giềng gần nhất được phân ra làm hai phương pháp cơ bản là:
2.3.1 Thuật toán KNN dựa trên người dùng
Yêu cầu thuật toán: Tìm tập K=(ux1, ux2,…,uxk) người dùng tương tự nhất với ua (xác địnhvùng lân cận) Sau đó, dựa vào đánh giá của K người dùng này với sản phẩm pj để dựđoán đánh giá của người dùng ua với sản phẩm pj Các bước tiến hành:
Bước 1: Để tìm được k người dùng gần nhất thì sử dụng một trong bốn phương pháp đãnêu ra ở trên để tính khoảng cách của người dùng hiện tại ua với những người dùng khác.Sau khi đã có khoảng cách giữa ua và ui là d(ua, ui) thì tôi dựa vào các khoảng cách đó đểtìm ra k người dùng gần nhất (ux1,ux2,…uxk) với ua:
Trang 22b Với k≠1 thì ta có: Những vấn đề nảy sinh và giải pháp:
Khi đã có k người dùng gần nhất thì lựa chọn người dùng uxi nào để dựa vào đánhgiá của người dùng đó với pj để dự đoán đánh giá của người dùng ua cho sản phẩm
pj, nếu chọn tất cả thì phải tổng hợp ra sao để ra được một dự đoán đánh giá rxj (làgiá trị dự đoán được tổng hợp của k người dùng gần nhất đối với sản phẩm pj).Trong trường hợp này, tôi có công thức dự đoán đánh giá raj bằng công thức sau:
k
raj rxijhi (uxi )
i1
Trong đó:
+ rxij là đánh giá của người dùng uxi cho sản phẩm j
+ hi(uxi) là mức độ ảnh hưởng của người dùng uxi trong việc đưa ra dự đoán đánh giá
rxj, hi(uxi) được tính bằng công thức sau:
Trang 23Trong hầu hết trường hợp của dự án Netflix, hiệu quả thuật toán K-láng giềng gần nhấtdựa trên người dùng là kém hơn so với thuật toán K-láng giềng gần nhất dựa trên sảnphẩm Điều này là do các dữ liệu dựa trên người dùng thường thưa thớt (tức là rất ít khảnăng một sản phẩm được đánh giá bởi 1 hoặc 2 người, và rất có thể là một người dùng chỉđánh giá 1 hoặc 2 sản phẩm) Ngoài ra, vì thông thường thì người dùng nhiều hơn so vớisản phẩm, nên thuật toán K-láng giềng gần nhất dựa trên người dùng cũng dẫn đến mộtthách thức tính toán
2.3.2 Thuật toán KNN dựa trên sản phẩm: Input:
Người dùng u và tập N các sản phẩm
Output: Dự đoán đánh giá của người dùng u với sản phẩm m dựa vào các đánh giácủa người dùng u với các sản phẩm j ∈ K sản phẩm tương tự nhất với m
Trang 24Thuật toán KNN dựa trên sản phẩm[2] là thuật toán rất đơn giản mà mang lại hiệu quả caotrong vấn đề khuyến nghị người dùng Triết lý của nó là như sau: để xác định đánh giá củangười dùng u trên sản phẩm m, chúng ta có thể tìm thấy các sản phẩm khác tương tự nhưsản phẩm m, và dựa trên những đánh giá của u xếp hạng cho những sản phẩm tương tự đểchúng ta suy ra đánh giá của người dùng u trên sản phẩm m
Để xác định sản phẩm nào là tương tự, tôi sử dụng hệ số tương tự cosin để xác định độtương tự giữa hai sản phẩm a và b, hệ số tương tự cosin được định nghĩa lại như sau:
Phương pháp KNN tìm thấy K những sản phẩm tương tự nhất với mỗi sản phẩm bằngcách sử dụng phương pháp hệ số tương tự Cosine được định nghĩa trên, sau đó sử dụngcác phương tiện có trọng số để dự đoán xếp hạng
Tôi có công thức tính K-láng giềng gần nhất dựa trên sản phẩm như sau:
Ruj là đánh giá mà người dùng u đã đánh giá sản phẩm j
Pum là dự đoán đánh giá của người dùng u với sản phẩm m