Tải bản đầy đủ (.pdf) (23 trang)

Tìm hiểu khuyến nghị nội dung dựa trên máy móc

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.06 MB, 23 trang )

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM

BÁO CÁO ĐỒ ÁN CUỐI KỲ
Môn học: Đồ án 1 – SE121.M11

ĐỀ TÀI:
TÌM HIỂU KHUYẾN NGHỊ NỘI DUNG
DỰA TRÊN MÁY HỌC

Giảng viên hướng dẫn:
ThS. Mai Trọng Khang
Sinh viên thực hiện:
19521592 Nguyễn Đức Hướng
19520117 Ngơ Dương Kha

TP. Hồ Chí Minh, tháng 12 năm 2021


LỜI CẢM ƠN
Đầu tiên, nhóm xin gửi lời cảm ơn chân thành đến tập thể quý Thầy Cô Trường Đại
học Công nghệ thông tin – Đại học Quốc gia TP.HCM và quý Thầy Cô khoa Công nghệ
phần mềm đã giúp cho em có những kiến thức cơ bản làm nền tảng để thực hiện đề tài này.
Đặc biệt, em xin gửi lời cảm ơn và lòng biết ơn sâu sắc nhất tới thầy Mai Trọng Khang.
Thầy đã trực tiếp hướng dẫn tận tình, sửa chữa và đóng góp nhiều ý kiến q báu giúp em
hồn thành tốt báo cáo mơn học của mình. Trong thời gian một học kỳ thực hiện đề tài, em
đã vận dụng những kiến thức nền tảng đã tích lũy đồng thời kết hợp với việc học hỏi và
nghiên cứu những kiến thức mới. Từ đó, em vận dụng tối đa những gì đã thu thập được để
hoàn thành một báo cáo đồ án tốt nhất. Tuy nhiên, trong q trình thực hiện, em khơng
tránh khỏi những thiếu sót. Chính vì vậy, em rất mong nhận được những sự góp ý từ phía


Thầy nhằm hồn thiện những kiến thức mà em đã học tập và là hành trang để em thực hiện
tiếp các đề tài khác trong tương lai.
Xin chân thành cảm ơn các quý Thầy Cơ!

Nhóm sinh viên thực hiện

1


MỤC LỤC
Chương 1 Tổng quan ................................................................................................ 3
1.1. Giới thiệu chung .............................................................................................. 3
1.2. Phạm vi nghiên cứu ......................................................................................... 3
1.3. Mục tiêu hướng đến ......................................................................................... 3
Chương 2 Cơ sở lý thuyết......................................................................................... 4
2.1. Khái niệm về máy học ..................................................................................... 4
2.2. Khái niệm về hệ thống khuyến nghị ................................................................ 4
2.3. Các loại hệ thống khuyến nghị phổ biến ......................................................... 4
Chương 3 Thuật toán lọc cộng tác .......................................................................... 6
3.1. User-based ....................................................................................................... 6
3.1.1. Chuẩn bị dữ liệu ....................................................................................... 6
3.1.2. Chuẩn hóa dữ liệu..................................................................................... 6
3.1.3. Tính tốn độ tương đồng .......................................................................... 7
3.1.4. Xác định “hàng xóm” ............................................................................... 8
3.1.5. Dự đoán mức độ quan tâm ....................................................................... 8
3.2. Item-based ........................................................................................................ 9
3.2.1. Lợi thế của item-based CF so với user-based CF .................................... 9
3.2.2. Thực hiện .................................................................................................. 9
Chương 4 Triển khai hệ thống............................................................................... 12
4.1. Dataset ........................................................................................................... 12

4.2. Hiện thực thuật toán....................................................................................... 12
4.2.1. Popular-based......................................................................................... 13
4.2.2. Content-based ......................................................................................... 14
4.2.3. Collaborative Filtering ........................................................................... 16
Chương 5 Kết luận .................................................................................................. 21
5.1. Kết quả ........................................................................................................... 21
5.2. Nhận xét ......................................................................................................... 21
5.3. Hướng phát triển ............................................................................................ 21
Chương 6 Tài liệu tham khảo ................................................................................ 22

2


CHƯƠNG 1 TỔNG QUAN
1.1. Giới thiệu chung
Ngày nay, hầu hết các trang web thương mại đều có các hệ thống khuyến nghị để gợi
ý những nội dung phù hợp cho người dùng. Ví dụ như một danh sách các sản phẩm phù
hợp với món hàng mà người dùng đang lựa chọn có thể được ưu tiên đề xuất cho họ khi
mua sắm trên Amazon. Hay khi xem một video clip trên Youtube, một hệ thống khuyến
nghị được sử dụng trong hệ thống sẽ đề xuất một số video có liên quan cho người dùng
dựa vào sự tìm hiểu các hành vi của người dùng trước đó. Vì vậy, có thể nói các hệ thống
khuyến nghị đã thay đổi sâu sắc cách chúng ta thu nhận thông tin. Hệ thống khuyến nghị
không chỉ làm cho người dùng dễ dàng và thuận tiện hơn trong việc lựa chọn các thông tin
phù hợp, bên cạnh đó cịn mang lại tiềm năng lớn trong sự tăng trưởng kinh tế. Khi ngày
càng có nhiều người nhận ra tầm quan trọng và sức mạnh của các hệ thống khuyến nghị,
việc khám phá để thiết kế các hệ thống khuyến nghị chất lượng cao vẫn luôn là một chủ đề
nổi bật trong cộng đồng trong những thập kỷ qua. Nhờ sự nỗ lực nâng cấp các hệ thống
khuyến nghị, may mắn thay, ngày càng nhiều hệ thống khuyến nghị đã được phát triển và
sử dụng trong rất nhiều lĩnh vực khác nhau.
Khi số lượng hệ thống khuyến nghị ngày càng nhiều, một câu hỏi quan trọng nảy sinh

là làm thế nào để biết được hiệu suất của chúng để có thể tìm thấy những hệ thống phù hợp
nhất nhằm áp dụng vào các bối cảnh hoặc các lĩnh vực nhất định. Nó thường là trường hợp
mà lập trình viên cần phải hiểu rõ người dùng và dữ liệu, lựa chọn giữa một tập hợp các
thuật toán được đề xuất để hiện thực một hệ thống khuyến nghị tốt nhất.
Bởi tầm quan trọng của hệ thống khuyến nghị và điểm nổi bật về việc tuân thủ xem
xét các chỉ số đo lường sâu sắc trong các thử nghiệm đánh giá, đồ án nhằm mục đích tìm
hiểu cách hoạt động của hệ thống khuyến nghị. Từ đó rút ra kinh nghiệm để có thể áp dụng
vào các dự án trong tương lai.
1.2. Phạm vi nghiên cứu
Đề tài tập trung nghiên cứu về các khái niệm cơ bản của máy học, hệ thống khuyến
nghị, cũng như các thuật toán hỗ trợ xây dựng hệ thống khuyến nghị. Ngoài ra, đề tài cịn
phân tích những dữ liệu của các hệ thống thường được sử dụng như các trang web xem
phim, thương mại điện tử để hiện thực một hệ thống khuyến nghị phù hợp nhằm áp dụng
vào thực tiễn, mang lại trải nghiệm tốt hơn cho người dùng cuối.
1.3. Mục tiêu hướng đến
- Kiến thức về máy học.
- Hiểu về hệ thống khuyến nghị và các thuật toán hỗ trợ hệ thống khuyến nghị.
- Xây dựng được một hệ thống khuyến nghị với dữ liệu thực tế, cho kết quả khuyến
nghị khả quan.

3


CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
2.1. Khái niệm về máy học
Theo Wikipedia, máy học (Machine Learning) là một lĩnh vực nhỏ của Khoa Học
Máy Tính, nó có khả năng tự học hỏi dựa trên dữ liệu đưa vào mà không cần phải được lập
trình cụ thể. Hay theo Tom Mitchell, "Một chương trình máy tính CT được xem là học
cách thực thi một lớp nhiệm vụ NV thông qua trải nghiệm KN, đối với thang đo năng lực
NL nếu như dùng NL ta đo thấy năng lực thực thi của chương trình có tiến bộ sau khi trải

qua KN" (máy đã học).
2.2. Khái niệm về hệ thống khuyến nghị
Một hệ thống khuyến nghị (Recommender System - RS) sẽ tính tốn và cung cấp
những nội dung phù hợp với người dùng dựa trên những hiểu biết về người dùng, nội dung
và sự tương tác, phản hồi của người dùng với nội dung trước đó.
2.3. Các loại hệ thống khuyến nghị phổ biến
- Khuyến nghị dựa trên độ phổ biến (Popular-based Filtering Recommender): Trong
máy học ln cần một mơ hình cơ sở để có thể thể đánh giá mơ hình học máy có tốt
hay khơng. Và khuyến nghị này chính là mơ hình cơ sở đó. Loại khuyến nghị này
đưa ra các sản phẩm có đánh giá cao từ người dùng trong hệ thống.
o Ưu điểm: Mơ hình này giúp người dùng mới tiếp cận đến hệ thống, sau đó thu
thập dữ liệu người dùng tạo điều kiện triển khai các mô hình khuyến nghị phức
tạp và hiệu quả hơn.
o Nhược điểm: Đây là một mơ hình dùng chung cho tất cả người dùng nên dẫn
đến kết quả khuyến nghị không cá nhân hóa.
- Khuyến nghị dựa trên lọc nội dung (Content-based Filtering Recommender): Như tên
gọi thì loại khuyến nghị này dựa vào sự tương đồng giữa thông tin chung của nội
dung hoặc người dùng để đưa ra gợi ý phù hợp cho người dùng. Lấy ví dụ, nếu một
người dùng A thường xuyên đánh giá tốt các bộ phim thuộc thể loại Viễn tưởng, hệ
thống khuyến nghị sẽ gợi ý các bộ phim khác cùng thuộc thể loại Viễn tưởng cho
người dùng A. Lấy một ví dụ khác, nếu người dùng B thuộc nhóm có mức thu nhập
cao, hệ thống khuyến nghị của ngân hàng sẽ xem người dùng B là một khách hàng
tiềm năng về những gói đầu tư hạng sang và gợi ý cho họ.
o Ưu điểm: Dễ dàng vượt qua những vấn đề khó khăn đầu tiên sản phẩm - khi hệ
thống chưa có hoặc ít ghi nhận được sự tương tác giữa người dùng và nội dung,
hệ thống khuyến nghị vẫn có thể cung cấp những gợi ý hữu ích cho người dùng.
o Nhược điểm: Mơ hình này sẽ không bao giờ khuyến nghị những sản phẩm mà
người dùng đã khơng mua hoặc khơng thích trước đó. Khiến người dùng nhàm
chán và bộ dữ liệu người dùng cũng không được đa dạng.
- Khuyến nghị dựa trên lọc cộng tác (Collaborative Filtering Recommender): Loại

khuyến nghị này xác định những xu hướng và khuôn mẫu trong sự tương tác trước
đây của người dùng và nội dung, và gợi ý những nội dung tương đồng cho người
dùng hiện tại dựa vào những gì họ tương tác với hệ thống. Ý tưởng cốt lõi của loại
khuyến nghị này dựa vào sự gom nhóm các người dùng có cùng chung sở thích. Ví
dụ với một hệ thống khuyến nghị của một trang tin tức, hệ thống sẽ nhận diện những
người dùng thích thú những bản tin về Donald Trump thì cũng yêu thích những bản
4


tin liên quan đến các thuyết âm mưu về việc tranh cử. Từ đó, nếu có một người dùng
mới mà cũng u thích những bản tin về Trump thì người dùng mới này cũng sẽ được
gợi ý về những bản tin về thuyết âm mưu xoay quanh vấn đề tranh cử.
o Ưu điểm: Khai thác được những mối tương quan ẩn giữa sự tương tác của những
người dùng và nội dung, cũng như không yêu cầu nhận diện kỹ càng dữ liệu để
phân loại chúng như loại khuyến nghị lọc nội dung.
o Nhược điểm: Gặp khó khăn ở giai đoạn ban đầu, và yêu cầu cần có một nguồn
tương tác đủ lớn giữa người dùng với nội dung hiện có trước khi có thể cung
cấp các gợi ý, đề xuất có ý nghĩa, phù hợp cho người dùng hiện tại.
- Bên cạnh đó cũng có hệ thống khuyến nghị kết hợp giữa hai loại lọc nội dung và lọc
cộng tác và sở hữu những ưu điểm tốt của cả hai loại khuyến nghị này. Tuy nhiên,
việc xây dựng những hệ thống khuyến nghị như vậy đặc biệt khó khăn và yêu cầu kỹ
thuật mạng nơ-ron.
Trong đề tài này, dựa vào những dữ liệu có sẵn cũng như tự thu thập được, và bước
đầu tiếp cận, tìm hiểu về hệ thống khuyến nghị bằng máy học thì nhóm quyết định sẽ tìm
hiểu qua các hệ thống khuyến nghị dựa trên độ phổ biến và lọc theo nội dung, sau đó tiếp
tục nghiên cứu sâu hơn về hệ thống khuyến nghị dựa trên lọc cộng tác để gợi ý những nội
dung phù hợp cho người dùng.

5



CHƯƠNG 3 THUẬT TỐN LỌC CỘNG TÁC
Thuật tốn lọc cộng tác (Collaborative Filtering - CF) giúp đưa ra một hệ thống
khuyến nghị (Recommender System - RS) phức tạp hơn, hoạt động hiệu quả hơn dựa trên
dữ liệu về người dùng và các sản phẩm mà người dùng đã tương tác trước đó. Có hai
phương pháp chính là Neighborhood-based and Model-base. Neighborhood-based tiếp cận
dựa trên User-based CF và Item-based CF. Cả hai đều tìm kiếm các sản phẩm hoặc người
dùng gần với người dùng đang cần khuyến nghị nhất.
3.1. User-based
User-based CF hình thành các đề xuất hoặc đưa ra dự đốn bằng cách tìm những
người dùng có thị hiếu tương tự như người dùng đang cần khuyến nghị.
3.1.1. Chuẩn bị dữ liệu
Dưới đây là bảng dữ liệu mô phỏng ma trận đánh giá các sản phẩm của người dùng
theo thang điểm từ 0 đến 5. Mỗi hàng đại diện cho người dùng được gắn nhãn 𝑢0 , 𝑢1 , 𝑢2 …
và mỗi cột là viết tắt của một sản phẩm cũng được gắn nhãn 𝑖0 , 𝑖1 , 𝑖2 … Các ô trống của
bảng cho biết người dùng chưa đánh giá sản phẩm đó.
𝑢0

𝑢1

𝑢2

𝑖0

5

5

3


𝑖1

3

4

4

𝑖2
𝑖3

2

𝑖4

𝑢3

3

4

2

2

4

1

1


𝑢4

0

2

3.1.2. Chuẩn hóa dữ liệu
Đầu tiên, tính tốn giá trị trung bình các rating của từng user
𝑢𝑗

3.33

3.2

2.67

2

2.5

Tiếp theo, tiến hành lấy mỗi rating trừ đi giá trị trung bình (các ơ trống điền 0).

𝑖0

𝑢0

𝑢1

𝑢2


𝑢3

𝑢4

1.67

1.8

0.33

0

0.5

6


𝑖1

-0.33

0.8

1.33

0

0


𝑖2

0

0.8

0

0

0

𝑖3

-1.33

-1.2

0

2

0

𝑖4

0

-2.2


-1.67

-2

-0.5

Những giá trị dương/âm biểu thị được việc user thích/khơng thích item
Những giá trị 0 tương ứng chưa xác định user có thích item hay khơng
3.1.3. Tính tốn độ tương đồng
Ở bước này tiến hành tính tốn độ tương đồng giữa user cần khuyến nghị với tất cả
các user khác đã có trong hệ thống.
Có nhiều phương pháp tính độ tương đồng nhưng nhóm nghiên cứu hai phương pháp
khá phổ biến là Cosine Similarity và Pearson Correlation.
𝑐𝑜𝑠𝑖𝑛𝑒_𝑠𝑖𝑚𝑖𝑙𝑎𝑟𝑖𝑡𝑦(𝑢1,𝑢2) = cos(𝑢1 , 𝑢2 ) =

𝑢1 𝑇 𝑢2
‖𝑢1 ‖. ‖𝑢2 ‖

Đây là hàm tốn học tính góc cosine giữa hai vector đã được làm quen từ cấp 3. Độ
tương đồng của hai vector là 1 số trong đoạn [-1, 1]. Giá trị bằng 1 thể hiện hai vector hoàn
toàn giống nhau. Hàm số 𝑐𝑜𝑠 của một góc bằng 1 nghĩa là góc giữa hai vector bằng 0, tức
một vector bằng tích của một số dương với vector còn lại. Giá trị 𝑐𝑜𝑠 bằng -1 thể hiện hai
vector này hoàn toàn trái ngược nhau. Điều này cũng hợp lý, tức khi hành vi của hai user
là hồn tồn ngược nhau thì độ tương đồng giữa hai vector đó là thấp nhất.
𝑢0

𝑢1

𝑢2


𝑢3

𝑢4

𝑢0

1

0.61

0.02

-0.44

0.55

𝑢1

0.61

1

0.75

0.22

0.86

𝑢2


0.02

0.75

1

0.55

0.65

𝑢3

-0.44

0.22

0.55

1

0.5

𝑢4

0.55

0.86

0.65


0.5

1

7


3.1.4. Xác định “hàng xóm”
Khi các điểm tương đồng được tính tốn, bước tiếp theo là hình thành vùng lân cận.
Nói cách khác, những người dùng tương tự nhất hàng đầu cần được chọn làm vùng lân cận
của người dùng đang hoạt động. Có nhiều cách tiếp cận khác nhau để hình thành vùng lân
cận. Một cách thường được sử dụng là k nearest-neighbor (KNN), tạo thành một vùng lân
cận có kích thước k bằng cách chọn k người dùng có độ tương đồng cao nhất với người
dùng đang hoạt động. Kích thước vùng lân cận k thường được chọn bằng thực nghiệm. Nó
phải được chọn cẩn thận vì độ chính xác sẽ bị giảm (ảnh hưởng của các hàng xóm bị lỗng)
nếu chọn k lớn, và độ chính xác sẽ kém (người dùng khơng có đủ hàng xóm thân thiết) nếu
một k nhỏ được chọn.
3.1.5. Dự đoán mức độ quan tâm
Sau khi hình thành vùng lân cận, việc dự đoán mức độ quan tâm của user đối với các
item được tính bằng cách lấy trung bình có trọng số của các ratings đã chuẩn hóa cho item
đó từ những người hàng xóm của user.
Cơng thức phổ biến được sử dụng để dự đoán ratings của 𝑢 cho 𝑖:
𝑦̂𝑖,𝑢 =

∑𝑢𝑗∈𝒩(𝑢,𝑗) 𝑦𝑖,𝑢 𝑠𝑖𝑚(𝑢, 𝑢𝑗 )
𝑗

∑𝑢𝑗 ∈𝒩(𝑢,𝑗)|𝑠𝑖𝑚(𝑢, 𝑢𝑗 )|

𝒩(𝑢, 𝑗) là tập hợp 𝑘 user trong các hàng xóm (tức có độ tương đồng cao nhất) của

𝑢 mà đã đánh giá 𝑖.
Chọn 𝑘 = 2 để thực hiện dự đoán mức độ quan tâm của 𝑢3 dành cho 𝑖1
Xác định các user đánh giá 𝑖1 là 𝑢0 , 𝑢1 , 𝑢2
Xác định điểm tương đồng của 𝑢3 nhận được -0,44, 0.22, 0.55. Mà 𝑘 = 2 nên lấy
hai giá trị 0.22 và 0.55 tương ứng 𝑢1 và 𝑢2
Xác định điểm đánh giá đã chuẩn hóa của 𝑢1 , 𝑢2 cho 𝑖1 lần lượt là 0.8 và 1.33
Dự đoán mức độ quan tâm
𝑦̂𝑖,𝑢 =

0.22 × 0.8 + 0.55 × 1.33
≈ 1.18
0.22 + 0.55

𝑢0

𝑢1

𝑢2

𝑢3

𝑢4

𝑖0

1.67

1.8

0.33


0

0.5

𝑖1

-0.33

0.8

1.33

1.18

0

𝑖2

0

0.8

0

0

0

8



𝑖3

-1.33

-1.2

0

2

0

𝑖4

0

-2.2

-1.67

-2

-0.5

3.2. Item-based
Item-based CF hình thành mối quan hệ giữa các item từ đó đưa ra các khuyến nghị.
3.2.1. Lợi thế của item-based CF so với user-based CF
Trên thực tế, việc sử dụng thuật tốn user-based CF sẽ trở nên khó khăn do số lượng

user rất lớn, kéo theo đó ma trận tương quan cũng trở nên khổng lồ và việc hiện thực có
thể khơng khả thi. Khó khăn thứ hai chính là việc user thường rất lười rating, vì thế khi
user thay đổi rating hoặc rating cho một sản phẩm mới sẽ dẫn đến việc trung bình cộng các
rating và chuẩn hóa các vector bị thay đổi nhiều, do đó cũng phải tính tốn lại ma trận
tương quan.
Thuật tốn item-based CF ra đời giải quyết được hai nhược điểm của thuật toán userbased CF giúp tiết kiệm được bộ nhớ và thời gian hiện thực.
3.2.2. Thực hiện
Theo mặt toán học, thuật toán item-based CF là việc hiện thực thuật toán user-based
CF bằng cách chuyển vị ma trận dữ liệu ban đầu. Sau khi có kết quả cuối cùng thực hiện
chuyển vị thêm lần nữa sẽ được kết quả.
𝑢0

𝑢1

𝑢2

𝑖0

5

5

3

𝑖1

3

4


4

𝑖2
𝑖3
𝑖4

2

𝑢3

3

4

2

2

4

1

1

Tính tốn trung bình cộng
𝑖𝑗

4
9


𝑢4

0

2


3.67
3
2.67
1
Tiếp theo, tiến hành lấy mỗi rating trừ cho giá trị trung bình (các ơ trống điền 0)
𝑢0

𝑢1

𝑢2

𝑢3

𝑢4

𝑖0

1

1

-1


0

-1

𝑖1

-0.67

0.33

0.33

0

0

𝑖2

0

1

0

-1

0

𝑖3


-0.67

-0.67

0

1.33

0

𝑖4

0

0

0

-1

1

𝑖0

𝑖1

𝑖2

𝑖3


𝑖4

𝑖0

1

0.33

0.71

-0.65

-0.55

𝑖1

0.33

1

0.5

-0.12

-0.73

𝑖2

0.71


0.5

1

-0.45

-0.64

𝑖3

-0.65

-0.12

-0.45

1

-0.15

𝑖4

-0.55

-0.73

-0.64

-0.15


1

𝑢3

𝑢4

Tính tốn độ tương đồng

Tiến hành dự đoán điểm của 𝑖1 dành cho 𝑢3
𝑢0

𝑢1

𝑢2

10


𝑖0

1

1

-1

0

-1


𝑖1

-0.67

0.33

0.33

-1.06

0

𝑖2

0

1

0

-1

0

𝑖3

-0.67

-0.67


0

1.33

0

𝑖4

0

0

0

-1

1

11


CHƯƠNG 4 TRIỂN KHAI HỆ THỐNG
4.1. Dataset
- Dữ liệu MovieLens lấy từ />- Dữ liệu gồm có 2 bảng dữ liệu:
o Movie: ID phim, tên phim, thể loại (ngăn cách bởi ký tự “|”)

o Rating: ID người dùng, ID phim, điểm đánh giá

4.2. Hiện thực thuật toán
Ở phần trên đã đề cập đến ưu điểm và nhược điểm của hai thuật toán đề xuất dựa trên

độ phổ biến và nội dung (Popular-based, Content-based) nên ở phần này hiện thực hai thuật
tốn đó để có thể quan sát kết quả một cách trực quan.
12


4.2.1. Popular-based
- Hàm tính điểm của phim theo IMDB

(𝑊𝑅) = (𝑣/(𝑣 + 𝑚)) ∙ 𝑅 + (𝑚/(𝑣 + 𝑚)) ∙ 𝐶

𝑅: average rating for the movie (mean)
𝑣: number of votes for each movie
𝑚: minimum votes required to be listed in the Top 50
𝐶: the mean vote across the whole dataset
- Tính tốn điểm phổ biến của phim

- Kết quả:

13


- Nhược điểm của cách này chính là danh sách này khơng được cá nhân hóa. Tất cả
người dùng được khuyến nghị giống nhau.
- Tuy nhiên thuật toán này giúp đề xuất cho những người dùng mới khi truy cập vào
hệ thống. Từ đó thu thập dữ liệu người dùng để triển khai các thuật toán khuyến nghị
khác.
4.2.2. Content-based
- Xử lý dữ liệu

- Ta thu được kết quả là ma trận item và thể toại, giá trị 1 biểu thị phim thuộc thể loại

đó, giá trị khơng biểu thị phim khơng thuộc thể loại đó.

- Thực hiện tính tốn độ tương đồng

- Sắp xếp giảm dần mảng vừa có được để lấy top item
14


- Thực hiện hàm với item_id = 1, top_k = 25

- Kết quả

15


4.2.3. Collaborative Filtering

4.2.3.1. User-based
- Đầu tiên chuẩn hóa dữ liệu theo những bước đã giải thích

- Tiến hành giảm kích thước của dữ liệu bằng cách lọc số lượng mỗi user rating là 10
và số lượng mỗi item được rating là 50

- Chuyển dữ liệu sang ma trận thưa thớt, áp dụng K-Nearest Neighbors (KNN) với
thuật toán là cosine similarity
16


- Hàm get_movie_recommendation in các item tương tự dựa vào
movie_name được cung cấp


- Test với movie_name là Iron Man

17


- Test với movie_name là Toy Story

4.2.3.2. Item-based
- Thực hiện chuẩn hóa dữ liệu và giảm kích thước bộ data train như phần user-based ở
trên

18


- Kết quả
19


20


CHƯƠNG 5 KẾT LUẬN
5.1. Kết quả
Source code: ngoduongkha/Recommendation-System (github.com)
5.2. Nhận xét
Đồ án đạt được mục tiêu ban đầu nhóm đã đề ra. Xây dựng hoàn chỉnh hệ thống
khuyến nghị cơ bản dựa trên độ phổ biến, nội dung, mối liên hệ giữa các người dùng, các
sản phẩm với nhau.
Tuy nhiên, dữ liệu phim mà nhóm đã thực hiện đồ án cịn nhỏ và khá cũ, khơng cập

thật theo xu hướng phim hiện tại. Dẫn đến việc hệ thống cũng trở nên lỗi thời nếu áp dụng
vào thực tế.
5.3. Hướng phát triển
Nghiên cứu thêm hệ thống khuyến nghị dựa trên thư viện mã nguồn mở TensorFlow.
Áp dụng các dữ liệu thuộc các lĩnh vực khác nhau.
Nhóm dự định sẽ triển khai hệ thống khuyến nghị đã xây dựng được lên một trang
web thương mại điện tử cụ thể để thử nghiệm và đánh giá mức độ hiệu quả của hệ thống
cũng như ghi nhận những trải nghiệm thực tế mà hệ thống khuyến nghị đem lại cho người
dùng nhằm hiểu hơn về người dùng cũng như dữ liệu thu thập cho hệ thống, nhằm giúp hệ
thống phát triển tốt hơn.
Nghiên cứu kết hợp giữa hai phương pháp lọc cộng tác và lọc nội dung để có được
những điểm tốt từ hai loại khuyến nghị này nhằm đa dạng hóa nội dung gợi ý hữu ích cho
người dùng, giúp người dùng có thêm nhiều lựa chọn phù hợp dù trang web vừa đi vào
hoạt động chưa có nhiều thơng tin tương tác từ người dùng hay đã có nguồn dữ liệu tương
tác lớn khi hệ thống hoạt động lâu dài.

21


CHƯƠNG 6 TÀI LIỆU THAM KHẢO
1. Neighborhood-Based Collaborative Filtering – Machine Learning cơ bản. Đăng tại:
Machine Learning cơ bản (machinelearningcoban.com)
2. A Content-Based Recommender for E-Commerce Web Store. Đăng tại: A ContentBased Recommender for E-Commerce Web Store | by Tan Pengshi Alvin | Towards
Data Science
3. Machine learning là gì? – Wikipedia. Đăng tại: Học máy – Wikipedia tiếng Việt
4. Định nghĩa hệ thống khuyến nghị. Tại: Page 13 - Practical Recommender Systems
by Kim Falk – 2019
5. Dataset - MovieLens | GroupLens

22




×