3.2.1. Môi trường thực nghiệm
Tôi tiến hành thực nghiệm dựa trên các cơ sở sau:
Cấu hình máy: Chip Intel(R) Core i3, Ram 2GB, 32-bit
Ngôn ngữ lập trình: Python
Phần mềm hỗ trợ: Python 2.7.8 và Pycharm 3.4.1, cmd trên Windows 7
Tập dữ liệu sử dụng để thực nghiệm: Movielens gói dữ liệu 100.000 đánh giá được đánh giá bởi 1000 người dùng với 1700 bộ phim.
Các phương pháp, thuật toán để tiến hành thực nghiệm và đánh giá: Manhattan , Euclidean, Pearson, Cosine, K-nearest neighbor và thuật toán SGD.
3.2.2. Phương pháp tiến hành thực nghiệm
Để có thể tiến hành so sánh các phương pháp thì tôi dựa vào bộ dữ liệu 100.000 đánh giá của Movielens để thực nghiệm. Tôi tiến hành thực nghiệm các bước sau với mỗi phương pháp và thuật toán được nghiên cứu và trình bày trong luận văn như mục đích thực nghiệm đã nêu: đầu tiên, tôi sử dụng tập u1.test làm tập dữ liệu kiểm tra và u1.base làm tập dữ liệu huấn luyện để tiến hành thực nghiệm: dự đoán các đánh giá rx của người dùng dựa vào tập dữ liệu huấn luyện u1.base. Như vậy, với mỗi người dùng ui sẽ có hai giá trị là: dự đoán đánh giá rx và đánh giá thực tế rij. Chúng tôi sử dụng hàm sai số RMSE để tiến hành tính giá trị sai số của những dự đoán so với những giá trị thực tế rij. Sau khi thực nghiệm với tập dữ liệu u1.test tôi thu được giá trị RMSE1. Để kết quả thực nghiệm đạt hiệu quả tôi tiến hành việc kiểm thử lặp đi lặp lại nhiều lần bằng cách: chọn tập dữ liệu kiểm tra khác nhau để tiến hành thực nghiệm dựa trên các phương pháp đã nêu .Tôi tiến hành tương tự với các bộ tập dữ liệu ui.test và ui.base tôi thu được các giá trị RMSEi (với i=2..5)
Như vậy, với mỗi phương pháp tôi sẽ thu được các giá trị RMSEi (với i=1..5) tương ứng sau 5 lần thử nghiệm. Từ đây, tôi tìm được sai số trung bình của mỗi phương pháp theo công thức tính RMSEtb.
Đối với mỗi phương pháp sẽ tìm ra được một giá trị RMSEtb tương ứng, tôi sẽ so sánh mức độ hiệu quả của các phương pháp dựa vào các giá trị RMSEtb, giá trị RMSEtb
3.3. So sánh và đánh giá kết quả thực nghiệm 3.3.1. Kết quả thực nghiệm 3.3.1. Kết quả thực nghiệm
Sau khi tiến hành thực nghiệm trên 5 tập dữ liệu kiểm tra khác nhau bằng các phương pháp lần lượt là: Manhattan , Euclidean, Pearson, Cosine, K-nearest neighbor và thuật toán SGD thì tôi thu được kết quả sai số bình phương RMSE với từng tập dữ liệu kiểm tra và RMSEtb của 5 lần kiểm thử của từng phương pháp thể hiện ở bảng 3.2 sau: Phương pháp Tập dữ liệu test RMSETB Tập số 1 Tập số 2 Tập số 3 Tập số 4 Tập số 5 Manhattan 1.861018 1.675538 1.612171 1.849643 1.927305 1.785135 Euclidean 2.070323 1.952278 1.838074 1.933170 1.991735 1.957116 Pearson 1.368335 1.353072 1.349650 1.347620 1.352212 1.354178 Cosine 1.382027 1.291765 1.306816 1.388582 1.386989 1.351236 K-nearest neighbor 1.338633 1.354632 1.339307 1.296286 1.322525 1.330277 Thuật toán SGD 1.19697 0.81295 1.26116 0.9704 0.94966 1.038228
Bảng 3.2: Giá trị RMSE và RMSEtb thực nghiệm trên tập dữ liệu Movielens
Biểu đồ biểu thị các giá trị RMSE của từng phương pháp được kiểm thử trên 5 tập dữ liệu kiểm tra khác nhau và các tập dữ liệu huấn luyện khác nhau.
Biểu đồ 3.1: RMSE sau 5 lần thực nghiệm với tập dữ liệu Movielens
Biểu đồ biểu thị các giá trị RMSEtb của các phương pháp và thuật toán đã nêu.
3.3.2. So sánh và đánh giá
Từ các số liệu và kết quả thực nghiệm đã được đưa ra ở trên, ta có thể đưa ra một số nhận định sau:
3.3.2.1. Các phương pháp cơ sở
Tính hiệu quả: Đối với các phương pháp cơ bản thì ta thấy K-nearest neighbor
cho kết quả RMSEtb nhỏ nhất, từ những nghiêm cứu và tìm hiểu cho đến việc phân tích các giá trị sau thực nghiệm ta có thể thấy được phương pháp K-nearest neighbor bên cạnh việc kế thừa những ưu điểm của các phương pháp trước trong vấn đề lọc cộng tác mà còn khác phục những hạn chế của lọc cộng tác dựa trên người dùng.
Tính ổn định: Tập dữ liệu của Movielens tôi sử dụng để thực nghiệm có đặc điểm
là thưa thớt và người dùng có những hành vi khác nhau. Căn cứ vào các kết quả kiểm thử các thuật toán lọc cộng tác ở bảng 1 thì mỗi cách tiếp cận bằng phương pháp khác nhau cho ra những kết quả đo lường khác nhau, thử nghiệm trên các tập dữ liệu kiểm tra khác nhau cũng cho ra các giá trị sai số RMSE khác nhau. Tuy nhiên ta có thể thấy được qua biểu đồ 1 thì các phương pháp Pearson, Cosine và KNN có tính ổn định hơn hai phương pháp Manhattan và Euclidean. Nghĩa là dù tiến hành trên các tập dữ liệu kiểm tra và huấn luyện khác nhau nhưng sai số RMSE của các phương pháp Pearson, Cosine và KNN thì nhỏ hơn đáng kể. Kết quả thu được như trên vì lý do như đã nghiên cứu và trình bày trong chương 2 hai phương pháp Pearson, Cosine đạt hiệu quả khi sử dụng với tập dữ liệu thưa thớt hoặc có những hành vi khác nhau trong việc đánh giá sản phẩm vì thế trong trường hợp này 2 phương pháp này đạt hiệu quả hơn so với phương pháp Manhattan và Euclidean chỉ phù hợp khi tập dữ liệu là dày đặc. 3.3.2.2. Thuật toán SGD Qua quan sát ở bảng 3.2, biểu đồ 3.1 và biểu đồ 3.2 thì ta có thể thấy kết quả sai số bình phương trung bình RMSE của các phương pháp thì có thể thấy thuật toán SGD đạt được hiệu quả vượt trội và tối ưu hơn nhiều so với các phương pháp khác. Bên cạnh đó, các phương pháp cơ bản đã được trình bày ở chương 2 chỉ quan tâm đến hai yếu tố người dùng và sản phẩm, còn phương pháp nhân tố tiềm ẩn hay cụ thể hơn là thuật toán SGD quan tâm chi tiết hơn rất nhiều cụ thể là đến từng nhân tố như: thể loại, đạo diễn, diễn viên… đi sâu vào các đặc tính của người dùng và sản phẩm.
Ngoài ra, do SGD chỉ sử dụng một số mẫu dữ liệu huấn luyến chứ không phải
truy cập toàn bộ dữ liệu huấn luyện, hơn nữa trọng số θ được cập nhật ngay từ mẫu
huấn luyện đầu tiên nên thuật toán SGD mang lại hiệu quả về thời gian đáng kể so với các phương pháp khác. Bên cạnh đó, độ tiệm cận về 0 nhanh, mang lại giá trị xấp xỉ gần nhất tối ưu và ngẫu nhiên (phụ thuộc vào mẫu huấn luyện lựa chọn). Từ đó cải thiện hiệu quả tối đa của hệ thống khuyến nghị và đưa ra các khuyến nghị hữu ích cho người sử dụng.
KẾT LUẬN
1. Kết quả đạt được:
Nghiên cứu tổng quát về hệ thống khuyến nghị: các kỹ thuật lọc cho hệ thống khuyến nghị, luận văn nghiên cứu tập trung về kỹ thuật lọc cộng tác.
Trình bày nghiên cứu về các phương pháp cơ bản để tìm kiếm một hoặc một nhóm người dùng gần nhất:
+ Phương pháp cơ bản: Manhattan, Euclidean, Pearson, Cosine
+ Phương pháp cải tiến lọc cộng tác: K-nearest neighbor dựa vào người dùng và K-nearest neighbor dựa vào sản phẩm Luận văn trình bày về mô hình nhân tố tiềm ẩn với phương pháp ma trận thừa số, cụ thể hơn là thuật toán SGD (Stochastic gradient descent) mục đích để cực tiểu hóa hàm sai số, áp dụng đạt hiệu quả khi tập dữ liệu huấn luyện lớn, tối ưu thời gian và đạt hiệu quả cao trong các hệ thống khuyến nghị. Sau đó, chúng tôi tiến hành thực nghiệm trên tập dữ liệu Movielens gói dữ liệu 100.000 đánh giá được đánh giá bởi 1000 người dùng với 1700 bộ phim. Cuối cùng, chúng tôi sẽ phân tích, so sánh và đánh giá tính hiệu quả từng phương pháp và thuật toán đã được trình bày dựa trên kết quả thực nghiệm.
2. Hướng nghiên cứu tiếp theo của luận văn
Hướng nghiên cứu tiếp theo sẽ tập trung vào việc kết hợp giữa kỹ thuật lọc cộng tác và kỹ thuật lọc dựa vào nội dung, sau đó tiến hành kiểm nghiệm hiệu quả. Đây cũng là chủ đề mang tính thời sự cao của cộng đồng nghiên cứu về lọc thông tin
TÀI LIỆU THAM KHẢO
[1]. Ron zacharski, A programmer’s Guide to Data Mining, The Ancient Art of the
Numerati, 2012
[2]. Zheng Wen, Recommendation System Based on Collaborative Filtering, 2008
[3]. Yehuda Koren, Robert Bell and Chris Volinsky, Matrix factorization techniques
for recommender system, IEEE Computer, 2009
[4]. Badrul Sarwar, George Karypis, Joseph Konstan, and John Riedl, Item-Based
Collaborative Filtering Recommendation Algorithms, University of Minnesota,
Minneapolis, MN 55455
[5]. Léon Bottou, Stochastic Gradient Descent Tricks, Microsoft Research, Redmond,
WA,2012
[6]. Shameem Ahamed Puthiya Parambath, Matrix Factorization Methods for
Recommender Systems, Master's Thesis in Computing Science, 2013.
[7]. Francesco Ricci, Lior Rokach, Bracha Shapira, Paul B. Kantor, Recommender
Systems Handbook, Springer, 2011.
[8]. Xiaoyuan Su, Taghi M. Khoshgoftaar, A Survey of Collaborative Filtering
Techniques,Department of Computer Science and Engineering, Florida Atlantic
University, 2009.
[9]. Michael D.Ekstrand, John T. Riedl, Joseph A. Konstan, Collaborative Filtering
Recommender Systems, University of Minnesota, 2011
[10].Francesco Ricci, Lior Rokach, Bracha Shapira, Paul B. Kantor, Recommender
Systems Handbook, Springer, 2011.
[11].Michael D.Ekstrand, John T. Riedl, Joseph A. Konstan, Collaborative Filtering
Recommender Systems, University of Minnesota, 2011
[12].T. Hofmann, Latent Semantic Models for Collaborative Filtering, ACM Trans.
Inf.Syst., 22(1):89-115, 2004. [13].http://www.amazon.com [14].https://www.netflix.com [15].https://movielens.umn.edu
[16].https://lists.cc.gatech.edu/pipermail/mlpack/2013-April/000077.html
[17].Jonathan L. Herlcocker, Joseph A. Konstan, Loren G. Terveen, and John T. Riedl,
Evaluating Collaborative Filtering Recommender Systems, Oregon State University and