Luận văn Ứng dụng các mô hình học sâu vào kĩ thuật lọc cộng tác dựa trên mô hình cho các hệ thống khuyến nghị thương mại

pdf 69 trang thiennha21 14/04/2022 4890
Bạn đang xem 20 trang mẫu của tài liệu "Luận văn Ứng dụng các mô hình học sâu vào kĩ thuật lọc cộng tác dựa trên mô hình cho các hệ thống khuyến nghị thương mại", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfluan_van_ung_dung_cac_mo_hinh_hoc_sau_vao_ki_thuat_loc_cong.pdf

Nội dung text: Luận văn Ứng dụng các mô hình học sâu vào kĩ thuật lọc cộng tác dựa trên mô hình cho các hệ thống khuyến nghị thương mại

  1. ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CƠNG NGHỆ TRẦN ANH DŨNG Ứng dụng các mơ hình học sâu vào kĩ thuật lọc cộng tác dựa trên mơ hình cho các hệ thống khuyến nghị thương mại Ngành: Cơng nghệ thơng tin Chuyên ngành: Quản lý Hệ thống thơng tin Mã số: 8480205.01 LUẬN VĂN THẠC SĨ QUẢN LÝ HỆ THỐNG THƠNG TIN NGƯỜI HƯỚNG DẪN KHOA HỌC: TS. TRẦN TRỌNG HIẾU Hà Nội – 09/2020
  2. Mục lục LỜI CẢM ƠN iii LỜI CAM ĐOAN iv DANH MỤC KÝ HIỆU VÀ CHỮ VIẾT TẮT v DANH MỤC HÌNH VẼ vi DANH MỤC BẢNG BIỂU viii Chương 1: Tổng quan về hệ thống khuyến nghị 1 1. Giới thiệu 1 2. Một số khái niệm chung về hệ thống khuyến nghị 2 3. Phương thức hoạt động của Hệ khuyến nghị 4 3.1. Phát biểu bài tốn khuyến nghị 5 3.2. Các phương pháp tiếp cận xây dựng hệ thống khuyến nghị. 5 4. Các tiêu chuẩn đánh giá hệ khuyến nghị 12 4.1. Trung bình lỗi tuyệt đối 13 4.2. Sai số bình phương trung bình 13 Chương 2: Hệ khuyến nghị dựa trên lọc cộng tác sử dụng kỹ thuật học sâu 15 1. Bài tốn khuyến nghị dựa trên cộng tác 15 1.1. Lọc cộng tác dựa vào bộ nhớ 15 1.2. Lọc cộng tác dựa trên mơ hình 18 2. Các mơ hình học sâu kết hợp với hệ khuyến nghị 21 2.1. Phân loại hệ thống khuyến nghị dựa trên kiến trúc hệ thống 21 2.2. Vai trị của các kỹ thuật học sâu trong bài tốn khuyến nghị 27 2.3. Một số hạn chế khi áp dụng các mơ hình học sâu cho hệ khuyến nghị 28 Chương 3: Đề xuất mơ hình hệ khuyến nghị sử dụng kỹ thuật học sâu 29 1. Kiến trúc mơ hình 29 1.1. Lớp nhúng (Embedding layer): 29 1.2. Lớp nối (Concatenate layer): 31 1.3. Các lớp ẩn (Fully-connected layers): 32 1.4. Đầu ra hồi quy tuyến tính (Linear Regression Output): 36 i
  3. 1.5. Hàm mục tiêu của mơ hình: 37 2. Một số nhận xét về mơ hình 38 Chương 4: Cài đặt, thử nghiệm mơ hình đề xuất 39 1. Mơi trường và các cơng cụ được sử dụng 39 1.1. Bộ dữ liệu mẫu Movielens 39 1.2. Thư viện MxNet 39 1.3. Máy chủ Colaboratory 41 2. Thực nghiệm và đánh giá 42 2.1. Bộ dữ liệu Movielens-20M: 42 2.2. Cài đặt thí nghiệm và đánh giá kết quả thu được 47 2.3. Đánh giá 52 Kết luận 55 Tài liệu tham khảo 57 ii
  4. LỜI CẢM ƠN Trước tiên tơi xin dành lời cảm ơn chân thành và sâu sắc đến thầy giáo TS. Trần Trọng Hiếu – người đã hướng dẫn, khuyến khích, chỉ bảo và tạo cho tơi những điều kiện tốt nhất từ khi bắt đầu cho tới khi hồn thành cơng việc của mình. Tơi xin dành lời cảm ơn chân thành tới các thầy cơ giáo khoa Cơng nghệ thơng tin, trường Đại học Cơng nghệ, Đại học Quốc gia Hà Nội đã tận tình đào tạo, cung cấp cho tơi những kiến thức vơ cùng quý giá, bổ ích và đã tạo những điều kiện tốt nhất cho tơi trong suốt quá trình học tập, nghiên cứu tại trường. Cuối cùng, tơi xin cảm ơn tất cả những người thân yêu trong gia đình cùng tồn thể bạn bè, đồng nghiệp những người đã luơn giúp đỡ, động viên tơi trong quá trình học tập và nghiên cứu chương trình sau đại học tại Đại học Cơng nghệ, ĐHQGHN. Luận văn này được tài trợ bởi đề tài cấp ĐHQGHN mã số QG-19.23. iii
  5. LỜI CAM ĐOAN Tơi xin cam đoan rằng luận văn thạc sĩ Quản lý hệ thống thơng tin “Ứng dụng các mơ hình học sâu vào kĩ thuật lọc cộng tác dựa trên mơ hình cho các hệ thống khuyến nghị thương mại” là cơng trình nghiên cứu của riêng tơi, khơng sao chép lại của người khác. Trong tồn bộ nội dung của luận văn, những điều đã được trình bày hoặc là của chính cá nhân tơi hoặc là được tổng hợp từ nhiều nguồn tài liệu. Tất cả các nguồn tài liệu tham khảo đều cĩ xuất xứ rõ ràng và hợp pháp. Tơi xin hồn tồn chịu trách nhiệm và chịu mọi hình thức kỷ luật theo quy định cho lời cam đoan này. Hà Nội, ngày tháng năm 2020 Tác giả luận văn Trần Anh Dũng iv
  6. DANH MỤC KÝ HIỆU VÀ CHỮ VIẾT TẮT STT Ký hiệu Diễn giải Tiếng Việt 1 RS Recommender Hệ khuyến nghị System/RecSys 2 U User Người dùng 3 I Item Sản phẩm 4 IF Information Filtering Lọc thơng tin 5 CBF Content-Based Filtering Lọc thơng tin dựa trên nội dung 6 CF Collaborative Filtering Lọc thơng tin dựa trên cộng tác 7 R Interaction Matrix/Utility Ma trận ghi nhận đánh giá của người Matrix dùng đối với sản phẩm được tương tác 8 r Relevant Độ phù hợp 9 Sparsity problem Vấn đề dữ liệu thưa 10 Cold-start problem Vấn đề khởi động nguội 11 ML Machine Learning Học máy 12 DL Deep Learning Học sâu 13 RMSE Root Mean Squared Hàm sai số trung bình bình phương Error 14 MF Matrix Factorization Phân tích thừa số ma trận v
  7. DANH MỤC HÌNH VẼ Hình 1.1: Ma trận tương tác Người dùng – Sản phẩm 3 Hình 1.2: Cách thức hoạt động của lọc cộng tác 6 Hình 1.3: Cơ chế hoạt động lọc theo nội dung 7 Hình 1.4: Cơ chế lọc kết hợp 12 Hình 2.1: Quy trình khuyến nghị dựa trên cộng tác 15 Hình 2.2: Lọc cộng tác dựa theo người dùng 16 Hình 2.3: Lọc cộng tác dựa theo sản phẩm 17 Hình 2.4: Phân loại kiến trúc hệ khuyến nghị dựa trên các kỹ thuật học sâu 21 Hình 2.5: Mạng noron đa lớp 22 Hình 2.6: Bộ mã hĩa tự động 23 Hình 2.7: Mạng noron tích chập 24 Hình 2.8: Mạng noron hồi tiếp 25 Hình 2.9: Mạng noron sáng tạo đối nghịch 25 Hình 2.10: Mơ hình học sâu tăng cường [27] 26 Hình 3.1: Kiến trúc mơ hình Lọc cộng tác sâu 29 Hình 3.2: Vector thưa đại diện cho người dùng u 30 Hình 3.3: Nối vector đặc tính ẩn của các đối tượng để tạo thành vector đặc tính mới 32 Hình 3.4: Hoạt động của lớp ẩn 33 Hình 3.5: Kiến trúc mạng sâu MLP 34 Hình 3.6: Đồ thị hàm sigmoid 35 Hình 3.7: Minh họa thuật tốn hồi quy tuyến tính 36 Hình 4.1: Kiến trúc khung phần mềm MxNet 40 Hình 4.2: Số lượng phim xuất bản theo năm 43 Hình 4.3: Số lượng phim theo từng thể loại 43 Hình 4.4: Định dạng dữ liệu movies.csv 44 Hình 4.5: Thống kê bộ dữ liệu ml-20m 44 Hình 4.6: Thống kê dữ liệu rating theo thể loại phim 45 Hình 4.7: Số lượng rating theo từng thể loại phim 45 Hình 4.8: Định dạng dữ liệu genome_scores.csv 46 Hình 4.9: Ma trận điểm phù hợp Phim - Thẻ 47 vi
  8. Hình 4.10: Input layer với thơng tin thể loại phim 49 Hình 4.11: Kết quả tiền xử lý dữ liệu genome-scores 50 Hình 4.12: Input layer với thơng tin thể loại phim và thơng tin thẻ phim 50 Hình 4.13: Biểu đồ RMSE theo Epochs 53 Hình 4.14: Biểu đồ RMSE với kịch bản khởi động nguội 54 vii
  9. DANH MỤC BẢNG BIỂU Bảng 4-1: So sánh cơng cụ Colab và Colab Pro 42 Bảng 4-2: Thơng số dữ liệu mẫu Movielens-20M 43 Bảng 4-3: Thống kê sự ảnh hưởng của việc thay đổi cấu hình MLP lên giá trị RMSE 51 Bảng 4-4: Thống kê kết quả thí nghiệm 51 Bảng 4-5: Kết quả thí nghiệm kịch bản cold-start 52 viii
  10. Chương 1: Tổng quan về hệ thống khuyến nghị 1. Giới thiệu Trong quá trình phát triển của ngành thương mại bán lẻ hàng hĩa, dịch vụ, vấn đề nắm bắt thị hiếu, sở thích của người tiêu dùng là một vấn đề cĩ tính nền tảng, sống cịn của ngành mà bất kì người bán lẻ nào nếu muốn tồn tại trong thương trường đều cần phải giải quyết thật tốt. Trước khi máy tính ra đời, những người bán lẻ đã thực hiện nhiều biện pháp để ghi nhận thĩi quen của người tiêu dùng như sử dụng các hĩa đơn bán hàng để xem xét các mặt hàng thường được mua sắm cùng nhau, phỏng vấn người mua về sở thích mua sắm của họ để từ đĩ đưa ra những biện pháp giúp tối đa hĩa doanh thu, tối ưu hĩa chi phí của doanh nghiệp. Ví dụ, khi đi vào một cửa hàng sách quen thuộc, chủ cửa hàng sẽ giới thiệu cho người khách một vài quyển sách hoặc tờ báo mà người khách đĩ cĩ thể quan tâm dựa trên sở thích hoặc thĩi quen của khách. Hiện nay với sự phát triển bùng nổ của Internet đã làm xuất hiện các nhà cung cấp hàng hĩa, dịch vụ hoạt động trực tuyến và mạng xã hội cung cấp vơ số thơng tin và sản phẩm, dịch vụ mới. Ví dụ, năm 2019 mỗi phút cĩ khoảng 500 giờ phát video clip được tải lên Youtube [35] , danh mục sản phẩm của Amazon năm 2018 vào khoảng 12.000.000 sản phẩm [36], năm 2019 số lượng tweet xuất hiện mỗi ngày trên Twitter là 500 triệu dịng [37], Với lượng thơng tin đồ sộ như vậy, cĩ thể nĩi Internet đã làm cho người dùng khơng cịn cĩ đủ thời gian để xem xét lựa chọn tất cả các thơng tin, phim, tạp chí hay bài hát Người dùng khơng biết mình nên xem phim 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. Hơn nữa, đối với các doanh nghiệp việc phục vụ hàng hĩa, dịch vụ đúng sở thích, thị hiếu của khách hàng giúp tối đa hĩa doanh thu, đồng thời giúp lập kế hoạch dự trữ hàng hĩa thích hợp để tối ưu hĩa chi phí vận hành, từ đĩ làm gia tăng lợi nhuận cho doanh nghiệp. Trong lĩnh vực xây dựng hệ tư vấn cĩ 2 nhiệm vụ cơ bản cần được giải quyết là dự đốn xếp hạng cho từng mặt hàng và gợi ý danh sách mặt hàng [1]. Nhiệm vụ dự đốn xếp hạng (rate prediction) nhằm mục tiêu tối ưu hĩa dự đốn mức độ ưa thích của người dùng đối với từng mặt hàng cụ thể, trong khi đĩ nhiệm vụ gợi ý danh sách mặt hàng (ranking) nhằm giải quyết vấn đề gợi ý cho người dùng danh sách mặt hàng mà họ nhiều khả năng 1
  11. cĩ tương tác nhất. Trong hai nhiệm vụ nĩi trên, nhiệm vụ dự đốn xếp hạng của người dùng cho sản phẩm đĩng vai trị quan trọng vì điểm xếp hạng của người dùng phản ánh mức độ hài lịng của người dùng đối với sản phẩm/dịch vụ. Trong luận văn sẽ tập trung giải quyết nhiệm vụ dự đốn xếp hạng của người dùng đối với sản phẩm. 2. Một số khái niệm chung về hệ thống khuyến nghị Hệ thống khuyến nghị (Recommender System viết tắt là RS) là hệ thống sử dụng các kỹ thuật và cơng cụ phần mềm xử lý dữ liệu người dùng và dữ liệu về sản phẩm nhằm đáp ứng nhu cầu của người dùng về một sản phẩm hoặc dịch vụ nào đĩ. Trên cơ sở thơng tin trong quá khứ về hành vi của người dùng, hệ thống thực hiện khai phá thơng tin về sở thích, thị hiếu tiêu dùng từ đĩ đưa ra những gợi ý để hỗ trợ người dùng đưa ra quyết định lựa chọn sản phẩm, dịch vụ đáp ứng đúng sở thích của mình. Mặt hàng (Item) là thuật ngữ chung để chỉ những gì người dùng cĩ tương tác trong hệ thống khuyến nghị. Item cĩ thể là sách, phim, truyện, tin tức Thơng thường hệ thống khuyến nghị sẽ được xây dựng phù hợp với một loại hình sản phẩm nhất định để đảm bảo hiệu quả khuyến nghị cho Item đĩ. Trên thực tế để thu thập dữ liệu Hồ sơ người dùng (User profile), người ta thường sử dụng theo hai phương pháp chính là phương pháp phản hồi tường minh (explicit feedback) và phương pháp phản hồi ẩn (implicit feedback). Đối với phương pháp phản hồi tường minh, hệ thống yêu cầu người dùng thực hiện xếp hạng cụ thể cho từng Item để xây dựng hồ sơ người dùng. Phương pháp này cung cấp dữ liệu người dùng trực tiếp cho hệ thống khuyến nghị (khơng phải thực hiện các cơng đoạn biến đổi trung gian) và kết quả khuyến nghị được đánh giá là đáng tin cậy hơn cả [1]. Tuy được cho là đem lại kết quả khuyến nghị đáng tin cậy hơn nhưng phương pháp này yêu cầu người dùng phải thực hiện thêm một số thao tác với hệ thống, do đĩ trong một số trường hợp làm giảm trải nghiệm người dùng. Bên cạnh đĩ, tâm lý chung của người dùng khơng muốn chia sẻ quá nhiều thơng tin mang tính chất riêng tư do đĩ làm cho phương thức thu thập phản hồi tường minh thường gặp khĩ khăn trong quá trình triển khai thực tế. Nhằm khắc phục mặt hạn chế của phương pháp thu thập phản hồi tường minh, phương pháp thu thập phản hồi ẩn ghi nhận những dấu vết mà người dùng để lại trên hệ 2
  12. thống như lịch sử mua hàng, lịch sử truy cập website, thời gian xem một trang web, số lần click chuột vào các siêu liên kết, để suy luận thơng tin về sở thích của người dùng. Phương pháp này giúp cải thiện trải nghiệm của người dùng đối với hệ thống tuy nhiên khả năng mơ tả sở thích của người dùng được cho là khơng tốt bằng phương pháp phản hồi tường minh do hệ thống phải thực hiện các khâu biến đổi trung gian để trích xuất thơng tin từ hành vi của người dùng [1]. Ma trận tương tác Người dùng – Sản phẩm (Utility Matrix/User – Item matrix) là một cơ sở dữ liệu mơ tả sở thích của mỗi User với từng Item trong hệ thống. Về mặt hình thức, cơ sở dữ liệu này cĩ thể biểu diễn dưới dạng ma trận trong đĩ mỗi hàng tương ứng với một User, mỗi cột tương ứng với một Item, giá trị tại mỗi ơ của ma trận chính là giá trị rating của User cho Item đĩ. Mặt hàng 1 Mặt hàng 2 Mặt hàng 3 Mặt hàng n Người dùng 1 1 3 5 ? Người dùng 2 2 ? 4 2 Người dùng m ? 2 1 3 푹 Hình 1.1: Ma trận tương tác Người dùng – Sản phẩm Xuất phát từ nguyên nhân tâm lý, người dùng khơng phải khi nào cũng đánh giá tất cả các Item mà họ đã từng trải nghiệm, thơng thường người dùng chỉ đánh giá Item trong trạng thái tích cực (rất thích) hoặc tiêu cực (rất ghét). Vì vậy trên thực tế ma trận tương tác Người dùng – Sản phẩm nĩi trên thường bị khuyết giá trị ở rất nhiều ơ, vấn đề này được gọi là vấn đề dữ liệu thưa (data sparsity)[2]. Vấn đề dữ liệu thưa của ma trận tương tác dẫn đến hệ quả các thuật tốn khuyến nghị dựa trên bộ nhớ (memory-based recommendation algorithms)[1] hoạt động khơng hiệu quả. Bên cạnh đĩ, trường hợp trong hệ thống xuất hiện người dùng hoặc item mới chưa cĩ tương tác nào thì ma trận Người dùng – Sản phẩm sẽ xuất hiện các hàng/cột bị trống hồn tồn. Vấn đề này được gọi là vấn đề khởi động nguội (cold-start problem)[2] xảy ra đối với các hệ khuyến nghị dựa trên cộng tác khi hệ thống gặp phải những item hồn tồn khơng cĩ tương tác nào, hệ khuyến nghị khơng thể 3
  13. khai thác được thơng tin sở thích giống nhau giữa các nhĩm người dùng/item để đưa ra khuyến nghị. 3. Phương thức hoạt động của Hệ khuyến nghị Trong thực tế, khi người tiêu dùng thực hiện hành vi mua hàng, việc ra quyết định của họ thường được đưa ra theo hai cách tiếp cận chính: Một là xem xét những thơng tin chi tiết về sản phẩm như tính năng, cơng dụng, thành phần, tùy thuộc vào mức độ phù hợp với nhu cầu sử dụng để đưa ra quyết định. Hai là người dùng cĩ thể tham khảo ý kiến của những người xung quanh về mức độ hài lịng đối với sản phẩm để đưa ra quyết định mua sắm của mình. Xuất phát từ quan sát nêu trên, hệ thống RS mơ phỏng lại quá trình ra quyết định của người dùng theo hai cách tiếp cận chính là khuyến nghị dựa trên lọc theo nội dung và khuyến nghị dựa trên lọc theo cộng tác. Trong cách tiếp cận dựa trên lọc theo nội dung, hệ thống RS dựa trên lịch sử tương tác của người dùng với đối tượng và thơng tin về thuộc tính của đối tượng (nội dung của đối tượng) để tìm ra các thuộc tính (đặc tính) cĩ ảnh hưởng lớn đến đánh giá của người dùng đĩ. Đặc điểm sở thích của người dùng dựa trên đặc tính của sản phẩm được biểu diễn bởi vector 푃 표 푖푙푒(푈) = (푤1, 푤2, , 푤푛) cĩ các phần tử tương ứng với các yếu tố nội dung cấu tạo nên sản phẩm, giá trị trọng số 푤푖 mơ tả tầm quan trọng của thành phần nội dung thứ 푖 ảnh hưởng tới sở thích của người dùng. Tương tự với việc xây dựng User Profile, hệ thống RS sử dụng các kỹ thuật Truy hồi thơng tin (Information Retrieval – IR) nhằm phân tích đối tượng I dưới dạng vector trọng số 표푛푡푒푛푡( ) = (푤1, 푤2, , 푤푛) của các thành phần nội dung. Ví dụ, thơng thường thơng tin mơ tả về đối tượng thường được thể hiện dưới dạng văn bản như các đoạn văn, bài viết, mẩu tin ngắn, hệ thống RS sẽ sử dụng các kỹ thuật IR trích xuất đặc tính như từ khĩa, n-grams, thực thể, để xây dựng mơ hình đối tượng dưới dạng vector từ khĩa [3]. Như vậy, theo cách tiếp cận lọc dựa trên nội dung, hệ thống RS đã thực hiện ánh xạ sở thích của người dùng và nội dung của đối tượng vào cùng một khơng gian vector (khơng gian thuộc tính của sản phẩm). Do đĩ để đánh giá độ phù hợp giữa sản phẩm I với người dùng U, hệ thống RS cĩ thể sử dụng độ đo cosine để đo lường sự tương đồng giữa 2 vector: 4
  14. (푈, ) = 표푠(푃 표 푖푙푒⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗(⃗⃗⃗푈⃗⃗⃗) , 표푛푡푒푛푡⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗(⃗⃗ ⃗⃗) ) (1) Trong cách tiếp cận dựa trên lọc theo cộng tác, hệ thống RS khai phá những nhĩm người dùng “tương tự” nhau dựa trên hành vi quá khứ của người dùng được ghi nhận trong ma trận tương tác Người dùng – Sản phẩm. Hệ thống RS sẽ dự đốn độ phù hợp (푈, ) giữa người dùng hiện tại 푈 với đối tượng thơng qua độ phù hợp (푈푗, ) của những người dùng 푈푗 khác cĩ cùng sở thích với 푈. 3.1. Phát biểu bài tốn khuyến nghị Inputs: - Cho 푈 là tập hợp tất cả người dùng trong hệ thống; mỗi người dùng 푖 ∈ 푈 cĩ các đặc điểm 푖 = { 푖1, 푖2, 푖 } - Cho là tập tất cả các đối tượng (sách, bài hát, phim ); mỗi đối tượng 푣푗 ∈ cĩ các đặc điểm 푣푗 = {푣푗1, 푣푗2, 푣푗 }. - Dữ liệu xếp hạng 푖푗 ∈ ℝ là giá trị xếp hạng của người dùng 푖 đối với sản phẩm 푣푗. Output: - Giá trị xếp hạng dự đốn 푖푗̂ của người dùng 푖 cho những đối tượng 푣푗 chưa cĩ tương tác (xếp hạng). Để giải bài tốn này cần xây dựng hàm ( 푖, 푣푗) ước lượng giá trị xếp hạng của người dùng 푖 cho đối tượng 푣푗 sao cho sai số giữa giá trị dự đốn 푖푗̂ với các giá trị xếp hạng 푖푗 đã biết trong ma trận tương tác là nhỏ nhất. 3.2. Các phương pháp tiếp cận xây dựng hệ thống khuyến nghị. Sau đây chúng ta xem xét về tổng quan các phương pháp tiếp cận để xây dựng hệ thống khuyến nghị dựa theo [1]. 3.2.1. Lọc nội dung Hệ thống khuyến nghị ghi nhận user profile dưới dạng vector ⃗ = ( 1, 2, , 푛), trong đĩ 푖 là trọng số thể hiện mức độ quan tâm của người dùng đối với từng thuộc tính của sản phẩm. Vector item profile 푣 = (푣1, 푣2, , 푣푛) biểu diễn thơng tin sản phẩm thơng 5
  15. qua các thuộc tính 푣푖. Như vậy thơng tin về sở thích của người dùng và thơng tin của sản phẩm được ánh xạ vào cùng khơng gian vector các thuộc tính của sản phẩm, sự phù hợp giữa sở thích của người dùng và sản phẩm được đo bằng gĩc lệch giữa 2 vector profile như minh họa trong Hình 1.2. Hình 1.2: Cách thức hoạt động của lọc cộng tác Để đánh giá độ tương đồng giữa 2 vector ⃗ và 푣 để đưa ra khuyến nghị, hệ thống so sánh bằng cosine gĩc lệch giữa 2 vector: ⃗ 푣 ∑푛 . 푣 푠푖 푖푙 푖푡 = 표푠(휃) = = 푖=1 푖 푖 ‖ ⃗ ‖ ⋅ ‖푣 ‖ 푛 푛 (2) √∑ 2 . √∑ 푣2 푖=1 푖 푖=1 푖 6
  16. Đã thích Các bộ phim tương tự nhau Khuyến nghị Hình 1.3: Cơ chế hoạt động lọc theo nội dung Những ưu điểm của phương pháp khuyến nghị dựa trên nội dung: Một là, hệ thống khơng yêu cầu cần cĩ quá nhiều dữ liệu từ những người dùng khác để đạt được độ chính xác khuyến nghị chấp nhận được. Đối với phương pháp lọc dựa trên cộng tác hệ thống RS cần phải phân tích tồn bộ dữ liệu tương tác để tìm ra các quy luật (là những sản phẩm được người dùng ưa thích) thì mới cĩ thể đưa ra gợi ý, tuy nhiên với phương pháp lọc dựa trên nội dung thì hệ thống chỉ dựa trên thơng tin nội dung sản phẩm và dữ liệu tương tác của từng người dùng cụ thể để đưa ra gợi ý. Hai là, cĩ thể đưa ra khuyến nghị về các sản phẩm mới dựa trên thơng tin mơ tả cĩ sẵn mà khơng cần phải cĩ dữ liệu tương tác từ người dùng. Điều này xuất phát từ cơ chế hoạt động của lọc nội dung dựa trên phân tích về nội dung cấu tạo nên sản phẩm để đưa ra gợi ý, do đĩ khi một sản phẩm mới xuất hiện trong hệ thống thì chỉ cần nội dung của sản phẩm này “tương tự” với những sản phẩm trước đĩ đã được người dùng ưa thích sẽ được hệ thống khuyến nghị cho người dùng. Ba là, trong trường hợp người dùng cĩ những sở thích đặc thù dựa trên nội dung của sản phẩm nhưng những sản phẩm này lại khơng phổ biến trong dữ liệu ma trận tương tác thì hệ thống vẫn cĩ khả năng khám phá được nhờ thơng tin nội dung. 7
  17. Bốn là, mơ hình cĩ khả năng giải thích tốt (self-explanable) về những nhân tố cĩ ảnh hưởng đến sở thích của người dùng thơng qua các giá trị trọng số của vector profile của người dùng. Giá trị trọng số càng lớn chứng tỏ mức độ quan tâm càng cao của người dùng đối với yếu tố nội dung của sản phẩm, nhờ vậy nhà kinh doanh cĩ thể dựa vào thơng tin này để tăng cường những đặc tính/nội dung phù hợp với người dùng. Bên cạnh những ưu điểm đã nêu, phương pháp khuyến nghị dựa trên nội dung gặp một số nhược điểm như sau: Hệ thống yêu cầu chất lượng thơng tin nội dung của sản phẩm cao: Đối với các sản phẩm multimedia (phim ảnh, âm nhạc, ) hiện nay chưa cĩ các phương pháp rút trích thơng tin cĩ hiệu quả với những loại dữ liệu này, do đĩ việc xây dựng vector thuộc tính cho những sản phẩm dạng này gặp rất nhiều khĩ khăn, chất lượng thơng tin khơng tốt. Khi chất lượng thơng tin mơ tả đối tượng cĩ chất lượng kém hoặc bị lỗi thì phương pháp khuyến nghị dựa trên nội dung hoạt động khơng hiệu quả. Kết quả khuyến nghị do hệ thống đưa ra gặp hiện tượng “cứng nhắc” (Overspecialization): Hệ thống chỉ gợi ý được các sản phẩm cĩ các đặc tính đúng với profile của từng người dùng mà khơng tận dụng được thơng tin từ những người dùng khác cĩ sở thích tương tự. 3.2.2. Lọc cộng tác 3.2.2.1. Lọc cộng tác dựa trên bộ nhớ (Memory-based Collaborative Filtering) Dựa trên giá trị xếp hạng của người dùng trong ma trận Người dùng – Sản phẩm, hệ thống tính tốn độ tương đồng giữa người dùng hiện tại với những người dùng tương tự theo thủ tục gồm 02 bước như sau: Bước 1: Hệ thống tính tốn độ tương tự giữa những người dùng. ⋅ 훴 ,푖 ⋅ 푖 푠푖 푖푙 푖푡 ( , ) = 표푠( , ) = = , ‖ ‖2 × ‖ ‖2 2 2 (3) √훴 ,푖√훴 ,푖 Bước 2: Tính tốn giá trị xếp hạng dự đốn theo cơng thức: 8
  18. 푛 훴푖=1( ,푖 − ̅ ) × 푠푖 푖푙 푖푡 ( , ) ( , 푖) = ̅ + 푛 (4) 훴푖=1 푠푖 푖푙 푖푡 ( , ) Những ưu điểm của phương pháp lọc cộng tác dựa trên bộ nhớ: Một là, hệ thống RS khơng yêu cầu cần cĩ tri thức chuyên biệt miền để xây dựng mơ hình người dùng/sản phẩm. Bản chất của phương pháp lọc dựa trên cộng tác là khai thác thơng tin về sở thích của nhĩm người dùng cĩ sở thích giống nhau về những sản phẩm nhất định, do đĩ khi phát hiện được những sản phẩm được ưa thích thì hệ thống RS hồn tồn cĩ thể đưa ra gợi ý trực tiếp đến sản phẩm đĩ mà khơng cần quan tâm đến bản chất (nội dung) của sản phẩm đĩ. Điều này giúp cho hệ thống cĩ khả năng mở rộng khuyến nghị cho nhiều loại đối tượng cĩ bản chất khác nhau. Hai là, cĩ khả năng tận dụng thơng tin của những người dùng tương tự để đưa ra khuyến nghị (khai thác xu hướng, sở thích của những nhĩm người dùng giống nhau). Tuy nhiên phương pháp dựa trên bộ nhớ cịn tồn tại tương đối nhiều điểm hạn chế như sau: Một là, hệ thống ít cĩ khả năng đưa ra được các khuyến nghị đặc thù cho sở thích của từng người dùng, kết quả khuyến nghị đưa ra bởi hệ thống lọc cộng tác là những sản phẩm phổ biến đối với người dùng trong hệ thống. Hai là, chất lượng khuyến nghị dựa trên lọc cộng tác dựa trên bộ nhớ hoạt động kém hiệu quả khi dữ liệu tương tác quá thưa thớt (data sparsity). Trên thực tế tâm lý của người dùng thường chỉ đánh giá sản phẩm khi ở trong trạng thái tâm lý rất tích cực hoặc rất tiêu cực đối với sản phẩm, do đĩ dữ liệu ma trận tương tác Người dùng – Sản phẩm thường gặp hiện tượng khuyết giá trị ở rất nhiều vị trí do người dùng khơng thực hiện đánh giá đối với sản phẩm đĩ. Trong trường hợp này, việc xác định độ tương tự giữa những người dùng bằng độ đo cosine trở nên khơng hiệu quả. Ba là, phương pháp lọc cộng tác dựa trên bộ nhớ cĩ thời gian tính tốn lâu và yêu cầu bộ nhớ lớn: Phương pháp dựa trên bộ nhớ thuộc nhĩm phương pháp instance-based nghĩa là với mỗi người dùng hệ thống phải thực hiện xây dựng một mơ hình riêng dựa trên tồn 9
  19. bộ dữ liệu ma trận tương tác để tìm ra giá trị xếp hạng trung bình ̅ của tập người dùng cĩ cùng sở thích với trước khi dự đốn giá trị xếp hạng theo cơng thức (2). 3.2.2.2. Lọc cộng tác dựa trên mơ hình (Model-based Collaborative Filtering): Nhằm khắc phục nhược điểm về thời gian tính tốn và yêu cầu dung lượng bộ nhớ lớn, người ta đã phân biệt rõ ràng hai tác vụ chính trong phương pháp lọc cộng tác: Một là tác vụ xây dựng mơ hình từ dữ liệu huấn luyện; Hai là tác vụ tính tốn kết quả khuyến nghị từ mơ hình nhận được [4]. Cụ thể, hệ thống RS sử dụng các thuật tốn học máy cĩ giám sát hoặc khơng cĩ giám sát để huấn luyện mơ hình rút gọn mơ phỏng sở thích của người dùng. Các thuật tốn học máy cĩ thể là cây quyết định, bộ phân loại Bayes, hồi quy, máy vector hỗ trợ (support vector machines), mạng noron Sau khi nhận được mơ hình từ bước huấn luyện, hệ thống RS sử dụng trực tiếp mơ hình này để đưa ra kết quả khuyến nghị. Những ưu điểm của phương pháp dựa trên mơ hình so với phương pháp dựa trên bộ nhớ là: Một là tiết kiệm bộ nhớ của máy tính: Thơng thường sau quá trình huấn luyện mơ hình từ dữ liệu tương tác, kích thước của mơ hình thu được là rất nhỏ so với với kích thước của dữ liệu gốc. Trong khi đĩ phương pháp dựa trên bộ nhớ yêu cầu lưu trữ tồn bộ ma trận tương tác vào bộ nhớ máy tính để thực hiện tính tốn lại kết quả khuyến nghị cho từng người dùng. Hai là tốc độ tính tốn ra kết quả tính tốn nhìn chung được rút ngắn hơn khá nhiều so với phương pháp dựa trên bộ nhớ. Nguyên nhân cũng xuất phát từ kích thước mơ hình sau khi huấn luyện là tương đối nhỏ, do đĩ thời gian cần thiết để truy vấn mơ hình cũng ít hơn nhiều so với việc truy vấn lại tồn bộ dữ liệu huấn luyện. 3.2.3. Lọc kết hợp/lai ghép (Hybrid) Nhằm kết hợp ưu điểm của cả hai phương thức khuyến nghị dựa trên lọc cộng tác và khuyến nghị dựa trên lọc nội dung, người ta đã tìm cách kết hợp kết quả gợi ý từ cả hai phương pháp theo một cách nào đĩ. Cụ thể một số phương pháp lai ghép đã được nghiên cứu như sau: 10
  20. Lai ghép theo trọng số (Weighted): Hệ thống RS sử dụng giá trị xếp hạng từ thuật tốn lọc theo nội dung và giá trị xếp hạng từ thuật tốn lọc cộng tác để kết hợp lại thành một giá trị xếp hạng duy nhất bằng cách tính tổng theo trọng số đối với từng phương pháp. Claypool và cộng sự trong [5] đã xây dựng hệ thống khuyến nghị tin tức P-tango bao gồm 02 bộ phận khuyến nghị dựa trên nội dung và khuyến nghị dựa trên cộng tác. Ban đầu kết quả khuyến nghị đưa ra bởi từng bộ khuyến nghị được gán trọng số bằng nhau, tuy nhiên trọng số sẽ được điều chỉnh theo kết quả khuyến nghị của bộ phận nào đưa ra là chính xác hoặc khơng chính xác. Ưu điểm của phương pháp khuyến nghị lai ghép theo trọng số là tính tường minh của kết quả khuyến nghị. Lai ghép bằng cách chuyển đổi (Switching): Hệ thống RS tự động chuyển đổi qua lại giữa các phương pháp khuyến nghị tùy thuộc vào tình huống cụ thể. Một ví dụ là hệ thống DailyLearner [6] gợi ý tin tức cho người dùng chuyển đổi giữa hai mơ hình Nearest- Neighbor (short-term model) và mơ hình Nạve Bayesian Classifier (long-term model) để dự đốn sở thích về tin tức của người dùng trong ngắn hạn và dài hạn tùy thuộc vào mơ hình nào đem lại kết quả dự đốn cĩ độ tin cậy cao hơn. Lai ghép hỗn hợp (Mixed): Đối với bài tốn gợi ý danh sách sản phẩm cho người dùng, hệ thống RS cĩ thể tạo ra một danh sách khuyến nghị từ kết quả của nhiều thuật tốn khác nhau. Lai ghép bằng cách kết hợp nhiều đặc tính (Feature combination): Các đặc tính trích xuất từ nhiều nguồn dữ liệu khác nhau được đưa vào một thuật tốn khuyến nghị duy nhất đưa ra kết quả. Ví dụ hệ thống Pipper [7] sử dụng giá trị xếp hạng (ratings) như là một đặc tính đầu vào của thuật tốn khuyến nghị dựa trên nội dung. Lai ghép bằng việc xếp tầng (Cascaded): Hệ thống RS sử dụng một thuật tốn khuyến nghị để điều chỉnh kết quả tư vấn được sinh ra bởi một thuật tốn khác. Nhờ nguyên lý sàng lọc kết quả này mà hệ thống RS lai xếp tầng cĩ khả năng chống nhiễu (tolerant to noise) khá tốt. Ví dụ hệ thống khuyến nghị nhà hàng Entree Chicago [8] dựa trên hệ khuyến nghị tri thức (knowledge-based RS) FindMe để hiệu chỉnh kết quả đưa ra bởi thuật tốn lọc cộng tác. 11
  21. Lai ghép tăng cường đặc tính (Feature Augmentation): Trong phương pháp lai ghép này, kết quả của một thuật tốn khuyến nghị được sử dụng làm đầu vào bổ trợ cho một thuật tốn khuyến nghị khác bên cạnh các đầu vào từ dữ liệu thơ cĩ sẵn. Dữ liệu đầu Hệ khuyến nghị dựa trên vào lọc cộng tác Khuyến Bộ kết hợp nghị Dữ liệu đầu Hệ khuyến nghị dựa trên vào lọc nội dung Hình 1.4: Cơ chế lọc kết hợp 4. Các tiêu chuẩn đánh giá hệ khuyến nghị Phụ thuộc vào đặc thù của từng trường hợp sử dụng hệ khuyến nghị, các nhà khoa học đã đưa ra nhiều tiêu chí đánh giá khác nhau để phù hợp với trường hợp sử dụng cụ thể. Một cách tổng quan, các tiêu chí đánh giá được chia thành 02 nhĩm chính như sau [1]: - Nhĩm tiêu chí đánh giá độ chính xác về mặt thống kê (statistical accuracy metrics): Nhĩm tiêu chí này phục vụ việc đánh giá độ chính xác giữa giá trị xếp hạng dự đốn đưa ra bởi thuật tốn khuyến nghị và giá trị xếp hạng thực tế của người dùng. Một số tiêu chí đánh giá thuộc nhĩm này là tiêu chí MAE, RMSE, trong đĩ tiêu chí RMSE được sử dụng rất phổ biến sau khi được hãng Netflix chọn làm tiêu chí đánh giá trong cuộc thi The Netflix prize. - Nhĩm tiêu chí đánh giá độ chính xác trong hỗ trợ ra quyết định (decision support accuracy metrics): Đối với trường hợp sử dụng hệ thống khuyến nghị để gợi ý cho người dùng một danh sách các đối tượng ưa thích thì mối quan tâm của người dùng là khả năng gợi ý đúng đối tượng họ cần, do đĩ bài tốn khuyến nghị được chuyển thành bài tốn phân lớp đối tượng. Trong trường hợp này, các tiêu chí đánh giá độ chính xác phân loại như Precision, Recall và F-measure tỏ ra phù hợp. 12
  22. Trong phạm vi luận văn này, tác giả hướng đến bài tốn tối ưu khả năng dự đốn giá trị xếp hạng của người dùng đối với một sản phẩm do đĩ lựa chọn loại tiêu chuẩn đánh giá độ chính xác về mặt thống kê là phù hợp. 4.1. Trung bình lỗi tuyệt đối Sai số tuyệt đối trung bình (Mean Absolute Error – MAE) được đo lường bằng giá trị trung bình của sai số tuyệt đối giữa giá trị xếp hạng thực tế và giá trị xếp hạng dự đốn theo cơng thức sau: 1 = ∑| − ̂ | (5) 푖 푖 푖=1 Ưu điểm của tiêu chuẩn trung bình lỗi tuyệt đối: Là tiêu chuẩn đánh giá dễ hiểu, phép tốn dễ thực hiện, bên cạnh đĩ tiêu chuẩn này đã được nghiên cứu kỹ lưỡng và áp dụng rộng rãi để đánh giá sự khác biệt về mặt thống kê giữa hai hệ thống khác nhau. Tuy nhiên tiêu chuẩn trung bình lỗi chỉ phù hợp với bài tốn hồi quy, ước lượng thống kê mà chưa phù hợp với một số bài tốn khuyến nghị cụ thể khác như bài tốn gợi ý danh sách N sản phẩm cho người dùng. 4.2. Sai số bình phương trung bình Sai số bình phương trung bình theo căn bậc hai (Root Mean Square Error – RMSE) được định nghĩa là căn bậc hai của trung bình bình phương sai số giữa giá trị xếp hạng thực tế và giá trị xếp hạng dự đốn: ∑ ( − ̂ )2 푅 푆 = √ 푖=1 푖 푖 (6) So sánh với tiêu chuẩn MAE thì tiêu chuẩn RMSE cĩ tính nhấn mạnh các sai số cĩ giá trị lớn hơn 1. Vào năm 2007, tiêu chuẩn RMSE đã được lựa chọn làm tiêu chuẩn đánh giá trong cuộc thi The Netflix Prize nhằm tìm ra những mơ hình mới cĩ khả năng dự đốn giá trị xếp hạng của người dùng vượt trội hơn mơ hình Cinematch của hãng Netflix [9]. 13
  23. Trong chương này chúng ta đã tìm hiểu những khái niệm cơ bản và phát biểu bài tốn khuyến nghị cùng với các phương pháp tiếp cận xây dựng và đánh giá các thuật tốn khuyến nghị. Trong chương tiếp theo chúng ta sẽ đi sâu vào các mơ hình khuyến nghị cộng tác sử dụng kỹ thuật học sâu và đề xuất một mơ hình ứng dụng mạng học sâu MLP (Multi- Layer Perceptron) cho hệ khuyến nghị. 14
  24. Chương 2: Hệ khuyến nghị dựa trên lọc cộng tác sử dụng kỹ thuật học sâu 1. Bài tốn khuyến nghị dựa trên cộng tác Inputs: - Tập hợp người dùng 푈 = { 1, 2, , } - Tập hợp sản phẩm = {푖1, 푖2, , 푖 } - Ma trận 푅 = ( 푖푗̇) với 푖 = 1, ⋯ , ; 푗 = 1, ⋯ , thơng tin tương tác giữa tập người dùng 푈 và tập sản phẩm . Trong đĩ 푖푗̇ là đánh giá của người dùng 푖 đối với sản phẩm 푖푗. Nếu người dùng 푖 chưa đánh giá hoặc chưa từng biết đến sản phẩm 푖푗 thì 푖푗 = ∅. Output: - Ma trận đầy đủ 푅, tức là với ∀ 푖푗 ∈ R, 푖푗 ≠ ∅. Mơ hình lọc cộng tác Dự đốn giá trị xếp hạng Ma trận tương tác Người dùng - Sản phẩm Hình 2.1: Quy trình khuyến nghị dựa trên cộng tác Nhằm giải quyết bài tốn khuyến nghị nĩi trên cĩ hai cách tiếp cận chính là Lọc cộng tác dựa trên bộ nhớ (Memory-based CF/Neighborhood-based CF) [1]và Lọc cộng tác dựa trên mơ hình (Model-based CF)[1]. 1.1. Lọc cộng tác dựa vào bộ nhớ Kỹ thuật lọc cộng tác dựa trên bộ nhớ bao gồm 02 bước chính: - Bước 1: Tính tốn độ tương tự giữa người dùng/sản phẩm đang xét với những người dùng lân cận với dữ liệu từ ma trận tương tác. 15
  25. 훴푛 ( − ̅)( − ̅) 푠( , ) = 푖=1 ,푖 ,푖 (7) 푛 2 푛 2 √훴푖=1( ,푖 − ̅ ) √훴푖=1( ,푖 − ̅ ) Trong đĩ: ,푖 là điểm xếp hạng cho mặt hàng 푖 của người dùng , ̅ là điểm xếp hạng trung bình của người dùng cho tất cả các mặt hàng mà anh ta đã đánh giá. - Bước 2: Tính giá trị đánh giá (rating) dự đốn. 푛 훴푖=1( ,푖 − ̅ ) × 푠( , ) (8) ( , 푖) = ̅ + 푛 훴푖=1푠( , ) Kỹ thuật lọc cộng tác dựa trên bộ nhớ cĩ thể thực hiện thơng qua người dùng và thơng qua đối tượng: - Kỹ thuật dựa trên người dùng: Kỹ thuật này tính tốn độ tương đồng giữa những người dùng đã từng rating những sản phẩm giống nhau bằng cách so sánh xếp hạng của họ trên cùng một mặt hàng. Giá trị rating dự đốn cho mặt hàng đang xét của người dùng hiện tại bằng giá trị rating trung bình đối với mặt hàng đĩ nhân với trọng số đo mức độ tương đồng của người dùng hiện tại những người dùng tương tự. A B Tương quan cao Tương quan C Hình 2.2: Lọc cộng tác dựa theo người dùng 16
  26. - Kỹ thuật lọc dựa trên đối tượng: Kỹ thuật này tính tốn giá trị rating dự đốn dựa trên độ tương tự giữa các sản phẩm với nhau. Nĩ xây dựng một mơ hình các mặt hàng tương tự nhau bằng cách truy xuất tất cả các mặt hàng đã được đánh giá bởi người dùng đang hoạt động từ ma trận tương tác, nĩ xác định mức độ tương tự của các mục được truy xuất đối với mục tiêu, sau đĩ nĩ chọn các mục tương tự nhất và cũng tương tự như vậy xác định. Dự đốn được thực hiện bằng cách lấy trung bình trọng số của đánh giá người dùng hoạt động trên các mặt hàng tương tự . A B Tương quan cao Tương quan C Hình 2.3: Lọc cộng tác dựa theo sản phẩm Các độ đo tương tự phổ biến nhất là hệ số tương quan Pearson [10] và độ đo cosine[10]. - Hệ số tương quan Pearson được sử dụng để đo lường mức độ mà hai biến liên quan tuyến tính với nhau và được định nghĩa như sau: 훴푛 ( − ̅)( − ̅) 푠푖 = ( , ) = 푖=1 ,푖 ,푖 푃푒 푠표푛 (9) 푛 2 푛 2 √훴푖=1( ,푖 − ̅ ) √훴푖=1( ,푖 − ̅ ) 17
  27. - Độ đo Cosine: Độ tương tự được tính tốn dựa trên gĩc lệch giữa 02 vector n-chiều như sau: ⃗ 0푣 훴푖 ,푖 푣,푖 푠푖 표푠푖푛푒 = 푠( ⃗ , 푣 ) = = | ⃗ | ∗ |푣 | 2 2 (10) √훴푖 ,푖 × √훴푖 푣,푖 Nhìn chung, ưu điểm của phương pháp lọc cộng tác dựa trên bộ nhớ là thuật tốn tường minh, dễ học hiểu tuy nhiên tồn tại khá nhiều hạn chế. Thứ nhất, phương pháp lọc cộng tác dựa trên bộ nhớ thuộc nhĩm phương pháp instance-based nghĩa là mơ hình dự đốn chỉ áp dụng cho từng người dùng cụ thể, mỗi khi cần dự đốn cho một người dùng khác hệ thống sẽ phải xây dựng lại mơ hình từ dữ liệu ban đầu. Trong trường hợp hệ thống chứa nhiều dữ liệu người dùng và đối tượng (cỡ vài chục triệu bản ghi trở lên) thì chi phí thời gian tính tốn là rất lớn. Thứ hai, phương pháp này sử dụng độ đo cosine để đánh giá độ tương tự giữa 2 vector trong trường hợp dữ liệu bị mất mát nhiều thì độ đo này trở nên khơng hiệu quả. 1.2. Lọc cộng tác dựa trên mơ hình Phương pháp lọc cộng tác dựa trên mơ hình [11] thực hiện tính tốn trước các mơ hình dự đốn bằng các thuật tốn khai phá dữ liệu/học máy sau đĩ sử dụng mơ hình này để tính tốn trực tiếp giá trị xếp hạng của người dùng. Dựa trên các kỹ thuật học máy tiên tiến, phương pháp lọc cộng tác dựa trên mơ hình đạt được độ chính xác tương đương với phương pháp dựa trên bộ nhớ trong khi giảm được đáng kể chi phí tính tốn và bộ nhớ yêu cầu. Bên cạnh đĩ, phương pháp này cịn giải quyết tốt hạn chế của phương pháp dựa trên bộ nhớ khi gặp hiện tượng dữ liệu thưa. Một số kỹ thuật tiêu biểu thuộc lớp phương pháp lọc cộng tác dựa trên mơ hình: - Luật kết hợp (Associate rules)[12]: Các thuật tốn khai phá luật kết hợp trích xuất các quy tắc dự đốn sự xuất hiện của một mặt hàng dựa trên sự hiện diện của các mặt hàng khác trong một giao dịch. Ví dụ, với một tập hợp các giao dịch, trong đĩ mỗi giao dịch là một tập hợp các mục, quy tắc kết hợp áp dụng dạng → , trong đĩ A và B là hai tập hợp các mục. Thuật tốn khai phá luật kết hợp cĩ thể tạo ra mơ hình sở thích của người dùng nhỏ hơn rất nhiều so với dữ liệu gốc giúp cải thiện 18
  28. hiệu quả lưu trữ cũng như hiệu suất. Mặc dù các thuật tốn khai phá luật kết hợp đã chứng minh được hiệu quả trong lĩnh vực khai phá dữ liệu và hỗ trợ cá nhân hĩa quá trình ra quyết định của người dùng tuy nhiên hiện nay hướng đi này vẫn chưa trở thành hướng nghiên cứu chủ đạo đối với hệ thống khuyến nghị. - Phân cụm (Clustering)[13]: Các kỹ thuật phân cụm đã được áp dụng trong các lĩnh vực khác nhau như nhận dạng mẫu, xử lý ảnh, phân tích dữ liệu thống kê và khám phá tri thức. Thuật tốn phân cụm cố gắng phân vùng một tập hợp dữ liệu thành một tập hợp các cụm con để khám phá các cụm/nhĩm cĩ ý nghĩa tồn tại bên trong chúng. Một phương pháp phân cụm tốt sẽ tạo ra các cụm chất lượng cao, trong đĩ độ tương tự trong cụm là cao, trong khi độ tương tự giữa các cụm là thấp. Khi các nhĩm đã được hình thành, giá trị xếp hạng trung bình của những người dùng thuộc cùng một nhĩm sử dụng để áp dụng cho người dùng cá nhân. Trong tình huống người dùng cĩ thể thuộc vào nhiều cụm khác nhau, khuyến nghị được đưa ra dựa trên mức trung bình trên các theo mức độ tham gia của người dùng đĩ vào các cụm. Thuật tốn K- means và thuật tốn sơ đồ tự tổ chức (Self Organized Map – SOM) là 2 phương pháp được sử dụng phổ biến nhất trong số các phương pháp phân cụm. K-means nhận một tham số đầu vào, và sau đĩ phân vùng một tập hợp n mục thành K cụm. SOM là một phương pháp học tập khơng giám sát, dựa trên kỹ thuật phân cụm noron nhân tạo. Kỹ thuật phân cụm cĩ thể được sử dụng để giảm số lượng cụm ứng viên trong các thuật tốn dựa trên cộng tác. - Cây quyết định (Decision tree)[14]: Thuật tốn cây quyết định xây dựng biểu đồ suy luận dạng cây được xây dựng bằng cách phân tích một tập hợp các ví dụ huấn luyện được đánh nhãn. Sau đĩ, chúng được áp dụng để phân loại các ví dụ mới (chưa xuất hiện). Nếu được huấn luyện bằng dữ liệu đủ tốt, thuật tốn cây quyết định cĩ khả năng đưa ra những dự đốn rất chính xác. Ưu điểm là thuật tốn cây quyết định dễ hiểu hơn so với các thuật tốn phân lớp khác như Support Vector Machine và ANN vì chúng kết hợp các câu hỏi đơn giản về dữ liệu theo cách dễ hiểu. Bên cạnh đĩ Cây quyết định cũng cĩ khả năng xử lý tốt trường hợp các đối tượng cĩ các đặc 19
  29. tính hỗn hợp (bao gồm cả các trường thơng tin dạng số thực và trường thơng tin dạng phân loại) và trường hợp đối tượng cĩ đặc tính bị khuyết giá trị. - Mạng noron nhân tạo (Artificial Neural Network – ANN)[15]: Mạng noron là một cấu trúc bao gồm nhiều nút noron kết nối lẫn nhau và được sắp xếp lại theo cấu trúc xếp lớp. Các kết nối giữa các nút được gán trọng số tương ứng với độ ảnh hưởng của nút đĩ lên các nút xung quanh. Mạng noron cĩ khả năng xấp xỉ các hàm phi tuyến cĩ khả năng mơ phỏng được mối liên hệ phức tạp ẩn trong dữ liệu. Nhược điểm của mạng noron là hiệu năng phụ thuộc nhiều vào cấu trúc của mạng noron và việc tìm ra cấu trúc mạng tối ưu là rất khĩ khăn. - Hồi quy (Regression)[16]: Là kỹ thuật được áp dụng rộng rãi để nghiên cứu mối quan hệ giữa biến phụ thuộc và các biến giải thích. Một số kỹ thuật hồi quy thường gặp như nội suy đường cong (Curve fitting), dự đốn, kiểm định giả thuyết thống kê, Trong đĩ kỹ thuật nội suy đường cong cĩ thể hữu ích trong việc nhận diện các xu hướng ẩn trong tập dữ liệu (Ví dụ: Tuyến tính, parabolic, ). - Các kỹ thuật hồn thiện ma trận (Matrix completion techniques)[17]: Bài tốn hồn thiện ma trận được phát biểu một cách chính quy như sau: Cho ma trận số thực 푌 cĩ kích thước là × 푛, trong đĩ tập con 훺 {(푖, 푗) ∶ 1 ≤ 푖 ≤ , 1 ≤ 푗 ≤ 푛} là các phần tử khơng rỗng của 푌. Tìm ma trận xấp xỉ 푌̂ = ⋅ 푊 trong đĩ 2 ma trận số thực , 푊 lần lượt cĩ kích thước là × , 푛 × , ≪ 푖푛( , 푛) thỏa mãn sai số của các phần tử của 푌̂ tại các vị trí khơng rỗng tương ứng với ma trận 푌 là nhỏ nhất. Candes và Recht [18] đã đề xuất việc sử dụng kỹ thuật hồn thiện ma trận trong bài tốn Netflix như một ví dụ thực tế cho việc sử dụng kỹ thuật này. Keshavan và cộng sự [19] đã sử dụng kỹ thuật SVD trong thuật tốn OptSpace để giải quyết vấn đề hồn thành ma trận. Kết quả thí nghiệm của họ cho thấy SVD cĩ thể cung cấp một ước tính ban đầu đáng tin cậy cho việc mở rộng khơng gian con cĩ thể được tinh chỉnh thêm bằng cách giảm độ dốc trên đa tạp Grassmannian. 20
  30. 2. Các mơ hình học sâu kết hợp với hệ khuyến nghị Trong mục này, chúng ta sẽ tìm hiểu về các phương pháp xây dựng hệ khuyến nghị trong đĩ được áp dụng các mơ hình học sâu. 2.1. Phân loại hệ thống khuyến nghị dựa trên kiến trúc hệ thống Một cách tổng quát, các hệ thống khuyến nghị sử dụng mơ hình học sâu được phân loại thành 2 loại cơ bản [11] là hệ khuyến nghị dựa trên khối noron sâu (Recommendation with Neural Building Blocks) và hệ khuyến nghị lai ghép sâu (Recommendation with Deep Hybrid Models). Trong đĩ hệ khuyến nghị dựa trên khối noron sâu chỉ sử dụng 1 mơ hình học sâu trong khi hệ khuyến nghị lai ghép sâu kết hợp nhiều mơ hình học sâu để đưa ra kết quả khuyến nghị. Hệ khuyến nghị với các khối cơ sở là mạng noron Hệ khuyến nghị dựa trên học sâu Hệ khuyến nghị sử dụng các mơ hình lai Hình 2.4: Phân loại kiến trúc hệ khuyến nghị dựa trên các kỹ thuật học sâu 2.1.1. Hệ khuyến nghị dựa trên các phần tử noron sâu Hệ khuyến nghị dựa trên mạng perceptron nhiều lớp (Multi-Layer Perceptron – MLP): Mạng MLP là mạng noron truyền thẳng cĩ nhiều lớp ẩn (hidden layer/fully- connected layer) nằm giữa lớp input và lớp output. Mạng MLP cĩ thể nhận nhiều dạng hàm kích hoạt khác nhau, do đĩ nĩ cĩ thể mơ phỏng được nhiều dạng hàm phi tuyến phức tạp với mọi độ chính xác mong muốn. Về mặt tốn học, MLP cĩ thể được xem như là một dãy các biến đổi phi tuyến xếp chồng lên nhau. 21
  31. Lớp ẩn Lớp đầu vào Lớp đầu ra Đầu vào #1 Đầu vào #2 Đầu ra Đầu vào #n Hình 2.5: Mạng noron đa lớp Nhiều mơ hình khuyến nghị hiện cĩ về cơ bản là phương pháp tuyến tính (VD: thuật tốn phân tích thừa số ma trận), MLP cĩ thể được sử dụng để thêm vào các phép biến đổi phi tuyến vào các mơ hình đĩ. Trong hầu hết các trường hợp, kết quả khuyến nghị được coi là sự tương tác hai chiều giữa sở thích của người dùng và các đặc tính của đối tượng. Ví dụ: Thuật tốn phân tích thừa số ma trận phân rã ma trận Người dùng – Sản phẩm thành các yếu tố tiềm ẩn cĩ số chiều thấp để mơ hình người dùng và đối tượng. Do đĩ dẫn tới điều tự nhiên là xây dựng một mơ hình nơron kép để mơ hình hĩa sự tương tác hai chiều giữa người dùng và các đối tượng. Một số mơ hình được xây dựng theo cách tiếp cận này như: Neural Collaborative Filtering [20], Neural Network Matrix Factorization [21]. Bộ mã hĩa tự động (AutoEncoder – AE) là một mơ hình học khơng giám sát với mục tiêu tái tạo lại dữ liệu đầu vào của bộ mã hĩa. Trong kiến trúc của bộ mã hĩa tự động, lớp chính giữa đĩng vai trị biểu diễn những đặc tính quan trọng nhất của dữ liệu đầu vào. Nguyên lý ứng dụng bộ mã hĩa tự động vào hệ khuyến nghị là sử dụng khả năng khơi phục 22
  32. thơng tin của AE nhằm khơi phục lại các giá trị xếp hạng. Một ví dụ hệ thống RS theo hướng tiếp cận này là hệ thống AutoRec (I-AutoRec/U-AutoRec) [22], trong đĩ AE nhận đầu vào là vector người dùng khơng đầy đủ (partial) và khơi phục lại vector đầy đủ để tìm lại (dự đốn) các giá trị xếp hạng bị khuyết trong ma trận Người dùng – Sản phẩm. Lớp đầu vào Lớp mã hĩa Lớp đầu ra Hình 2.6: Bộ mã hĩa tự động Mạng noron tích chập (Convolutional Neural Network – CNN) là mạng noron truyền thẳng cĩ thêm các lớp tích chập và tác vụ gộp (pooling) cĩ khả năng học các đặc tính cục bộ và tồn cục của dữ liệu, qua đĩ nâng cao đáng kể hiệu suất và độ chính xác của bộ phân lớp. Thường gặp hệ khuyến nghị sử dụng CNN để trích xuất đặc trưng từ các dữ liệu dạng hình ảnh, text, âm thanh, video, Một số tác giả khác lại sử dụng trực tiếp CNN cho các 23
  33. thuật tốn khuyến nghị truyền thống như mơ hình ConvNCF [23] dùng CNN để phát hiện các mối quan hệ bậc cao trong dữ liệu sinh ra bởi tích vector (outer product) của các vector embedding người dùng và đối tượng. Trích chọn đặc trưng Phân lớp Đầu ra Lớp pooling Đầu vào Lớp tích chập Lớp ẩn Hình 2.7: Mạng noron tích chập Mạng noron hồi tiếp (Recurrant Neural Network – RNN) là mạng noron cĩ chứa các vịng lặp và bộ nhớ để lưu trữ và sử dụng lại kết quả của các bước tính trước đĩ. Mạng noron hồi tiếp phù hợp để mơ hình hĩa dữ liệu tuần tự. Trên thực tế sở thích của người dùng cĩ thể thay đổi theo thời gian hoặc trong một số trường hợp hệ thống RS khơng thể yêu cầu người dùng đăng nhập (Session-based recommendation) thì việc khuyến nghị dựa trên các dữ kiện theo thời gian trở nên rất quan trọng. 24
  34. y Lớp đầu ra Lớp đầu vào Lớp ẩn Hình 2.8: Mạng noron hồi tiếp Mạng noron sáng tạo đối nghịch (Generative Adversarial Networks – GAN) là mạng noron sinh ra dữ liệu mới, bao gồm 2 mạng noron: 1 mạng sinh ra dữ liệu (generator) và 1 mạng phân loại (discriminator). Việc huấn luyện 2 mạng này hoạt động theo cơ chế cạnh tranh lẫn nhau theo khung trị chơi minimax. Ứng dụng của mạng GAN cho hệ khuyến nghị chủ yếu là nhằm nâng cao khả năng chịu nhiễu. Dữ liệu thật Mẫu Bộ phân loại Phân biệt được? Bộ tạo dữ liệu giả Mẫu Tinh chỉnh Hình 2.9: Mạng noron sáng tạo đối nghịch Kỹ thuật học sâu tăng cường (Deep Reinforcement Learning – DRL): Là mơ hình thử - sai bao gồm các thành phần: Tác nhân, Mơi trường, Trạng thái, Hành động và Phần thưởng. Mạng lưới thần kinh sâu giúp cho tác nhân cĩ thể học được tri thức từ dữ liệu thơ mà khơng cần sự can thiệp của con người hoặc cần cĩ kiến thức chuyên gia. Kỹ thuật học sâu tăng cường đã đạt được năng lực tương đương con người trong một số lĩnh vực như trị chơi điện tử hoặc xe tự lái. 25
  35. Trong lĩnh vực hệ thống khuyến nghị, hầu hết các mơ hình giả định quá trình đề xuất là một quá trình tĩnh trong khi thực tế ý định của người dùng cĩ thể thay đổi khá nhanh tùy thuộc vào tác động của ngoại cảnh. Giả định này gây khĩ khăn cho hệ khuyến nghị nắm bắt ý định nhất thời của người dùng và phản hồi kịp thời. Trong những năm gần đây, DRL đã bắt đầu thu hút sự chú ý trong việc đưa ra khuyến nghị được cá nhân hĩa. Một số mơ hình khuyến nghị sử dụng kỹ thuật học tăng cường để đưa ra khuyến nghị dựa trên dãy tuần tự hành động của người dùng như khung học tăng cường DEERS [24], DeepPage [25], DRN [26]. Trong đĩ hệ thống gợi ý tin tức DRN sử dụng kỹ thuật DRL để giải quyết ba thách thức sau: (1) Nắm bắt những thay đổi trong nội dung tin tức và sở thích của người dùng; (2) Kết hợp các mẫu quay lại sử dụng dịch vụ của người dùng; (3) Nâng cao tính đa dạng của các khuyến nghị. Phần thưởng r DNN Chính sách (s,a) Thực thi hành động a Trạng thái Mơi trường s Trạng thái s Hình 2.10: Mơ hình học sâu tăng cường [27] 2.1.2. Hệ khuyến nghị lai ghép sâu Một số mơ hình khuyến nghị sử dụng từ 2 kỹ thuật học sâu trở lên nhờ vào khả năng linh hoạt của mạng noron sâu cho phép kết hợp nhiều mơ hình lại với nhau để bù đắp hạn 26
  36. chế của từng mơ hình riêng lẻ. Ví dụ mơ hình kết hợp giữa CNN-AE, CNN-RNN, RNN- AE, RNN-DRL [11]. 2.2. Vai trị của các kỹ thuật học sâu trong bài tốn khuyến nghị Mơ hình hĩa các quan hệ phi tuyến tính (nonlinear transformation): Các mạng noron sâu cĩ thể mơ phỏng các tính chất phi tuyến tiềm ẩn trong dữ liệu bằng việc sử dụng các hàm kích hoạt phi tuyến như relu, sigmoid, tanh, Đặc tính này giúp khả thi trong việc tái tạo các hành vi phức tạp trong quá trình mua sắm hàng hĩa của người dùng. Các phương pháp truyền thống như phân tích ma trận nhân tử, máy phân tích (factorization machine), mơ hình tuyến tính thưa (sparse linear model) về cơ bản là các mơ hình tuyến tính. Các mơ hình tuyến tính này đã mơ hình hĩa đơn giản quá mức những tương tác tiềm ẩn trong dữ liệu do đĩ gây hạn chế lớn đến khả năng diễn đạt của mơ hình. Các mạng noron đã được chứng minh rằng cĩ khả năng xấp xỉ được một hàm số liên tục bất kỳ với độ chính xác tùy ý bằng cách chọn hàm kích hoạt thích hợp và điều chỉnh giá trị của các siêu tham số. Thuộc tính này cho phép mạng noron cĩ thể mơ phỏng lại các hình mẫu phức tạp, phản ánh chính xác sở thích của người dùng. Học đại diện (Representation Learning): Mạng noron sâu cĩ khả năng tự động trích xuất các nhân tố giải thích và những biểu diễn hữu ích từ dữ liệu thơ mà khơng cần quá trình thiết kế đặc trưng thủ cơng (handcrafted-feature engineering). Mạng noron sâu giúp ích trong việc xây dựng hệ tư vấn hiệu quả dựa trên hai khía cạnh chính: (1) Cĩ khả năng tự động học tập các đặc tính giải thích từ dữ liệu thơ, qua đĩ giúp giảm nhẹ cơng sức cho chuyên gia trong việc thiết kế các thuộc tính (feature engineering) cho thuật tốn; (2) Cho phép các thuật tốn khuyến nghị kết hợp đồng thời nhiều loại dữ liệu đầu vào cĩ bản chất khác nhau như văn bản, hình ảnh, âm thanh, video, để nâng cao hiệu quả. Mơ hình hĩa chuỗi (Sequence modeling): Mạng noron sâu (RNN và CNN) đã thể hiện một số kết quả hứa hẹn trong một số bài tốn mơ hình chuỗi như bài tốn dịch tự động, học hiểu ngơn ngữ tự nhiên (natural language understanding), nhận diện giọng nĩi, chatbot. Mạng RNN thực thi mơ hình hĩa chuỗi thơng qua các trạng thái nhớ nội tại, trong khi đĩ CNN sử dụng các bộ lọc theo thời gian. Mơ hình hĩa các tín hiệu tuần tự là một chủ đề quan trọng trong khai phá các đặc tính động học của hành vi người dùng xảy ra theo thời 27
  37. gian. Ví dụ bài tốn dự đốn sản phẩm được mua tiếp theo, bài tốn khuyến nghị theo phiên truy cập là các bài tốn điển hình. Tính mềm dẻo: Các kỹ thuật học sâu hiện nay được sự hỗ trợ rất lớn từ các frameworks như Tensorflow, Keras, Caffe, MxNet, DeepLearning4j, PyTorch, Theano, Các frameworks này đều được các cơng ty/tổ chức lớn phát triển và được cộng đồng người dùng đơng đảo hỗ trợ, do đĩ việc triển khai các mơ hình học sâu trở nên dễ dàng, hiệu quả hơn rất nhiều. Bên cạnh đĩ, việc ra đời các tiêu chuẩn mở như ONNX (Open Neural Network Exchange) trong việc định nghĩa các mơ hình học sâu cũng giúp cho việc tái sử dụng và mở rộng các mơ hình trở nên khả thi hơn rất nhiều. 2.3. Một số hạn chế khi áp dụng các mơ hình học sâu cho hệ khuyến nghị Tính giải thích của mơ hình (Interpretability): Đa số mơ hình học sâu thuộc nhĩm mơ hình hộp đen do đĩ việc giải thích kết quả dự đốn của mơ hình là một nhiệm vụ gặp rất nhiều khĩ khăn. Các trọng số ẩn của mơ hình sau khi huấn luyện về cơ bản là khơng thể giải thích được. Yêu cầu về dữ liệu: Các mơ hình học sâu địi hỏi lượng dữ liệu sử dụng trong quá trình huấn luyện là rất lớn để đạt được hiệu suất nhất định, nguyên nhân được chỉ ra là do số lượng tham số của mơ hình cần tối ưu là rất lớn. Ngoại trừ một số lĩnh vực như xử lý ngơn ngữ, xử lý ảnh cĩ sự khan hiếm về dữ liệu được gắn nhãn, dữ liệu sử dụng cho các bài tốn về hệ khuyến nghị ở quy mơ lớn là tương đối sẵn cĩ. Tinh chỉnh các siêu tham số: Tương tự như các mạng noron thơng thường, các mạng noron sâu cũng gặp nhiều khĩ khăn trong việc tìm ra bộ siêu tham số tối ưu trong quá trình huấn luyện. Quá trình huấn luyện mơ hình để đạt được hiệu suất thiết kế thường là quá trình thử - sai và tiêu tốn nhiều thời gian. 28
  38. Chương 3: Đề xuất mơ hình hệ khuyến nghị sử dụng kỹ thuật học sâu 1. Kiến trúc mơ hình Nhằm kết hợp khả năng dễ dàng tích hợp thơng tin bổ trợ và khả năng mơ phỏng các quan hệ phi tuyến tính của mạng noron nhiều lớp [28] trong bài tốn dự đốn giá trị xếp hạng của người dùng (explicit), tác giả luận văn đề xuất kiến trúc hệ khuyến nghị dựa trên lọc cộng tác sâu (Deep Collaborative Filtering) như sau: User (U) Item (I) Genre Tag Lớp vào 1 2 3 4 5 1 1 0 1 1 0 1 Vector ẩn người Vector ẩn đối Vector ẩn thể Vector ẩn thẻ Lớp nhúng dùng tượng loại phim phim Lớp nối Layer 1 Mạng noron sâu nhiều lớp (MLP) Layer 2 Layer N Hình 3.1: Kiến trúc mơ hình Lọc cộng tác sâu Vai trị của các thành phần trong mơ hình nĩi trên được làm rõ như sau: 1.1. Lớp nhúng (Embedding layer): Dữ liệu phân loại (categorical data) là các thuộc tính nhận giá trị rời rạc trong một tập hữu hạn, ví dụ như tập hợp các bộ phim mà người dùng đã xem, tập hợp các từ vựng trong tài liệu Dữ liệu phân loại được biểu diễn dưới dạng tensor một chiều/vector ⃗ cĩ các phần tử nhận giá trị như sau: 1 푛ế 푛ℎậ푛 푖á 푡 ị 푣 = { 푗 0 푛ế ℎơ푛 푛ℎậ푛 푖á 푡 ị Thuật tốn mã hĩa trên được gọi là one-hot encoding, đầu ra của thuật tốn là vector ⃗ là một vector thưa cĩ rất ít phần tử khác 0. 29
  39. Trong trường hợp hệ thống khuyến nghị, ma trận Người dùng – Sản phẩm cĩ thể được xem như là tập hợp các tensor người dùng trong đĩ các phần tử chính là các bộ phim mà người dùng đã xem: Movie Id 1 2 3 138493 ✓ ✓ ✓ ✓ Người dùng u ✓ ✓ Hình 3.2: Vector thưa đại diện cho người dùng u Mỗi hàng của ma trận trong Hình 3.2 ghi nhận các bộ phim mà người dùng tương ứng đã xem, người dùng này được biểu diễn bởi một tensor thưa bởi vì người dùng chỉ xem một phần nhỏ trong tồn bộ tập hợp các bộ phim. Ví dụ người dùng hiện tại được đại diện bằng tensor [3, 138493] là những bộ phim đã được xem. Tuy nhiên nếu trực tiếp sử dụng dạng biểu diễn vector thưa này để huấn luyện mạng noron sẽ dẫn đến tình trạng bùng nổ các trọng số cần huấn luyện cho mạng noron kéo theo các hệ quả: ➢ Lượng dữ liệu cần thiết để huấn luyện: Mơ hình càng cĩ nhiều trọng số thì yêu cầu càng nhiều dữ liệu để việc huấn luyện đạt hiệu quả. ➢ Khối lượng tính tốn: Số lượng trọng số càng lớn thì số lượng phép tính càng nhiều để tính tốn. Biện pháp giải quyết cho những vấn đề này là sử dụng các thuật tốn nhúng (embeddings), cĩ bản chất là quá trình ánh xạ vector thưa cĩ số chiều lớn vào một khơng gian vector cĩ số chiều thấp hơn đồng thời vector là dày đặc hơn và bảo tồn các mối quan hệ ngữ nghĩa tồn tại trong dữ liệu ban đầu. Kết quả của quá trình nhúng là vector đặc tính ẩn (latent factors) mơ tả về đối tượng (người dùng hoặc sản phẩm). Trong cài đặt của mơ hình đề xuất, lớp nhúng nhận 03 tham số đầu vào quan trọng như sau: 30
  40. • data: mảng số nguyên chứa Id của đối tượng được nhúng. • input_dim: độ lớn của mảng data. • output_dim: kích thước của vector đặc tính ẩn. Đặc tính ẩn thu được phía sau lớp nhúng cĩ thể là những đặc điểm về nội dung của bộ phim mà người dùng ưa thích như thể loại phim, năm sản xuất, mức độ lời thoại, tuy nhiên do đặc tính của lớp mơ hình đặc tính ẩn mà ngữ nghĩa của các vector đặc tính này chỉ cĩ thể giải thích được một cách khơng hồn tồn đầy đủ dựa trên tri thức miền. Kích thước vector đặc tính ẩn là một con số tùy ý do nhà phát triển xác định, tuy nhiên cần lưu ý lựa chọn một cách cẩn thận để đạt được hiệu quả tối đa. Nếu kích thước vector đặc tính ẩn quá nhỏ thì mạng noron sẽ ít cĩ khả năng học được các đặc tính của dữ liệu gốc (underfitting), nếu kích thước vector quá lớn thì nhiều khả năng mạng noron bị quá khớp (overfitting). Trong phạm vi luận văn này, tác giả chọn kích thước vector ẩn cho cả người dùng và bộ phim là 25. Tương tự như vậy, các vector thơng tin bổ trợ về thể loại phim và thẻ phim cũng được ánh xạ giảm số chiều thơng qua lớp nhúng với kích thước vector ẩn là 5. Việc lựa chọn kích thước vector ẩn nĩi trên thơng qua quá trình chạy thử và và ghi nhận sự thay đổi của metric đánh giá khi thay đổi kích thước vector. 1.2. Lớp nối (Concatenate layer): Sau khi dữ liệu gốc được lớp nhúng ánh xạ vào khơng gian vector đặc tính ẩn thu được các vector dày trong khơng gian ẩn 푈⃗ , ⃗ , chúng ta cĩ thể sử dụng trực tiếp tích vơ hướng của hai vector này để tính tốn giá trị xếp hạng của người dùng theo phương pháp phân tích thừa số ma trận của tác giả Simon Funk [33] hoặc các vector ẩn được nối lại với nhau để tạo thành vector đặc tính mới phục vụ cho các thuật tốn tiếp theo. 31
  41. 1 푣1 1 1 푣2 3 Vector ẩn – người dùng Vector ẩn – bộ phim 푗 푣푗 5 푣푗 푣푗 2 Hình 3.3: Nối vector đặc tính ẩn của các đối tượng để tạo thành vector đặc tính mới Luận văn này hướng đến mục tiêu khảo sát khả năng của mạng noron sâu hoạt động trên khơng gian vector đặc tính ẩn được tạo ra bởi dữ liệu người dùng, bộ phim và các dữ liệu bổ trợ (thể loại phim, thẻ phim, ) do đĩ ở phía sau lớp nhúng là lớp nối (concatenate layer) làm nhiệm vụ nối các vector ẩn tạo thành vector đầu vào duy nhất cho mạng noron nhiều lớp MLP phía sau. 1.3. Các lớp ẩn (Fully-connected layers): Lớp ẩn trong mạng noron sâu được sử dụng như một bộ xấp xỉ vạn năng (universal approximators) để mơ hình hĩa các quan hệ phi tuyến tính cĩ thể tồn tại trong khơng gian vector đặc tính ẩn nằm ở đầu ra của lớp nối. 32
  42. Input Output y1 y2 y3 y4 y5 Hình 3.4: Hoạt động của lớp ẩn Cho ∈ ℝ 푖 ∈ ℝ 푖 = 휎(푤1 1+. . . +푤 ) Vector y đầy đủ như sau: 휎(푤1,1 1+. . . +푤1, ) = ( ⋮ ) 휎(푤푛,1 1+. . . +푤푛, ) Khi xếp chồng nhiều lớp mạng ẩn lên nhau, chúng ta thu được mạng “sâu” (Multi- Level Perceptrons) như trong hình dưới: 33
  43. Hình 3.5: Kiến trúc mạng sâu MLP Đầu ra tại mỗi lớp bằng tích của vector đầu vào với ma trận trọng số và mỗi phần tử của vector đầu ra được áp dụng tốn tử phi tuyến 휎: = 휎(푤 ) 휎 là ma trận khơng gian ℝ ×푛 cĩ các phần tử được áp dụng tốn tử phi tuyến 휎. Tốn tử phi tuyến 휎 (hàm kích hoạt – activation function) của các lớp là hàm sigmoidal được định nghĩa như sau: 1 휎( ) = 1 + 푒− Hàm sigmoid nhận đầu vào là một số thực và chuyển thành một giá trị trong khoảng (0,1). Đầu vào là số thực âm với giá trị rất nhỏ sẽ cho đầu ra tiệm cận 0, đầu vào là số thực dương rất lớn cho đầu ra tiệm cận 1. 34
  44. Hình 3.6: Đồ thị hàm sigmoid Hàm gặp phải một số hạn chế như sau: • Hàm sigmoid là hàm bão hịa: Khi giá trị đầu vào cĩ trị tuyệt đối lớn (rất âm hoặc rất dương) thì đạo hàm của hàm này xấp xỉ 0, do đĩ các hệ số tương ứng với phần tử đang xét sẽ gần như khơng được cập nhật (hiện tượng vanishing gradient). • Hàm sigmoid cĩ điểm trung tâm khác 0 gây khĩ khăn cho việc hội tụ. Đặc điểm nổi bật của các mạng ẩn là chúng cĩ xu hướng ghi nhớ dữ liệu huấn luyện theo thời gian nghĩa là sai số trên tập huấn luyện sẽ giảm dần về 0 sau từng lượt huấn luyện (epochs). Tuy nhiên điều này khơng cĩ nghĩa là mơ hình huấn luyện cũng hoạt động tốt trên dữ liệu kiểm thử, thậm chí theo thời gian sai số mơ hình đạt được trên dữ liệu kiểm thử sẽ ngày càng gia tăng trong khi sai số trên dữ liệu huấn luyện ngày càng tiến về 0 (hiện tượng quá khớp – overfitting). Do đĩ, việc mạng ẩn “hội tụ” trên tập dữ liệu huấn luyện là khơng cĩ ý nghĩa thực tiễn. Sau khi đi qua các lớp ẩn (Fully-connected layers), vector ẩn đầu ra tại lớp cuối cùng được tính tốn theo cơng thức truy hồi như sau: (11) 1 = 휙1( ), 휙2( 1) = 휎2(푊2 1 + 2), 휙퐿( 퐿−1) = 휎퐿(푊퐿 퐿−1 + 퐿), 35
  45. Trong đĩ: 푊 : Ma trận trọng số tương ứng với lớp thứ x. : Vector hệ số thiên lệch (bias) tương ứng lớp thứ x. 휎: Hàm kích hoạt của perceptron thứ x. Tại đầu ra của mạng MLP là một vector đặc tính ẩn trong đĩ các phần tử mơ tả các một thuộc tính nào đĩ của người dùng, bộ phim và các thơng tin bổ trợ. 1.4. Đầu ra hồi quy tuyến tính (Linear Regression Output): Nhằm tính tốn giá trị xếp hạng của người dùng cho một bộ phim, chúng ta sử dụng lớp đầu ra là tốn tử hồi quy tuyến tính (Linear Regression Output Layer). Hình 3.7: Minh họa thuật tốn hồi quy tuyến tính Về mặt tốn học, thuật tốn hồi quy tuyến tính xác định mối quan hệ tuyến tính giữa các biến phụ thuộc (giá trị dự đốn) và các biến độc lập: = 훽 + 훼 + 휀 Trong đĩ: : Biến phụ thuộc. : Vector biến độc lập, mỗi phần tử tương ứng với một biến độc lập. 훼: Điểm chặn, đây là giao điểm của đường thẳng hồi quy với trục tung (khi tất cả các biến độc lập đều bằng 0). 36
  46. 휀: Thành phần sai số ngẫu nhiên, là hiệu số giữa giá trị thực của một biến phụ thuộc và giá trị dự đốn của nĩ. Sai số ngẫu nhiên cĩ giá trị trung bình bằng 0. Giá trị xếp hạng dự đốn được tính tốn theo biểu thức rút gọn sau: ̂ 푖 = 훽 × ( ) + 훼 (12) Trong đĩ: ̂ 푖: Giá trị xếp hạng ước tính của người dùng u đối với bộ phim i. : Tốn tử phi tuyến MLP. 훼: Giá trị chặn. 1.5. Hàm mục tiêu của mơ hình: ∑ ( − ̂ )2 ℒ = 푅 푆 = √ 푖=1 푖 푖 (13) Một số điểm khác biệt cuả mơ hình DeepCF so với các cơng trình đã được cơng bố [20, 29]: Thứ nhất, mơ hình DeepCF hướng đến giải quyết bài tốn dự đốn giá trị xếp hạng của người dùng dựa trên dữ liệu xếp hạng quá khứ (explicit feedback), các mơ hình Neural Collaborative Filtering (NCF) [20], Deep Matrix Factorization (DMF) [20] giải quyết bài tốn gợi ý danh sách sản phẩm dựa trên dữ liệu phản hồi ẩn (implicit feedback). Thứ hai, mơ hình DeepCF sử dụng duy nhất 01 mạng học sâu để đưa ra kết quả khuyến nghị, các mơ hình được dùng làm đối chứng sử dụng nhiều mơ hình MLP (DMF sử dụng 02 mạng học sâu để biến đổi dữ liệu xếp hạng thành vector biểu diễn người dùng và đối tượng) hoặc kết hợp MLP trong một phương thức lai ghép nhằm nâng cao chất lượng khuyến nghị (mơ hình NCF). 37
  47. 2. Một số nhận xét về mơ hình Qua phương trình (1) cĩ thể nhận thấy bản chất của mơ hình đề xuất là tốn tử hồi quy tuyến tính dựa trên các biến độc lập được biến đổi phi tuyến tính từ khơng gian biến độc lập là các đặc tính ẩn học được từ dữ liệu ban đầu. Đặc điểm của mơ hình đặc tính ẩn là các đặc tính học được từ dữ liệu cĩ thể phản ánh ngữ nghĩa (semantics) của đối tượng, cĩ thể là những đặc tính đơn lẻ hoặc là tổ hợp của những đặc tính đơn lẻ với nhau và thường là khĩ cĩ thể giải thích được sự tồn tại của những đặc tính này một cách trực quan. Kích thước của mơ hình đặc tính ẩn (số chiều của vector ẩn) thường được lựa chọn bằng kinh nghiệm của người phát triển. Trong trường hợp số chiều của vector ẩn quá nhỏ thì mơ hình ẩn cĩ thể khơng nắm bắt đầy đủ những quan hệ tiềm ẩn trong dữ liệu gốc, trường hợp số chiều của vector ẩn quá lớn thì mơ hình ẩn nhiều khả năng rơi vào tình trạng quá khớp. Ngồi ra, mơ hình MLP cĩ xu hướng ghi nhớ trong quá trình huấn luyện nên càng làm tăng khả năng xảy ra tình trạng quá khớp hơn nữa. Điều này đã thể hiện tương đối rõ rệt trong kết quả thực nghiệm mơ hình trong Chương 4:. 38
  48. Chương 4: Cài đặt, thử nghiệm mơ hình đề xuất 1. Mơi trường và các cơng cụ được sử dụng Nhằm cài đặt mơ hình được đề xuất, tác giả đã sử dụng các cơng cụ như sau: 1.1. Bộ dữ liệu mẫu Movielens Movielens là một dự án nghiên cứu sở thích phim ảnh của người dùng được tạo ra vào năm 1997 và được duy trì đến ngày nay bởi phịng thí nghiệm GroupLens Research thuộc khoa Khoa học máy tính của trường đại học Minnesota, Mỹ. Tính đến thời điểm hiện tại, dự án Movielens cung cấp tổng cộng 06 bộ dữ liệu mẫu cụ thể như sau: ✓ Bộ dữ liệu ml-100k là bộ dữ liệu gồm 100.000 xếp hạng phim từ 943 người dùng cho 1.682 bộ phim được phát hành vào tháng 04/1998. ✓ Bộ dữ liệu ml-1M là bộ dữ liệu gồm 1.000.209 xếp hạng từ 6.040 người dùng cho 3.900 bộ phim được phát hành vào tháng 02/2003. ✓ Bộ dữ liệu ml-10M là bộ dữ liệu gồm 10.000.054 xếp hạng từ 71.567 người dùng cho 10.681 bộ phim được phát hành vào tháng 02/2003. ✓ Bộ dữ liệu ml-20M là bộ dữ liệu gồm 20.000.263 xếp hạng từ 138.493 người dùng cho 27.278 bộ phim được phát hành vào tháng 10/2016. ✓ Bộ dữ liệu ml-25M là bộ dữ liệu gồm 25.000.095 xếp hạng từ 162.541 người dùng cho 62.423 bộ phim được phát hành vào tháng 10/2019. ✓ Bộ dữ liệu MovieLens 1B Synthetic Dataset: Đây là bộ dữ liệu sử dụng tập dữ liệu ml-20M để sinh ra dữ liệu nhân tạo xấp xỉ gồm 1.223.962.043 xếp hạng cho dữ liệu huấn luyện và 12.709.557 xếp hạng cho dữ liệu kiểm tra. Bên cạnh dữ liệu về xếp hạng phim, dự án Movielens cịn cung cấp một số dữ liệu bổ trợ như thơng tin nhân khẩu học của người dùng, thơng tin mơ tả phim như thể loại phim, các thẻ (tags) được gán cho từng bộ phim. 1.2. Thư viện MxNet Apache MxNet là một khung phần mềm mã nguồn mở trong lĩnh vực học sâu hỗ trợ các nhà phát triển xây dựng nguyên mẫu, huấn luyện và triển khai các mơ hình học sâu ứng 39
  49. dụng trong thực tế như nhận dạng khuơn mặt, phát hiện đối tượng, nhận dạng ký tự quang học, nhận dạng giọng nĩi và dịch máy. Để phục vụ việc nghiên cứu và triển khai các mơ hình học sâu, hiện nay trên thế giới đã tồn tại nhiều nền tảng như Torch, Caffe, Theano, TensorFlow, Keras, Microsoft Cognitive Toolkit, tuy nhiên Apache MxNet cĩ một số đặc điểm vượt trội hơn so với các nền tảng trên như sau: ✓ Tương thích với nhiều nền tảng phần cứng/hệ điều hành như Windows, Linux, MacOS, Cloud computing, Raspberry Pi, Nvidia Jetson. ✓ Xử lý phân tán với nhiều bộ xử lý đồ họa (GPUs), nhiều bộ xử lý (CPUs) giúp tăng tốc độ xử lý các mơ hình lớn. ✓ Hỗ trợ nhiều ngơn ngữ lập trình (bindings): C++, Python, Java, Scala, R, Matlab, Wolfram, ✓ Được hỗ trợ đĩng gĩi sẵn sàng bởi nhiều nền tảng cloud computing như Amazon Web Services, Microsoft Azure. ✓ Cộng đồng nghiên cứu mạnh như viện đại học Carnegie Mellon, MIT và các cơng ty lớn như Intel, Baidu, Microsoft. ✓ Định dạng mở ONNX biểu diễn các mơ hình học máy giúp trao đổi các mơ hình học máy/học sâu dễ dàng hơn, nhờ đĩ mở ra khả năng tái sử dụng các mơ hình học máy đã được huấn luyện để tiếp tục nghiên cứu sâu hơn. Các thành phần chính của khung phần mềm MxNet và vai trị của chúng [39] được thể hiện trong hình vẽ dưới đây: Hình 4.1: Kiến trúc khung phần mềm MxNet 40
  50. ✓ Runtime Dependency Engine: Bộ lập lịch và thực thi các hoạt động dựa trên sự phụ thuộc đọc/ghi. ✓ Storage Allocator: Phân bổ và thu hồi khơng gian lưu trữ. ✓ Resource Manager: Bộ quản lý tài nguyên tồn cục. ✓ NDArray: Mảng n chiều động, là kiểu dữ liệu cơ bản trong MxNet. ✓ Symbolic Execution: Trình thực thi biểu tượng, cung cấp khả năng thực thi và tối ưu hĩa đồ thị biểu tượng. ✓ Operators: Các tốn tử xác định phép tính. ✓ Symbol Construction: Xây dựng biểu đồ biểu tượng tính tốn (cấu hình mạng). ✓ KVStore: Giao diện lưu trữ kiểu khĩa-giá trị để đồng bộ hĩa tham số. ✓ Data Loading: Bộ nạp dữ liệu phân tán. Các thành phần Symbolic Construction và Symbolic Execution chịu trách nhiệm chính trong việc xây dựng và thực thi các mơ hình học sâu nhờ giao diện lập trình biểu tượng (symbolic programming). Thay vì viết mã lệnh thực thi các thao tác từng bước (imperative programming), trong lập trình biểu tượng trước tiên chúng ta xây dựng một đồ thị tính tốn bao gồm các khối biểu diễn đầu vào và đầu ra được chỉ định. Trước khi chạy (runtime), MxNet sẽ biên dịch đồ thị tính tốn này sang mã máy và thực thi nĩ. Trong luận văn này, các mơ hình học sâu được xây dựng theo cách tiếp cận lập trình biểu tượng nhằm tận dụng sức mạnh của khung phần mềm MxNet trong việc cung cấp sẵn các khối xây dựng (building blocks) cho các mơ hình. Các hàm lập trình nhằm xây dựng mơ hình biểu tượng học sâu được cung cấp trong package mx.symbol của thư viện MxNet [40]. 1.3. Máy chủ Colaboratory Colaboratory (Colab) là một sản phẩm do bộ phận Google Research phát hành miễn phí cho người dùng để chạy các chương trình viết bằng ngơn ngữ python qua trình duyệt web. Về bản chất, Google cung cấp cho người dùng một mơi trường máy chủ chia sẻ tài nguyên GPU để thực hiện các tác vụ phân tích dữ liệu lớn, huấn luyện các mơ hình học máy. 41
  51. Một ưu điểm lớn của máy chủ Colab là được cài đặt sẵn các thư viện phổ biến đối cho các tác vụ học sâu như Tensorflow, Keras, sklearn, numpy, làm giảm bớt rất nhiều cơng sức thiết lập mơi trường ban đầu. Bên cạnh đĩ Colab cho phép kết nối dễ dàng đến các tài nguyên như Github (cung cấp các cài đặt mã nguồn được chia sẻ), Google drive (cung cấp khơng gian lưu trữ dữ liệu tương thích tốt với Colab) giúp tạo điều kiện thuận lợi cho người nghiên cứu cĩ thể nhanh chĩng cài đặt, thử nghiệm các mơ hình. Hiện nay Colab cung cấp cho người dùng nhiều tùy chọn bộ xử lý đồ họa như Nvidia K80, T4, P4, P100 tuy nhiên do hạn chế của dịch vụ miễn phí, Google khơng cho phép người dùng tùy chọn loại bộ xử lý đồ họa mà bộ xử lý đồ họa sẽ được chỉ định một cách ngẫu nhiên. Bộ nhớ RAM khả dụng được giới hạn là 12 GB và giới hạn thời gian sử dụng liên tục tối đa là 12 tiếng. Bên cạnh hình thức sử dụng miễn phí Colab, Google cũng đưa ra lựa chọn gĩi thuê bao Colab Pro cho người dùng cao cấp, với các hạn mức được nâng cao: bộ nhớ RAM lên đến 25 GB, thời gian sử dụng liên tục lên đến 24 tiếng. Colab Colab Pro Bộ xử lý GPU Nvidia K80 Nvidia T4, P100 Bộ nhớ ảo 12 GB 25 GB Thời gian sử dụng liên tục Lên tới 12 tiếng Lên tới 24 tiếng Bộ xử lý TPU Khơng Cĩ Chi phí Miễn phí 9,99 USD/tháng Bảng 4-1: So sánh cơng cụ Colab và Colab Pro 2. Thực nghiệm và đánh giá 2.1. Bộ dữ liệu Movielens-20M: Tổng số lượt xếp hạng 20.000.263 Số lượng người dùng 138.493 42
  52. Số lượng bộ phim 27.278 Dải giá trị xếp hạng 0 – 5 sao, bước nhảy 0,5 sao Độ thưa 99,47% Dữ liệu bổ sung 1.128 tags, tag relevant score data Bảng 4-2: Thơng số dữ liệu mẫu Movielens-20M Dữ liệu thống kê mơ tả về xếp hạng bộ phim như sau: Hình 4.2: Số lượng phim xuất bản theo năm Hình 4.3: Số lượng phim theo từng thể loại 43
  53. Hình 4.4: Định dạng dữ liệu movies.csv Hình 4.5: Thống kê bộ dữ liệu ml-20m 44
  54. Hình 4.6: Thống kê dữ liệu rating theo thể loại phim Hình 4.7: Số lượng rating theo từng thể loại phim Thẻ (tag) là siêu dữ liệu (metadata) do người dùng cung cấp cho một bộ phim [30]. Các thẻ này thường là một từ hoặc một cụm từ người dùng mơ tả về bộ phim hoặc cũng cĩ thể là những từ ngữ bất kỳ. Bộ dữ liệu ml-20m được cung cấp kèm theo một cấu trúc dữ liệu gọi là Tag Genome dạng ma trận chứa thơng tin điểm phù hợp của từng thẻ tương ứng với từng bộ phim. Điểm phù hợp cho biết một bộ phim cĩ độ tương quan mạnh hay yếu với các thơng tin nội dung được biểu diễn bởi các thẻ. Bên cạnh đĩ, với sự phát triển của các thẻ như là một phương 45
  55. tiện hữu hiệu giúp người dùng tìm kiếm hoặc hiểu biết về các sự vật, thơng tin về thẻ là một nguồn dữ liệu hữu ích giúp cải thiện hiệu quả cho các thuật tốn khuyến nghị dựa trên cộng tác [31]. movieId tagId relevance 1 1 0.02500 1 2 0.02500 1 3 0.05775 1 4 0.09675 1 5 0.14675 Hình 4.8: Định dạng dữ liệu genome_scores.csv Khác với dữ liệu xếp hạng là một ma trận dữ liệu thưa, ma trận Tag-Genome này là ma trận dày, trong đĩ tất cả các bộ phim đều được đánh giá điểm phù hợp với từng thẻ. Điểm phù hợp (genome score) của mỗi bộ phim với một thẻ là một số thực nằm trong dải [0; 1], trong bộ dữ liệu ml-20m cĩ 1.128 thẻ do đĩ mỗi bộ phim sẽ được mơ tả thơng tin về nội dung bởi một vector cĩ độ dài 1.128 phần tử. 46
  56. Hình 4.9: Ma trận điểm phù hợp Phim - Thẻ 2.2. Cài đặt thí nghiệm và đánh giá kết quả thu được Nhằm kiểm tra khả năng của mơ hình đề xuất trong việc mơ phỏng lại các mối quan hệ phi tuyến tính tiềm ẩn trong ma trận Người dùng – Sản phẩm, tác giả luận văn sử dụng thuật tốn phân tích thừa số ma trận (Matrix Factorization) do tác giả Funk [33] xây dựng làm mơ hình cơ sở để đánh giá. Phương pháp phân tích thừa số ma trận được sử dụng trong các hệ thống khuyến nghị để trích xuất các vector nhân tố ẩn (latent factors) từ ma trận Người dùng – Sản phẩm để mơ tả đặc điểm của cả người dùng và mặt hàng. Tương tác (việc xếp hạng) giữa người dùng và sản phẩm được xấp xỉ bằng tích vơ hướng của hai vector trong khơng gian ẩn (latent space). Theo đĩ, mỗi Item j sẽ được mơ tả bằng một vector 푗 và mỗi User i được mơ tả bằng vector 푈푖. Giá trị xếp hạng của một người dùng 푈푖 cho một mặt hàng 푗 được xấp xỉ theo cơng thức: 푖̂ ≈ 푈⃗⃗⃗ 푖 ⋅ ⃗⃗푗 47
  57. Mã nguồn cài đặt mơ hình đã được đưa lên trang Github tại địa chỉ: cf/blob/master/MxNet_Deep_Collaborative_Filtering_ml_20m_thesis_final.ipynb 2.2.1. Trường hợp dữ liệu thưa 2.2.1.1. Mơ hình Genre DeepCF: Căn cứ định dạng dữ liệu chi tiết của từng bộ phim được mơ tả tại Hình 4.4: Định dạng dữ liệu, trường genres chứa thơng tin về thể loại của từng bộ phim ở dạng text, mỗi bộ phim cĩ thể thuộc nhiều thể loại, mỗi thơng tin thể loại được ngăn cách nhau bằng dấu “|”. Do đĩ để chuẩn bị dữ liệu đầu vào cho mơ hình, tác giả thực hiện thủ tục tiền xử lý dữ liệu như sau: 1. Chuyển đổi dữ liệu thể loại phim từ dạng chuỗi sang dạng số nguyên: ✓ Trích xuất tập hợp thơng tin thể loại phim . ✓ Với mỗi phần tử trong tập hợp , thực hiện gán thơng tin 푙 푒푙_푖 푠. 2. Ánh xạ thơng tin thể loại phim cho từng bộ phim: ✓ Tạo mảng 푡 푖푛_ 푒푛 푒푠 và 푣 푙푖 _ 푒푛 푒푠 với chỉ số là movieId và các phần tử nhận giá trị trong mảng 푙 푒푙_푖 푠. 48
  58. Người dùng Phim Thể loại Lớp nhúng Lớp nhúng Lớp nhúng Lớp nối MLP Hồi quy tuyến tính Hình 4.10: Input layer với thơng tin thể loại phim 2.2.1.2. Mơ hình Genre-Tag DeepCF: Căn cứ định dạng dữ liệu genome-scores được mơ tả tại Hình 4.8, nhằm bổ sung dữ liệu thẻ cho từng bộ phim, tác giả thực hiện tiền xử lý dữ liệu như sau: 1. Trích xuất thơng tin thẻ cĩ độ phù hợp cao nhất với từng bộ phim: ✓ Gom dữ liệu trong bảng genome-scores theo movieId. ✓ Trích xuất các cặp dữ liệu (movieId, tagId) cĩ điểm relevance là lớn nhất vào dataframe 푡 푠. 49
  59. 2. Ánh xạ lại thơng tin thẻ cho từng bộ phim: ✓ Tạo mảng 푙 푒푙_푡 với chỉ số là movieId và các phần tử nhận giá trị trong mảng 푡 푖 . movieId tagId relevance 1 1036 0.99925 2 29 0.98100 3 451 0.97450 4 1116 0.97675 5 451 0.96575 Hình 4.11: Kết quả tiền xử lý dữ liệu genome-scores Người dùng Phim Thể loại Thẻ phim Lớp nhúng Lớp nhúng Lớp nhúng Lớp nhúng Lớp nối MLP Hồi quy tuyến tính Hình 4.12: Input layer với thơng tin thể loại phim và thơng tin thẻ phim 50
  60. Số lượng RMSE (Validation) @ 50 epochs layer DeepCF DeepCF with DeepCF with Genre Genre-Tag 3 0,826919 0,827035 0,826118 4 0,847022 0,839135 0,837378 5 0,840093 0,839927 0,844590 Bảng 4-3: Thống kê sự ảnh hưởng của việc thay đổi cấu hình MLP lên giá trị RMSE Epochs Funk MF DeepCF DeepCF with Genre DeepCF with Genre-Tag RMSE RMSE % thay RMSE % thay RMSE % thay đổi so đổi so đổi so với Funk với Funk với Funk MF MF MF 10 0,829147 0,826606 0,31% 0,827999 0,14% 0,822100 0,85% 20 0,785532 0,823505 -4,83% 0,825408 -5,08% 0,821545 -4,58% 50 0,813484 0,847022 -4,12% 0,839135 -3,15% 0,837378 -2,94% Bảng 4-4: Thống kê kết quả thí nghiệm 2.2.2. Bài tốn Cold-start (Khởi động nguội) Nhằm đánh giá hiệu quả thuật tốn DeepCF trong việc giải quyết vấn đề khởi động nguội [32], tác giả đề xuất phương pháp đánh giá như sau: 1. Chuẩn bị kịch bản khởi động nguội: ✓ Trích xuất tập dữ liệu cold-start: Chọn ngẫu nhiên 10% các bộ phim vào tập hợp và chọn tồn bộ dữ liệu xếp hạng của những bộ phim này từ dữ liệu xếp hạng 51
  61. gốc đưa vào tập hợp 푅 . Phần dữ liệu xếp hạng cịn lại 푅 được sử dụng để huấn luyện mơ hình. ✓ Huấn luyện mơ hình theo dữ liệu 푅푤. 2. Đánh giá hiệu quả thuật tốn DeepCF: ✓ Tính sai số RMSE giữa kết quả dự đốn giá trị rating và giá trị rating thực tế trong tập hợp 푅 . Epochs Funk MF DeepCF DeepCF with Genre DeepCF with Genre- Tag RMSE RMSE % thay đổi RMSE % thay đổi so với so với Funk MF Funk MF 10 3,700010 1,273941 1,256807 1,34% 1,157541 9,14% 20 3,699980 1,245097 1,234086 0,88% 1,143547 8,16% 50 3,699934 1,346252 1,208109 10,26% 1,139432 15,36% Bảng 4-5: Kết quả thí nghiệm kịch bản cold-start 2.3. Đánh giá Đối với trường hợp dữ liệu thưa ở mục 2.2.1, hiệu suất của các mơ hình DeepCF cĩ sự tốc độ hội tụ nhanh hơn so với mơ hình Funk MF: Với số lượt huấn luyện (epochs) từ 1 – 10, hiệu suất của các mơ hình đề xuất là tốt hơn so với thuật tốn gốc (giá trị RMSE nhỏ hơn). Tuy nhiên khi thời lượng huấn luyện càng lâu, các mơ hình DeepCF cĩ hiệu suất kém hơn so với mơ hình Funk Matrix Factorization: 52
  62. Funk MF DCF Genre DCF Genre-Tag DCF 1.15 1.1 1.05 1 0.95 0.9 0.85 0.8 0.75 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 Hình 4.13: Biểu đồ RMSE theo Epochs Nguyên nhân gây ra tình trạng nĩi trên cĩ thể là do các mơ hình DeepCF đã gặp phải hiện tượng quá khớp khiến cho hiệu suất trên tập dữ liệu validation kém đi đáng kể. Để khắc phục hiện tượng quá khớp này cần bổ sung thêm vào hàm mục tiêu của mơ hình thành phần điều hịa (regularization). Đối với bài tốn khởi động nguội được nêu tại mục 2.2.2, hiệu suất của các mơ hình DeepCF tỏ ra vượt trội hơn hẳn mơ hình Funk Matrix Factorization, trong đĩ các mơ hình tích hợp được càng nhiều thơng tin nội dung phim thì kết quả càng tốt hơn: 53
  63. Funk MF DCF Genre DCF Genre-Tag DCF 3.5 3 2.5 2 1.5 1 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 Hình 4.14: Biểu đồ RMSE với kịch bản khởi động nguội Kết quả thí nghiệm trên biểu đồ đã khẳng định lại kết luận lý thuyết về việc các thuật tốn khuyến nghị dựa trên lọc cộng tác thuần túy tỏ ra khơng hiệu quả trong trường hợp xuất hiện những người dùng hoặc đối tượng mới. Tuy nhiên hiệu suất của thuật tốn DeepCF tỏ ra tốt hơn rất nhiều so với thuật tốn Funk MF đã cho thấy hiệu quả của mơ hình học sâu MLP trong việc mơ phỏng các quan hệ phi tuyến tính tiềm ẩn trong dữ liệu. Mặt khác, đồ thị cũng cho thấy các mơ hình DeepCF sử dụng thơng tin bổ trợ càng nhiều thì hiệu suất càng được cải thiện. Điều này là phù hợp với lý thuyết về mất mát thơng tin. Hiện nay luận văn mới dừng lại trong việc kết hợp các thơng tin bổ trợ cho bộ phim, trong khi đĩ dataset Movielens cịn cung cấp các thơng tin bổ trợ cho người dùng như tuổi tác, giới tính. Như vậy một trong những hướng nghiên cứu tiếp theo của luận văn này sẽ đi vào cải tiến mơ hình DeepCF để sử dụng các thơng tin bổ trợ cho người dùng. 54
  64. Kết luận Các kết quả đã đạt được Với ý tưởng nghiên cứu ứng dụng các mơ hình học sâu vào hệ khuyến nghị, đề tài “ỨNG DỤNG CÁC MƠ HÌNH HỌC SÂU VÀO KĨ THUẬT LỌC CỘNG TÁC DỰA TRÊN MƠ HÌNH CHO CÁC HỆ THỐNG KHUYẾN NGHỊ THƯƠNG MẠI” đã đạt được một số mục tiêu sau: Luận văn đã trình bày kiến thức tổng quan về hệ khuyến nghị và các phương pháp tiếp cận cơ bản để xây dựng một hệ thống khuyến nghị. Hệ thống hĩa cơ sở lý thuyết về hệ khuyến nghị và phân tích, tổng hợp các nghiên cứu liên quan nhằm đề ra quy trình và lựa chọn các cơng cụ thích hợp để xây dựng hệ thống khuyến nghị dựa trên lọc cộng tác. Bước đầu xây dựng được một mơ hình kết hợp học sâu với kỹ thuật lọc cộng tác trên quy mơ gần với thực tế và đánh giá được ưu, nhược điểm của mơ hình đề xuất so sánh với các mơ hình khuyến nghị khác. Hướng phát triển, mở rộng đề tài Nhằm cải thiện hiệu suất tương đương với một số cơng trình đã được cơng bố, mơ hình đề xuất sẽ tiếp tục nghiên cứu các biện pháp mở rộng thêm đầu vào, tối ưu hĩa các siêu tham số huấn luyện và điều chỉnh hàm mục tiêu của mơ hình. Với sự phát triển của thương mại điện tử đã làm bùng nổ lượng thơng tin trên khơng gian internet và người dùng ngày càng cĩ yêu cầu cao hơn về tính tiện ích của hệ khuyến nghị, do đĩ một trong các bài tốn được nhiều sự quan tâm của các nhà nghiên cứu hệ khuyến nghị là bài tốn gợi ý một danh sách sản phẩm cho người dùng dựa trên sở thích. Vì vậy trong tương lai, tác giả sẽ nghiên cứu khả năng kết hợp các mơ hình học sâu trong việc giải quyết bài tốn nêu trên. Hiện nay, việc nghiên cứu phát triển các mơ hình học sâu đã đạt được nhiều bước tiến bộ lớn trong lĩnh vực học thuật và đã được áp dụng rộng rãi vào nhiều lĩnh vực trong thực tế đời sống như các thiết bị gia dụng thơng minh cĩ khả năng nhận lệnh điều khiển bằng giọng nĩi, các loại camera phát hiện chuyển động trong thời gian thực, Các nhà 55
  65. nghiên cứu và các cơng ty phần mềm lớn đã cộng tác với nhau để đưa ra một số tiêu chuẩn mở nhằm giúp cho các lập trình viên nhanh chĩng cài đặt các mơ hình học sâu lên các ứng dụng. Do đĩ để tối ưu hĩa chi phí về thời gian nghiên cứu, một trong những hướng phát triển của luận văn là tìm tịi nghiên cứu khả năng áp dụng các chuẩn mở lưu trữ các mơ hình học sâu để thử nghiệm hiệu quả của các mơ hình học sâu tiên tiến trong hệ khuyến nghị. 56
  66. Tài liệu tham khảo 1. Isinkaye, F.O., Y.O. Folajimi, and B.A. Ojokoh, Recommendation systems: Principles, methods and evaluation. Egyptian Informatics Journal, 2015. 16(3): p. 261-273. 2. Guo, G. Resolving Data Sparsity and Cold Start in Recommender Systems. in User Modeling, Adaptation, and Personalization. 2012. Berlin, Heidelberg: Springer Berlin Heidelberg. 3. Lops, P., M. de Gemmis, and G. Semeraro, Content-based Recommender Systems: State of the Art and Trends, in Recommender Systems Handbook, F. Ricci, et al., Editors. 2011, Springer US: Boston, MA. p. 73-105. 4. Aggarwal, C.C., Model-Based Collaborative Filtering, in Recommender Systems: The Textbook. 2016, Springer International Publishing: Cham. p. 71-138. 5. Claypool, M., et al. Combining Content-Based and Collaborative Filters in an Online Newspaper. in SIGIR 1999. 1999. 6. Billsus, D. and M.J. Pazzani, A hybrid user model for news story classification, in Proceedings of the seventh international conference on User modeling. 1999, Springer-Verlag: Banff, Canada. p. 99–108. 7. Basu, C., H. Hirsh, and W.W. Cohen. Recommendation as Classification: Using Social and Content-Based Information in Recommendation. in AAAI/IAAI. 1998. 8. Burke, R., Knowledge-Based Recommender Systems. Encyclopedia of library and information systems, 2000. 69. 9. Bennett, J., S. Lanning, and N. Netflix, The Netflix Prize. 2009. 10. Jannach, D., et al., Recommender Systems: An Introduction. 2010: Cambridge University Press. 11. Zhang, S., et al., Deep Learning Based Recommender System: A Survey and New Perspectives. ACM Comput. Surv., 2019. 52(1): p. Article 5. 57
  67. 12. Mobasher, B., X. Jin, and Y. Zhou. Semantically Enhanced Collaborative Filtering on the Web. 2004. Berlin, Heidelberg: Springer Berlin Heidelberg. 13. Kużelewska, U. Advantages of Information Granulation in Clustering Algorithms. 2013. Berlin, Heidelberg: Springer Berlin Heidelberg. 14. Caruana, R. and A. Niculescu-Mizil, An empirical comparison of supervised learning algorithms, in Proceedings of the 23rd international conference on Machine learning. 2006, Association for Computing Machinery: Pittsburgh, Pennsylvania, USA. p. 161–168. 15. Larose, D.T., Discovering Knowledge in Data: An Introduction to Data Mining. 2004: Wiley-Interscience. 16. Ge, X., et al. A new prediction approach based on linear regression for collaborative filtering. in 2011 Eighth International Conference on Fuzzy Systems and Knowledge Discovery (FSKD). 2011. 17. Koren, Y., R. Bell, and C. Volinsky, Matrix Factorization Techniques for Recommender Systems. Computer, 2009. 42(8): p. 30-37. 18. Candès, E.J. and B. Recht, Exact Matrix Completion via Convex Optimization. Foundations of Computational Mathematics, 2009. 9(6): p. 717. 19. Keshavan, R.H., A. Montanari, and S. Oh, Matrix Completion From a Few Entries. IEEE Transactions on Information Theory, 2010. 56(6): p. 2980-2998. 20. He, X., et al., Neural Collaborative Filtering, in Proceedings of the 26th International Conference on World Wide Web. 2017, International World Wide Web Conferences Steering Committee: Perth, Australia. p. 173–182. 21. Dziugaite, G.K. and D.M. Roy, Neural Network Matrix Factorization. ArXiv, 2015. abs/1511.06443. 22. Sedhain, S., et al., AutoRec: Autoencoders Meet Collaborative Filtering, in Proceedings of the 24th International Conference on World Wide Web. 2015, Association for Computing Machinery: Florence, Italy. p. 111–112. 58
  68. 23. He, X., et al., Outer product-based neural collaborative filtering, in Proceedings of the 27th International Joint Conference on Artificial Intelligence. 2018, AAAI Press: Stockholm, Sweden. p. 2227–2233. 24. Zhao, X., et al., Recommendations with Negative Feedback via Pairwise Deep Reinforcement Learning. Proceedings of the 24th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining, 2018. 25. Zhao, X., et al., Deep reinforcement learning for page-wise recommendations, in Proceedings of the 12th ACM Conference on Recommender Systems. 2018, Association for Computing Machinery: Vancouver, British Columbia, Canada. p. 95–103. 26. Zheng, G., et al., DRN: A Deep Reinforcement Learning Framework for News Recommendation. 2018. 167-176. 27. Mao, H., et al., Resource Management with Deep Reinforcement Learning, in Proceedings of the 15th ACM Workshop on Hot Topics in Networks. 2016, Association for Computing Machinery: Atlanta, GA, USA. p. 50–56. 28. Schreiber, J., Deep matrix factorization using Apache MXNet. 2017. 29. Xue, H.-J., et al., Deep matrix factorization models for recommender systems, in Proceedings of the 26th International Joint Conference on Artificial Intelligence. 2017, AAAI Press: Melbourne, Australia. p. 3203–3209. 30. Vig, J., S. Sen, and J. Riedl, The Tag Genome: Encoding Community Knowledge to Support Novel Interaction. ACM Trans. Interact. Intell. Syst., 2012. 2(3): p. Article 13. 31. Sen, S., J. Vig, and J. Riedl. Tagommenders: connecting users to items through tags. in WWW '09. 2009. 32. Xu, J., et al., Ice-breaking: mitigating cold-start recommendation problem by rating comparison, in Proceedings of the 24th International Conference on Artificial Intelligence. 2015, AAAI Press: Buenos Aires, Argentina. p. 3981–3987. 59
  69. 33. S. Funk, “Netflix Update: Try This at Home,” Dec. 2006; 34. 35. 36. 37. 38. 39. 40. 60