ĐẠ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
Mục lục
LỜI CẢM ƠN .........................................................................
69 trang |
Chia sẻ: huong20 | Ngày: 07/01/2022 | Lượt xem: 545 | Lượt tải: 0
Tóm tắt 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, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trê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 toá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 toá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 toá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
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
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 hoà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 toà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
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 toà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 hoàn toà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
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
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 toá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
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
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
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ự
đoá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ự đoán xếp
hạng (rate prediction) nhằm mục tiêu tối ưu hóa dự đoá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
có tương tác nhất. Trong hai nhiệm vụ nói trên, nhiệm vụ dự đoá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ự đoá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
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 toá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 hoàn toà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 hoàn toàn không có tương tác nào, hệ khuyến nghị không thể
3
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
푟(푈, 퐼) = 푐표푠(푃푟표푓푖푙푒⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗(⃗⃗⃗푈⃗⃗⃗) , 퐶표푛푡푒푛푡⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗(⃗⃗퐼⃗⃗) ) (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ự đoá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 toá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ự đoá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 toá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ự đoá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
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
Đã 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 toà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
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 toá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 toán độ tương tự giữa những người dùng.
푥 ⋅ 푦 훴푟푥,푖 ⋅ 푟푦 푖
푠푖푚푖푙푎푟푖푡푦(푥, 푦) = 푐표푠(푥 , 푦 ) = = ,
‖푥 ‖2 × ‖푦 ‖2 2 2 (3)
√훴푟푥,푖√훴푟푦,푖
Bước 2: Tính toán giá trị xếp hạng dự đoán theo công thức:
8
푛
훴푖=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 hoàn toà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 toá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 toàn
9
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ự đoá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 toá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 toá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 toá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 toá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ữ toàn bộ ma trận tương
tác vào bộ nhớ máy tính để thực hiện tính toán lại kết quả khuyến nghị cho từng người
dùng.
Hai là tốc độ tính toán ra kết quả tính toá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 th...utput_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 hoàn toà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 toá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 toán tiếp theo.
31
푢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
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
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 toán tử phi tuyến 휎:
푦 = 휎(푤푥)
휎 là ma trận không gian ℝ푚×푛 có các phần tử được áp dụng toán tử phi tuyến 휎.
Toá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
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 toán theo công thức truy hồi như sau:
(11)
푧1 = 휙1(푥),
푇
휙2(푥1) = 휎2(푊2 푥1 + 푏2),
푇
휙퐿(푥퐿−1) = 휎퐿(푊퐿 푥퐿−1 + 푏퐿),
35
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 toá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à toán tử hồi quy tuyến tính (Linear Regression Output Layer).
Hình 3.7: Minh họa thuật toán hồi quy tuyến tính
Về mặt toán học, thuật toá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ự đoá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
휀: 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ự đoá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ự đoán được tính toá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.
푓: Toá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 toán dự đoá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
toá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
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à toá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.
Ngoà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
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
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
✓ 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 toà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 toán tử xác định phép tính.
✓ Symbol Construction: Xây dựng biểu đồ biểu tượng tính toá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 toá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 toá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
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
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
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
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
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 toá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
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 toá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
Mã nguồn cài đặt mô hình đã được đưa lên trang Github tại địa chỉ:
https://github.com/anhdung28888/deep-
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
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
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
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 toán Cold-start (Khởi động nguội)
Nhằm đánh giá hiệu quả thuật toá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 toà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
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 toán DeepCF:
✓ Tính sai số RMSE giữa kết quả dự đoá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 toá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
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 toá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
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
toá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 toán
DeepCF tỏ ra tốt hơn rất nhiều so với thuật toá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
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 toán được nhiều sự quan tâm của các nhà nghiên cứu hệ
khuyến nghị là bài toá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 toá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
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
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
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
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,
Các file đính kèm theo tài liệu này:
- luan_van_ung_dung_cac_mo_hinh_hoc_sau_vao_ki_thuat_loc_cong.pdf