1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Tìm hiểu và xây dựng mô hình Đề xuất phim xem bằng mô hình singular value decomposition

52 1 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Tìm Hiểu Và Xây Dựng Mô Hình Đề Xuất Phim Xem Bằng Mô Hình Singular Value Decomposition
Tác giả Nguyễn Phúc Hiệp
Người hướng dẫn ThS. Mai Hà Thi
Trường học Trường Đại Học Sư Phạm, Đại Học Đà Nẵng
Chuyên ngành Khoa Toán Tin
Thể loại Báo Cáo Khóa Luận Tốt Nghiệp
Năm xuất bản 2025
Thành phố Đà Nẵng
Định dạng
Số trang 52
Dung lượng 2,26 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Hình 1.3 Utility matrix Tập hợp tất cả các rating tạo thành một ma trận tiện ích utility matrix, trong đó mỗi hàng tương ứng với một bộ phim, mỗi cột tương ứng với một người dùng, mỗi ô

Trang 1

TRƯỜNG ĐẠI HỌC SƯ PHẠM

KHOA TOÁN TIN

-o0o -

BÁO CÁO KHÓA LUẬN TỐT NGHIỆP

ĐỀ TÀI TÌM HIỂU VÀ XÂY DỰNG MÔ HÌNH

ĐỀ XUẤT PHIM XEM BẰNG MÔ HÌNH SINGULAR VALUE DECOMPOSITION

SVTH: Nguyễn Phúc Hiệp – 21CNTT2

GVHD: ThS Mai Hà Thi

Đà Nẵng, 5 – 2025

Trang 2

NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN

Đà Nẵng, ngày … tháng … năm 2025

Giảng viên hướng dẫn

ThS Mai Hà Thi

Trang 3

NHẬN XÉT CỦA HỘI ĐỒNG CHẤM THI

Đà Nẵng, ngày … tháng … năm 2025

Hội đồng chấm thi

Trang 4

LỜI CÁM ƠN

Trong suốt quá trình thực hiện đề tài khóa luận tốt nghiệp, em đã nhận được rất nhiều sự hỗ trợ và động viên quý báu từ các thầy cô và người thân Nhân dịp này, em xin được bày tỏ lòng biết ơn chân thành đến tất cả những ai đã đồng hành cùng em trong suốt chặng đường vừa qua

Trước hết, em xin gửi lời cảm ơn sâu sắc đến giảng viên hướng dẫn ThS Mai Hà Thi – người đã tận tình chỉ dẫn, định hướng và hỗ trợ em trong suốt quá trình thực hiện

đề tài “Tìm hiểu và xây dựng mô hình đề xuất phim xem bằng mô hình Singular Value Decomposition” Sự kiên nhẫn, nhiệt huyết và chuyên môn vững vàng của cô là nguồn động lực lớn để em hoàn thành khóa luận này

Em cũng xin gửi lời tri ân đến toàn thể quý thầy cô trong Khoa, những người đã truyền đạt kiến thức, truyền cảm hứng và tạo điều kiện thuận lợi để em học tập và phát triển bản thân trong suốt thời gian học tại trường

Cuối cùng, em xin cảm ơn gia đình và bạn bè – những người luôn bên cạnh, động viên và tiếp thêm tinh thần cho em trong những lúc khó khăn

Một lần nữa, em xin chân thành cảm ơn tất cả!

Trang 5

LỜI CAM ĐOAN

Tôi xin cam đoan rằng toàn bộ nội dung trong báo cáo khóa luận tốt nghiệp này là kết quả của quá trình học tập, nghiên cứu và thực hiện nghiêm túc của bản thân, dưới sự hướng dẫn tận tình của giảng viên ThS Mai Hà Thi

Trong suốt quá trình thực hiện đề tài, tôi luôn tuân thủ đầy đủ các quy định về học thuật, đạo đức nghiên cứu và quy chế đào tạo của Nhà trường Báo cáo này không sao chép hay sử dụng bất kỳ nội dung nào từ các nguồn tài liệu khác mà không trích dẫn rõ ràng Tất cả số liệu, phân tích, đánh giá và kết luận được trình bày trong báo cáo đều do tôi tự thực hiện một cách trung thực, có cơ sở và minh bạch

Nếu có bất kỳ hành vi gian lận, đạo văn, hoặc vi phạm quy định nào bị phát hiện trong báo cáo này, tôi xin hoàn toàn chịu trách nhiệm trước Hội đồng Khoa, Nhà trường

và các cơ quan có thẩm quyền theo đúng quy định hiện hành

Đà Nẵng, Ngày … tháng … năm 2025

Sinh viên thực hiện

Nguyễn Phúc Hiệp

Trang 6

MỤC LỤC

LỜI CÁM ƠN 4

LỜI CAM ĐOAN 5

MỤC LỤC 6

MỞ ĐẦU 8

CHƯƠNG 1.TỔNG QUAN HỆ THỐNG ĐỀ XUẤT 13

1.1 GIỚI THIỆU HỆ THỐNG GỢI Ý (RECOMMENDER SYSTEM) 13

1.2 Utility matrix 14

1.2.1 Giới thiệu Utility matrix 14

1.2.2 Xây dựng Utility Matrix 15

1.3 CÁC PHƯƠNG PHÁP CỔ ĐIỂN VÀ TIÊN TIẾN 16

1.3.1 Content-based Filtering 16

1.3.2 Collaborative Filtering 20

1.4 TẠI SAO CHỌN SINGULAR VALUE DECOMPOSITION 30

1.4.1 Khả năng khám phá cấu trúc tiềm ẩn trong dữ liệu người dùng 30

1.4.2 Hiệu suất và độ chính xác vượt trội 31

CHƯƠNG 2.CƠ SỞ LÝ THUYẾT 33

2.1 GIỚI THIỆU VỀ SINGULAR VALUE DECOMPOSITION 33

2.2 ĐẠI SỐ TUYẾN TÍNH 34

2.2.1 Trị riêng và vector riêng của ma trận 34

2.2.2 Hệ trực giao và trực chuẩn 34

2.2.3 Một vài tính chất của ma trận trực giao 35

2.2.4 Ma trận con từ ma trận trực giao 36

2.3 LÝ THUYẾT SINGULAR VALUE DECOMPOSITION (SVD) 36

2.3.1 Phát biểu SVD 36

Trang 7

2.3.2 Nguồn gốc tên gọi Singular Value Decomposition 37

2.3.3 Cắt hạ (truncated SVD) 38

2.4 ỨNG DỤNG SVD TRONG BÀI TOÁN GỢI Ý PHIM 38

2.4.1 Ánh xạ người dùng và phim vào không gian tiềm ẩn 38

2.4.2 Trích xuất vector người dùng từ lịch sử xem phim 39

CHƯƠNG 3.THỰC NGHIỆM VÀ ĐÁNH GIÁ 41

3.1 MÔ TẢ DỮ LIỆU SỬ DỤNG 41

3.2 THỰC NGHIỆM 42

3.2.1 Môi trường và Kịch bản thực nghiệm 42

3.2.2 Thực nghiệm 1 44

3.2.3 Thực nghiệm 2 46

3.3 ĐÁNH GIÁ KẾT QUẢ THỰC NGHIỆM 48

3.3.1 Đánh giá kết quả thực nghiệm 1 48

3.3.2 Đánh giá kết quả thực nghiệm 2 49

3.3.3 So sánh & Điểm rút ra chung 50

KẾT LUẬN 51

TÀI LIỆU THAM KHẢO 52

Trang 8

DANH SÁCH HÌNH ẢNH

Hình 1.1 Content-based Filtering 13

Hình 1.2 Collaborative Filtering 14

Hình 1.3 Utility matrix 15

Hình 1.4 Gán vector đặc trưng 17

Hình 1.5 Ví dụ về utility matrix dựa trên số sao một user rate cho một item 21

Hình 1.6 Ví dụ mô tả User-user Collaborative Filtering 23

Hình 1.7 Ví dụ mô tả Item-Item Collaborative Filtering 26

Hình 1.8 Matrix Factorization 28

Hình 2.9 SVD cho ma trận A khi: m<n (hình trên), và m>n (hình dưới) 37

Hình 3.10 Thống kê rating trên bộ dữ liệu đầu vào 42

Trang 9

DANH SÁCH BẢNG BIỂU

Bảng 3.1 Bảng dữ liệu rating 41

Bảng 3.2 Bảng dữ liệu movies 41

Bảng 3.3 Bảng input thực nghiệm 1 45

Bảng 3.4 Bảng output thực nghiệm 1 46

Bảng 3.5 Bảng input thực nghiệm 2 47

Bảng 3.6 Bảng output thực nghiệm 2 48

Bảng 3.7 Bảng precision thực nghiệm 1 48

Bảng 3.8 Bảng precision thực nghiệm 2 49

Trang 10

MỞ ĐẦU

Trong bối cảnh thị trường giải trí trực tuyến bùng nổ và người dùng ngày càng đòi hỏi những trải nghiệm cá nhân hóa sâu sắc, việc xây dựng một hệ thống gợi ý phim chính xác không chỉ giúp nâng cao sự hài lòng mà còn tối ưu hóa thời gian khám phá nội dung Khóa luận này tập trung vào việc tìm hiểu và triển khai mô hình Singular Value Decomposition (SVD) – một trong những phương pháp phân rã ma trận mạnh

mẽ nhất trong collaborative filtering

Trên cơ sở đó, phần “Mở đầu” sẽ trình bày tổng quan về:

1 Lý do chọn đề tài

Trong bối cảnh thị trường giải trí trực tuyến (OTT) đang phát triển bùng nổ, lượng nội dung phim ảnh được sản xuất và phát hành mỗi năm tăng lên theo cấp số nhân Mỗi nền tảng từ Netflix, Disney+ đến YouTube Premium hiện có hàng nghìn tựa phim, phim bộ và show giải trí, dẫn đến “nạn bội thực nội dung” cho người xem Thực trạng này đặt ra hàng loạt thách thức như: người dùng dễ bị choáng ngợp trước kho phim khổng lồ, mất nhiều thời gian để tìm ra những bộ phim thực sự phù hợp với sở thích, nếu đề xuất không chính xác, nền tảng sẽ mất điểm với khán giả, dẫn đến giảm thời gian xem và nguy cơ huỷ đăng ký Sở thích của người xem thay đổi theo thời gian, theo tâm trạng, theo xu hướng xã hội; một hệ thống cũ, chỉ dựa trên các thuật toán đơn giản khó thích ứng kịp với sự biến động này

Chính vì vậy, việc nghiên cứu một phương pháp gợi ý mạnh mẽ, hiệu quả và dễ mở rộng trở thành nhu cầu cấp thiết Singular Value Decomposition (SVD) nổi lên như một trong những kỹ thuật phân rã ma trận tối ưu nhất trong collaborative filtering nhờ khả năng: giảm chiều dữ liệu, khám phá các yếu tố ẩn (latent factors - các singular vector phản ánh sở thích về thể loại, đạo diễn, v.v ) mà không cần metadata thủ công Với những ưu điểm trên, SVD không chỉ đáp ứng tốt các thách thức hiện tại của hệ thống gợi ý phim trên nền tảng OTT, mà còn mở ra hướng đi mới cho việc cá nhân hoá sâu sắc và nâng cao trải nghiệm người dùng Đây chính là động lực mạnh mẽ để chúng tôi chọn đề tài “Tìm hiểu và xây dựng mô hình đề xuất phim xem bằng mô hình Singular Value Decomposition” nhằm kết hợp lý thuyết toán học, thực hành lập trình và ứng dụng thực tế một cách hoàn chỉnh

2 Tính cấp thiết và ý nghĩa của đề tài

Trong bối cảnh cạnh tranh khốc liệt giữa các nền tảng OTT và sự bội thực nội dung, việc xây dựng một hệ thống gợi ý phim không chỉ đúng chủ đề mà còn kịp thời, chính xác là nhu cầu sống còn Phần này phân tích hai khía cạnh quan trọng: nhu cầu cá nhân hóa và cải thiện độ chính xác, cũng như đóng góp đặc thù của SVD vào hiệu suất và khả năng mở rộng

Trang 11

Cá nhân hóa - mỗi khán giả có sở thích riêng biệt: thể loại, phong cách đạo diễn, năm sản xuất, diễn viên, Cá nhân hóa cao giúp tăng tương tác, nâng cao thời gian xem và giảm tỷ lệ người dùng rời bỏ

Cải thiện độ chính xác trong gợi ý - các thuật toán đơn giản như User-Based CF dễ

bị ảnh hưởng bởi độ thưa của ma trận rating, dẫn đến gợi ý dư thừa hoặc thiếu chủ đề quan trọng Độ chính xác cao không chỉ làm người xem hài lòng hơn mà còn tăng khả năng khám phá nội dung mới, mở rộng thị hiếu của họ

Khả năng mở rộng linh hoạt: SVD dễ dàng tích hợp với các biến thể như Biased SVD, SVD++ để tận dụng cả explicit và implicit feedback Dễ triển khai trên kiến trúc phân tán (Hadoop, Spark) hoặc GPU, đáp ứng nhu cầu xử lý dữ liệu khổng lồ của các OTT

Tăng cường chất lượng đề xuất: Phân rã ma trận giúp tự động khám phá latent factors – những yếu tố tiềm ẩn không thể hiện trực tiếp trong metadata – nhờ đó gợi ý vừa chính xác vừa phong phú Khi kết hợp với kỹ thuật regularization, mô hình SVD

có khả năng kháng nhiễu tốt, giảm over-fitting cho cả user ít rating và phim ít rating

3 Mục tiêu nghiên cứu

Để giải quyết các thách thức trong hệ thống gợi ý phim và tận dụng sức mạnh của phân rã ma trận SVD, đề tài đặt ra 4 mục tiêu chính sau:

- Triển khai phương pháp truncated SVD bằng thư viện sklearn.decomposition,

xử lý ma trận user-item thưa với hàng chục nghìn users và movies từ bộ dữ liệu MovieLens [1] trên Kaggle

- Thử nghiệm với nhiều giá trị latent factors k khác nhau (k= 20, 50, 100, 150, 200) để tìm điểm cân bằng giữa độ chính xác (cosine similarity cao) và hiệu năng tính toán

- Áp dụng regularization và chuẩn hoá dữ liệu (center hóa theo user hoặc item) để giảm thiểu nhiễu và tránh over-fitting

- Đánh giá precision dựa trên genre trùng nhau giữa phim 1 người dùng đã xem

và phim đề xuất cho người dùng đó

4 Đối tượng, phạm vi và phương pháp nghiên cứu

- Đối tượng: Thuật toán phân rã ma trận SVD và bộ data rating của người dùng

- Phạm vi: Chỉ triển khai SVD thuần túy (truncated SVD), không mở rộng sang SVD++ hay các mô hình DL

- Phương pháp:

o Tiền xử lý dữ liệu bằng pandas

o Xây dựng và huấn luyện mô hình SVD với thư viện Sklearn/Scipy

o Đánh giá bằng Precision (genre@K)

Trang 12

5 Cấu trúc báo cáo

Chương 1 - Tổng quan hệ thống đề xuất

Chương 2 - Cơ sở lý thuyết

Chương 3 - Thực nghiệm và đánh giá

Trang 13

CHƯƠNG 1 TỔNG QUAN HỆ THỐNG ĐỀ XUẤT

Trong chương này, ta sẽ định nghĩa khái niệm hệ thống gợi ý, phân tích các phương pháp hiện có, và chỉ ra lý do chọn Singular Value Decomposition (SVD) làm trọng tâm nghiên cứu

1.1 GIỚI THIỆU HỆ THỐNG GỢI Ý (RECOMMENDER SYSTEM)

Trong kỷ nguyên số, khi khán giả đứng trước “biển” nội dung khổng lồ trên các nền tảng OTT như Netflix, Disney+, Amazon Prime Video…, việc tìm ra đúng phim mình yêu thích trở thành bài toán khó khăn không kém việc lựa chọn sách trong thư viện đồ

sộ Hệ thống gợi ý (Recommender System – RS) ra đời nhằm giải quyết thách thức này, tự động phân tích lịch sử tương tác và sở thích của người dùng để đề xuất những nội dung phù hợp nhất, giảm thiểu tình trạng “bội thực thông tin” và mang lại trải nghiệm cá nhân hóa sâu sắc

Các hệ thống gợi ý (Recommendation Systems) trong thường được chia thành hai nhóm lớn [8]:

Hình 1.1 Content-based Filtering

- Content-based Filtering: Dựa vào đặc trưng nội dung của các bộ phim để đưa ra

đề xuất Ví dụ, nếu một người dùng thường xuyên xem các bộ phim thuộc thể loại hình sự như Hồ sơ cá sấu, Mê cung, thì hệ thống sẽ ưu tiên đề xuất những bộ phim

có cùng thể loại, chẳng hạn như Người phán xử Phương pháp này yêu cầu phải mô

tả rõ các đặc điểm của từng bộ phim (thể loại, đạo diễn, diễn viên, từ khóa nội dung ) và xây dựng hồ sơ sở thích của người dùng dựa trên những đặc điểm đó Tuy nhiên, việc gán nhãn hoặc trích xuất đặc trưng cho từng phim có thể không khả thi nếu dữ liệu không đầy đủ hoặc phim không dễ phân loại

Trang 14

rỡ trong khi A chưa xem phim này, thì hệ thống có thể suy luận rằng A cũng có khả năng sẽ thích Tháng năm rực rỡ, từ đó đưa ra gợi ý Phương pháp này hoạt động tốt khi có dữ liệu tương tác đủ lớn giữa người dùng và các bộ phim

1.2 UTILITY MATRIX

1.2.1 Giới thiệu Utility matrix

Trong các hệ thống gợi ý phim (Recommendation Systems), tồn tại hai thực thể chính: người dùng (users) và phim (items) Mỗi người dùng có mức độ yêu thích khác nhau đối với từng bộ phim Nếu mức độ yêu thích này đã được biết, ta có thể biểu diễn

nó dưới dạng rating – tức là điểm mà người dùng chấm cho bộ phim, thường theo thang

từ 0 đến 5

Trang 15

Hình 1.3 Utility matrix Tập hợp tất cả các rating tạo thành một ma trận tiện ích (utility matrix), trong đó mỗi hàng tương ứng với một bộ phim, mỗi cột tương ứng với một người dùng, mỗi ô trong ma trận thể hiện mức độ yêu thích (rating) của một người dùng đối với một bộ phim

Các ô trống là các giá trị chưa biết – tức là người dùng đó chưa đánh giá phim Nhiệm vụ cốt lõi của hệ thống gợi ý là dự đoán các giá trị còn thiếu này để từ đó đề xuất phim phù hợp Vì vậy, bài toán gợi ý còn được gọi là Matrix Completion (hoàn thiện ma trận)

Tuy nhiên, trong thực tế, số lượng người dùng và phim là cực kỳ lớn, và hầu hết người dùng chỉ đánh giá một lượng phim rất nhỏ Điều này khiến ma trận tiện ích trở nên rất thưa (sparse matrix) – phần lớn là các ô trống Đây là thách thức lớn trong bài toán xây dựng hệ thống gợi ý

1.2.2 Xây dựng Utility Matrix

Không có Utility matrix, gần như không thể gợi ý được bộ phim phù hợp cho người dùng, ngoài cách luôn luôn gợi ý các bộ phim phổ biến nhất Vì vậy, trong các Recommender Systems cho nền tảng xem phim, việc xây dựng Utility Matrix là tối quan trọng Tuy nhiên, quá trình xây dựng ma trận này thường gặp nhiều khó khăn Có hai hướng tiếp cận phổ biến để xác định giá trị rating cho mỗi cặp user-movie trong Utility Matrix:

- Nhờ người dùng đánh giá bộ phim: các nền tảng như Netflix hoặc FPT Play thường hỏi người dùng đánh giá bộ phim sau khi xem xong thông qua các biểu mẫu hoặc nút “like/dislike” Rất nhiều hệ thống gợi ý cũng áp dụng phương pháp này Tuy nhiên, cách tiếp cận này có một vài hạn chế, bởi vì thường thì người dùng rất

ít khi chủ động đánh giá Và nếu có, đó có thể là những đánh giá thiên lệch – đến

từ những người dùng cực đoan (quá thích hoặc quá ghét bộ phim)

- Dựa trên hành vi xem phim của người dùng: Rõ ràng, nếu một người dùng chủ động xem một bộ phim trên Netflix, hoặc thậm chí xem lại nhiều lần, thì ta có thể

Trang 16

giả định rằng họ thích bộ phim đó YouTube cũng áp dụng tương tự: hệ thống gợi

ý các video dựa trên video bạn đã xem, đã thích hoặc đã tìm kiếm Tương tự, nếu một người dùng thường xuyên tìm và xem phim hành động, hệ thống sẽ ưu tiên gợi

ý các phim cùng thể loại Cách này thường chỉ xây dựng được một ma trận với các thành phần là 1 và “giá trị trống”, với 1 biểu thị rằng người dùng đã xem/thích bộ phim, còn “giá trị trống” thể hiện chưa có thông tin Trong trường hợp này, “giá trị trống” không có nghĩa là điểm thấp hơn 1, mà đơn giản là hệ thống chưa biết người dùng có thích bộ phim đó hay không Chúng ta cũng có thể mở rộng cách xây dựng

ma trận bằng cách gán giá trị cao hơn 1 nếu người dùng xem lặp lại nhiều lần, hoặc thời lượng xem dài hơn Đôi khi, nút dislike cũng mang lại tín hiệu có giá trị – hệ thống có thể gán giá trị âm, chẳng hạn -1, cho những bộ phim người dùng không thích

1.3 CÁC PHƯƠNG PHÁP CỔ ĐIỂN VÀ TIÊN TIẾN

1.3.1 Content-based Filtering

1.3.1.1 Item profiles

Trong các hệ thống gợi ý dựa trên nội dung (Content-Based Filtering), chúng ta cần xây dựng một hồ sơ nội dung (profile) cho mỗi bộ phim Hồ sơ này được biểu diễn bằng một vector đặc trưng (feature vector) Trong các hệ thống thực tế, các đặc trưng này có thể được rút trích tự động từ metadata của phim như:

 Đạo diễn - người dùng có thể thích phim do Christopher Nolan đạo diễn hơn các phim của Michael Bay

 Diễn viên - có người mê phim có Tom Hanks, người khác lại thích Johnny Depp

 Thể loại - rõ ràng người mê phim hành động sẽ quan tâm đến John Wick, còn người thích lãng mạn thì lại tìm đến The Notebook

 Năm phát hành - một số người có xu hướng thích phim cũ, số khác lại mê phim mới

 Quốc gia sản xuất - phim Mỹ, Hàn Quốc, Nhật Bản, hay Việt Nam đều có tập người dùng riêng

Tất nhiên, có rất nhiều yếu tố khác như thời lượng, độ nổi tiếng, màu sắc điện ảnh,… nhưng để đơn giản hóa bài toán, chúng ta giả định mỗi bộ phim có feature vector hai chiều

Trong ví dụ Hình 1.3 phía trên, chúng ta giả định rằng mỗi bộ phim được gán 1 vector đặc trưng xi Cụ thể:

Trang 17

Item’s feature vector

để xây dựng mỗi mô hình θi là các cặp (item profile, ratings) tương ứng với các items mà user đó đã rated Việc điền các giá trị còn thiếu trong ma trận Utility chính là việc dự đoán đầu ra cho các unrated items khi áp dụng mô hình θi lên chúng 1.3.1.2 Xây dựng hàm mất mát

Giả sử số lượng người dùng là N, số lượng sản phẩm (items) là M Khi đó, mức độ quan tâm của người dùng đối với sản phẩm được mô tả thông qua ma trận tiện ích

Y ∈ RM×N, trong đó phần tử ymn là số sao mà người dùng thứ n đã đánh giá cho sản phẩm thứ m, nếu có Vì thực tế chỉ một phần nhỏ các sản phẩm được người dùng đánh giá, ma trận Y là ma trận khuyết với phần lớn giá trị không xác định (missing values)

Để xác định các phần tử nào trong Y là quan sát được, ta định nghĩa ma trận chỉ báo

R ∈ {0,1}M×N, trong đó:

Trang 18

**Mô hình tuyến tính:

Giả sử tồn tại một hàm tuyến tính mô tả mức độ quan tâm của người dùng n đối với sản phẩm m, được mô hình hóa bởi vector đặc trưng hàng xm ∈ Rd của item và vector tham số cột wn ∈ Rd của user:

trong đó bn ∈ R là sai số hệ thống (bias) của người dùng thứ n Phép nhân giữa xm

(vector hàng) và wn (vector cột) cho ra một vô hướng

người dùng này đã đánh giá, ta có thể xây dựng hàm mất mát cá nhân Ln như sau:

(2)

trong đó λ > 0 là hệ số điều chuẩn (regularization), và thành phần là chuẩn L2 nhằm tránh hiện tượng overfitting Regularization không được áp dụng lên bias bn Trong thực hành, để chuẩn hóa mức độ mất mát theo số lượng đánh giá đã có, người

ta thường sử dụng trung bình cộng thay vì tổng tuyệt đối Khi đó, nếu đặt

là số lượng sản phẩm mà người dùng n đã đánh giá, ta viết lại biểu thức (2) thành:

(3)

với:

tức là tổng các phần tử trên cột thứ n của ma trận chỉ báo R

**Viết lại dưới dạng vector hoá:

Vì hàm mất mát chỉ phụ thuộc vào những sản phẩm đã được đánh giá, ta có thể viết lại biểu thức (3) dưới dạng rút gọn Gọi:

 : vector chứa các đánh giá đã quan sát của người dùng n

 : ma trận con chứa các vector đặc trưng của những sản phẩm đã

Trang 19

 : vector cột chứa toàn bộ các phần tử bằng 1

Khi đó, hàm mất mát cá nhân của người dùng n được viết gọn dưới dạng vector hoá:

(4)

Biểu thức (4) là dạng chuẩn của Ridge Regression, trong đó trọng số wn và bias bn

có thể được ước lượng thông qua các thuật toán tối ưu hoá như Stochastic Gradient Descent (SGD) hoặc Mini-Batch Gradient Descent

1.3.1.3 Bài toán với cơ sở dữ liệu MovieLens 100k [8]

** Cơ sở dữ liệu MovieLens 100k

Tập dữ liệu MovieLens 100k, được công bố bởi nhóm nghiên cứu GroupLens vào năm 1998, là một trong những bộ dữ liệu tiêu chuẩn được sử dụng rộng rãi trong lĩnh vực hệ thống gợi ý Dữ liệu bao gồm 100.000 đánh giá được tạo ra bởi 943 người dùng đối với 1.682 bộ phim, với điều kiện mỗi người dùng đánh giá ít nhất 20 phim Ngoài bản 100k, GroupLens còn cung cấp các phiên bản có quy mô lớn hơn như 1M, 10M và 20M đánh giá

Sau khi giải nén, tập dữ liệu bao gồm nhiều tệp, trong đó một số tệp quan trọng thường được sử dụng trong các nghiên cứu như:

 u.data: Chứa toàn bộ các đánh giá với định dạng user_id, item_id, rating, timestamp Thời gian đánh giá có thể được sử dụng cho các mô hình gợi ý theo thời gian, tuy nhiên nhiều nghiên cứu chỉ sử dụng ba trường đầu

 ua.base, ua.test, ub.base, ub.test: Các tập dữ liệu được chia sẵn cho mục đích huấn luyện và kiểm thử Một số nghiên cứu sử dụng cặp ua.base và ua.test làm mặc định

 u.user: Chứa thông tin mô tả về người dùng như tuổi, giới tính, nghề nghiệp và vùng miền (zipcode) Các thuộc tính này có thể được khai thác trong các mô hình gợi ý dựa trên thông tin nhân khẩu học, tuy nhiên cũng thường bị bỏ qua nếu chỉ đánh giá mô hình dựa trên tương tác user-item

 u.genre: Danh sách 19 thể loại phim, bao gồm: Unknown, Action, Adventure, Animation, Children’s, Comedy, Crime, Documentary, Drama, Fantasy, Film-Noir, Horror, Musical, Mystery, Romance, Sci-Fi, Thriller, War, Western

 u.item: Chứa thông tin mô tả về phim, bao gồm: ID, tiêu đề, ngày phát hành, liên kết IMDb, và một chuỗi nhị phân thể hiện phim thuộc những thể loại nào (dựa trên u.genre) Một bộ phim có thể thuộc nhiều thể loại khác nhau, đây là

Trang 20

cơ sở để xây dựng hồ sơ nội dung (item profile) trong các mô hình hybrid hoặc đánh giá theo genre

Tập dữ liệu MovieLens 100k thường được sử dụng trong các nghiên cứu với mục tiêu minh họa nguyên lý hoạt động hoặc đánh giá hiệu quả tương đối giữa các mô hình gợi ý khác nhau, nhờ vào quy mô nhỏ gọn và cấu trúc rõ ràng

có thể được cải thiện trong các nghiên cứu tiếp theo như mô hình Collaborative Filtering nâng cao

1.3.2 Collaborative Filtering

1.3.2.1 Neighborhood-Based Collaborative Filtering

Ý tưởng cơ bản của Neighborhood-based Collaborative Filtering (NBCF) là ước lượng mức độ quan tâm của một người dùng đối với một sản phẩm dựa trên mức độ quan tâm của những người dùng khác có hành vi tương đồng Mức độ tương đồng giữa các người dùng được xác định thông qua các sản phẩm mà họ đã tương tác, cụ thể là

Từ đó, hai câu hỏi cốt lõi đặt ra trong một hệ thống NBCF bao gồm:

1 Làm thế nào để đo lường được mức độ tương đồng giữa hai người dùng?

2 Sau khi đã xác định được các người dùng tương tự (similar users), làm thế nào để dự đoán mức độ quan tâm của một người dùng đối với một sản phẩm chưa biết?

Cách tiếp cận sử dụng sự tương đồng giữa người dùng nói trên được gọi là

Trang 21

User-Tuy nhiên, một hướng tiếp cận khác, được đánh giá là hoạt động hiệu quả hơn trong nhiều trường hợp thực tế, là Item-Item Collaborative Filtering Trong hướng này, hệ thống không tập trung vào việc xác định các người dùng tương tự mà thay vào đó tính toán độ tương đồng giữa các sản phẩm Từ đó, hệ thống đưa ra gợi ý các sản phẩm tương đồng với những sản phẩm mà người dùng đã thể hiện mức độ quan tâm cao trong quá khứ

a) User-user Collaborative Filtering

**Similarity Functions:

Bước quan trọng nhất trong User-user Collaborative Filtering là xác định được mức

độ tương đồng (similarity) giữa hai người dùng Dữ liệu duy nhất mà hệ thống có thể

sử dụng là ma trận tiện ích (utility matrix), ký hiệu là Y, vì vậy mức độ tương đồng giữa hai người dùng chỉ có thể được xác định dựa trên các cột tương ứng của hai người dùng trong ma trận này

Giả sử có các người dùng từ u₀ đến u₆ và các sản phẩm từ i₀ đến i₄ (Hình 1.5), trong

đó các số thể hiện số sao người dùng đánh giá cho sản phẩm Số sao càng cao thể hiện mức độ quan tâm càng lớn Các ô chứa dấu “?” là các giá trị chưa biết, cần được hệ thống dự đoán

Hình 1.5 Ví dụ về utility matrix dựa trên số sao một user rate cho một item Một cách trực quan, hành vi của u₀ giống với u₁ hơn là so với u₂, u₃, , u₆ Do đó,

có thể suy đoán rằng u₀ sẽ quan tâm đến sản phẩm i₂, bởi vì u₁ cũng đã đánh giá tích cực sản phẩm này

Giả sử ký hiệu mức độ giống nhau giữa hai người dùng uᵢ và uⱼ là: sim(uᵢ, uⱼ) Khi đó, một tiêu chí quan trọng cho một hàm đo độ tương đồng tốt là:

sim(u₀, u₁) > sim(u₀, uᵢ), ∀ i > 1 Điều này đảm bảo rằng những người dùng có hành vi tương tự sẽ được ưu tiên khi

hệ thống dự đoán hành vi của người dùng mục tiêu

Trang 22

Để xây dựng một hàm similarity, ta cần biểu diễn mỗi người dùng dưới dạng một vector đặc trưng (feature vector) Tuy nhiên, không giống như trong các hệ thống dựa trên nội dung (Content-based Filtering), các vector ở đây được xây dựng trực tiếp từ utility matrix, tức là từ các rating mà người dùng đã cung cấp, thay vì từ metadata của sản phẩm

Khó khăn chính là: các vector đặc trưng này thường chứa rất nhiều giá trị thiếu (missing ratings), vì mỗi người dùng chỉ đánh giá một phần nhỏ các sản phẩm Do đó, cần có một phương pháp để điền các giá trị còn thiếu sao cho kết quả đo similarity không bị méo mó quá nhiều

Có nhiều cách điền các dấu “?”, mỗi cách có ưu và nhược điểm riêng:

Thay bằng 0: không nên dùng vì 0 ngụ ý mức độ không quan tâm cực thấp

Thay bằng 2.5: giá trị trung bình giữa 0 và 5, an toàn hơn nhưng có thể gây sai lệch với người dùng “dễ tính” (thường rate 5 hoặc 4) hoặc “khó tính” (thường rate 3 trở xuống)

Thay bằng trung bình cộng các rating mà user đã thực hiện: đây là cách làm được

ưa chuộng hơn vì nó điều chỉnh cho xu hướng đánh giá cá nhân của từng người dùng Người dùng dễ tính hay khó tính sẽ vẫn có các item mà họ yêu thích hơn những item khác

Cách tiếp cận này giúp vector đặc trưng phản ánh chính xác hơn sở thích tương đối của người dùng, thay vì bị ảnh hưởng bởi thang điểm tuyệt đối

Hãy cùng xem ví dụ trong Hình 1.6 a) và 1.6 b)

Trang 23

Hình 1.6 Ví dụ mô tả User-user Collaborative Filtering Hình 1.6 mô tả: a) Utility Matrix ban đầu b) Utility Matrix đã được chuẩn hoá c) User similarity matrix d) Dự đoán các (normalized) ratings còn thiếu e) Ví dụ về cách dự đoán normalized rating của u1 cho i1 f) Dự đoán các (denormalized) ratings còn thiếu

**Chuẩn hoá dữ liệu:

Trong Hình 1.6 a, hàng cuối cùng là giá trị trung bình của ratings cho mỗi user Giá trị trung bình này phản ánh mức độ dễ tính hoặc khó tính của từng người dùng - giá trị càng cao cho thấy user càng dễ tính (thường cho điểm cao)

Nếu chúng ta trừ mỗi rating đi trung bình của user tương ứng, ta thu được ma trận tiện ích đã chuẩn hoá (normalized utility matrix) như trong Hình 1.6 b Các giá trị trong

ma trận này có thể là:

 Số dương: user thích item (rating cao hơn trung bình)

 Số âm: user không thích item (rating thấp hơn trung bình)

 Bằng 0: user chưa đánh giá hoặc mức độ yêu thích chưa xác định

Việc chuẩn hoá dữ liệu này mang lại một số lợi ích kỹ thuật quan trọng:

 Cải thiện độ chính xác khi tính độ tương đồng giữa các user

 Giảm độ thiên lệch do user dễ tính (thường cho điểm cao) hoặc khó tính (thường cho điểm thấp)

 Tối ưu bộ nhớ: Utility matrix rất lớn (có thể hàng triệu user và item) nhưng hầu hết các ô là giá trị thiếu Việc lưu sparse matrix (chỉ lưu giá trị ≠ 0) giúp tiết kiệm bộ nhớ và tăng hiệu quả xử lý

Do đó, các dấu “?” trong ma trận nên được thay bằng 0, nghĩa là “chưa xác định được mức độ yêu thích” Việc này giúp hệ thống vận hành hiệu quả hơn về cả bộ nhớ

và tốc độ xử lý

**Cosine Similarity:

Một trong những hàm phổ biến nhất để đo độ giống nhau giữa hai user là Cosine Similarity, được định nghĩa như sau:

Trang 24

 Giá trị cosine gần 0: không có tương quan rõ ràng

Ví dụ: trong Hình 1.6 c là ma trận cosine similarity giữa các user, thu được từ dữ liệu

đã chuẩn hoá (Hình 1.6 b) Ta có một số quan sát:

 u₀ gần với u₁ và u₅

o Gần với u₁ là dễ hiểu vì họ cùng thích các item i₀, i₁, i₂

o Gần với u₅ là bất ngờ, nhưng hợp lý khi xem xét rằng cả hai chỉ cùng đánh giá i₁ và đều theo chiều hướng tích cực sau khi chuẩn hoá

 u₂ gần với nhóm u₃, u₄, u₅, u₆, cách biệt rõ với nhóm u₀, u₁

 Có thể phân chia các user thành 2 nhóm rõ rệt: (u₀, u₁) và (u₂, u₃, u₄, u₅, u₆)

Do cosine similarity là hàm chẵn nên ma trận độ tương đồng là ma trận đối xứng Các phần tử đường chéo có giá trị bằng 1 vì đó là độ tương đồng của một vector với chính

**Dự đoán Rating:

Việc dự đoán mức độ yêu thích (rating) của một user đối với một item chưa được đánh giá dựa trên các user tương tự nhất với người đó, hay còn gọi là neighbor users, rất giống với bài toán K-Nearest Neighbors (KNN) đã học trong các khoá học cơ bản Trong các hệ thống quy mô lớn, KNN được sử dụng nhiều nhờ tính đơn giản, dễ cài đặt, tuy nhiên trong Collaborative Filtering (CF), cần thêm một số bước trung gian

Cụ thể, trong CF:

Trang 25

 Missing rating của một user u với một item i sẽ được ước lượng dựa trên ratings của k user gần nhất với user u và đã đánh giá item i

 Dự đoán được tính bằng trung bình có trọng số (weighted average) của các normalized ratings

 Khác với KNN truyền thống (dùng distance ≥ 0), ở đây trọng số là độ tương đồng (similarity) giữa users, có thể âm hoặc dương

Công thức dự đoán: cho là normalized rating dự đoán của user u với item i, công thức là:

Trong đó:

 là rating đã chuẩn hoá (tức rating trừ đi trung bình) của user uj cho item i

 sim(u, uj) là độ tương đồng (cosine similarity) giữa user u và uj

 N(u, i) là tập k neighbor users gần nhất của u đã đánh giá item i

 Mẫu số dùng giá trị tuyệt đối để tránh bias do similarity âm

b) Item-Item Collaborative Filtering

**Một số hạn chế của User-user Collaborative Filtering:

Trên thực tế, số lượng users thường lớn hơn rất nhiều so với số lượng items Kéo theo đó, ma trận tương đồng (Similarity matrix) giữa các users có kích thước rất lớn,

cụ thể là chứa số phần tử bằng hơn một nửa bình phương số lượng users (do đối xứng) Việc lưu trữ ma trận lớn như vậy là không khả thi trong nhiều trường hợp thực tế

Ma trận utility Y thường rất thưa (sparse) Với số lượng users lớn, rất nhiều cột trong ma trận này có rất ít giá trị khác 0 - do người dùng thường không đánh giá nhiều Hệ quả là: khi một user thay đổi rating hoặc đánh giá thêm items, thì trung bình cộng các rating và vector chuẩn hoá của người đó thay đổi nhiều Điều này buộc hệ thống phải tính lại Similarity matrix, một quá trình tốn kém bộ nhớ và thời gian Ngược lại, nếu tính similarity giữa các items rồi gợi ý các items tương tự với item

mà user đã thích, ta có các lợi ích sau:

 Vì số lượng items nhỏ hơn số lượng users, ma trận tương đồng giữa các items nhỏ hơn nhiều, dễ lưu trữ và tính toán hơn

Trang 26

 Số lượng phần tử đã biết trong utility matrix là như nhau, nhưng số hàng (items)

ít hơn số cột (users) Do đó, trung bình mỗi hàng có nhiều ratings hơn mỗi cột, tức mỗi item thường được nhiều user đánh giá Hệ quả là giá trị trung bình theo hàng ít bị ảnh hưởng hơn nếu có thêm ratings Điều này giúp việc cập nhật Similarity matrix trở nên ổn định và không cần thực hiện thường xuyên

Phương pháp tiếp cận này gọi là Item-item Collaborative Filtering, và trong thực tế được sử dụng nhiều hơn User-user CF

**Quy trình dự đoán missing ratings trong Item-item CF

Tương tự như User-user CF, quá trình dự đoán rating thiếu vẫn dựa vào các giá trị

đã biết và độ tương đồng Hình 1.7 mô tả quy trình này qua một ví dụ:

Hình 1.7 Ví dụ mô tả Item-Item Collaborative Filtering Một điểm thú vị ở ma trận Similarity trong Hình 1.7 c là:

 Hai hình vuông (màu xanh và đỏ) có các phần tử không âm

 Các phần tử ngoài hai nhóm này là số âm

Ngày đăng: 11/08/2025, 16:37

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Parashar Manas. (2022). Movie Recommendation System Dataset. Kaggle Sách, tạp chí
Tiêu đề: Movie Recommendation System Dataset
Tác giả: Parashar Manas
Nhà XB: Kaggle
Năm: 2022
[2] F. Ricci, L. Rokach, B. Shapira, và P. B. Kantor, Recommender Systems Handbook, 3rd ed., Springer, 2022 Sách, tạp chí
Tiêu đề: Recommender Systems Handbook
Tác giả: F. Ricci, L. Rokach, B. Shapira, P. B. Kantor
Nhà XB: Springer
Năm: 2022
[7] A. Zhao và P. Yamani, “User Modeling via Embedding Averaging: A Survey,” User Modeling and User-Adapted Interaction, vol. 34, no. 2, pp. 123–156, 2024 Sách, tạp chí
Tiêu đề: User Modeling via Embedding Averaging: A Survey
Tác giả: A. Zhao, P. Yamani
Nhà XB: User Modeling and User-Adapted Interaction
Năm: 2024
[8] “Content-based Recommendation Systems”, machinelearningcoban.com, May 17, 2017 Sách, tạp chí
Tiêu đề: Content-based Recommendation Systems
Nhà XB: machinelearningcoban.com
Năm: 2017
[9] “Neighborhood-Based Collaborative Filtering”, machinelearningcoban.com, May 24, 2017 Sách, tạp chí
Tiêu đề: Neighborhood-Based Collaborative Filtering
Nhà XB: machinelearningcoban.com
Năm: 2017
[3] “Singular value decomposition” Wikipedia, 4 2025. [Online] Link
[10] “Matrix Factorization Collaborative Filtering”, machinelearningcoban.com, May 31, 2017 Link
[4] R. Valderrama và E. Abeliuk, “Truncated Singular Value Decomposition for Large-Scale Recommender Systems,” Journal of Artificial Intelligence Research, vol. 71, pp. 345–368, 2024 Khác
[5] Y. Koren, “Factorization Meets the Neighborhood: a Multifaceted Collaborative Filtering Model,” Proc. SIGKDD, pp. 426–434, 2008 Khác
[6] J. Linden, B. Smith, và J. York, “Amazon.com Recommendations: Item-to-Item Collaborative Filtering,” IEEE Internet Computing, vol. 7, no. 1, pp. 76–80, 2003 Khác

HÌNH ẢNH LIÊN QUAN

Hình 1.1 Content-based Filtering - Tìm hiểu và xây dựng mô hình Đề xuất phim xem bằng mô hình singular value decomposition
Hình 1.1 Content-based Filtering (Trang 13)
Hình 1.2 Collaborative Filtering - Tìm hiểu và xây dựng mô hình Đề xuất phim xem bằng mô hình singular value decomposition
Hình 1.2 Collaborative Filtering (Trang 14)
Hình 1.3 Utility matrix - Tìm hiểu và xây dựng mô hình Đề xuất phim xem bằng mô hình singular value decomposition
Hình 1.3 Utility matrix (Trang 15)
Hình 1.4 Gán vector đặc trưng - Tìm hiểu và xây dựng mô hình Đề xuất phim xem bằng mô hình singular value decomposition
Hình 1.4 Gán vector đặc trưng (Trang 17)
Hình 1.5 Ví dụ về utility matrix dựa trên số sao một user rate cho một item - Tìm hiểu và xây dựng mô hình Đề xuất phim xem bằng mô hình singular value decomposition
Hình 1.5 Ví dụ về utility matrix dựa trên số sao một user rate cho một item (Trang 21)
Hình 1.7 Ví dụ mô tả Item-Item Collaborative Filtering  Một điểm thú vị ở ma trận Similarity trong Hình 1.7 c là: - Tìm hiểu và xây dựng mô hình Đề xuất phim xem bằng mô hình singular value decomposition
Hình 1.7 Ví dụ mô tả Item-Item Collaborative Filtering Một điểm thú vị ở ma trận Similarity trong Hình 1.7 c là: (Trang 26)
Hình 1.8 Matrix Factorization - Tìm hiểu và xây dựng mô hình Đề xuất phim xem bằng mô hình singular value decomposition
Hình 1.8 Matrix Factorization (Trang 28)
Hình 2.9 SVD cho ma trận A khi: m&lt;n (hình trên), và m&gt;n (hình dưới). - Tìm hiểu và xây dựng mô hình Đề xuất phim xem bằng mô hình singular value decomposition
Hình 2.9 SVD cho ma trận A khi: m&lt;n (hình trên), và m&gt;n (hình dưới) (Trang 37)
Hình 3.10 Thống kê rating trên bộ dữ liệu đầu vào  3.2. THỰC NGHIỆM - Tìm hiểu và xây dựng mô hình Đề xuất phim xem bằng mô hình singular value decomposition
Hình 3.10 Thống kê rating trên bộ dữ liệu đầu vào 3.2. THỰC NGHIỆM (Trang 42)
Bảng 3.3 Bảng input thực nghiệm 1 - Tìm hiểu và xây dựng mô hình Đề xuất phim xem bằng mô hình singular value decomposition
Bảng 3.3 Bảng input thực nghiệm 1 (Trang 45)
Bảng 3.4 Bảng output thực nghiệm 1 - Tìm hiểu và xây dựng mô hình Đề xuất phim xem bằng mô hình singular value decomposition
Bảng 3.4 Bảng output thực nghiệm 1 (Trang 46)
Bảng 3.5 Bảng input thực nghiệm 2 - Tìm hiểu và xây dựng mô hình Đề xuất phim xem bằng mô hình singular value decomposition
Bảng 3.5 Bảng input thực nghiệm 2 (Trang 47)
Bảng 3.6 Bảng output thực nghiệm 2  3.3. ĐÁNH GIÁ KẾT QUẢ THỰC NGHIỆM - Tìm hiểu và xây dựng mô hình Đề xuất phim xem bằng mô hình singular value decomposition
Bảng 3.6 Bảng output thực nghiệm 2 3.3. ĐÁNH GIÁ KẾT QUẢ THỰC NGHIỆM (Trang 48)
Bảng 3.7 Bảng precision thực nghiệm 1 - Tìm hiểu và xây dựng mô hình Đề xuất phim xem bằng mô hình singular value decomposition
Bảng 3.7 Bảng precision thực nghiệm 1 (Trang 48)

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w