trẦn anh dŨng - trường Đại học công nghệ

69
ĐẠI HC QUC GIA HÀ NI TRƯỜNG ĐẠI HC CÔNG NGHTRẦN ANH DŨNG ng dng các mô hình học sâu vào kĩ thut lc cng tác da trên mô hình cho các hthng khuyến nghthươ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Ĩ QUN LÝ HTHNG THÔNG TIN NGƯỜI HƯỚNG DN KHOA HC: TS. TRN TRNG HIU Hà Ni 09/2020

Upload: others

Post on 05-Oct-2021

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: TRẦN ANH DŨNG - Trường Đại học Công Nghệ

ĐẠ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

Page 2: TRẦN ANH DŨNG - Trường Đại học Công Nghệ

i

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 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

Page 3: TRẦN ANH DŨNG - Trường Đại học Công Nghệ

ii

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

Page 4: TRẦN ANH DŨNG - Trường Đại học Công Nghệ

iii

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.

Page 5: TRẦN ANH DŨNG - Trường Đại học Công Nghệ

iv

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

Page 6: TRẦN ANH DŨNG - Trường Đại học Công Nghệ

v

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

System/RecSys

Hệ khuyến nghị

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

Matrix

Ma trận ghi nhận đánh giá của người

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

Error

Hàm sai số trung bình bình phương

14 MF Matrix Factorization Phân tích thừa số ma trận

Page 7: TRẦN ANH DŨNG - Trường Đại học Công Nghệ

vi

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

Page 8: TRẦN ANH DŨNG - Trường Đại học Công Nghệ

vii

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

Page 9: TRẦN ANH DŨNG - Trường Đại học Công Nghệ

viii

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

Page 10: TRẦN ANH DŨNG - Trường Đại học Công Nghệ

1

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

Page 11: TRẦN ANH DŨNG - Trường Đại học Công Nghệ

2

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ệ

Page 12: TRẦN ANH DŨNG - Trường Đại học Công Nghệ

3

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ể

Page 13: TRẦN ANH DŨNG - Trường Đại học Công Nghệ

4

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:

Page 14: TRẦN ANH DŨNG - Trường Đại học Công Nghệ

5

𝑟(𝑈, 𝐼) = 𝑐𝑜𝑠(𝑃𝑟𝑜𝑓𝑖𝑙𝑒(𝑈)⃗⃗ ⃗⃗ ⃗⃗ ⃗⃗ ⃗⃗ ⃗⃗ ⃗⃗ ⃗⃗ ⃗⃗ ⃗⃗ ⃗⃗ ⃗, 𝐶𝑜𝑛𝑡𝑒𝑛𝑡(𝐼)⃗⃗ ⃗⃗ ⃗⃗ ⃗⃗ ⃗⃗ ⃗⃗ ⃗⃗ ⃗⃗ ⃗⃗ ⃗⃗ ⃗⃗ ⃗) (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

Page 15: TRẦN ANH DŨNG - Trường Đại học Công Nghệ

6

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𝑛

𝑖=1. √∑ 𝑣𝑖

2𝑛

𝑖=1

(2)

Page 16: TRẦN ANH DŨNG - Trường Đại học Công Nghệ

7

Các bộ phimtương tự nhau

Đã thích

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.

Page 17: TRẦN ANH DŨNG - Trường Đại học Công Nghệ

8

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:

Page 18: TRẦN ANH DŨNG - Trường Đại học Công Nghệ

9

𝑟(𝑎, 𝑖) = 𝑟�̅� +𝛴𝑖=1

𝑛 (𝑟𝑢,𝑖 − 𝑟�̅�) × 𝑠𝑖𝑚𝑖𝑙𝑎𝑟𝑖𝑡𝑦(𝑥, 𝑦)

𝛴𝑖=1𝑛 𝑠𝑖𝑚𝑖𝑙𝑎𝑟𝑖𝑡𝑦(𝑥, 𝑦)

(4)

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

Page 19: TRẦN ANH DŨNG - Trường Đại học Công Nghệ

10

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 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 toà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:

Page 20: TRẦN ANH DŨNG - Trường Đại học Công Nghệ

11

Lai ghép theo trọng số (Weighted): Hệ thống RS sử dụng giá trị xếp hạng từ thuật

toán lọc theo nội dung và giá trị xếp hạng từ thuật toá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 Naïve Bayesian Classifier (long-term model) để

dự đoá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ự đoán có độ tin cậy cao hơn.

Lai ghép hỗn hợp (Mixed): Đối với bài toá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 toá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 toá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 toá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 toán

khuyến nghị để điều chỉnh kết quả tư vấn được sinh ra bởi một thuật toá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 toán

lọc cộng tác.

Page 21: TRẦN ANH DŨNG - Trường Đại học Công Nghệ

12

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 toán khuyến nghị được sử dụng làm đầu vào bổ trợ cho một

thuật toán khuyến nghị khác bên cạnh các đầu vào từ dữ liệu thô có sẵn.

Khuyến nghị

Dữ liệu đầu vào

Dữ liệu đầu vào

Hệ khuyến nghị dựa trên lọc nội dung

Hệ khuyến nghị dựa trên lọc cộng tác

Bộ kết hợp

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ự đoán

đưa ra bởi thuật toá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 toán khuyến nghị được chuyển

thành bài toá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.

Page 22: TRẦN ANH DŨNG - Trường Đại học Công Nghệ

13

Trong phạm vi luận văn này, tác giả hướng đến bài toán tối ưu khả năng dự đoá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ự đoán

theo công thức sau:

𝑀𝐴𝐸 =1

𝑁∑|𝑟𝑖 − �̂�𝑖|

𝑁

𝑖=1

(5)

Ư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 toá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 toán hồi quy, ước lượng thống kê mà

chưa phù hợp với một số bài toán khuyến nghị cụ thể khác như bài toá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ự đoá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ự đoá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].

Page 23: TRẦN ANH DŨNG - Trường Đại học Công Nghệ

14

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

toá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 toá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ị.

Page 24: TRẦN ANH DŨNG - Trường Đại học Công Nghệ

15

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 toá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, 𝑟𝑖𝑗 ≠ ∅.

Ma trận tương tác Người dùng - Sản phẩm

Mô hình lọc cộng tác

Dự đoán giá trị xếp hạng

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 toá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 toá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.

Page 25: TRẦN ANH DŨNG - Trường Đại học Công Nghệ

16

𝑠(𝑎, 𝑢) =

𝛴𝑖=1𝑛 (𝑟𝑎,𝑖 − 𝑟�̅�)(𝑟𝑢,𝑖 − 𝑟�̅�)

√𝛴𝑖=1𝑛 (𝑟𝑎,𝑖 − 𝑟�̅�)

2√𝛴𝑖=1

𝑛 (𝑟𝑢,𝑖 − 𝑟�̅�)2

(7)

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ự đoán.

𝑟(𝑎, 𝑖) = 𝑟�̅� +

𝛴𝑖=1𝑛 (𝑟𝑢,𝑖 − 𝑟�̅�) × 𝑠(𝑎, 𝑢)

𝛴𝑖=1𝑛 𝑠(𝑎, 𝑢)

(8)

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 toá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ự đoá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

C

Tươ

ng

quan

cao

Hình 2.2: Lọc cộng tác dựa theo người dùng

Page 26: TRẦN ANH DŨNG - Trường Đại học Công Nghệ

17

- Kỹ thuật lọc dựa trên đối tượng: Kỹ thuật này tính toán giá trị rating dự đoá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ự đoá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

CTư

ơn

g qu

an c

ao

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𝑛 (𝑟𝑎,𝑖 − 𝑟�̅�)(𝑟𝑢,𝑖 − 𝑟�̅�)

√𝛴𝑖=1𝑛 (𝑟𝑎,𝑖 − 𝑟�̅�)

2√𝛴𝑖=1

𝑛 (𝑟𝑢,𝑖 − 𝑟�̅�)2

(9)

Page 27: TRẦN ANH DŨNG - Trường Đại học Công Nghệ

18

- Độ đo Cosine: Độ tương tự được tính toá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 toá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ự đoán chỉ áp

dụng cho từng người dùng cụ thể, mỗi khi cần dự đoá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

toá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 toán trước các mô

hình dự đoán bằng các thuật toán khai phá dữ liệu/học máy sau đó sử dụng mô hình này để

tính toá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 toá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 toán khai phá luật kết hợp trích xuất

các quy tắc dự đoá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 toá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

Page 28: TRẦN ANH DŨNG - Trường Đại học Công Nghệ

19

hiệu quả lưu trữ cũng như hiệu suất. Mặc dù các thuật toá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 toá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 toán K-

means và thuật toá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 toán dựa trên cộng tác.

- Cây quyết định (Decision tree)[14]: Thuật toá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 toán cây quyết định có

khả năng đưa ra những dự đoán rất chính xác. Ưu điểm là thuật toán cây quyết định

dễ hiểu hơn so với các thuật toá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

Page 29: TRẦN ANH DŨNG - Trường Đại học Công Nghệ

20

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ự đoá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 hoàn thiện ma trận (Matrix completion techniques)[17]: Bài toán hoà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 hoàn thiện ma trận trong bài

toá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 toán OptSpace để giải quyết vấn đề

hoà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.

Page 30: TRẦN ANH DŨNG - Trường Đại học Công Nghệ

21

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ị sử dụng các mô hình lai

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ì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 toá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.

Page 31: TRẦN ANH DŨNG - Trường Đại học Công Nghệ

22

Lớp đầu vàoLớp ẩn

Lớp đầu ra

Đầu vào #1

Đầu vào #n

Đầu vào #2

Đầu ra

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

toá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 toá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

Page 32: TRẦN ANH DŨNG - Trường Đại học Công Nghệ

23

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ự đoá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 đầu raLớp mã hóa

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à toà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

Page 33: TRẦN ANH DŨNG - Trường Đại học Công Nghệ

24

thuật toá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.

Đầu vào Lớp tích chậpLớp pooling

Lớp ẩn

Đầu ra

Trích chọn đặc trưng Phân lớp

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.

Page 34: TRẦN ANH DŨNG - Trường Đại học Công Nghệ

25

Lớp đầu vào

Lớp đầu ra

Lớp ẩn

y

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.

Bộ tạo dữ liệu giả

Dữ liệu thật Mẫu

Mẫu

Bộ phân loại Phân biệt được?

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.

Page 35: TRẦN ANH DŨNG - Trường Đại học Công Nghệ

26

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ị.

DNN

Trạng tháis

Môi trường

Chính sách(s,a)

Thực thi hành động a

Trạng thái s

Phần thưởng r

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

Page 36: TRẦN ANH DŨNG - Trường Đại học Công Nghệ

27

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 toá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 toán; (2) Cho

phép các thuật toá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 toán mô hình chuỗi như bài toá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

Page 37: TRẦN ANH DŨNG - Trường Đại học Công Nghệ

28

gian. Ví dụ bài toán dự đoán sản phẩm được mua tiếp theo, bài toán khuyến nghị theo phiên

truy cập là các bài toá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ự đoá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 toá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.

Page 38: TRẦN ANH DŨNG - Trường Đại học Công Nghệ

29

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 toán dự đoá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:

......21 15...43 101

Vector ẩn người dùng

Vector ẩn đối tượng

Vector ẩn thể loại phim

Lớp nối

Layer 2

Layer N

Mạng noron sâu nhiều lớp (MLP)

Lớp nhúng

Lớp vào 101

Vector ẩn thẻ phim

User (U) Item (I) Genre Tag

Layer 1

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:

𝑣𝑗 = {10

𝑛ế𝑢 𝑛ℎậ𝑛 𝑔𝑖á 𝑡𝑟ị

𝑛ế𝑢 𝑘ℎô𝑛𝑔 𝑛ℎậ𝑛 𝑔𝑖á 𝑡𝑟ị

Thuật toán mã hóa trên được gọi là one-hot encoding, đầu ra của thuật toán là vector

�⃗� là một vector thưa có rất ít phần tử khác 0.

Page 39: TRẦN ANH DŨNG - Trường Đại học Công Nghệ

30

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 toà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 toá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 toán.

Biện pháp giải quyết cho những vấn đề này là sử dụng các thuật toá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 toà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:

Page 40: TRẦN ANH DŨNG - Trường Đại học Công Nghệ

31

• 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 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.

Page 41: TRẦN ANH DŨNG - Trường Đại học Công Nghệ

32

𝑢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.

Page 42: TRẦN ANH DŨNG - Trường Đại học Công Nghệ

33

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:

Page 43: TRẦN ANH DŨNG - Trường Đại học Công Nghệ

34

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.

Page 44: TRẦN ANH DŨNG - Trường Đại học Công Nghệ

35

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:

𝑧1 = 𝜙1(𝑥),

𝜙2(𝑥1) = 𝜎2(𝑊2𝑇𝑥1 + 𝑏2),

𝜙𝐿(𝑥𝐿−1) = 𝜎𝐿(𝑊𝐿𝑇𝑥𝐿−1 + 𝑏𝐿),

(11)

Page 45: TRẦN ANH DŨNG - Trường Đại học Công Nghệ

36

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).

Page 46: TRẦN ANH DŨNG - Trường Đại học Công Nghệ

37

𝜀: 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).

Page 47: TRẦN ANH DŨNG - Trường Đại học Công Nghệ

38

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:.

Page 48: TRẦN ANH DŨNG - Trường Đại học Công Nghệ

39

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

Page 49: TRẦN ANH DŨNG - Trường Đại học Công Nghệ

40

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

Page 50: TRẦN ANH DŨNG - Trường Đại học Công Nghệ

41

✓ 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.

Page 51: TRẦN ANH DŨNG - Trường Đại học Công Nghệ

42

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

Page 52: TRẦN ANH DŨNG - Trường Đại học Công Nghệ

43

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

Page 53: TRẦN ANH DŨNG - Trường Đại học Công Nghệ

44

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

Page 54: TRẦN ANH DŨNG - Trường Đại học Công Nghệ

45

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

Page 55: TRẦN ANH DŨNG - Trường Đại học Công Nghệ

46

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ử.

Page 56: TRẦN ANH DŨNG - Trường Đại học Công Nghệ

47

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:

�̂�𝑢𝑖 ≈ 𝑈𝑖⃗⃗ ⃗ ⋅ 𝑉𝑗⃗⃗

Page 57: TRẦN ANH DŨNG - Trường Đại học Công Nghệ

48

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 𝑙𝑎𝑏𝑒𝑙_𝑖𝑑𝑥𝑠.

Page 58: TRẦN ANH DŨNG - Trường Đại học Công Nghệ

49

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 𝑡𝑎𝑔𝑠.

Page 59: TRẦN ANH DŨNG - Trường Đại học Công Nghệ

50

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

Lớp nhúng Lớp nhúng Lớp nhúng

Lớp nối

MLP

Hồi quy tuyến tính

Thẻ phim

Lớp nhúng

Hình 4.12: Input layer với thông tin thể loại phim và thông tin thẻ phim

Page 60: TRẦN ANH DŨNG - Trường Đại học Công Nghệ

51

Số lượng

layer

RMSE (Validation) @ 50 epochs

DeepCF DeepCF with

Genre

DeepCF with

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

đổi so

với Funk

MF

RMSE % thay

đổi so

với Funk

MF

RMSE % thay

đổi so

với Funk

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

Page 61: TRẦN ANH DŨNG - Trường Đại học Công Nghệ

52

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

so với

Funk MF

RMSE % thay đổi

so với

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:

Page 62: TRẦN ANH DŨNG - Trường Đại học Công Nghệ

53

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:

0.75

0.8

0.85

0.9

0.95

1

1.05

1.1

1.15

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

Funk MF DCF Genre DCF Genre-Tag DCF

Page 63: TRẦN ANH DŨNG - Trường Đại học Công Nghệ

54

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.

1

1.5

2

2.5

3

3.5

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

Funk MF DCF Genre DCF Genre-Tag DCF

Page 64: TRẦN ANH DŨNG - Trường Đại học Công Nghệ

55

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à

Page 65: TRẦN ANH DŨNG - Trường Đại học Công Nghệ

56

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ị.

Page 66: TRẦN ANH DŨNG - Trường Đại học Công Nghệ

57

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.

Page 67: TRẦN ANH DŨNG - Trường Đại học Công Nghệ

58

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.

Page 68: TRẦN ANH DŨNG - Trường Đại học Công Nghệ

59

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.

Page 69: TRẦN ANH DŨNG - Trường Đại học Công Nghệ

60

33. S. Funk, “Netflix Update: Try This at Home,” Dec. 2006;

http://sifter.org/~simon/journal/20061211.html

34. https://paperswithcode.com/sota/collaborative-filtering-on-movielens-10m

35. https://www.statista.com/

36. https://www.bigcommerce.com/blog/amazon-statistics/

37. https://www.omnicoreagency.com/twitter-statistics/

38. https://mathworld.wolfram.com/FrobeniusNorm.html

39. https://mxnet.apache.org/versions/1.4.1/architecture/overview.html

40. https://mxnet.apache.org/versions/1.7/api/python/docs/api/symbol/symbol.html