BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC SƯ PHẠM THÀNH PHỐ HỒ CHÍ MINH

Vy Vân

NÂNG CAO HIỆU NĂNG HỆ TƯ VẤN

DỰA TRÊN THỪA SỐ HÓA MA TRẬN

LUẬN VĂN THẠC SĨ MÁY TÍNH

Thành phố Hồ Chí Minh – 2018

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC SƯ PHẠM THÀNH PHỐ HỒ CHÍ MINH

Vy Vân

NÂNG CAO HIỆU NĂNG HỆ TƯ VẤN

DỰA TRÊN THỪA SỐ HÓA MA TRẬN

Chuyên ngành : Khoa Học Máy Tính

Mã số

: 8480101

LUẬN VĂN THẠC SĨ MÁY TÍNH

NGƯỜI HƯỚNG DẪN KHOA HỌC:

PGS.TS. HỒ BẢO QUỐC

Thành phố Hồ Chí Minh - 2018

MỤC LỤC

Lời cam đoan

Lời cám ơn

Danh mục thuật ngữ viết tắt

Danh mục các bảng

Danh mục hình vẽ

Chương 1. GIỚI THIỆU ................................................................................. 1

1.1. Giới thiệu ................................................................................................. 1

1.2. Mục tiêu của luận văn ............................................................................. 4

1.3. Nội dung thực hiện .................................................................................. 5

1.4. Giới hạn luận văn .................................................................................... 6

1.5. Tóm tắt những đóng góp của luận văn .................................................... 6

1.5.1. Đóng góp về mặt khoa học ............................................................... 6

1.5.2. Đóng góp về mặt thực tiễn ................................................................ 7

1.6. Tổ chức luận văn ..................................................................................... 7

Chương 2. CÁC HỆ THỐNG TƯ VẤN ........................................................ 9

2.1. Tổng quan về hệ thống tư vấn ................................................................. 9

2.2. Các hệ thống tư vấn lọc cộng tác .......................................................... 15

2.2.1. Phương pháp lân cận gần nhất ........................................................ 16

2.2.2. Các mô hình thống kê ngẫu nhiên (Statistical Random Effects Models) .............................................................................. 17

2.2.3. Phương pháp thừa số hóa ma trận ................................................... 19

2.2.4. Bài toán thừa số hóa ma trận không âm ......................................... 26

Chương 3. TƯ VẤN THÔNG TIN DỰA TRÊN THỪA SỐ HÓA MA TRẬN KHÔNG ÂM ........................................................... 28

3.1. Cách tiếp cận ......................................................................................... 28

3.2. Các thuật toán đề xuất cho hệ thống ..................................................... 31

3.2.1. Khởi tạo giá trị ban đầu cho hai ma trận thành phần ...................... 31

3.2.2. Hàm chi phí cho bài toán thừa số hóa ma trận không âm .............. 33

3.2.3. Thuật toán đề xuất nâng cao hiệu năng cho bài toán thừa số hóa ma trận không âm ........................................................................... 40

Chương 4. KẾT QUẢ THỰC NGHIỆM ..................................................... 43

4.1. Qui trình thực nghiệm ........................................................................... 43

4.1.1. Tập dữ liệu Dataset ......................................................................... 44

4.1.2. Các thước đo đánh giá .................................................................... 44

4.2. Kết quả thực nghiệm ............................................................................. 45

4.2.1. Độ chính xác ................................................................................... 46

4.2.2. Độ hội tụ ......................................................................................... 47

4.2.3. Thời gian thực thi ............................................................................ 48

Chương 5. TỔNG KẾT ................................................................................. 50

5.1. Kết quả đạt được ................................................................................... 50

5.1.1. Về mặt lý thuyết .............................................................................. 50

5.1.2. Về mặt thực nghiệm ........................................................................ 51

5.2. Ưu và nhược điểm của phương pháp đề xuất ....................................... 52

5.3. Hướng mở rộng trong tương lai ............................................................ 52

TÀI LIỆU THAM KHẢO ............................................................................ 54

LỜI CAM ĐOAN

Tôi xin cam đoan luận văn này của tự bản thân tôi tìm hiểu, nghiên cứu

dưới sự hướng dẫn của PGS.TS. Hồ Bảo Quốc. Các số liệu sử dụng phân tích

có nguồn gốc rõ ràng. Các kết quả nghiên cứu trong luận văn hoàn toàn trung

thực, khách quan và chưa từng được công bố trong bất kì nghiên cứu nào khác.

Các tài liệu tham khảo được trích dẫn và chú thích đầy đủ.

Học viên thực hiện

Vy Vân

LỜI CÁM ƠN

Đầu tiên, tôi xin bày tỏ lòng biết ơn chân thành và sâu sắc nhất đến

PGS.TS. Hồ Bảo Quốc – giảng viên hướng dẫn luận văn. Trong quá trình làm

luận văn, Thầy đã luôn hỗ trợ, động viên, hết lòng hướng dẫn tôi hoàn thành

luận văn này.

Tôi xin gửi lời cảm ơn chân thành đến Quý Thầy Cô − Trường Đại học Sư

Phạm TP. HCM đã truyền đạt những kiến thức quý báu cho tôi trong quá trình

học tập. Đồng thời, tôi xin gửi lời cảm ơn chân thành đến các bạn đồng nghiệp

Trường THPT chuyên Lương Thế Vinh – Đồng Nai đã hỗ trợ và tạo điều kiện

cho tôi trong thời gian qua.

Cuối cùng, tôi xin bày tỏ lòng biết ơn sâu sắc đối với gia đình, những

người sát cánh cùng tôi trong suốt quá trình học tập cũng như thực hiện luận

văn.

TP. HCM, tháng 09 năm 2018

Học viên thực hiện

Vy Vân

DANH MỤC THUẬT NGỮ VIẾT TẮT

Viết tắt

Thuật ngữ tiếng Anh

Collaborative Filtering CF

Content-based CB

Frobenius - Kullback Leibler - Itakura Saito FKI

Latent Semantic Indexing LSI

Matrix Factorization MF

Mean Absolute Error MAE

Mean Measure of Divergence MMD

Method of Moments MM

Non-negative Matrix Factorization NMF

Pearson Correlation Coefficient PCC

Pearson-Jaccard PJ

Principal Component Analysis PCA

Recommender System RS

Root Mean Square Error RMSE

Singular Value Decomposition SVD

Stochastic Gradient Descent SGD

DANH MỤC CÁC BẢNG

Bảng 2.1. Minh họa một ma trận đánh giá thưa R cho bài toán tư vấn .......... 28

Bảng 4.1. So sánh chỉ số MAE và RMSE của thuật toán đề xuất với

một số thuật toán khác .................................................................... 46

Bảng 4.2. Bảng so sánh thời gian thực thi của một số thuật toán

khác nhau ........................................................................................ 49

DANH MỤC HÌNH VẼ

Hình 2.1. Một số hướng nghiên cứu tiếp cận của hệ thống tư vấn ................ 10

Hình 2.2. Ma trận đánh giá được phân tích thành 2 ma trận low-rank

U và I .............................................................................................. 21

Hình 3.1. Kiến trúc NMF cho phương pháp đề xuất ...................................... 30

Hình 3.2. Đồ thị hàm phân kì beta biểu diễn các giá trị  = 2, 1, 0

tương ứng ....................................................................................... 35

Hình 4.1. Minh họa độ hội tụ của phương pháp đề xuất và một số

phương pháp khác .......................................................................... 48

1

Chương 1. GIỚI THIỆU

1.1. Giới thiệu

Đầu tiên, ý tưởng đơn giản về hệ thống tư vấn xuất hiện vào đầu những

năm 1990 nhằm khai thác ý kiến của hàng triệu người dùng (users) trực tuyến

với mong muốn giúp users dễ dàng tìm kiếm những nội dung hữu ích và thú vị

hơn [1]. Trải qua thực tế, ý tưởng đơn giản ban đầu này đã chứng minh tính

hiệu quả.

Hệ thống tư vấn thu thập thông tin về sở thích của users cho tập hợp các

items (ví dụ: phim, bài hát, sách, truyện cười, tiện ích, ứng dụng, trang web,

điểm đến du lịch và tài liệu học trực tuyến). Thông tin có thể được thể hiện một

cách rõ ràng (thường bằng cách thu thập các xếp hạng đánh giá của users) hoặc

ngầm định (thường là theo dõi hành vi của users, chẳng hạn như bài hát được

nghe, tải xuống ứng dụng, truy cập trang web và đọc sách).

Hệ thống tư vấn có thể sử dụng các thông tin trong hồ sơ người dùng (như

tuổi tác, quốc tịch, giới tính), thông tin xã hội (như người theo dõi, theo dõi và

bài đăng) thường được sử dụng trong hệ thống website, mạng xã hội. Một xu

hướng khác cũng đang được quan tâm, đó là sử dụng thông tin từ Internet (ví

dụ: vị trí GPS, RFID, tín hiệu sức khỏe theo thời gian thực).

Hiện nay, hệ thống tư vấn trên Internet đã trở nên khá phổ biến, điều này

đã tạo điều kiện cho việc áp dụng hệ thống tư vấn trong các lĩnh vực đa dạng

khác nhau. Các nghiên cứu thường tập trung vào tư vấn giới thiệu phim, tư vấn

âm nhạc, chương trình truyền hình, sách, tài liệu, e-learning, thương mại điện

tử và tìm kiếm thông tin [2].

Thông qua các nguồn thông tin khác nhau từ users, hệ thống tư vấn sử

dụng các thông tin đó để cung cấp các dự đoán và đưa ra đề xuất về hàng hóa

2

hay dịch vụ (items) tư vấn trở lại cho users. Mục tiêu của hệ thống tư vấn chính

là đảm bảo độ chính xác (tư vấn đúng những gì users cần hoặc mong muốn),

mới lạ (tư vấn những thứ users chưa từng có kinh nghiệm nhưng gây được sự

thích thú đối với users), phân tán (tư vấn phong phú nhiều lĩnh vực) và ổn định

trong các tư vấn. Các phương pháp lọc cộng tác đóng một vai trò quan trọng

trong tư vấn, mặc dù phương pháp này thường được sử dụng cùng với các kỹ

thuật khác như các kỹ thuật dựa trên nội dung, dựa trên tri thức hoặc xã hội.

Các loại lọc thông tin được sử dụng nhiều nhất vào thời kì đầu của hệ

thống tư vấn là cộng tác, dựa trên nội dung và hồ sơ người dùng [3]. Ngoài ra,

hệ thống tư vấn không chỉ dựa trên lọc cộng tác mà còn dựa trên cơ sở tri thức

về users và items như Burke và cộng sự năm 1996 đã xây dựng hệ thống

FindMe, hệ thống này đã chứng minh tính khả thi và tính hiệu quả của các hệ

thống tư vấn và tạo ra sự khích lệ đáng kể cho nghiên cứu và thực hiện ở lĩnh

vực thương mại.

Sự phát triển của hệ thống tư vấn đã cho thấy tầm quan trọng của kỹ thuật

lai của hệ thống tư vấn, kết hợp các kỹ thuật khác nhau để có được những ưu

điểm của mỗi kỹ thuật. Thậm chí người ta còn mở các cuộc khảo sát tập trung

vào hệ thống tư vấn lai hóa. Bên cạnh đó thương mại hóa diễn ra với tốc độ

nhanh chóng đi cùng các hệ thống tư vấn nổi lên trong một môi trường kinh

doanh Internet mở rộng. Để thành công, các công ty tư vấn phải áp dụng lý

thuyết hệ thống tư vấn sang thực tiễn để chứng minh được những dự đoán chính

xác, có thể cung cấp các tư vấn có giá trị - thường dưới hình thức chọn một vài

items cụ thể để đề xuất tư vấn cho các giao dịch mua thêm (ví dụ như khi khách

hàng mua máy laptop, hệ thống sẽ tư vấn thêm các sản phẩm khác như chuột,

bàn phím rời, USB,...).

Trong thực tế, các hệ thống tư vấn phải làm việc ở quy mô lớn hơn quy

mô nghiên cứu trong phòng thí nghiệm, tức là phải xử lý hàng triệu users và

3

items với hàng trăm hoặc hàng ngàn giao dịch mỗi giây. Thách thức mới cho

hệ thống tư vấn ngoài việc đảm bảo tính chính xác (tư vấn đúng items khách

hàng có nhu cầu hoặc yêu thích) thì còn đảm bảo không làm chậm tốc độ truy

cập các trang web. Thực ra có thể nói không quá là hệ thống tư vấn phát triển

không được nhắm vào nghiên cứu mà là nhắm vào vấn đề tiếp thị items.

Nghiên cứu về hệ tư vấn ở giai đoạn phát triển đã giải quyết nhiều thách

thức về vấn đề nêu trên. Thuật toán mới được phát triển để giảm thời gian tính

toán trực tuyến, bao gồm các thuật toán tương quan dựa trên items và những

phương pháp tiếp cận nhằm giảm kích thước dữ liệu đều được sử dụng cho tới

hiện nay. Một loạt các nghiên cứu khám phá các vấn đề liên quan đến các xếp

hạng đánh giá của users dưới dạng ngầm định, vấn đề thiếu thông tin ở những

users mới và items mới (cold-start) cũng như các vấn đề liên quan đến trải

nghiệm users, chẳng hạn như độ tin cậy và tính minh bạch.

Các hệ thống tư vấn mới ra đời được áp dụng rộng rãi trong thương mại

điện tử. Đồng thời, với việc nghiên cứu về các hệ thống tư vấn bùng nổ là việc

tiếp cận tới các lĩnh vực khác như thu thập thông tin, khai phá dữ liệu (data

mining). Nghiên cứu kinh doanh tiếp thị sản phẩm đã xuất hiện các phân tích

và cách tiếp cận mới cho các hệ thống tư vấn. Nghiên cứu thuật toán mới được

thúc đẩy bởi sự xuất hiện các tập dữ liệu lớn, sẵn có trong thương mại điện tử

từ thực tiễn.

Đa số các hệ thống tư vấn hiện nay được xây dựng theo ba cách tiếp cận

chính: dựa trên nội dung (Content Based), dựa trên lọc cộng tác (Collaborative

Filtering) và dựa trên việc lai ghép các phương pháp với nhau (Hybrid

Approach). Chi tiết từng cách tiếp cận sẽ được trình bày tiếp ở chương 2 của

luận văn.

4

Phương pháp thừa số hóa ma trận (một nhánh nghiên cứu trong phương

pháp lọc cộng tác) [4] nhanh chóng trở thành một xu hướng nghiên cứu mới,

mang lại nhiều thành tựu vượt trội và cho đến nay vẫn được coi là một phương

pháp thế mạnh của hệ thống tư vấn. Y. Koren [4] đã chiến thắng giải Netflix cho

bài toán tư vấn dựa trên phương pháp thừa số hóa ma trận. Giải Netflix trị giá

một triệu đô la để cải thiện độ chính xác cho dự đoán tư vấn 10 phần trăm đã

mang lại sự phấn kích cho các nhà nghiên cứu, cùng nhau nỗ lực để đưa ra các

phương pháp dự đoán chính xác hơn.

Xuất phát từ những nhu cầu thực tiễn như đã nêu trên, cùng với việc áp

dụng thành quả nghiên cứu của phương pháp thừa số hóa ma trận đã đạt được

từ các nghiên cứu trước đó. Đặc biệt, việc học các nhân tố ẩn (latent factor) [5],

[6] trong phương pháp thừa số hóa ma trận không âm nhằm mang lại độ chính

xác cao hơn cho hệ thống tư vấn. Luận văn sẽ sử dụng, tiếp thu những kiến thức

nghiên cứu trước, đi vào tập trung nghiên cứu và đề xuất nâng cao hiệu quả

việc áp dụng thừa số hóa ma trận không âm trong các hệ thống tư vấn với mong

muốn cải tiến một số nhược điểm cho hệ thống tư vấn.

1.2. Mục tiêu của luận văn

Trong luận văn, tác giả tập trung vào nghiên cứu việc nâng cao hiệu năng

hệ tư vấn dựa trên thừa số hóa ma trận. Mục tiêu cụ thể:

i. Nghiên cứu các phương pháp tiếp cận nhằm nâng cao chất lượng hệ

thống tư vấn theo hướng thừa số hóa ma trận.

ii. Nghiên cứu hệ thống tư vấn theo hướng thừa số hóa ma trận không âm

dựa trên việc học các nhân tố ẩn, đặc biệt:

 Các phương pháp cải thiện các hệ số tốt hơn cho ma trận khởi tạo ban

đầu.

5

 Các phương pháp cập nhật ma trận thành phần cho bài toán lặp để

đạt được hội tụ nhanh hơn.

Việc kiểm tra hiệu quả cụ thể của thuật toán sẽ sử dụng một một số tập

dữ liệu phổ biến trong hệ thống tư vấn như MovieLens, Book-Crossing. Việc

đánh giá chất lượng cho phương pháp, luận văn sẽ sử dụng các độ đo thông

dụng như Mean Absolute Error (MAE) và Root Mean Square Error (RMSE).

1.3. Nội dung thực hiện

Nhằm đạt được những mục tiêu đã nêu, luận văn sẽ thực hiện các công

việc sau đây:

i. Tiến hành nghiên cứu những công trình nghiên cứu có liên quan đến

phương pháp thừa số hóa ma trận.

ii. Tìm hiểu hiện trạng về các hệ thống tư vấn, phân tích ưu và khuyết điểm

của những phương pháp được áp dụng phổ biến.

iii. Tìm hiểu về các phương pháp thừa số hóa ma trận cùng với các thuật

toán tư vấn: Phương pháp lân cận gần nhất, Các mô hình thống kê, Matrix

factorization, Non-negative matrix factorization, …

iv. Nghiên cứu các thuật toán của Machine learning.

v. Xây dựng thuật toán cho tư vấn theo thừa số hóa ma trận không âm dựa

trên các thuật toán Machine learning đang áp dụng, kết hợp với các kiến

thức toán học khác để tối ưu hóa cho bài toán ma trận khởi tạo lẫn bài

toán lặp, đặc biệt chú trọng đến vấn đề dữ liệu thưa.

Về mặt thực nghiệm, những thuật giải tư vấn do luận văn đề xuất sẽ được

thử nghiệm và đánh giá trên một bộ dữ liệu mẫu trong lĩnh vực hệ thống tư vấn,

ví dụ như MovieLens [7] được xem là một bộ dữ liệu “chuẩn” để tiến hành

những thực nghiệm trong lĩnh vực của luận văn. Quá trình thử nghiệm của luận

văn sẽ được tiến hành theo những bước chính như sau:

6

 Chuẩn bị dữ liệu

 Thu thập các chỉ số đánh giá và xây dựng quy trình thực nghiệm

 Tiến hành thử nghiệm để phân tích và đánh giá các độ đo về tính chính

xác, tính hội tụ và thời gian thực thi

1.4. Giới hạn luận văn

Trong phạm vi nghiên cứu, luận văn chỉ tập trung nghiên cứu bài toán theo

hướng thừa số hóa ma trận không âm.

Việc cập nhật trong quá trình huấn luyện, luận văn chỉ sử dụng một

phương pháp cập nhật duy nhất là Stochastic gradient descent, chưa tiến hành

thử nghiệm các phương pháp cập nhật khác của machine learning như

Conjugate gradient.

Thời gian thực thi của phương pháp đề xuất trong luận văn nhiều hơn

phương pháp thừa số hóa ma trận không âm thông thường.

1.5. Tóm tắt những đóng góp của luận văn

Luận văn có những đóng góp về mặt khoa học và thực tiễn, chi tiết được

trình bày ở phần 1.5.1 và 1.5.2.

1.5.1. Đóng góp về mặt khoa học

Luận văn đã đề xuất được hai cải tiến cho bài toán thừa số hóa ma trận

không âm, cụ thể:

 Luận văn đề xuất độ đo PJ để đánh hệ số khởi tạo cho hai ma trận thành

phần U, I ban đầu.

 Luận văn cải tiến thuật toán cập nhật hệ số cho hai ma trận U, I bằng

cách đề xuất tính hàm chi phí FKI và sử dụng hàm chi phí này làm cơ

sở để cập nhật cho hai ma trận thành phần U, I trong quá trình huấn

luyện (tối ưu hóa) bằng vòng lặp.

7

1.5.2. Đóng góp về mặt thực tiễn

Bên cạnh những đóng góp về mặt khoa học, luận văn còn có những đóng

góp về mặt thực tiễn:

 Luận văn đánh giá những phương pháp đề xuất bằng cách thực nghiệm

trên bộ dữ liệu chuẩn Movielens.

 Độ hội tụ và độ chính xác khi áp dụng trên bộ dữ liệu Movielens cho

kết quả đáng khích lệ.

1.6. Tổ chức luận văn

Để đạt được mục tiêu trên, luận văn được trình bày thành năm chương có

cấu trúc như sau:

 Chương 1: Giới thiệu. Trong chương này, tác giả trình bày về đề tài

nghiên cứu của luận văn như mục tiêu, nội dung nghiên cứu, giới hạn

luận văn cũng như những đóng góp của luận văn.

 Chương 2: Các hệ thống tư vấn. Trong chương này, tác giả trình bày

về hiện trạng của các hệ thống tư vấn truyền thống, những cách tiếp

cận lọc cộng tác cũng như trình bày mô hình thường được áp dụng trong

Matrix Factorization gồm: Matrix Factorization và Non-negative

Matrix Factorization.

 Chương 3: Tư vấn thông tin dựa trên thừa số hóa ma trận không âm.

Trong chương này, tác giả trình bày về thuật toán đề xuất, được xây

dựng từ việc lai hóa công thức tính độ tương đồng PJ cho ma trận khởi

tạo và hàm chi phí FKI cũng như công thức cập nhật cho các ma trận

thành phần khi thực hiện phân tích nhân tử ma trận không âm.

 Chương 4: Kết quả thực nghiệm. Trong chương này, tác giả trình bày

quá trình tiến hành cũng như kết quả thử nghiệm của các thuật toán đề

xuất trên bộ dữ liệu MovieLens. Những đánh giá và phân tích cũng được

8

trình bày nhằm giúp làm rõ kết quả thực nghiệm cho các thuật toán đề

xuất.

 Chương 5: Tổng kết. Trong chương này, tác giả trình bày phần kết luận

và nêu lên một số hướng phát triển trong tương lai của luận văn.

9

Chương 2. CÁC HỆ THỐNG TƯ VẤN

2.1. Tổng quan về hệ thống tư vấn

Các hệ thống tư vấn (Recommender Systems - RS) được quan tâm nghiên

cứu xuất phát từ mục đích thương mại, các công ty bán hàng mong muốn có

những hệ thống tư vấn tự động, nhằm cung cấp thông tin hữu ích cho users về

các loại hàng hóa hay dịch vụ (items) đáp ứng chính xác, phù hợp hơn nhu cầu

riêng của từng cá nhân [2], [8]. Ví dụ các hệ thống như Ebay, Amazon,

MovieLens… có chức năng tư vấn những thông tin về một số items đáp ứng

theo nhu cầu hay sở thích của từng user. Nhìn chung các hệ thống tư vấn hiện

có dựa trên hai cách tiếp cận chính: tiếp cận dựa trên nội dung (Content-Based

- CB ) và tiếp cận dựa trên lọc cộng tác (Collaborative Filtering – CF). Ngoài

ra, cách tiếp cận “lai hóa” giữa 2 cách trên còn sử dụng, nhằm mang lại hiệu

quả và sự phong phú cho các hệ thống tư vấn. Hình 2.1 thể hiện một số hướng

nghiên cứu trong hệ thống tư vấn hiện nay.

Theo cách tiếp cận dựa trên nội dung (CB) [9], [10] người ta chủ yếu dựa

vào nội dung và đặc trưng của các items. Từ đó người ta tính được mức độ

tương đồng của các items dựa vào các vector đặc trưng của items. Khi một user

u đánh giá item ij, hệ thống sẽ tìm các items ik, ih,... có vector đặc trưng tương

đồng với item ij để tư vấn cho user u đó. Cách tiếp cận này có ưu điểm là khả

năng cao users sẽ nhận được các tư vấn về items phù hợp với sở thích của mình

thông qua việc tính mức độ tương đồng của các items với nhau chứ không phải

cùng đánh đồng sở thích của mọi users là như nhau. Khuyết điểm là nội dung

mà user được tư vấn bị giới hạn, nghĩa là user chỉ nhận được các tư vấn về

những items có độ tương đồng với items mà mình đã đánh giá, điều này vô tình

làm cho user không có cơ hội nhận được những tư vấn về các items ở lĩnh vực

khác mà có thể user cũng quan tâm.

10

Hình 2.1. Một số hướng nghiên cứu tiếp cận của hệ thống tư vấn

Cách tiếp cận dựa trên lọc cộng tác (CF) [11], [12] chủ yếu dựa vào tính

tương đồng của các users với nhau, theo cách này khi một user ui cung cấp

đánh giá của mình cho một item i trong một ma trận đánh giá R (ratings matrix),

với mỗi ui hệ thống sẽ xác định một cộng đồng các users uj, uk,... có tính tương

đồng với user ui đó, dựa trên độ tương đồng vector đặc trưng của các users với

nhau. Sau khi xác định cộng đồng những người tương đồng với user ui, hệ thống

tư vấn sẽ đưa ra tư vấn những items mà cộng đồng này cho điểm cao. Ưu điểm

của CF chính là sự chia sẻ thông tin trong cộng đồng các users, nghĩa là khi có

một user u đánh giá thích một item i nào đó, thì hệ thống tư vấn có thể sử dụng

thông tin này để tư vấn cho các users khác trong cùng cộng đồng. Việc này sẽ

làm cho nội dung tư vấn được phong phú, khác với trường hợp CB chỉ tư vấn

xung quanh các items cùng độ tương đồng nhất định dựa vào vector đặc trưng

của items. Khuyết điểm của CF, có khả năng sẽ có một số users cá biệt trong

cộng đồng, nghĩa là sở thích của họ về một số items nào đó có thể trái ngược

11

hoặc khác hoàn toàn với cộng đồng mà users đó đang thuộc về, dẫn đến tư vấn

không còn chính xác. Cũng theo cách tiếp cận dựa trên lọc cộng tác, có hai

hướng đi chính là dựa trên Memory based và hướng còn lại dựa trên Model

based, cụ thể như sau:

Hướng tiếp cận Memory based (Neighborhood base) [13] thu thập dữ liệu

ratings trong hệ thống và dùng nó để tính toán ratings cho items mới. Memory

based có thể được thực hiện theo hai cách, tư vấn dựa trên users hoặc dựa trên

items. Tuy nhiên hướng tiếp cận Memory based bị hạn chế bởi các nhược điểm,

đầu tiên là độ thưa thớt dữ liệu (sparsity), Memory based đưa ra tư vấn các

items đa phần dựa vào sở thích của users đã có trong quá khứ, nếu xuất hiện

users mới thì hệ thống sẽ cần thông tin đánh giá đủ số lượng items cho phép để

hệ thống nắm bắt được sở thích của những users mới này một cách chính xác,

như vậy khả năng đưa ra các tư vấn tin cậy càng lớn. Tương tự, các items mới

cũng có chung một vấn đề. Khi các items mới được thêm vào hệ thống, chúng

cần được đánh giá bởi số lượng users đáng kể trước khi các items có thể được

tư vấn cho những users có cùng sở thích trong cộng đồng. Thứ hai về khả năng

mở rộng (scalability) hay còn có thể hiểu là tốc độ xử lí sẽ giảm khi số lượng

users-items lớn lên. Các thuật toán CF truyền thống gặp phải các vấn đề nghiêm

trọng, với hàng chục triệu users và hàng triệu items thì độ phức tạp của bài toán

là cả vấn đề.

Theo hướng tiếp cận Model based [14], người ta sẽ thiết lập mô hình để

huấn luyện và đánh giá những ratings chưa biết của users. Các nghiên cứu trước

đây tập trung áp dụng nhiều phương pháp như: Phân tích ngữ nghĩa tiềm ẩn

(Latent Semantic Analysis) [15], Cực đại entropy (Maximum Entropy) [16],

Cấp phát Dirichlet ẩn (Latent Dirichlet Allocation) [17], Gom cụm Bayes

(Bayesian Clustering) [18], Support Vector Machine và phân rã các giá trị đơn

(Singular Value Decomposition) [8]. Mặt khác, phương pháp thừa số hóa ma

12

trận thông qua việc phân rã ma trận và xét tính tương đồng [19] cũng được sử

dụng.

Dùng phương pháp thừa số hóa ma trận (Matrix Factorization –MF) [4]

là một hướng tiếp cận trong Model based và thu hút các nhà nghiên cứu.

Phương pháp thừa số hóa ma trận có ưu điểm là độ chính xác cao, ngoài ra

phương pháp này còn có ưu điểm về tốc độ xử lí khi dữ liệu users và items

trong thế giới thực lớn lên. Phương pháp thừa số hóa ma trận (đặc biệt việc thừa

số hóa ma trận không âm) được thực hiện bằng cách chuyển đổi cả users và

items sang cùng một không gian đặc trưng ẩn (latent feature) [20], xác định

mỗi thực thể với một vector đặc trưng được suy ra từ những ratings có sẵn, sau

đó phát sinh dự đoán cho những ratings chưa biết bằng cách tính tích trong

(inner product) của các cặp vector tương ứng. Tuy phương pháp thừa số hóa

ma trận không âm cho kết quả tốt hơn các phương pháp khác, nhưng việc phân

rã ma trận không âm hiện nay vẫn còn một vài hạn chế, như kết quả thường phụ

thuộc vào sự khởi tạo ban đầu của ma trận users và items. Điều này đòi hỏi các

chiến lược thích hợp và hiệu quả cho ma trận khởi tạo ban đầu U và I. Hiện

nay, người ta chủ yếu dùng phương pháp random ngẫu nhiên cho hai ma trận

ban đầu này, điều này dẫn đến trường hợp nếu một khởi tạo ngẫu nhiên không

có lợi sẽ dẫn tới hội tụ chậm, hoặc cho kết quả không chính xác. Hạn chế thứ

hai của bài toán thừa số hóa ma trận không âm là sự hội tụ sau quá trình lặp.

Cứ sau mỗi bước lặp, thuật toán sẽ cập nhật các giá trị cho hai ma trận thành

phần U và I. Đối với những ma trận lớn, độ thưa dữ liệu cao, câu hỏi đặt ra là

cần phải qua bao nhiêu bước lặp để cho ra kết quả tốt mà chi phí về thời gian

có thể chấp nhận được? Nếu cải tiến được một thuật toán tốt hơn các thuật toán

hiện có, hi vọng rằng quá trình hội tụ kết quả sẽ diễn ra nhanh hơn và cho kết

quả chính xác hơn.

13

Bài toán tư vấn hiện nay có rất nhiều ứng dụng ngoài thực tế đồng thời

cũng có nhiều thách thức lớn, chẳng hạn:

Thiếu dữ liệu: Thiếu dữ liệu ở đây có nghĩa là thiếu thông tin về users.

Vấn đề lớn nhất đối với các hệ thống tư vấn là cần rất nhiều dữ liệu để đưa ra

các tư vấn một cách hiệu quả. Không phải ngẫu nhiên mà các công ty được xác

định có các tư vấn xuất sắc là những công ty có nhiều dữ liệu về users như:

Google, Amazon, Netflix, Last.fm. Một hệ thống tư vấn tốt trước hết cần có dữ

liệu đầy đủ về các items tư vấn, sau đó phải nắm bắt và phân tích dữ liệu users

(các sự kiện, hành vi), và cuối cùng là thuật toán tư vấn. Mối quan hệ giữa dữ

liệu (users-items) và chất lượng tư vấn là một mối quan hệ biện chứng. Hệ

thống tư vấn càng có nhiều dữ liệu về items và users, cơ hội đưa ra các tư vấn

càng chính xác. Ngược lại, để có được các tư vấn tốt, hệ thống cần rất nhiều

users cũng như thông tin về các users đó.

Thay đổi dữ liệu: Thay đổi dữ liệu ở đây có nghĩa là users có những thay

đổi thông tin cá nhân hay items có xu hướng lỗi thời. Đối với vấn đề thay đổi

dữ liệu các hệ thống thường có xu hướng thiên vị đối với items cũ và gặp khó

khăn khi tư vấn items mới. Một ví dụ về điều này đã được viết bởi David Reinke

của StyleHop, thuộc cộng đồng nguồn nhân lực dành cho những người đam mê

thời trang. David cho rằng hành vi quá khứ của users không phải là một công

cụ tốt bởi vì “các xu hướng luôn luôn thay đổi”. Rõ ràng một cách tiếp cận thuật

toán sẽ gặp phải khó khăn nếu không thể theo kịp xu hướng thời trang. Hầu hết

những người không am hiểu nhiều về thời trang thường dựa vào những người

bạn và gia đình có kiến thức về thời trang tư vấn quần áo mới cho họ. David

Reinke tiếp tục nói rằng các tư vấn sản phẩm không hoạt động hiệu quả vì có

quá nhiều thuộc tính sản phẩm trong thời trang và mỗi thuộc tính (sự phù hợp,

giá cả, màu sắc, phong cách, vải, thương hiệu…) có tầm quan trọng khác nhau,

thời gian khác nhau cho cùng một người tiêu dùng nếu áp dụng hệ thống tư vấn

14

tự động. Tuy nhiên các tư vấn xã hội (tư vấn từ người thân, đồng nghiệp, bạn

bè) có lẽ sẽ giải quyết được vấn đề này.

Thay đổi sở thích users: Việc user thay đổi sở thích ở đây là trong khi

hôm nay user chú ý item này nhưng ngày mai user có thể sẽ chú ý tới một item

khác. Một ví dụ điển hình là một hôm nào đó user sẽ lướt trên trang Amazon

tìm những cuốn sách mới, nhưng ngày hôm sau, user sẽ tìm trên Amazon một

món quà sinh nhật cho người thân chẳng hạn. Về chủ đề sở thích user, hệ thống

tư vấn cũng có thể gắn nhãn không chính xác cho user.

Những items không thể dự đoán: Trong giải thưởng Netflix, trị giá một

triệu đô do Netflix thưởng cho các nhóm nghiên cứu cung cấp thuật toán lọc

cộng tác để cải thiện thuật toán tư vấn của Netflix 10%, người ta lưu ý rằng có

vấn đề xảy ra với phim kinh dị. Loại phim mà mọi người hoặc yêu thích hoặc

ghét, như Napoleon Dynamite, rất khó đưa ra các tư vấn, bởi vì phản ứng của

users đối với loại phim này có xu hướng đa dạng và không thể đoán trước.

Những thách thức kể trên của hệ thống tư vấn được các nhà khoa học tập

trung nghiên cứu nhằm cải thiện chất lượng hệ tư vấn, đặc biệt đối với thách

thức đầu tiên, tức bài toán cold-start, đã có rất nhiều cố gắng giải quyết vấn đề

thưa dữ liệu. Một phương pháp được đưa ra với một số thành công đó là phương

pháp nhằm làm giảm số chiều của ma trận đánh giá. Chiến lược đơn giản để

giảm số chiều là hình thành tập hợp các cụm items hoặc users, sau đó sử dụng

các cụm này như một thành phần cơ bản trong dự đoán. Để phương pháp gom

cụm này tốt hơn thì người ta sử dụng kỹ thuật thống kê như nguyên lý phân tích

thành phần PCA và kỹ thuật truy vấn thông tin như chỉ mục ngữ nghĩa tiềm

tàng LSI. Về bản chất, những phương pháp giảm số chiều giải quyết vấn đề

thưa dữ liệu bằng cách sinh ra nhiều ma trận tương tác user – item được xem là

gần gũi nhất với users và items. Tuy nhiên, trong một vài trường hợp, thông tin

15

hữu ích có thể bị mất trong suốt tiến trình giảm chiều ma trận, làm cho các dự

đoán không còn đáng tin cậy nữa.

Giải quyết vấn đề thưa dữ liệu chính là sự kết hợp giữa phương pháp lọc

cộng tác với những phương pháp tiếp cận dựa trên nội dung. Thêm vào đó là

những tương tác giữa user – item, vì vậy các kỹ thuật này cũng xem độ tương

đồng items xuất phát từ nội dung của chính các items đó, điều này tạo ra dự

đoán chính xác hơn. Tuy nhiên, khuyết điểm chính của những kỹ thuật này là

chỉ có thể được sử dụng khi nội dung thông tin có sẵn trong hệ thống, điều này

có thể gây khó khăn trong một số trường hợp.

2.2. Các hệ thống tư vấn lọc cộng tác

Lọc cộng tác là một kỹ thuật mạnh và nó đã được áp dụng khá thành công

trong nhiều hệ tư vấn. Về thực chất, lọc cộng tác là một hình thức tư vấn tự

động bằng cách dựa trên sự tương đồng giữa những users hoặc giữa những

items trong hệ thống và đưa ra tư vấn cho user một hoặc một vài items, hoặc

gợi ý một item mới cho user nào đó.

Có rất nhiều phương pháp tiếp cận trên hình thức này được trình bày,

nhưng các kỹ thuật này hầu chỉ xét đến sự tương đồng trực tiếp giữa hai users

hoặc hai items. Trong phương pháp lọc cộng tác, hai users được coi là tương

đồng nếu họ thể hiện mối quan tâm giống nhau về cùng các items thông qua

việc mua hoặc đưa ra đánh giá về items đó. Tuy nhiên, trên thực tế hai người

có thể mua những items hoàn toàn khác nhau nhưng lại có những sở thích giống

nhau. Tương tự vậy, hai items có thể không được mua bởi cùng một user nhưng

hoàn toàn có thể tương tự nhau. Một điểm khác của cách tiếp cận này là sự nhạy

cảm của nó khi có quá ít dữ liệu, điều này xảy ra khi có nhiều users nhưng mỗi

người lại chỉ mua hoặc đánh giá ở một hoặc một vài items hoặc khi có nhiều

items nhưng mỗi item lại chỉ được mua bởi một hoặc một vài users. Tuy nhiên,

16

trong rất nhiều trường hợp thực tế, việc dữ liệu thưa là điều không thể tránh. Ví

dụ như khi user mới đăng ký vào hệ thống nên không có hoặc có ít thông tin về

sở thích, hoặc khi một item mới được thêm vào hệ thống nên có thể chưa hoặc

mới được mua hay đánh giá bởi rất ít users. Vấn đề này còn được gọi là cold-

start.

Hạn chế của phương pháp lọc cộng tác, có nghĩa là các dự đoán giá trị Rij

đã cho sẽ được tư vấn cho cộng đồng những users có độ tương đồng với user u

nào đó, trong khi có thể xảy ra trường hợp trong cộng đồng của user u này có

một vài users cá biệt, có sở thích khác các users còn lại trong cộng đồng. Sau

đây là phần trình bày ba phương pháp chính trong số các phương pháp lọc cộng

tác.

2.2.1. Phương pháp lân cận gần nhất

Để dự đoán rating Rij được đánh giá bởi user i cho item j, người ta tìm

những users khác trong tập dữ liệu đã được đánh giá cho item j và những users

có các mẫu ratings tương tự với user i về các items khác (tìm lân cận cho user i). Lấy 𝑅̅𝑖𝑗 là mức trung bình ratings của item j trong số những láng giềng lân cận với user i, sau đó đưa ra dự đoán ratings cho user i dựa trên 𝑅̅𝑖𝑗. Đây gọi

đây là phương pháp k-lân cận gần nhất (k-Nearest Neighbor hay kNN).

Ban đầu trong lĩnh vực hệ thống tư vấn có xu hướng sử dụng phương pháp

này. Tất nhiên, một trong những vấn đề nảy sinh đó là định nghĩa của gần nhất,

rất khó để đánh giá định nghĩa gần nhất và tìm lân cận gần cho một user khi mà

trong thực tế là hầu hết các dữ liệu đánh giá bị thiếu. Vấn đề thưa dữ liệu này

tiếp tục được trình bày ở các phương pháp dưới đây.

17

2.2.2. Các mô hình thống kê ngẫu nhiên (Statistical Random Effects Models)

Mô hình cơ bản:

Rij = Trung bình tổng thể + ảnh hưởng user i + ảnh hưởng item j + độ nhiễu

(2-1)

Các ảnh hưởng của users và items tiềm ẩn có thể được ước tính bằng

phương pháp cực đại Likelihood (Maximum Likelihood), nhưng phương pháp

Method of Moments (MM) nhanh hơn nhiều vì có các giả định ít nghiêm ngặt

hơn, và tạo ra các biểu thức dạng đóng (biểu thức toán học có thể được tính

toán với số phép toán hữu hạn):

(2-2) 𝑅̂𝑖𝑗 = 𝑅𝑖 + 𝑅𝑗 − 𝑅̅

Trong đó ba đại lượng ở bên phải biểu thức là giá trị trung bình của hàng i, giá

trị trung bình của cột j và giá trị trung bình tổng thể giữa các giá trị đã biết trong

R.

Một phương pháp mở rộng phổ biến của phương pháp thừa số hóa ma trận

là kết hợp các độ lệch của user và item, phản ánh xu hướng của một số users

đánh giá ratings hào phóng hơn những users khác và xu hướng một số items

được xếp hạng cao hơn những items khác. Những điều này sẽ được trình bày

tiếp theo đây, nhưng trước hết chúng ta hãy đặt tên 𝛼𝑖 cho user i và 𝛽𝑗 chi item

j.

Các mẫu mô hình thống kê ngẫu nhiên tạo thành một nhánh của phương

pháp thống kê truyền thống, và rất hữu ích trong một ứng dụng hiện đại như hệ

thống tư vấn. Mô hình như sau:

(2-3) 𝑅̂𝑖𝑗 = 𝜇 + 𝛼𝑖 + 𝛽𝑗 + 𝜖𝑖𝑗

18

Trong đó  cố định và không biết, với đại lượng ngẫu nhiên và không thể

đếm được khác, có giá trị trung bình là 0. Yếu điểm của mô hình, ở đây đề cập

đến thực tế rằng users trong dữ liệu được coi là một mẫu ngẫu nhiên từ một số

users, tương tự như thế cho các items.

Sau đó  được tính là trung bình tổng thể của ratings (được tính bằng tổng

tất cả các ratings mà users đã đánh giá cho các items đem chia cho số lượng

ratings đó), 𝛼𝑖 là độ khác biệt giữa trung bình ratings mà user i sẽ đánh giá cho

tất cả các items có thể; và 𝛽𝑗 là trung bình ratings mà tất cả các users đánh giá

cho item j. 𝜖 đại diện cho các biến đổi không được kết hợp với đại lượng khác.

Ba đại lượng ngẫu nhiên được giả định độc lập trên tất cả i và j. Trong

công thức cực đại Likelihood, các đại lượng ngẫu nhiên cũng được giả định là

phân phối chuẩn.

Theo lịch sử được nêu ra ở [21], các kiểu mô hình thống kê ngẫu nhiên

khác nhau đã được sử dụng trong thời gian đầu của các hệ thống tư vấn, nhưng

bị từ chối vì kém hiệu quả khi các tập dữ liệu trở nên lớn hơn nhiều. Gần đây

hơn, [21] và [22] đã đề xuất phá vỡ vấn đề này bằng cách sử dụng ước lượng

Method of Moments (MM).

MM thích hợp cho các biểu thức phổ biến tức thời (như trung bình, phương

sai chẳng hạn) với các mẫu tương tự. Phương trình bên dưới đây khá đơn giản

để lấy được biểu thức dạng đóng cho ước lượng:

(2-4) 𝜇̂ = 𝑅̅

(2-5) 𝛼̂𝑖 = 𝑅𝑖. − 𝑅̅

(2-6) 𝛽̂ 𝑗 = 𝑅.𝑗 − 𝑅̅

19

Trong đó R là trung bình tổng các mẫu có trong dữ liệu, 𝑅𝑖. là trung bình

các mẫu của user i, và 𝑅.𝑗 là trung bình các mẫu của item j.

Giá trị Rij chưa biết được dự đoán bởi:

𝑗 = 𝑅𝑖. + 𝑅.𝑗 − 𝑅̅

(2-7) 𝑅̂𝑖𝑗 = 𝜇̂ + 𝛼̂𝑖 + 𝛽̂

2.2.3. Phương pháp thừa số hóa ma trận

Một hướng tiếp cận khác cho CF dựa trên MF, tức phân tích ma trận thành

nhân tử hay nói cách khác là thừa số hóa ma trận. Ý tưởng chính của việc thừa

số hóa ma trận cho hệ thống tư vấn là tồn tại các đặc trưng ẩn (latent features)

mô tả sự liên quan giữa các items và users. Ví dụ với hệ thống tư vấn cho các

bộ phim, tính chất ẩn có thể là thể loại phim, như phim tình cảm, phim hành

động, phim hài. Tính chất ẩn cũng có thể là một sự kết hợp nào đó của các thể

phim loại này, hoặc cũng có thể là bất cứ tính chất nào mà chúng ta không thể

đặt tên được hoặc thực sự cần đặt tên, chẳng hạn như tính chất ẩn có thể là sự

kết hợp của 3 tính chất: thể loại phim tình cảm, kinh điển, có kết thúc không có

hậu. Mỗi item j sẽ mang tính chất ẩn ở một mức độ nào đó tương ứng với các

hệ số trong vector đặc trưng Ij của nó, hệ số càng cao tương ứng với việc tính

chất ẩn đó càng cao. Tương tự, mỗi user v cũng sẽ có xu hướng thích những

tính chất ẩn nào đó và được mô tả bởi các hệ số trong vector đặc trưng Uv của

𝑇 sẽ cao nếu các thành phần tương ứng của Uv và Ij đều

nó. Hệ số cao tương ứng với việc user thích các bộ phim có tính chất ẩn đó. Giá

trị của biểu thức 𝑈𝑣𝐼𝑗

cao. Điều này nghĩa là item j mang các tính chất ẩn mà user v thích, vậy nên hệ

thống tư vấn sẽ gợi ý item j này cho user v đó.

Để cụ thể hơn, bài toán trong Content-based Filtering, mỗi item được mô

tả bằng một vector Ij được gọi là item profile. Trong phương pháp này, ta cần

20

𝑇.

tìm một vector hệ số Uv tương ứng với mỗi user sao cho rating đã biết mà user

đó cho item xấp xỉ với: 𝑅𝑣𝑗 ≈ 𝑈𝑣𝐼𝑗

Với cách làm này, ma trận đánh giá R, giả sử đã được điền hết các giá trị,

sẽ xấp xỉ với:

𝑅 ≈ [ ] = [ ] [𝑖1 𝑖2 … 𝑖𝑛] = 𝑈𝐼𝑇 𝑢1𝑖1 𝑢1𝑖2 𝑢2𝑖2 𝑢2𝑖2 … … ⋱ 𝑢1𝑖𝑛 𝑢2𝑖𝑛 ⋮ 𝑢1 𝑢2… 𝑢𝑚 𝑢𝑚𝑖1 𝑢𝑚𝑖2 ⋯ 𝑢𝑚𝑖𝑛

Với m, n lần lượt là số users và items

Chú ý rằng, Ij được xây dựng dựa trên thông tin mô tả của item và quá

trình xây dựng này độc lập với quá trình đi tìm hệ số phù hợp cho mỗi user.

Như vậy, việc xây dựng item profile đóng vai trò rất quan trọng và có ảnh

hưởng trực tiếp lên hiệu năng của mô hình. Thêm nữa, việc xây dựng từng mô

hình riêng lẻ cho mỗi user dẫn đến kết quả chưa thực sự tốt vì không khai thác

được đặc điểm của những users gần giống nhau.

Bây giờ, giả sử rằng ta không cần xây dựng từ trước các item profile Ij mà

vector đặc trưng cho mỗi item này có thể được huấn luyện đồng thời với mô

hình của mỗi user (ở đây là một vector hệ số). Điều này nghĩa là, biến số trong

bài toán tối ưu là cả U và I, trong đó U là ma trận của toàn bộ user models,

mỗi hàng tương ứng với một user, I là ma trận của toàn bộ item profiles,

mỗi hàng tương ứng với một item.

Với cách làm này, chúng ta đang cố gắng xấp xỉ ma trận đánh giá 𝑅 ∈

ℝ𝑚×𝑛 bằng tích của hai ma trận 𝑈 ∈ ℝ𝑚×𝑘 và ma trận chuyển vị của 𝐼 ∈ ℝ𝑛×𝑘.

Thông thường, k được chọn là một số nhỏ hơn rất nhiều so với m, n. Khi

đó, cả hai ma trận U và I đều có bậc (rank) không vượt quá k. Chính vì vậy,

phương pháp này còn được gọi là low-rank MF.

21

R  U  IT

n

n

k

IT

k

m

m

Ma trận đánh giá R

Ma trận chuyển vị đặc trưng ẩn của items

U R

Ma trận đặc trưng ẩn của users Hình 2.2. Ma trận đánh giá được phân tích thành 2 ma trận low-rank U và IT

Một câu hỏi được đặt ra là tại sao phương pháp thừa số hóa ma trận lại

được xếp vào nhóm lọc cộng tác? Câu trả lời đến từ việc đi tối ưu hàm mất (loss

function hay cost function) sẽ được trình bày ở mục 3.1.2. Về cơ bản, để tìm

nghiệm của bài toán tối ưu, ta phải lần lượt đi tìm U và IT khi thành phần còn

lại được cố định. Như vậy, mỗi hàng của U sẽ phụ thuộc vào toàn bộ các cột

của IT. Ngược lại, mỗi cột của IT lại phục thuộc vào toàn bộ các hàng của U.

Như vậy, có những mối quan hệ ràng buộc qua lại giữa các thành phần của hai

ma trận trên. Tức chúng ta cần sử dụng thông tin của hai ma trận thành phần U

và IT để tổng hợp và suy luận cho ma trận đánh giá . Vì thế phương pháp thừa

số hóa ma trận cũng được xếp vào nhóm Collaborative Filtering.

Trong các bài toán thực tế, số lượng users m và số lượng items n thường

rất lớn, users có thể lên đến hàng triệu người và items cũng có tới hàng ngàn

items. Nhu cầu tìm ra các mô hình đơn giản vừa giúp dự đoán ratings chính xác

vừa được thực hiện sao cho tối ưu tốc độ xử lí cho hệ thống tư vấn. Nếu như

phương pháp Neighborhood-based CF (ghi chú Neighborhood-based là tên gọi

cho phương pháp chung để tính toán các thuật toán như K-Nearest Neighbors,

k-Means, k-d Trees, Locality Sensitive Hashing) không yêu cầu

việc learning quá nhiều, nhưng trong quá trình dự đoán (predict), ta cần đi tìm

22

độ tương đồng của user đang xét với toàn bộ các users còn lại rồi suy ra kết

quả. Ngược lại, với phương pháp MF, việc learning có thể hơi phức tạp một

chút vì phải lặp đi lặp lại việc tối ưu một ma trận trong khi cố định ma trận còn

lại, nhưng việc dự đoán ratings đơn giản hơn vì ta chỉ cần tính tích của hai

vector UIT, mỗi vector có độ dài k là một số nhỏ hơn nhiều so với m, n. Vậy

nên quá trình dự đoán không yêu cầu hệ thống tính toán phức tạp. Điều này

khiến cho phương pháp thừa số hóa ma trận phù hợp với các mô hình có tập dữ

liệu lớn.

Mặt khác, việc lưu trữ hai ma trận U và I chỉ yêu cầu bộ nhớ lưu trữ nhỏ

hơn nhiều so với việc lưu toàn bộ ma trận tương đồng (Similarity matrix) trong

phương pháp Neighborhood-based Collaborative Filtering. Cụ thể hơn, với

phương pháp thừa số hóa ma trận, ta chỉ cần bộ nhớ để chứa k(m+n) phần tử

thay vì lưu m2 hoặc n2 so với việc lưu ma trận tương đồng trong Neighborhood-

based Collaborative Filtering.

Cơ sở toán học của phương pháp thừa số hóa ma trận:

Sau khi trình bày bằng trực giác bài toán thừa số hóa ma trận, bây giờ

chúng ta có thể tiếp tục tìm hiểu trên cơ sở toán học. Thứ nhất, cho tập user U

và item I. Cho R kích thước m×n là ma trận chứa tất cả các ratings mà users đã

gán cho các items. Ngoài ra, giả định rằng ta muốn khám phá các đặc trưng ẩn

k. Nhiệm vụ bài toán là tìm hai ma trận U (có kích thước m×k) và I (có kích

thước n×k) sao cho tích của chúng xấp xỉ với ma trận đánh giá R:

(2-8) 𝑅 ≈ 𝑈𝐼𝑇 = 𝑅̂

Bằng cách này, mỗi hàng của U sẽ đại diện cho xu hướng liên kết giữa

một user và các đặc trưng ẩn. Tương tự, mỗi hàng I sẽ đại diện cho xu hướng

liên kết giữa một item và các đặc trưng ẩn. Để có được dự đoán về rating của

23

item Iq theo user Up, chúng ta có thể tính tích vô hướng (dot product) giữa hai

vector của chúng [4]:

𝑘 𝑇 = ∑ 𝑘=1

(2-9) 𝑅̂𝑝𝑞 = 𝑈𝑝𝐼𝑞 𝑈𝑝𝑘𝐼𝑘𝑞

Bây giờ, chúng ta phải tìm cách để có được U và I. Một cách để tiếp cận

vấn đề này là khởi tạo hai ma trận U và I ban đầu với các giá trị ngẫu nhiên,

tính toán tích UIT và so sánh sự khác biệt với R (e = R- UIT), sau đó cố gắng

giảm thiểu sự khác biệt này bằng cách lặp đi lặp lại quá trình tính toán, cập nhật

cho hai ma trận U và I. Phương thức này được gọi là gradient descent được đề

xuất bởi Lee and Seung [23], nhằm tìm ra tối ưu hóa cực tiểu cục bộ cho hàm

lỗi.

Sự khác biệt ở đây, thường được gọi là hàm lỗi (cost function hoặc loss

function) giữa ratings dự đoán và ratings thực tế, có thể được tính theo phương

trình sau cho mỗi cặp user-item:

2 = (𝑅𝑝𝑞 − 𝑅̂𝑝𝑞)2 = (𝑅𝑝𝑞 − ∑ 𝑘 𝑒𝑝𝑞 𝑘=1

(2-10) )2 𝑈𝑝𝑘𝐼𝑘𝑞

Ở đây chúng ta xét bình phương hàm lỗi vì ratings dự đoán có thể cao hơn

hoặc thấp hơn ratings thực tế.

Để cực tiểu hóa hàm lỗi, chúng ta phải biết chúng ta phải sửa đổi các giá

trị của upk và ikq theo hướng nào. Nói cách khác, chúng ta cần biết gradient ở

các giá trị hiện tại, và do đó chúng ta cần tính đạo hàm riêng phần phương trình

trên đối với hai biến này:

2 = −2(𝑅𝑝𝑞 − 𝑅̂𝑝𝑞)(𝐼𝑘𝑞) = −2𝑒𝑝𝑞𝐼𝑘𝑞 𝑒𝑝𝑞

𝜕 𝜕𝑢𝑝𝑘

(2-11)

2 = −2(𝑅𝑝𝑞 − 𝑅̂𝑝𝑞)(𝑈𝑝𝑘) = −2𝑒𝑝𝑞𝑈𝑝𝑘 𝑒𝑝𝑞

𝜕 𝜕𝑖𝑝𝑘

(2-12)

Có được gradient, bây giờ chúng ta có thể xây dựng các quy tắc cập nhật

cho cả Upk và Ikp:

24

2 = 𝑈𝑝𝑘 + 2𝛼𝑒𝑝𝑞𝐼𝑘𝑞 𝑒𝑝𝑞

𝜕 𝜕𝑈𝑝𝑘

(2-13) 𝑈′𝑝𝑘 = 𝑈𝑝𝑘 + 𝛼

2 = 𝐼𝑘𝑞 + 2𝛼𝑒𝑝𝑞𝑈𝑝𝑘 𝑒𝑝𝑞

𝜕 𝜕𝐼𝑘𝑞

(2-14) 𝐼′𝑘𝑞 = 𝐼𝑘𝑞 + 𝛼

Ở đây, α là hằng số và được gọi là tỉ lệ học (rate of approaching minimum).

Thông thường, chúng ta sẽ chọn một giá trị α đủ nhỏ. Sở dĩ chọn hệ số α nhỏ

bởi vì nếu chúng ta thực hiện một bước tiến quá lớn đến giá trị tối tiểu, chúng

ta có thể gặp nguy cơ không tìm được giá trị tối tiểu này mà chỉ tìm được giá

trị dao động xung quanh giá trị tối tiểu.

Một câu hỏi đặt ra là nếu ta tìm thấy hai ma trận U và I sao cho U × IT xấp

xỉ R, không phải là dự đoán của chúng ta về tất cả các ratings chưa biết sẽ là

zero? Trong thực tế, chúng ta không cần cố gắng tìm ra U và I sao cho chúng

ta có thể tái tạo chính xác R. Thay vào đó, chúng ta sẽ chỉ cố gắng giảm thiểu

các lỗi của các cặp user-item được quan sát thấy. Nói cách khác, gọi D là một

tập hợp các bộ dữ liệu, mỗi bộ có dạng (Up, Iq, Rpq), sao cho D chứa tất cả các

cặp users được quan sát cùng với các ratings liên quan, chúng ta chỉ cố gắng

giảm thiểu mọi epq sao cho (Up, Iq, Rpq)∈ D. Nói cách khác, D là tập hợp dữ liệu

huấn luyện. Đối với những giá trị chưa biết còn lại, chúng ta có thể xác định

giá trị của chúng khi các kết hợp giữa users, items và những đặc trưng đã được

học.

Sử dụng các quy tắc cập nhật ở trên, chúng ta có thể thực hiện thao tác lặp

cho đến khi lỗi hội tụ đến mức tối tiểu. Chúng ta có thể kiểm tra lỗi tổng thể

bằng phương trình sau và xác định khi nào chúng ta nên dừng quá trình lặp:

𝑘 (𝑅𝑝𝑞 − ∑ 𝑈𝑝𝑘𝐼𝑘𝑞 1

(𝑈𝑝,𝐼𝑞,𝑅𝑝𝑞)∈𝐷

(𝑈𝑝,𝐼𝑞,𝑅𝑝𝑞)∈𝐷

(2-15) 𝐸 = ∑ = ∑ )2 𝑒𝑝𝑞

25

Chuẩn hóa cho mô hình thừa số hóa ma trận:

Thuật toán trên là thuật toán cơ bản cho phương pháp thừa số hóa ma trận.

Ngoài ra nó còn có nhiều biến thể mở rộng khác để giúp nâng cao hiệu quả của

thuật toán, tránh over-fitting. Chẳng hạn như thêm tham số để điều chỉnh bình

𝛽

phương hàm lỗi như sau:

2 = (𝑅𝑝𝑞 − ∑ 𝑈𝑝𝑘𝐼𝑘𝑞 𝑒𝑝𝑞

𝑘 1

𝑘 1

2

(2-16) )2 + ∑ (‖𝑈‖2 + ‖𝐼‖2)

Nói cách khác, tham số  dùng để điều chỉnh độ lớn các vector đặc trưng

của user và item sao cho tích U và IT cho kết quả xấp xỉ R, mà không cần chứa

những con số lớn. Về mặt thực tiễn,  được gán cho những giá trị nhỏ (như 

= 0.002 chẳng hạn). Công thức cập nhật mới khi có tham số  như mô tả trên

sẽ được tính như sau:

2 = 𝑈𝑝𝑘 + 𝛼(2𝑒𝑝𝑞𝐼𝑘𝑞 − 𝛽𝑈𝑝𝑘) 𝑒𝑝𝑞

𝜕 𝜕𝑈𝑝𝑘

(2-17) 𝑈′𝑝𝑘 = 𝑈𝑝𝑘 + 𝛼

2 = 𝐼𝑘𝑞 + 𝛼(2𝑒𝑝𝑞𝑈𝑝𝑘 − 𝛽𝐼𝑘𝑞) 𝑒𝑝𝑞

𝜕 𝜕𝐼𝑘𝑞

(2-18) 𝐼′𝑘𝑞 = 𝐼𝑘𝑞 + 𝛼

Thêm độ lệch cho mô hình thừa số hóa ma trận:

Chúng ta sẽ tìm hiểu xem bằng cách nào để dự đoán các ratings của users

đánh giá cho các items. Giả sử các ratings phát sinh dựa trên việc so khớp sở

thích của users trên những đặc trưng ẩn của users và items. Thật vậy, việc này

sẽ hữu ích cho việc các nhân tố đi kèm.

Giả sử khi một rating được phát sinh, một số độ lệch cũng đóng góp vào

xếp hạng. Đặc biệt, mỗi user có thể có độ lệch riêng, nghĩa là user đó có xu

hướng cho điểm đánh giá các items cao hơn hoặc thấp hơn những người khác.

Chẳng hạn như khi đánh giá cho bộ phim, những users khó tính có xu hướng

cho điểm đánh giá thấp hơn, ngược lại những users dễ tính có xu hướng cho

điểm cao hơn. Tương tự cho trường hợp độ lệch của items. Vì vậy, kết quả dự

26

đoán ratings có thể cộng thêm các độ lệch vào để mô hình dự đoán được tốt

hơn:

𝑘 1

(2-19) 𝑅̂𝑝𝑞 = 𝑏 + 𝑏𝑈𝑝 + 𝑏𝐼𝑞 + ∑ 𝑈𝑝𝑘𝐼𝑘𝑞

Với b là độ lệch tổng thể (được tính bằng trung bình các ratings), 𝑏𝑈𝑝là

độ lệch của user p và 𝑏𝐼𝑞 là độ lệch của item q. Từ đó suy ra, luật cập nhật cho

các độ lệch của user và item sẽ được tính như sau:

(2-20) 𝑏𝑈′𝑝 = 𝑏𝑈𝑝 + 𝛼 × (𝑒𝑝𝑞 − 𝛽𝑏𝑈𝑝)

(2-21) 𝑏𝐼′𝑞 = 𝑏𝐼𝑞 + 𝛼 × (𝑒𝑝𝑞 − 𝛽𝑏𝐼𝑞)

Trong thực nghiệm, việc xử lí thừa số hóa ma trận sẽ nhanh hơn nếu các

độ lệch được cộng thêm vào mô hình.

2.2.4. Bài toán thừa số hóa ma trận không âm

Sử dụng ma trận không âm để giải quyết vấn đề thưa thớt dữ liệu trong ma

trận đánh giá và tăng tốc độ xử lí thông qua việc phân rã ma trận và tính tương

đồng. Mục tiêu của việc phân rã ma trận không âm là cố gắng tìm ra hai ma

trận không âm, sao cho khi tính tích của hai ma trận này sẽ cho ra một ma trận

gần đúng với ma trận gốc ban đầu. Nó cũng áp đặt các mối ràng buộc không

âm trên các nhân tố ẩn bởi thông thường ma trận gốc ban đầu được thể hiện bởi

các giá trị lấy từ ratings của users. Các ratings thường có giá trị từ [1,5] là

những giá trị không âm. Vì thế các mối ràng buộc không âm trên nhân tố ẩn

sau khi tính tích hiển nhiên sẽ cho ra các giá trị không âm, phù hợp với tiêu

chuẩn không âm của ma trận gốc ban đầu. Hiện nay, người ta đang đưa ra các

phương pháp cập nhật các luật để học từ những nhân tố ẩn này và cho ra dự

đoán những ratings chưa biết. Phương pháp này không như các phương pháp

lọc cộng tác thường dùng, nó có thể dự đoán tất cả các ratings chưa biết. Kết

27

quả thực nghiệm trên MovieLens và Book-Crossing cho thấy rằng phương pháp

này có khả năng giải quyết vấn đề thưa dữ liệu và tốc độ xử lí tốt hơn [19].

Câu hỏi đặt ra là tại sao lại áp đặt tính chất không âm cho ma trận thành

phần. Thực ra, một lợi thế của NMF là phương pháp này cho kết quả mang ý

nghĩa trực quan trong các ma trận kết quả (ma trận dự đoán). Vì ma trận đánh

giá thường chứa các ratings không có phần tử nào là âm, mang giá giá trị từ

[0,5], quá trình nhân các ma trận thành phần để cho ra ma trận kết quả sẽ không

liên quan đến số âm, và có thể được coi là một quá trình phát sinh dữ liệu ban

đầu bằng cách kết hợp tuyến tính của các đặc trưng ẩn. Hơn nữa, vì ma trận

đánh giá thưa, dẫn đến các ma trận thành phần cũng thường thưa (chứa nhiều

giá trị zero) nên chương trình dễ xử lí tính toán.

𝑅+

𝑚×𝑘 và 𝐼 ∈ 𝑅+

Bài toán phân rã ma trận không âm: Cho một ma trận không âm 𝑅 ∈ 𝑚×𝑛 (𝑅𝑖𝑗 ≥ 0, 1 ≤ 𝑖 ≤ 𝑚, 1 ≤ 𝑗 ≤ 𝑛) và một bậc k (k ≤ min(m,n)). Tìm 2 ma 𝑛×𝑘 sao cho R có thể phân rã thành 𝑅 ≈ 𝑈𝐼𝑇. trận không âm 𝑈 ∈ 𝑅+

Định nghĩa bài toán: Cho tập users {U1, U2, …,Um} và tập items {I1, I2,

…, In} trong hệ tư vấn. Các xếp hạng đánh giá về items bởi users được cho bởi

một ma trận đánh giá Rm×n. Trong đó Rij là đánh giá của user thứ i trên item j.

Ma trận R chứa các giá trị Rij có thể là số thực, nhưng thường là số nguyên từ 1

đến 5.

Nhiệm vụ của hệ tư vấn: cho một user p và một item q sao cho Rpq chưa

biết. Dự đoán đánh giá cho user p trên item q bằng cách sử dụng ma trận R.

Việc sử dụng thừa số hóa ma trận không âm để học các đặc trưng ẩn của

user và item, sử dụng những đặc trưng ẩn này đánh giá những ratings chưa biết

cho ma trận khởi tạo ban đầu. Gọi Um×k và In×k là hai ma trận thành phần ẩn của

user và item. Trong đó dòng vector Ui và Ij biểu diễn cụ thể user và item ở k

chiều các vector đặc trưng ẩn của user Ui và item Ij tương ứng. Mục tiêu của

28

bài toán là đề xuất phương pháp học những đặc trưng ẩn và khai thác chúng

cho tư vấn. Bảng 2.1 bên dưới minh họa một ma trận đánh giá thưa R cho bài

toán tư vấn.

U1 I3 2 I1 3

Bảng 2.1. Minh họa một ma trận đánh giá thưa R cho bài toán tư vấn I4 ?

I2 ? R = U2 1 ? ? ?

.

U3 4 3 5 ?

Chương 3. TƯ VẤN THÔNG TIN DỰA TRÊN THỪA SỐ HÓA MA TRẬN KHÔNG ÂM

3.1. Cách tiếp cận

Đối với bài toán thừa số hóa ma trận đã trình bày ở phần 2.2.5, dễ dàng

nhận thấy có 2 cách tiếp cận chính. Một là bài toán gán hệ số khởi tạo cho hai

ma trận U và I, hai là là bài toán cập nhật hệ số cho hai ma trận U và I.

29

Đầu tiên là bài toán khởi tạo cho hai ma trận thành phần U và I. Tại thời

điểm khởi đầu việc chọn ma trận U, I sẽ ảnh hưởng đến kết quả. Chọn hệ số

cho ma trận U và I ban đầu như thế nào để đạt được kết quả có lợi, nếu có

phương pháp nào đó khởi tạo sao cho hàm chi phí thấp hơn sẽ có cơ hội đạt

được hội tụ nhanh hơn. Khởi đầu không tốt thường dẫn tới hội tụ kém, hoặc kết

quả không chính xác.

Công việc tiếp theo là việc lựa chọn thuật toán có lợi cho quá trình tối ưu

hóa hàm lỗi, tức là giai đoạn cập nhật giá trị cho hai ma trận thành phần U và

I, làm cách nào để cho quá trình cập nhật này không tốn quá nhiều bước lặp,

thời gian chạy chương trình trong giới hạn cho phép mà vẫn cho ra kết quả như

mong muốn.

Trong bài toán thừa số hóa ma trận, các tác giả [4], [19], [24], [25], [26],

[27], [28], [29] đã tiếp cận bài toán này bằng cách nghiên cứu cải tiến cho bài

toán khởi tạo, cải tiến thuật toán để tối ưu hóa cho hàm lỗi (cải tiến số lần lặp

trong huấn luyện) hoặc cũng có thể kết hợp cả hai phương pháp trên lại với

nhau. Việc lựa chọn phương pháp khác nhau cho bài toán khởi tạo hay bài toán

tối ưu hóa khi cập nhật hệ số cho hai ma trận thành phần cũng dẫn đến kết quả

thu được sẽ khác nhau. Ví dụ nếu chỉ tiến hành cải tiến cho bài toán khởi tạo,

chiếm lợi thế khởi tạo ban đầu, nhưng việc sử dụng công thức cập nhật và

phương pháp cập nhật cũng sẽ cho ra kết quả và tốc độ hội tụ (được đo bằng độ

biến thiên của hàm mất chia cho số lần lặp) khác nhau. Ngược lại nếu chỉ chú

trọng vào công thức và phương pháp cập nhật mà bỏ qua yếu tố khởi tạo ban

đầu, khả năng việc hội tụ sẽ chậm hơn (tốc độ hội tụ nhỏ hơn) hoặc không chính

xác [19].

30

Hình 3.1. Kiến trúc NMF cho phương pháp đề xuất

Trong luận văn này, tác giả đề xuất kết hợp cải tiến cả hai giai đoạn khởi

tạo lẫn cập nhật để tăng hiệu năng cho bài toán thừa số hóa ma trận không âm.

Đầu tiên là cải thiện hệ số ban đầu cho hai ma trận khởi tạo U và I dựa trên đề

xuất thuật toán tính độ tương đồng PJ, từ ý tưởng đã được các tác giả [29], [30],

[31], [28] thực hiện trước đó. Sau khi có hai ma trận thành phần được khởi tạo

tương đối tốt, tác giả đề xuất hàm chi phí FKI dựa trên việc kết hợp các hàm

chi phí Frobenius-norm, Kullback-Leibler, Itakura-Saito [26], [25], [29]. Dựa

trên hàm chi phí FKI, đưa ra một công thức cập nhật dùng cập nhật hệ số cho

2 ma trận thành phần U và I trong quá trình huấn luyện (sử dụng vòng lặp) để

đạt được sự hội tụ cho thuật toán nhanh hơn (tốc độ hội tụ lớn hơn).

Kiến trúc nhằm nâng cao hiệu quả của bài toán thừa số hóa ma trận trong

hệ thống tư vấn được thể hiện trong hình 3.1.

31

3.2. Các thuật toán đề xuất cho hệ thống

3.2.1. Khởi tạo giá trị ban đầu cho hai ma trận thành phần

Đầu tiên, ta khởi tạo hệ số cho hai ma trận thành phần U và I. Tác giả đề

xuất công thức PJ để tính trọng số tương đồng giữa các users với nhau để điền

vào ma trận SUmm (ma trận tương đồng của users). Trọng số tương đồng giữa

các items với nhau sử dụng công thức Adjusted Cosine [1], [8], [30] để điền vào

ma trận SInn (ma trận tương đồng của items). Trong đó SUuv chỉ độ tương đồng

của user u và user v, tương tự SIij chỉ độ tương đồng của item i và item j.

Cách đo độ tương đồng phổ biến thường được sử dụng trong các hệ tư vấn

là dùng hệ số tương quan Pearson (Pearson Correlation Coefficient – PCC) để

đo trọng số tương đồng của hai users. Dùng phép đo Pearson cũng khá “tinh

tế”, có ưu điểm hơn phép đo Cosine [30], vì phép đo Pearson đã tính đến độ

lệch của users. Tuy nhiên, công thức Pearson thường không phản ánh chính

xác độ tương đồng nếu chỉ có một vài items được đánh giá chung bởi hai users

(dữ liệu thưa), kết quả độ tương đồng thường cho ra kết quả cao (hoặc thấp)

nếu có sự khác biệt quá lớn giữa các ratings.

Trọng số tương đồng của hai users u và v trong ma trận đánh giá R được

∑ (𝑅𝑢𝑖−𝑅𝑢)(𝑅𝑣𝑖−𝑅𝑣)

𝑖∈𝑃

tính theo công thức Pearson như sau [1]:

√∑ (𝑅𝑢𝑖−𝑅𝑢)2

𝑖∈𝑃

√∑ (𝑅𝑣𝑖−𝑅𝑣)2

𝑖∈𝑃

(3-1) 𝑠𝑖𝑚(𝑢, 𝑣)𝑃𝑒𝑎𝑟𝑠𝑜𝑛 =

Với 𝑅𝑢 biểu thị cho rating trung bình của user u và P là tập hợp các items

được đánh giá bởi cả 2 users u và v.

Jaccard là một độ đo “thô”, được tính bằng thương giữa số items được

đánh giá chung giữa hai users và tổng số các items mà một trong hai users có

đánh giá. Nếu kết quả phép đo cao, tức hai users có nhiều đánh giá chung về

32

các items, nghĩa là phép đo tin cậy cao hơn. Ngược lại nếu kết quả phép đo

thấp, nghĩa là hai users có rất ít items đánh giá chung, phép đo giảm độ tin cậy

hơn. Biểu thức (3-2) tính độ tương đồng của hai users bằng phương pháp tính

độ tương đồng Jaccard:

|𝐼𝑢|∩|𝐼𝑣| |𝐼𝑢|∪|𝐼𝑣|

(3-2) 𝑠𝑖𝑚(𝑢, 𝑣)𝐽𝑎𝑐𝑐𝑎𝑟𝑑 =

Trong đó |Iu| là số items được đánh giá bởi user u. Hệ số Jaccard cao khi

hai users có nhiều đánh giá chung về các items giống nhau, làm tăng thêm độ

tin cậy về sự tương đồng cho hai users đó.

Công thức PJ để đo độ tương đồng của 2 users là một công thức lai hóa,

được kết hợp giữa độ đo Pearson và Jaccard. Mục đích của việc thêm độ tương

đồng Jaccard vào biểu thức nhằm tăng ý nghĩa tin cậy cho các items được đánh

giá chung. Ý tưởng kết hợp các độ đo này dựa trên ý tưởng của độ đo CjacMD

[30]. Việc kết hợp các công thức với mong muốn có được ưu điểm của từng

công thức thành phần cũng như hạn chế khuyết điểm của chúng. Công thức PJ

này sẽ phù hợp với tập dữ liệu thưa, khi công thức Pearson thường ít chính xác

hơn thì có thêm sự hiện diện của độ đo Jaccard sẽ bổ sung cho độ đo giúp xác

minh độ tin cậy của công thức Pearson. Vì thế việc kết hợp các độ đo này thực

sự có ích khi trong ma trận đánh giá thực tế, dữ liệu ratings thường khá thưa

thớt. Đề xuất độ đo mới PJ sẽ phù hợp với dữ liệu thưa trong việc tính toán sự

tương đồng tổng thể. Việc kiểm chứng tính hiệu quả sẽ được trình bày ở phần

thực nghiệm 4.2.

Công thức tính độ tương đồng PJ được đề xuất như sau:

(3-3) 𝑠𝑖𝑚(𝑢, 𝑣)𝑃𝐽 = 𝜎𝑠𝑖𝑚(𝑢, 𝑣)𝑃𝑒𝑎𝑟𝑠𝑜𝑛 + (1 − 𝜎)𝑠𝑖𝑚(𝑣, 𝑣)𝐽𝑎𝑐𝑐𝑎𝑟𝑑

Với 0 ≤ 𝜎 ≤ 1. Nếu 𝜎 = 0, biểu thức (3-3) trở thành độ đo Jaccard.

Tương tự, nếu 𝜎 = 1, biểu thức (3-3) trở thành độ đo Pearson. Khi làm thực

33

nghiệm, tác giả sẽ điều chỉnh hệ số 𝜎 để kiểm chứng xem với giá trị trong

khoảng nào của 𝜎 thì sẽ làm cho thuật toán hội tụ tốt hơn, tức là sẽ kiểm chứng

được xem giữa độ đo Pearson và Jaccard, độ đo nào ảnh hưởng đến sự tương

đồng nhiều hơn.

Để tính mức độ tương đồng giữa 2 items với nhau, người ta thường dùng

công thức tính độ tương đồng Adjusted cosine (tương tự như trường hợp của

users, các items cũng có độ lệch riêng, có những items có xu hướng được yêu

thích và được cho điểm cao hơn những items khác, nếu chỉ dùng công thức

Cosine đơn thuần thì không phản ánh được độ lệch này). Gọi H là tập các users

có đánh giá cho cả hai items i và j, công thức đo độ tương đồng bằng Adjusted

𝑢∈𝐻

(𝑅𝑢𝑖−𝑅𝑢)(𝑅𝑢𝑗−𝑅𝑢)

Cosine được tính như sau:

√∑

√∑

𝑢∈𝐻

(𝑅𝑢𝑖−𝑅𝑢)2

𝑢∈𝐻

(𝑅𝑢𝑗−𝑅𝑢)2

(3-4) 𝑠𝑖𝑚(𝑖, 𝑗) =

Các biểu thức (3-3) và (3-4) dùng để thiết lập giá trị cho hai ma trận SU

và SI tương ứng, từ đó khởi tạo cho hai ma trận thành phần U và I ban đầu.

Nếu hai users trong ma trận SU có mức độ tương đồng lớn hơn ngưỡng 1 nào

đó, thì ta gán hệ số khởi tạo cho hai dòng của ma trận U ban đầu là như nhau.

Tương tự cho items. Ngoài ra, trong thực tế người ta còn dùng rất nhiều các

phương pháp khác để khởi tạo cho hai ma trận ban đầu U và I, chẳng hạn như

dùng phương pháp K-mean [28].

3.2.2. Hàm chi phí cho bài toán thừa số hóa ma trận không âm

Bây giờ, chúng ta hãy xem xét hàm chi phí (hàm lỗi) để định lượng sự sai

biệt giữa ma trận đánh giá R và ma trận xấp xỉ 𝑅̂ = 𝑈𝐼𝑇. Việc lựa chọn hàm chi

phí phần lớn phụ thuộc vào sự phân phối xác suất của dữ liệu [19]. Cách đơn

giản nhất là dùng độ đo Frobenius-norm (hay còn gọi là bình phương khoảng

cách Euclid) [19], [29]:

34

1

1

2 =

𝑖,𝑗

2

2

(3-5) 𝐷𝐹(𝑅 ∥ 𝑈𝐼𝑇) = ∑ (𝑅𝑖𝑗 − [𝑈𝐼𝑇]𝑖𝑗)2 ‖𝑅 − 𝑈𝐼𝑇‖𝐹

Chặn dưới của độ đo này là zero, xảy ra nếu và chỉ nếu R=UIT. Hàm chi

phí ở (3-5) dùng công thức tính bình phương khoảng cách, hiệu quả khi ta thực

hiện gom cụm, nhưng lại không hiệu quả với các phân phối xác suất do bỏ qua

yếu tố xác suất trong công thức tính này.

Một cách tính khác cho hàm chi phí cũng đáng được xem xét, được tính

bằng công thức Kullback-Leibler, là cách tính chi phí dựa trên phân phối xác

suất:

𝑖,𝑗

𝑅𝑖𝑗 [𝑈𝐼𝑇]𝑖,𝑗

(3-6) 𝐷𝐾𝐿(𝑅 ∥ 𝑈𝐼𝑇) = ∑ (𝑅𝑖𝑗𝑙𝑛 − 𝑅𝑖𝑗 + [𝑈𝐼𝑇]𝑖𝑗)

Tương tự như cách tính Frobenius-norm, chặn dưới của độ đo này cũng

bằng zero, xảy ra nếu và chỉ nếu R=UIT. Tuy nhiên công thức này không dùng

để xác định khoảng cách vì nó bất đối xứng trong R và UIT. Vì vậy chúng ta chỉ

dùng công thức này tham khảo như là một độ đo phân kì của R đối với UIT.

Cuối cùng, tác giả xin giới thiệu thêm một công thức tính độ phân kì khác

của Itakura–Saito [25] được định nghĩa như sau:

𝑖,𝑗

𝑅𝑖𝑗 [𝑈𝐼𝑇]𝑖𝑗

𝑅𝑖𝑗 [𝑈𝐼𝑇]𝑖𝑗

(3-7) − log ( ) − 1) 𝐷𝐼𝑆(𝑅 ∥ 𝑈𝐼𝑇) = ∑ (

Khi thực nghiệm, để đơn giản ta lấy log cơ số e trong công thức (3-7).

Về ý nghĩa, độ đo Itakura-Saito là độ phân kỳ Bregman [32] liên quan đến

họ hàm số mũ. Phương pháp này được đề xuất bởi Itakura-Saito, ban đầu được

dùng để đo độ tương thích giữa hai quang phổ. F´evotte và cộng sự đã đưa ra

một số dẫn chứng rằng độ đo Itakura-Saito thực sự hiệu quả trong bài toán

NMF [25]. Trong bài toán thừa số hóa ma trận không âm, công thức đo phân

kỳ Itakura-Saito có thể được sử dụng như một thước đo về chất lượng thừa số

hóa của các ma trận thành phần, nghĩa là công thức này phản ánh một mô hình

35

của các ma trận thành phần và có thể cho ra kết quả thông qua một phương

pháp lặp [25].

Về bản chất, công thức tính khoảng cách ở (3-5), (3-6) và (3-7) là những

trường hợp đặc biệt của họ hàm phân kì beta (beta-divergence), với  =2, 1, 0

1

𝛽−1) (3-8)

tương ứng. Hàm phân kì beta được định nghĩa bởi [26]:

𝑖,𝑗

𝛽 + (𝛽 − 1)[𝑈𝐼𝑇]𝑖𝑗

𝛽 − 𝛽𝑅𝑖𝑗[𝑈𝐼𝑇]𝑖𝑗

𝛽(𝛽−1)

𝐷𝛽(𝑅 ∥ 𝑈𝐼𝑇) = ∑ (𝑅𝑖𝑗

Hình 3.2. Đồ thị hàm phân kì beta biểu diễn các giá trị  = 2, 1, 0 tương ứng

 Với  = 2, ta có công thức (3-5), Frobenius-norm.

 Với  = 1, ta có công thức (3-6), hàm phân kì Kullback-Leibler.

 Với  = 0, ta có công thức (3-7), hàm phân kì Itakura-Saito.

36

Nếu   0 (thuộc hàm phân kì Itakura-Saito) thì ma trận đầu vào không

thể chứa các giá trị zero.

Mục tiêu của hàm chi phí (3-5), (3-6) và (3-7) là cực tiểu hóa độ sai biệt

giữa ma trận R và ma trận UIT, tương ứng với hai ma trận thành phần U và I

với ràng buộc U, I  0. Do đó chúng ta có thể sử dụng độ đo Frobenius-norm,

độ đo Kullback-Leibler hoặc độ đo Itakura-Saito. Vì NMF có tính chất không

lồi, sử dụng các công thức và giải pháp cập nhật khác nhau có thể cho ra kết

quả hội tụ với các cực tiểu khác nhau, kể cả khi tối ưu hóa cùng một hàm khoảng

cách [26].

Trong việc xây dựng công thức tính hàm chi phí, tác giả kết hợp sử dụng

cả ba độ đo đã giới thiệu như trên, đề xuất độ đo FKI. Việc kết hợp tuyến tính

của ba độ đo Frobenius-norm, Kullback-Leibler và Itakura-Saito với mục tiêu

là mong muốn có được kết quả hàm chi phí trên một tổng thể toàn diện, có sự

góp mặt của hàm chi phí dựa trên khoảng cách, xác suất và chất lượng đo các

ma trận thành phần. Cụ thể như sau:

𝑐𝑜𝑠𝑡𝑓𝑢𝑛𝑐𝑡𝑖𝑜𝑛 = 𝛼𝐷𝐹(𝑅 ∥ 𝑈𝐼𝑇) + 𝛽𝐷𝐾𝐿(𝑅 ∥ 𝑈𝐼𝑇) + 𝛾𝐷𝐼𝑇(𝑅 ∥ 𝑈𝐼𝑇)

(3-9)

Với 𝛼 + 𝛽 + 𝛾 = 1. Các hệ số 𝛼, 𝛽, 𝛾 thể thể điều chỉnh trong quá trình

thực nghiệm để tìm ra những giá trị tốt hơn cho kết quả hội tụ.

Hàm chi phí là một hàm lồi theo ma trận U hoặc ma trận I nhưng không

đồng thời cả hai [29]. Do đó không thể giải bài toán này trong ngữ cảnh tìm

cực tiểu toàn cục. Tuy nhiên, có những phương pháp tối ưu hóa số có thể áp

dụng để tìm cực tiểu cục bộ [19], [29]. Sử dụng hàm tính chi phí phân kì cho

phương pháp đề xuất, Gradient descent là phương pháp đơn giản nhất, nhưng

sự hội tụ có thể chậm. Các phương pháp khác như Gradient liên hợp (Conjugate

37

gradient) hoặc Stochastic gradient descent chẳng hạn sẽ hội tụ nhanh hơn, ít

nhất trong lân cận cực tiểu địa phương nhưng quá trình thực thi lại khá phức

tạp hơn Gradient Descent [19], [29], [27].

Trong tối ưu hóa Gradient descent, người ta tính toán gradient chi phí dựa

trên toàn bộ tập huấn luyện, do đó đôi khi chúng ta cũng gọi nó là Batch

gradient descent. Trong trường hợp các tập dữ liệu rất lớn, việc sử dụng

Gradient descent có thể khá tốn kém chi phí vì mỗi vòng lặp ta phải duyệt hết

các phần tử trong tập huấn luyện (mỗi lần duyệt qua toàn bộ tập huấn luyện

như thế gọi là một epoch). Do đó, tập huấn luyện càng lớn thì thuật toán

Gradient descent sẽ cập nhật hệ số càng chậm cho đến khi nó hội tụ với chi phí

tối tiểu toàn cục.

Trong Stochastic Gradient Descent (SGD), người ta không tích lũy các

bản cập nhật hệ số như chúng ta đã thấy ở trên như Gradient descent. Ở đây,

thuật ngữ “stochastic” xuất phát từ thực tế là gradient dựa trên một mẫu huấn

luyện đơn lẻ là một “xấp xỉ ngẫu nhiên” của chi phí gradient thực tế. Do tính

chất ngẫu nhiên của nó, con đường hội tụ hướng tới chi phí cực tiểu không trực

tiếp như trong gradient descent, có thể là đường zig-zag chẳng hạn, nếu chúng

ta hình dung bề mặt chi phí trong không gian 2 chiều. Tuy nhiên, thuật toán

Stochastic Gradient Descent này đã được chỉ ra rằng gần như chắc chắn hội tụ

với chi phí cực tiểu toàn cục nếu hàm chi phí lồi (hoặc giả lồi) [33].

Cả hai thuật toán Gradient descent và Stochastic gradient descent đều tìm

cực tiểu một hàm chi phí bằng cách điều chỉnh các thông số của hàm lỗi bằng

cách dùng vòng lặp. Sự khác biệt duy nhất của chúng là mỗi thuật toán có một

hàm chi phí khác nhau để tối ưu hóa.

2

1

Hàm chi phí cho Gradient descent lặp trên tất cả tập huấn luyện:

𝑢,𝑖

𝑆

(3-10) 𝑒𝑢𝑖 = ∑ (𝑅𝑢𝑖 − 𝑅̂𝑢𝑖)

38

Với S là số phần tử Rui quan sát được.

Hàm chi phí cho Stochastic Gradient Descent chỉ tính cho 1 mẫu huấn

2

luyện được chọn ngẫu nhiên:

(3-11) 𝑒𝑢𝑖 = (𝑅𝑢𝑖 − 𝑅̂𝑢𝑖)

Điều này lí giải vì sao đường hội tụ của Gradient Descent chính xác hơn,

và tốc độ của Stochastic Gradient Descent nhanh hơn.

Trong thuật toán đề xuất, tác giả sử dụng phương pháp Stochastic

Gradient Descent để thực hiện việc tối ưu hóa hàm chi phí (cost function). Về

ý nghĩa, Stochastic Gradient Descent khác biệt Gradient Descent:

- Trong Stochastic Gradient Descent, trước khi lặp người ta cần phải trộn

ngẫu nhiên các mẫu của tập dữ liệu huấn luyện. Trong Gradient Descent, mỗi

vòng lặp sẽ duyệt hết qua các phần tử của tập dữ liệu huấn luyện.

- Trong Stochastic Gradient Descent, bởi vì nó chỉ sử dụng một mẫu nhỏ

trong tập huấn luyện tại một thời điểm, con đường hội tụ của nó đến điểm cực

tiểu bị nhiễu nhiều hơn (ngẫu nhiên hơn) so với Gradient descent. Điều này có

thể chấp nhận được vì chúng ta không quan tâm nhiều về con đường dẫn đến

hội tụ, miễn là giải thuật vẫn đưa ra được lời giải cực tiểu và thời gian huấn

luyện ngắn hơn.

Từ (3-5), ta tính được đạo hàm riêng lần lượt theo biến U và biến IT và

đưa ra được luật cập nhật cho U và IT như sau [29], [34]:

𝑅𝐼 𝑈𝐼𝑇𝐼

𝜕(𝐷𝐹(𝑅∥𝑈𝐼𝑇)) 𝜕𝑈

(3-12) = 𝑈 𝑈 ← 𝑈 + 𝜂1

𝑈𝑇𝑈𝐼𝑇

𝜕(𝐷𝐹(𝑅∥𝑈𝐼𝑇)) 𝜕𝐼𝑇

(3-13) = 𝐼𝑇 𝑈𝑇𝑅 𝐼𝑇 ← 𝐼𝑇 + 𝜂2

39

Trong đó, 𝜂1 và 𝜂2 là những số dương rất nhỏ, gọi là tỉ lệ học (learning

rate) cho thuật toán. Ở (3-12) và (3-13), 𝜂1 và 𝜂2 được gán giá trị lần lượt là:

𝑈 𝑈𝐼𝑇𝐼

𝐼𝑇 𝑈𝑇𝑈𝐼𝑇

𝜂1 = và 𝜂2 =

Từ (3-6), ta tính được đạo hàm riêng lần lượt theo biến U và biến IT và

đưa ra được luật cập nhật cho U và IT như sau [19], [34]:

𝑅 𝑈𝐼𝑇𝐼 1𝐼

𝜕(𝐷𝐾𝐿(𝑅∥𝑈𝐼𝑇)) 𝜕𝑈

(3-14) = 𝑈 𝑈 ← 𝑈 + 𝜂3

𝑈𝑇 𝑅 𝑈𝐼𝑇 𝑈𝑇1

𝜕(𝐷𝐾𝐿(𝑅∥𝑈𝐼𝑇)) 𝜕𝐼𝑇

(3-15) = 𝐼𝑇 𝐼𝑇 ← 𝐼𝑇 + 𝜂4

Trong đó, 𝜂3 và 𝜂4 là những số dương rất nhỏ, gọi là tỉ lệ học (learning

𝑈

rate) cho thuật toán. Ở (3-14) và (3-15), 𝜂3 và 𝜂4 được gán giá trị lần lượt là:

𝐼𝑇 và 𝜂4 =

𝐼𝑇 𝑈

𝜂3 =

Từ (3-7), ta tính được đạo hàm riêng lần lượt theo biến U và biến IT và

đưa ra được luật cập nhật cho U và IT như sau [25], [34]:

(𝑈𝐼𝑇)−2𝑅𝐼 (𝑈𝐼𝑇)−1𝐼

−2

𝑅

(3-16) 𝑈 ← 𝑈

𝑈𝑇(𝑈𝐼𝑇)−1

(3-17) 𝐼𝑇 ← 𝐼𝑇 𝑈𝑇(𝑈𝐼𝑇)

Từ hàm chi phí đề xuất ở (3-9) và công thức cập nhật lần lượt theo hai

biến U, IT tương ứng ở (3-12), (3-13), (3-14), (3-15), (3-16) và (3-17). Ta thu

được công thức đề xuất để cập nhật cho ma trận U và I theo hàm chi phí FKI

như sau [25], [27], [34], [35]:

𝑅𝐼 𝑈𝐼𝑇𝐼

𝑅 𝑈𝐼𝑇𝐼 1𝐼

(𝑈𝐼𝑇)−2𝑅𝐼 (𝑈𝐼𝑇)−1𝐼

(3-18) 𝑈 ← 𝑈 (𝛼 + 𝛽 + 𝛾 )

40

−2

𝑅

𝑈𝑇𝑅 𝑈𝑇𝑈𝐼𝑇 + 𝛽

𝑈𝑇 𝑅 𝑈𝐼𝑇 𝑈𝑇1

𝑈𝑇(𝑈𝐼𝑇) 𝑈𝑇(𝑈𝐼𝑇)−1 )

(3-19) 𝐼𝑇 ← 𝐼𝑇 (𝛼 + 𝛾

Chọn 𝛼 + 𝛽 + 𝛾 = 1.

Với công thức cập nhật cho 2 ma trận U và I được thành lập ở (3-18) và

(3-19). Tác giả lựa chọn phương pháp Stochastic gradient descent trong các

bước huấn luyện. Lý do chọn Stochastic gradient descent thay vì Gradient

descent như một số nghiên cứu trước [19], [29] vì mong muốn thời gian huấn

luyện sẽ được giảm đi đáng kể nhờ việc không cần duyệt qua tất cả các mẫu

huấn luyện trong tập dữ liệu huấn luyện trong mỗi vòng lặp. Ngoài hai phương

pháp kể trên, người ta còn sử dụng các phương pháp khác trong quá trình huấn

luyện dữ liệu, chẳng hạn như Conjugate gradient, mặc dù phương pháp

Conjugate gradient hứa hẹn cho kết quả hội tụ với số bước lặp ít hơn, tuy nhiên

việc triển khai thực hiện phương pháp này lại tương đối phức tạp, bất lợi chính

là mỗi lần lặp của phương pháp Conjugate gradient đòi hỏi phải giải quyết một

hệ phương trình tuyến tính lớn, khi quy mô của tập dữ liệu lớn lên thì phương

pháp này cũng phát sinh chi phí tính toán lớn theo [36]. Chính vì những lí do

vừa nêu, tác giả cũng rất cân nhắc trước khi lựa chọn Stochastic gradient

descent.

3.2.3. Thuật toán đề xuất nâng cao hiệu năng cho bài toán thừa số hóa ma trận không âm

Input: Ma trận đánh giá Rmn thưa

1 (chỉ số mức độ tương đồng giữa các users)

2 (chỉ số mức độ tương đồng giữa các items)

max-iter (số vòng lặp tối đa cho thuật toán)

Output: Ma trận xấp xỉ 𝑅̂𝑚×𝑛

41

Thuật toán 1. Khởi tạo giá trị cho hai ma trận thành phần

𝑇

Begin:

- Phát sinh hai ma trận ngẫu nhiên 𝑈𝑚×𝑘 và 𝐼𝑘×𝑛

- Tính toán độ tương đồng của ma trận users 𝑆𝑈𝑚×𝑚 dựa trên công

thức (3-3)

- Tính toán độ tương đồng của ma trận items 𝑆𝐼𝑛×𝑛 dựa trên công

thức (3-4)

for each user u=1,..,m do

for each user v=1,..,m do

if similarity(u,v)> 1 do Uu =Uv end

end

end for each item i=1,..,n do

for each item j=1,..,n do

if similarity(i,j)> 2 do Ii =Ij end

end

end

42

Thuật toán 2. Cập nhật giá trị cho hai ma trận thành phần

Training: for iter=1,..,max-iter do

for each user u=1,..,m do

for each feature f=1,..,k do choose mini- batch of data update 𝑈𝑢𝑓 using equation (3-18) end

𝑇 using equation (3-19)

end for each item i=1,..,n do

for each feature f=1,..,k do choose mini- batch of data update 𝐼𝑓𝑖 end

end 𝑅̂ = 𝑈𝐼𝑇 if 𝑅̂ = 𝑅 then

break and return 𝑅̂ end

end return 𝑅̂ end

43

Tới đây, phương pháp lí thuyết đề xuất để nâng cao hiệu quả tư vấn cho

bài toán thừa số hóa ma trận không âm đã hoàn tất. Việc kiểm nghiệm hiệu quả

của phương pháp này bằng các kết quả cụ thể sẽ được trình bày ở phần 4.2.

Chương 4. KẾT QUẢ THỰC NGHIỆM

4.1. Qui trình thực nghiệm

Luận văn đã tiến hành các thí nghiệm để kiểm tra tính hiệu quả của phương

pháp được đề xuất cho CF về khả năng mở rộng và chất lượng tư vấn. Tiêu chí

lựa chọn để đánh giá thực nghiệm là độ chính xác, độ hội tụ và thời gian thực

thi chương trình. Luận văn sử dụng bộ dữ liệu phổ biến Movielens để đánh giá

hiệu quả của phương pháp được đề xuất. Các phần tiếp theo sẽ mô tả các tập

dữ liệu và kết quả thực hiện.

Kịch bản thực nghiệm phương pháp đề xuất sẽ gồm 2 phần. Đầu tiên là

yếu tố khởi tạo, bắt đầu từ việc điền hệ số cho hai ma trận tương đồng SU và

SI, thay đổi các hệ số 𝜎, 𝜑1 𝑣à 𝜑2 (biểu thức 3-3 và phần thuật toán 3.2.3) để

tìm ra những khoảng giá trị cho kết quả về độ chính xác và độ hội tụ tốt hơn.

Tiếp theo là yếu tố cập nhật, thay đổi các giá trị 𝛼, 𝛽, 𝛾 ở công thức cập nhật (3-

18), (3-19) để tìm ra những khoảng giá trị cho kết quả về độ hội tụ tốt hơn.

Các mô hình thử nghiệm bao gồm các phương pháp dựa trên NMF được

đề xuất và một số phương pháp tiếp cận khác. Phương pháp đề xuất đã được

thực nghiệm trên công cụ Python 2.6, hệ điều hành Microsoft Windows 64bit,

với CPU core i3-4150, lõi kép 3.5 GHz và RAM 4 GB. Các giá trị tham số của

44

phương pháp được đề xuất đã được thay đổi trong quá trình thử nghiệm để tìm

được giá trị tốt hơn.

4.1.1. Tập dữ liệu Dataset

Có một số loại bộ dữ liệu chuẩn cho hệ thống tư vấn. Luận văn đã tiến

hành các thí nghiệm với dữ liệu sử dụng trong thực tế trên tập dữ liệu

MovieLens [7]. GroupLens Research đã tập hợp và tạo ra một số bộ dữ liệu

đánh giá có sẵn từ trang web MovieLens. Tập dữ liệu này bao gồm 100.000

ratings (các ratings này là các số nguyên từ 1 đến 5) cho 1642 phim của 943

users, trong đó mỗi users đã đánh giá ít nhất 20 bộ phim.

4.1.2. Các thước đo đánh giá

 Độ chính xác

Có một số loại biện pháp để đánh giá hiệu quả của phương pháp tiếp cận

CF [37], [38]. Luận văn sử dụng hai chỉ số phổ biến, Mean Absolute Error

(MAE) và Root Mean Squared Error (RMSE) để đo lường đánh giá chất lượng

tư vấn về độ chính xác.

Chỉ số MAE được xác định là [8]:

𝑢,𝑖

1 |𝑅𝑡𝑒𝑠𝑡|

(4-1) 𝑀𝐴𝐸 = ∑ |𝑅𝑢𝑖 − 𝑅̂𝑢𝑖|

Trong đó 𝑅̂𝑢𝑖 biểu thị cho dự đoán xếp hạng của user u cho item i và Rtest

biểu thị số lượng ratings được làm thí nghiệm.

2

Chỉ số RMSE được xác định là [8]:

𝑢,𝑖

1 |𝑅𝑡𝑒𝑠𝑡|

(4-2) 𝑅𝑀𝑆𝐸 = √ ∑ (𝑅𝑢𝑖 − 𝑅̂𝑢𝑖)

45

Từ các định nghĩa [8], giá trị MAE hoặc RMSE nhỏ hơn có nghĩa là độ

chính xác tốt hơn.

 Độ hội tụ

Để đánh giá độ hội tụ (C) của thuật toán, ta dựa vào hàm chi phí (cost

function). Giá trị của hàm chi phí càng giảm đi nhiều sau mỗi lần lặp tức là độ

hội tụ của thuật toán càng lớn.

𝑒1−𝑒𝑛 𝑛

𝐶 =

Với: - 𝑒𝑛 là giá trị hàm chi phí tại vòng lặp thứ n

- n là số vòng lặp thực hiện

Nếu C mang giá trị lớn nghĩa là độ hộ tụ nhanh, ngược lại giá trị nhỏ là độ

hội tụ chậm. C mang giá trị âm, nghĩa là thuật toán không hội tụ.

 Thời gian thực thi thuật toán

So sánh thời gian thực thi của thuật toán đề xuất và một phương pháp khác

trong nhóm lọc cộng tác để đối chiếu xem thuật toán đề xuất có ưu/ nhược điểm

về thời gian như thế nào so với các thuật toán còn lại.

4.2. Kết quả thực nghiệm

Kết quả cho thấy hiệu suất cao nhất thu được bằng cách thiết lập các tham

số cho các giá trị như sau:

 𝜑1 = 𝜑2 = 0.1 và số vòng lặp tối đa là 30 (max-iter =30).

 𝜎 = 0.5

 𝛼 = 0.2, 𝛽 = 0.4, 𝛾 = 0.4

Các giá trị này được xác định theo kinh nghiệm trong quá trình tiến hành

các thí nghiệm sơ bộ nhưng tác giả không tuyên bố rằng đây là những giá trị

tối ưu.

46

4.2.1. Độ chính xác

Để thể hiện tính hiệu quả của phương pháp đề xuất được đề xuất, luận văn

so sánh kết quả dựa trên kết quả tư vấn của các phương pháp sau:

 Neighborhood-based Collaborative filtering: Đây là phương pháp lọc

cộng tác xác định mức độ quan tâm của một user tới một item dựa trên

các users khác gần giống với user này. Việc gần giống nhau giữa các users có

thể được xác định thông qua mức độ quan tâm của các users này tới

các items khác mà hệ thống đã biết. Ví dụ, A và B đều thích phim tình cảm Hàn

Quốc, nếu A thích phim “Trái tim mùa thu”, vậy nhiều khả năng B cũng thích

bộ phim này.

 MF: Đây là phương pháp thừa số hóa ma trận đã được trình bày ở phần

2.2.3

 NMF cơ bản: Đây là phương pháp thừa số hóa ma trận không âm đơn

giản nhất, bằng cách khởi tạo ngẫu nhiên hệ số cho hai ma trận thành phần ban

đầu, sau đó tính hàm chi phí bằng công thức bình phương khoảng cách Euclid

và sử dụng phương pháp Gradient Descent để huấn luyện cho thuật toán.

Phân tích chỉ số MAE và RMSE được thể hiện trong bảng 4.1. Nếu độ lệch

chuẩn (chỉ số RMSE) của phương pháp nào cao, tức là phương pháp đó có độ

chính xác kém hơn. Chúng ta thấy rằng phương pháp được đề xuất có được giá

trị MAE và RMSE thấp hơn so với các phương pháp còn lại.

Bảng 4.1. So sánh chỉ số MAE và RMSE của thuật toán đề xuất với một số

thuật toán khác.

Thuật toán MAE RMSE

Neighborhood-based [39] 0.799 1.018

MF [40] 0.841 1.05

NMF cơ bản 0.758 0.963

47

Phương pháp đề xuất 0.749 0.959

4.2.2. Độ hội tụ

Để minh họa đồ họa cho sự hội tụ của thuật toán được đề xuất, tác giả biểu

diễn số lần lặp (epochs) trên trục hoành và phép đo hàm chi phí (costfunction)

trên trục tung. Điều này sẽ minh họa quá trình hội tụ của thuật toán được đề

xuất khi số lần lặp tăng lên. Hình 4.1 thể hiện các chỉ số của hàm chi phí trên

tập dữ liệu MovieLens khi thay đổi số lần lặp bởi phương pháp đề xuất và một

số phương pháp khác. Đồ thị cho thấy, nhờ khởi tạo có lợi, giá trị ban đầu của

hàm chi phí của phương pháp đề xuất thấp hơn phương pháp MF thông thường.

Đồ thị Hình 4.1 còn chỉ ra độ hội tụ của phương pháp đề xuất (Combine) trội

hơn phương pháp MF và số vòng lặp sử dụng trong quá trình huấn luyện để đạt

được tới cực tiểu của phương pháp đề xuất (15 vòng lặp) chỉ bằng một nửa so

với phương pháp MF (30 vòng lặp). Ngoài ra, đồ thị cũng so sánh phương pháp

đề xuất với các phương pháp thông thường khác như Euclid, Itakura-Saito,

Kullback-Leibler.

48

Hình 4.1. Minh họa độ hội tụ của phương pháp đề xuất và một số phương pháp khác

4.2.3. Thời gian thực thi

Trong quá trình thử nghiệm, luận văn cũng cân nhắc tới thời gian thực

thi chương trình. Kết quả cho thấy thời gian thực thi của phương pháp đề xuất

có tương đối cao hơn một số phương pháp khác, đặc biệt so với phương pháp

NMF cơ bản (Bảng 4-2). Tuy nhiên, thời gian thực thi chương trình vẫn không

quá lớn và chấp nhận được trong điều kiện thực tế. Sở dĩ phương pháp đề xuất

có thời gian thực thi chương trình cao hơn NMF cơ bản cũng là điều dễ hiểu,

bởi vì trong giai đoạn khởi tạo, phương pháp NMF cơ bản chỉ cần khởi tạo các

giá trị ngẫu nhiên không âm cho hai ma trận U, I còn phương pháp đề xuất mất

một khoảng thời gian tính độ tương đồng giữa các users, items để làm cơ sở

49

điền các giá trị cho hai ma trận thành phần U, I ban đầu. Việc tính toán này làm

ảnh hưởng tới thời gian thực thi toàn chương trình.

Bảng 4.2. Bảng so sánh thời gian thực thi của một số thuật toán khác nhau

Thuật toán Thời gian (s)

Neighborhood-based 12s

68s MF

NMF cơ bản 15s

Phương pháp đề xuất 31s

50

Chương 5. TỔNG KẾT

5.1. Kết quả đạt được

5.1.1. Về mặt lý thuyết

 Tiến hành nghiên cứu những công trình nghiên cứu có liên quan đến

phương pháp thừa số hóa ma trận.

 Tìm hiểu hiện trạng về các hệ thống tư vấn, phân tích ưu và khuyết điểm

của những phương pháp được áp dụng phổ biến.

 Tìm hiểu về các phương pháp thừa số hóa ma trận cùng với các thuật

toán tư vấn: Phương pháp lân cận gần nhất, các mô hình thống kê, MF, NMF,

 Nghiên cứu các thuật toán của Machine learning.

 Luận văn đã đề xuất một độ đo PJ và cách tính hàm chi phí FKI mới

trong việc khai thác hiệu quả của bài toán thừa số hóa ma trận không âm trong

hệ thống tư vấn. Ý tưởng của cách tiếp cận đề xuất trong luận văn là tác động

vào quá trình khởi tạo cho hai ma trận thành phần ban đầu và xây dựng một

công thức cập nhật giúp tối ưu hóa quá trình lặp để bài toán hội tụ nhanh hơn.

Để hiện thực ý tưởng của cách tiếp cận nêu trên, luận văn có sử dụng một

số kiến thức về toán như thừa số hóa ma trận, đạo hàm riêng của hàm đa biến,

các thuật giải tối ưu hóa vòng lặp của machine learning cùng một số độ đo cần

thiết để tích hợp cho bài toán của mình. Trên cơ sở đó, luận văn đã kết hợp linh

hoạt đề xuất thuật toán riêng dựa trên cơ sở là phương pháp NMF cơ bản cùng

với việc đánh hệ số cho ma trận khởi tạo dựa trên công thức PJ tính mức độ

tương đồng giữa các users và các items với nhau, thay vì chỉ đơn thuần khởi

tạo cho hai ma trận thành phần ban đầu một cách ngẫu nhiên như những nghiên

cứu trước vẫn thường làm. Đặc biệt, trong quá trình tối ưu hóa hàm lỗi bằng

quá trình lặp cho thuật toán, luận văn cũng đề xuất một công thức cập nhật FKI,

51

được kết hợp bởi độ đo bình phương khoảng cách Euclid, độ phân kì Kullback-

Leibler và độ phân kì Itakura-Saito.

5.1.2. Về mặt thực nghiệm

Luận văn đã sử dụng bộ dữ liệu mẫu MovieLens cho phương án cải tiến

đề xuất cùng với các thuật toán khác để đối chiếu kết quả. Kết quả thực nghiệm

cho thấy việc kết hợp phương pháp đánh hệ số ban đầu cho ma trận khởi tạo và

xây dựng luật cập nhật cho hai ma trận thành phần trong quá trình thực hiện

bước lặp sẽ mang lại kết quả tốt hơn việc sử dụng phương pháp thừa số hóa ma

trận cơ bản, tức là đánh hệ số ngẫu nhiên cho hai ma trận khởi tạo và dùng công

thức cập nhật ma trận thành phần chỉ dùng một độ đo duy nhất, ví dụ như bình

phương khoảng cách Euclid. Ngoài ra, việc lựa chọn các phương pháp tối ưu

hóa trong machine learning cũng sẽ ảnh hưởng đến kết quả hội tụ của thuật

toán.

Luận văn cũng đã phân tích ưu và khuyết điểm của thuật toán đề xuất

nhằm giúp định hướng cho việc lựa chọn áp dụng các thuật toán này sao cho

đạt hiệu quả cao nhất. Ưu điểm của thuật toán đề xuất cho ra kết quả có độ

chính xác cao hơn một số thuật toán theo hướng thừa số hóa ma trận. Thuật

toán hiệu quả khi kích thước ma trận đánh giá đủ lớn, khi đó các thuật toán

khác sẽ gặp vấn đề về tốc độ xử lí, nhưng đối với phương pháp thừa số hóa ma

trận, số chiều dữ liệu được giảm đáng kể khiến cho thuật toán chiếm ưu thế lớn

so với các phương pháp không sử dụng thừa số hóa ma trận khác. Ngoài ra,

việc khởi tạo có lợi ban đầu cho hai ma trận thành phần cùng với việc sử dụng

công thức cập nhật lai hóa và stochastic gradient descent khiến thuật toán hội

tụ nhanh hơn.

52

5.2. Ưu và nhược điểm của phương pháp đề xuất

Từ kết quả phân tích ở phần 4.2. Ta nhận thấy ưu và nhược điểm của

phương pháp đề xuất như sau:

Về ưu điểm: Nhờ việc khởi tạo có lợi cho hai ma trận ban đầu U và I, cùng

với việc kết hợp tuyến tính các hàm chi phí Frobenius-norm, Kullback-Leibler

và Itakura-Saito để cho ra hàm chi phí và công thức cập nhật cho hai ma trận

U, I ta dễ dàng nhận thấy phương pháp đề xuất có độ chính xác và độ hội tụ tốt

hơn phương pháp thừa số hóa ma trận thông thường.

Về nhược điểm: Do việc khởi tạo ban đầu của phương pháp đề xuất đòi

hỏi thời gian tính toán hai ma trận tương đồng của users và items dẫn đến thời

gian tổng thể của phương pháp đề xuất lâu hơn các phương pháp thừa số hóa

ma trận không âm thông thường. Nguyên do vì các phương pháp thừa số hóa

ma trận không âm thông thường gần như không tốn thời gian cho việc khởi tạo

nhờ phát sinh ngẫu nhiên các hệ số cho hai ma trận ban đầu U và I.

5.3. Hướng mở rộng trong tương lai

Trong tương lai, luận văn dự kiến sẽ tiếp tục nghiên cứu một số hướng

phát triển chính như sau:

 Nghiên cứu thêm những phương pháp và những độ đo khác có thể được

sử dụng để tính toán mức độ tương đồng giữa các users và các items để tìm

cách khởi tạo có lợi hơn cho hai ma trận thành phần ban đầu.

 Việc tìm được tối ưu hóa toàn cục cho bài toán thừa số hóa ma trận là

một vấn đề còn thách thức ở giai đoạn hiện nay, luận văn dự kiến sẽ khai thác

một số thế mạnh của toán học như là một công cụ hỗ trợ để áp dụng cải thiện

chất lượng tư vấn theo hướng thừa số hóa ma trận không âm và đưa ra lời giải

tối ưu hóa toàn cục.

53

Nghiên cứu thử nghiệm mở rộng thuật toán được đề xuất kết hợp với 

các phương pháp khác như SVD và các phương pháp về xác suất như

Probabilistic-Matrix-Factorization.



54

TÀI LIỆU THAM KHẢO

[1] D. Jannach, M. Zanker, A. Felfernig, and G. Friedrich, Recommender System An Introduction, New York: Cambridge University Press, 2011.

[2] J. Bobadilla, F. Ortega, A. Hernando, and A. Gutiérrez, "Recommender

systems survey," Elsevier, vol. 46, pp. 109-132, 2013.

[3] M. Pazzani, "A framework for collaborative, content-based, and demographic," Artificial Intelligence Review, no. Special Issue on Data Mining on the internet, pp. 393-408, 1999.

[4] Y. Koren, R. Bell, and C. Volinsky, "Matrix factorization techniques for

Recommender systems," Computer, vol. 42(8), pp. 30-37, 2009.

[5] B. Kumar, "A novel latent factor model for recommender system," Journal of Information System and Technology Management, vol. 13, 2016.

https://arxiv.org/pdf/1711.10816.pdf, Last

[6] A. Datta, S. Kovaleva, P. Mardziel, and S. Sen, "Latent Factor Interpretations for Collaborative Filtering," arXiv, 2018. [Online]. Available: updated 30/09/2018.

[7] "Grouplens," [Online]. Available:

https://grouplens.org/datasets/movielens/, Last updated 30/09/2018.

[8] F. Ricci, L. Rokach, and B. Shapira, Recommender Systems Handbook,

Springer, 2011.

[9] M. J. Pazzani, and D. Billsus, "Content-based Recommendation

Systems," LNCS, vol. 4321, 2007.

[10] C. C. Aggawal, "Content-based Recommender Systems,"

in Recommender Systems Textbook, Switzerland, Springer International Publishing, pp. 139-166, 2016.

[11] J. B. Schafer, D. Frankowski, J. Herlocker, and S. Sen, "Collaborative

Filtering Recommender Systems," LNCS, vol. 4321, 2007.

55

[12] J. L. Herlocker, J. A. Konstan, L. G. Terveen, and J. Riedl, " Evaluating collaborative filtering recommender systems," ACM Transaction on Information Systems, vol. 22(1), 2004.

[13] C. C. Aggawal, "Neighborhood-Based Collaborative Filtering," in Recommender Systems Textbook, Switzerland, Springer International Publishing, pp. 29-70, 2016.

[14] C. C. Aggawal, "Model-Based Collaborative Filtering," in Recommender Systems Textbook, Switzerland, Springer International Publishing, pp. 71- 138, 2016.

[15] T. Hofmann, "Latent semantic analysis for collaborative filtering," ACM

Transactions on Information Systems, vol. 1, pp. 89- 115, 2004.

[16] C. L. Zitnick, and T. Kanade, " Maximum entropy for collaborative filtering," in Proceedings of the 20th conference on Uncertainty in artificial intelligence, Arlington, Virginia, USA, 2004.

[17] D. M. Blei, A. Y. Ng, and M. I. Jordan, "Latent dirichlet allocation,"

Journal of Machine Learning Research, vol. 3, 2003.

[18] J. S. Breese, D. Heckerman, and C. Kadie, " Empirical Analysis of Predictive Algorithms for Collaborative Filtering," in Proceedings of the 14th Conference on Uncertainty In Artificial Intelligence (UAI’98), Wisconsin, USA, 1998.

[19] M. H. Aghdam, M. Analoui, and P. Kabiri, "A Novel Non-Negative Matrix Factorization Method for Recommender Systems," Natural Science Publishing Journal, Applied Mathematics& Information Sciences, vol. 9, 2015.

[20] M. Aleksandrova, A. Brun, A. Boyer, and O. Chertov, "Identifying representative users in matrix factorization-based recommender systems: application to solving the content-less new item cold-start problem," Journal of Intelligent Information Systems, vol. 48, no. 2, pp. 365-397, 2017.

[21] P. Perry, "Fast Moment-Based Estimation for Hierarchical Models," in

JRSS-B, 2016.

56

[22] K. Gao, and A. Owen, "Efficient Moment Calculations for Variance Components in Large Unbalanced Crossed Random Effects Models," technical report, 2016.

[23] D. D. Lee, and H. S. Seung , "Learning the parts of objects by non- negative matrix factorization," Nature, vol. 401, pp. 788-791, 1999.

[24] C. Cichocki, and A. Phan, "Fast local algorithms for large scale

nonnegative matrix and tensor factorizations," 2009.

[25] C. Févotte, N. Bertin, and J. L. Durrieu, "Nonnegative Matrix Factorization with the Itakura-Saito Divergence: With Application to Music Analysis," Neural Computation, vol. 21 (3), p. 793–830, 2009.

[26] C. Fevotte, and J. Idier, "Algorithms for nonnegative matrix factorization

with beta-divergence," Neural Computation, 2011.

[27] D. D. Lee, and H. S. Seung, "Algorithms for Non-negative Matrix

Factorization," NIPS, 2001.

[28] L. Gong, and A. K. Nandi, "An enhanced initialization method for non- negative matrix factorization," IEEE international workshop on machine learning for signal processing, pp. 22-25, 2013.

[29] M. H. Aghdam, M. Analoui, and P. Kabiri, "Collaborative filtering using non-negative matrix factorisation," Journal of Information Science, pp. 1- 13, 2016.

for Collaborative Filtering

[30] Suryakant, and T. Mahara, "A New Similarity Measure Based on Mean Measure of Divergence in Sparse Environment," Procedia Computer Science , vol. 89, pp. 450-456, 2016.

[31] A. Agarwal, and M. Chauhan, "Similarity Measures used

in Recommender Systems: A Study," International Journal of Engineering Technology Science and Research (IJETSR), vol. 4, no. 6, pp. 619-626, 2017.

[32] A. Banerjee, S. Merugu, I. S. Dhillon, and J. Ghosh, "Clustering with Bregman Divergences," Journal of Machine Learning Research , vol. 6, p. 1705–1749, 2005.

57

[33] Bottou, and Léon, Online Algorithms and Stochastic Approximations,

Cambridge University Press, 1998.

[34] J. J. Burred, 2014. [Online]. Available:

"J.J. Burred," www.jjburred.com/research/pdf/jjburred_nmf_updates.pdf (jjburred@jjburred.com), Last updated 30/09/2018.

[35] A. Koso, and N. Takahashi, "Derivation of Multiplicative Update Rules for Nonnegative Matrix Factorization with Regularization Terms," in International Symposium on Nonlinear Theory and Its Applications, Cancun, Mexico, 2017.

[36] D.J.Evans, and E.A.Lipitakis, "A normalized implicit conjugate gradient method for the solution of large sparse systems of linear equations," Computer Methods in Applied Mechanics and Engineering, vol. 23, no. 1, pp. 1-19, 1980.

[37] B. Sarwar, G. Karypis, J. Konstan, and J. Riedl, "Item-based collaborative filtering recommendation algorithms," in Proceedings of the 10th international conference on World Wide Web, New York, NY, USA, 2001.

[38] F. H. Olmo, and E. Gaudioso, "Evaluation of recommender systems: A new approach," Expert Systems with Applications, vol. 3, pp. 790-804 , 2008.

[39] V. H. Tiep, "Machine Learning cơ bản," [Online]. Available: https://machinelearningcoban.com/2017/05/24/collaborativefiltering/, Last updated 30/09/2018.

[40] V. H. Tiep, "Machine Learning cơ bản," [Online]. Available: https://machinelearningcoban.com/2017/05/31/matrixfactorization/, Last updated 30/09/2018.

[41] J. S. Breese, D. Heckerman, and C. Kadie, "Empirical analysis of predictive algorithms for collaborative filtering," in 14th Conference on Uncertainty in Artificial Intelligence, 1998.

58

[42] J. L. Herlocker, J. A. Konstan, J. T. Riedl, and L. G. Terveen, "Evaluating collaborative filtering recommender systems," ACM Transactions on Information Systems, vol. 22, pp. 5-53, 2004.