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

Tìm hiểu kubernetes và xây dựng ứng dụng minh họa (2)

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.21 MB, 43 trang )

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM

BÁO CÁO ĐỒ ÁN 1

Đề tài: Tìm hiểu về hệ thống gợi ý và xây dựng ứng dụng minh họa

GVHD: ThS.Thái Thụy Hàn Uyển

Nhóm sinh viên thực hiện:
18521542 Trần Duy Trọng
18520299
Lê Bá Lĩnh

Tp. HCM, 6 – 2021


MỤC LỤC
Lời cảm ơn ................................................................................................................3
Nhận xét của giảng viên ...........................................................................................5
CHƯƠNG 1 ..............................................................................................................6
TỔNG QUAN ...........................................................................................................6
1.1. Giới thiệu chung ...................................................................................... 6
1.2. Các nghiên cứu liên quan đến đề tài ....................................................... 8
1.3. Mục tiêu thực hiện đề tài ......................................................................... 9
1.4. Các phương pháp để hiện thực: ............................................................ 10
CHƯƠNG 2 ............................................................................................................11
CƠ SỞ LÝ THUYẾT .............................................................................................11
2.1. Đôi nét về machine learning .................................................................... 11
2.1.1. Khái niệm: ........................................................................................... 11
2.1.2. Phân loại các thuật toán học của Machine learning ............................ 12


2.2. Các kiến thức trọng tâm .......................................................................... 12
2.2.1. Bài toán kinh điển trong machine learning – Hồi quy tuyến tính (Linear
Regression). ................................................................................................... 12
2.2.2. Vấn đề overfit và underfit. .................................................................... 19
2.2.3. Giải quyết overfit sử dụng regularization. ............................................ 21
2.2.4. Xây dựng model cho Recommender System. ......................................... 24
2.2.5. Thuật toán Collaborative Filtering ...................................................... 29
CHƯƠNG 3 ............................................................................................................33
XÂY DỰNG HỆ THỐNG .....................................................................................33
3.1. Về Dataset................................................................................................. 33
3.2. Hiện thực trên matlab.............................................................................. 35
3.2.1. Xây dựng hàm tính cost function và gradient descent ........................... 35
3.2.2. Tiến hành load dữ liệu và training cho model ...................................... 36


3.2.3. Kết quả: ............................................................................................... 39
CHƯƠNG 4 ............................................................................................................42
TỔNG KẾT ............................................................................................................42
4.1. Kết quả đạt được........................................................................................ 42
4.2. Hướng phát triển tiếp theo ......................................................................... 42
TÀI LIỆU THAM KHẢO .....................................................................................43


Lời cảm ơn
Đầu tiên, chúng em 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 chúng 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, nhóm tác giả xin gửi lời cảm ơn và lòng biết ơn sâu sắc nhất tới cô Thái

Thụy Hàn Uyển, người đã hướng dẫn tận tình, sửa chữa và đóng góp nhiều ý kiến
quý báu giúp em hoàn thành 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 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 các
thầy/cơ 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 quý thầy/cô!


Nhận xét của giảng viên
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………

……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………….……………………………………
……………………………………………….…………………………………
………………………………………………….…………………………………
………………………………………………….…………………………………
………………………………………………….…………………………………
………………………………………………….…………………………………
………………………………………………….…………………………………
………………………………………………….…………………………………
………………………………………………….…………………………………
………………………………………………….…………………………………
………………………………………………….…………………………………
………………………………………………….…………………………………
………………………………………………….…………………………………
………………………………………………….…………………………………
………………………………………………….………………………………
Giảng viên hướng dẫn
ThS. Thái Thụy Hàn Uyển


CHƯƠNG 1
TỔNG QUAN
1.1. Giới thiệu chung
Ngày nay, Recommender System (RC) xuất hiện rất nhiều trên các phần mềm và
đã đem đến rất nhiều lợi ích cho cả người dùng lẫn nhà phát triển. Chẳng hạn như:
• Hệ thống đề xuất sản phẩm của Amazon
Amazon là một trong những công ty tiên phong trong việc xây dựng nên hệ
thống khuyến nghị. Trong những ngày đầu, họ là một trong số ít những nhà
phát triển nhìn ra được sự hữu ích của công nghệ này. Hệ thống đề xuất sản

phẩm của Amazon dựa trên việc người dùng xếp hạng các sản phẩm đã mua,
hành vi mua hàng (buying behavior) và hành vi duyệt web (browsing behavior).
• Hệ thống đề xuất phim của Netflix
Netflix là một nền tảng xem phim trực tuyến. Hệ thống đề xuất phim của
Netflix được xây dựng dựa trên việc cung cấp cho người dùng khả năng xếp
hạng những bộ phim (trên thang điểm 5) và hành vi của người dùng khi nhấn
vào các hạng mục về thể loại phim yêu thích (ví dụ như lãng mạn, phiêu lưu
mạo hiểm,…).
Netflix cịn cung cấp giải thích cho các bộ phim được đề xuất bởi hệ thống.
Ví dụ: Netflix sẽ hiển thị danh sách các bộ phim A, B, C kèm theo một dịng
thơng báo: “Vì bạn đã xem D”
Cách tiếp cận này giúp cho người dùng có nhiều khả năng thực hiện theo đề
xuất của netflix và thực sự cải thiện trải nghiệm của người dùng.
• Hệ thống cá nhân hóa tin tức của google (Google News Personalization
System)
Hệ thống cá nhân hóa tin tức của google có thể hiển thị tin tức cho người dùng
dựa theo lịch sử nhấp chuột (tất nhiên là trên trình duyệt web). Họ thu thập
thơng tin này thông qua tài khoản gmail (mà người dùng đã đăng nhập trên


trình duyệt web). Đặc điểm của hệ thống này là coi các cú nhấp chuột của người
dùng vào một bài báo tin tức nào đó như là một đánh giá tích cực cho chính bài
báo đó và sẽ đưa ra các khuyến nghị về các bài viết tương tự. Thế nhưng lại
khơng có cơ chế cho việc khơng thích một bài báo nào. Các xếp hạng như vậy
được gọi là “xếp hạng 1 lần” (unary rating).
• Hệ thống giới thiệu bạn bè của facebook
Các trang mạng xã hội thường có hệ thống giới thiệu bạn bè tiềm năng cho
người dùng để tăng lượng tương tác và giúp trải nghiệm của người dùng được
tốt hơn. Và facebook là một ví dụ điển hình trong các trang mạng xã hội hiện
nay. Hệ thống đề xuất này có mục tiêu hơi khác so với các hệ thống đề xuất sản

phẩm. Trong khi các hệ thống đề xuất sản phẩm làm tăng lợi ích của người bán
bằng việc đề xuất các sản phẩm thì hệ thống này làm tăng số lượng kết nối trên
mạng xã hội giúp cho mạng lưới ngày càng to lớn. Do đó, các nhà phát triển sẽ
tăng được doanh thu quảng cáo.
Các hình thức khuyến nghị như trên dựa trên mối quan hệ cấu trúc (structural
relationships) chứ không dựa trên dữ liệu xếp hạng (ratings data) nên bản chất
các thuật toán được hiện thực bên dưới sẽ khác nhau.


1.2. Các nghiên cứu liên quan đến đề tài
Như đã giới thiệu, phạm vi liên quan đến đề tài Recommender System rất rộng và
để giới hạn lại phạm vi cũng như để phù hợp với nội dung của đề tài đồ án chúng
em xin được tập trung vào phần xây dựng hệ thống khuyến nghị phim dựa trên
nội dung (Content-Based Recommender System) và mơ hình lọc cộng tác
(Collaborative Filtering).


1.3. Mục tiêu thực hiện đề tài
• Nắm được những kiến thức cơ bản về Recommender System.
• Hiện thực thành cơng các thuật tốn đã đặt ra ở trên về RC.
• Thử nghiệm, đánh giá được các thuật tốn liên quan về hệ khuyến nghị
phim.


1.4. Các phương pháp để hiện thực:
• Chuẩn bị dataset.
• Xây dựng model.
• Training model dựa trên các thuật tốn học.



CHƯƠNG 2
CƠ SỞ LÝ THUYẾT
2.1. Đôi nét về machine learning
2.1.1. Khái niệm:
Machine learning hiện nay được sử dụng rất nhiều trong cuộc sống hiện nay của
chúng ta. Chẳng hạn:
• Khi ta sử dụng cơng cụ tìm kiếm của google hoặc microsoft (bing), lí do vì
sao kết quả tìm kiếm lại “tốt” như vậy là do họ đã sử dụng machine learning
để xếp hạng các kết quả tìm kiếm sao cho hợp lý nhất.
• Mỗi lần chúng ta post những tấm hình lên facebook, tại sao ứng dụng này có
thể nhận ra khn mặt của mọi người có mặt trong ảnh? Đó là vì họ đã sử
dụng những thuật tốn machine learning.
• Tại sao khi sử dụng g-mail, ứng dụng có thể giúp chúng ta loại bỏ rất nhiều
thư rác (spam), tiết kiệm cho chúng ta rất nhiều thời gian như vậy? Đó cũng
là một loại thuật tốn học của machine learning.
Vậy machine learning là gì mà lại được áp dụng rộng rãi đến vậy?
Theo wikipedia: “ Machine learning is the subfield of computer science that gives
computers the ability to learn without being explicitly programmed. ”
Hay dịch ra là: “ Học máy là một lĩnh vực con của khoa học máy tính, cung cấp
cho máy tính khả năng học mà khơng cần được lập trình rõ ràng.”


2.1.2. Phân loại các thuật tốn học của Machine learning
Có rất nhiều cách để phân loại các thuật toán học trong lĩnh vực machine learning,
một trong số đó là phân loại dựa trên phương thức học (learning style):
• Học có giám sát (Supervised Learning): là thuật toán dự đoán đầu ra dựa
trên bộ dữ liệu đã biết trước cấu trúc.
• Học khơng giám sát (Unsupervised Learning): là thuật tốn học dựa bộ dữ
liệu chưa biết trước cấu trúc để từ đó tìm ra cấu trúc của bộ dữ liệu đó nhằm
thực hiện một cơng việc nào đó.

• Học bán giám sát (Semi-Supervised Learning): là thuật toán học sử dụng bộ
dữ liệu mà chỉ một phần trong đó có cấu trúc.
• Học củng cố (Reinforcement Learning): là thuật toán học giúp cho một hệ
thống xác định hành vi dựa trên hoàn cảnh để đạt được lợi ích cao nhất.

2.2. Các kiến thức trọng tâm
2.2.1. Bài toán kinh điển trong machine learning – Hồi quy tuyến tính (Linear
Regression).
Thuật tốn hồi quy tuyến tính (LR) là một trong những thuật tốn cơ bản nhất (và
đơn giản nhất) trong Machine Learning. Vậy đối với những loại bài tốn nào mà
chúng ta có thể sử dụng LR để giải quyết?
Ta xét ví dụ sau: “Chẳng hạn tơi có một căn nhà rộng x1 (m2), tơi muốn máy tính
cho tơi biết nhà của tơi có thể bán được với giá là bao nhiêu?”
Để giải quyết câu hỏi trên, nếu thay đi hỏi máy tính thành đi hỏi một chuyên gia về
lĩnh vực bất động sản thì bằng kinh nghiệm của họ, họ sẽ cho bạn biết rằng căn
nhà của bạn sẽ bán được bao nhiêu? Kinh nghiệm ở đây được đúc kết bằng việc họ
đã bán các căn nhà trước đó và từ đó có thể đưa cho bạn câu trả lời gần chính
xác.
Máy tính cũng vậy, để giải quyết câu hỏi trên chúng ta cần phải chuẩn bị một bộ
dữ liệu để máy tính có thể “học” và từ đó có thể đưa ra dự đốn (ở đây là về giá
nhà) gần chính xác.


Thế giả sử chúng ta đã có số liệu thống kê từ 1000 ngơi nhà (training set) trong
thành phố thì liệu rằng với thơng số về diện tích (x1 - m2) của một căn nhà mới thì
chúng ta dự đốn giá của căn nhà đó như thế nào? Hay nói cách khác hàm dự đốn
h = f(x) sẽ có dạng như thế nào?

Ảnh minh họa
Phân tích:

Chẳng hạn chúng ta đã có bộ dữ liệu và có thể minh họa qua biểu đồ dưới đây:


Một cách đơn giản nhất, chúng ta có thể thấy rằng: nếu diện tích càng lớn thì giá
nhà càng cao => Tập dữ liệu đã cho có tính tuyến tính.
Vì vậy có thể dự đốn rằng hàm tính tốn sẽ có dạng h = a0 + a1x.
Vấn đề của chúng ta bây giờ là làm sao tìm được 2 hệ số a0 và a1 ?

Xây dựng thuật toán
Bây giờ giả sử chúng ta có một bộ (a0, a1)

Ảnh minh họa
Vậy làm cách nào để biết được bộ (a0, a1) trên là chuẩn?

Ý tưởng chính là:
• (1) Lần lượt chọn các bộ (a0, a1) theo một quy tắc nào đó.
• (2) Sao cho giá trị nhận được từ model gần nhất với training data (x,y).


Chẳng hạn, training set của ta gồm 1000 bộ số (x,y). Ứng với giá trị x1 trong 1000
training example chúng ta có:
• giá trị y1 từ training example.
• Ta thay giá trị x1 đó vào model và ta được giá trị y1’ = h(x1).
• Tiến hành tính tốn độ lệch giữa hai giá trị y1 và y1’
Và ứng với mỗi một bộ (a0, a1) chúng ta sẽ tính tốn độ lệch bằng cách lấy trung
bình tồn bộ độ lệch của các training example. Về mặt tốn học, cơng thức này có
dạng:

*Cơng thức trên cịn được gọi là “hàm lỗi bình phương” (Squared Error).
**Ở đây m là số lượng các training example, trong ví dụ này thì m = 1000.

Vậy “gần nhất” ở (2) cũng có nghĩa là ta sẽ lấy hàm lỗi bình phương có giá trị nhỏ
nhất và từ đó ta có thể chọn được bộ (a0, a1) chuẩn nhất trong các bộ tính được.
Vấn đề tiếp theo là chúng ta chọn các bộ (a0, a1) theo quy tắc nào?
Theo những gì đã trình bày, chúng ta cần tìm bộ (a0, a1) sao cho “hàm lỗi bình
phương” đạt giá trị nhỏ nhất. Và cụ thể là:

Ảnh minh họa đồ thị “hàm lỗi bình phương”


Giả sử chúng ta chọn được một bộ (a0, a1) và tọa độ của điểm đó nằm ở vị trí (tạm
gọi là điểm X) như hình bên dưới:

Ảnh minh họa
Chúng ta sẽ tiến hành cập nhật các bộ (a0, a1) sao cho điểm X di chuyển đến vị trí
cực tiểu.
Đến đây bài toán trở về việc cập nhật tọa độ điểm X theo tiếp tuyến của hàm lỗi
hay nói cách khác hệ số góc của tiếp tuyến (đạo hàm tại điểm đó) sẽ cho điểm O
phương hướng để “di chuyển”.
Và về mặt tốn học chúng ta có cơng thức sau:

Cơng thức “Gradient Descent”


Trong đó

• Đại lượng biểu thị cho hệ số góc của tiếp tuyến là:



α biểu thị “tốc độ học” (learning rate) (trong ví dụ này, có thể

tạm coi là tốc độ di chuyển của điểm O).

Và như thế chúng ta cứ tiến hành cập nhật các bộ (a0, a1) cho đến khi nào hàm lỗi
bình phương đạt giá trị nhỏ nhất.
Vấn đề ở đây là làm cách nào để tính đại lượng biểu thị cho hệ số góc tiếp tuyến?
Rất may, bằng lý thuyết tốn thống kê chúng ta có thể chứng minh và viết lại một
cách tổng quát đối với việc cập nhật các bộ (a0, a1) dưới dạng như sau:

Bài toán được giải quyết xong!


Tổng kết
Như vậy, chúng ta đã giải quyết một bài toán machine learning với một thuật toán
cơ bản và đơn giản nhất đó là Linear Regression.
Để tổng kết lại thuật tốn gồm 3 bước như sau:
• Khởi tạo bộ (a0, a1) bất kì.
• Tính giá trị hàm lỗi bình phương ứng với bộ (a0, a1) vừa mới tìm được.
• Tiến hành cập nhật bộ (a0, a1) theo cơng thức:

Gradient Descent
Nói thêm, khi tiến hành cập nhật bộ (a0, a1) theo cơng thức trên thì giá trị của hàm
lỗi bình phương sẽ “tự động” tiến đến giá trị nhỏ nhất và khi đạt đến giá trị nhỏ
nhất thì bộ (a0, a1) sẽ được “tự động” giữ ngun. Có thể giải thích là vì khi đến giá
trị cực tiểu thì hệ số góc tiếp tuyến bằng = 0.
Trên đây chỉ là lời giải cho một biến x1 (diện tích – m2), ta có thể mở rộng thêm
với bài tốn sử dụng nhiều biến.
Ngồi ra bài tốn có thể sử dụng cơng thức nghiệm của đạo hàm để giải quyết.


2.2.2. Vấn đề overfit và underfit.

Đặt vấn đề
Xét một bài toán dự đoán giá trị output y (giá nhà) dựa vào giá trị x ∈ R. (kích
thước – m2).
Giả sử mơ hình (model) chúng ta dùng là tuyến tính: y = θ0 + θ1x.
Và sau khi “học”, đồ thị dưới đây cho chúng ta cái nhìn tổng quát hơn về mối
tương quan giữa mơ hình và training set:

Đồ thị 1

Bây giờ nếu chúng ta thêm 1 tính năng nữa vào trong model: y = θ0 + θ1 x + θ2 x2
Và mối tương quan giữa model (đã học) và training data bây giờ trở thành:

Đồ thị 2


Quan sát 2 đồ thị, ta có thể dễ dàng nhận ra rằng đồ thị 2 là chuẩn hơn (fit) so với
đồ thị 1 (xét trên training set chúng ta đã cung cấp).
Và có vẻ như thêm càng nhiều tính năng thì model của chúng ta càng chuẩn hơn so
với training set đã đưa ra.
Thế nhưng, đồ thị sau biểu diễn mơ hình với 5 tính năng :

Đồ thị 3
Ta có thể thấy, model trên so với training set là vơ cùng “fit” thế nhưng có vẻ như
khi đưa vào model một giá trị mới, khả năng cao là model sẽ cho ra output sai so
với dự đoán của chúng ta.
Tổng kết
Như đã trình bày, đồ thị 1 là ví dụ về vấn đề underfitting: model đưa ra chưa thật
sự đủ tốt để dự đốn output và có thể đưa ra dự đốn khơng tốt lắm.
Đồ thị 3 là ví dụ về vấn đề overfitting: model đưa ra quá fit với training data
nhưng khi dự đốn giá trị mới thì lại đưa ra dự đốn vơ cùng sai. Điều này là do

model đưa ra có nhiều tính năng q phức tạp (mục đích có thể là người thiết kế
muốn model phải fit nhiều nhất với training set).


Và có 1 kĩ thuật để giải quyết 2 vấn đề trên, đó là sử dụng Regularization.
2.2.3. Giải quyết overfit sử dụng regularization.
Ý tưởng
Ý tưởng chính của kỹ thuật sử dụng regularization là: thêm vào hàm lỗi một số
hạng nữa.
Mục đích là để đánh giá độ phức tạp của mơ hình. Số hạng này càng lớn thì mơ
hình càng phức tạp.
Hàm lỗi mới này thường được gọi là regularized cost function, thường được định
nghĩa như sau:

regularized cost function
Trong đó:
• θ được dùng để ký hiệu các biến trong mơ hình.
• J(θ) ký hiệu cho hàm lỗi(cost function).
• R(θ) là số hạng regularization.
• λ thường là một số dương để cân bằng giữa hai đại lượng ở vế phải.
Ý nghĩa của đại lượng regularization.
Mục đích của việc thêm đại lượng regularization vào hàm lỗi là để giữ lại tính
năng nhưng lại giảm đi độ lớn của các tham số.
Để rõ hơn, chúng ta cùng đi đến ví dụ sau:


Giả sử hai trường hợp trên đều xây dựng model để dự đốn giá nhà và như các bạn
có thể thấy. Model 1 có 2 tính năng với 3 tham số, model 2 có 4 tính năng với 5
tham số.
Ở trường hợp 2, chúng ta có thể thấy vấn đề mà model đang gặp phải đó là: dường

như khi kích thước lớn đến một mức nào đó thì giá nhà sẽ bị giảm xuống. Điều này
là không đúng với thực tế cho lắm. Mặc dù model đã gần như fit hết với các
training data.
=> Overfitting
Và 1 cách để giải quyết là chúng ta có thể giảm độ lớn của θ3 và θ4.

Ảnh minh họa


Và đại lượng regularization của chúng ta sẽ thực hiện nhiệm vụ đó, ảnh dưới thể
hiện cách chúng ta sẽ sử dụng regularization:

Trong quá trình “học” đại lượng θ3 và θ4 sẽ gần hội tụ về 0 để cho hàm lỗi bình
phương của chúng ta đạt giá trị nhỏ nhất.

Một cách tổng quát chúng ta có thể viết lại cách tính hàm lỗi bình phương như sau:

Tổng kết
Như vậy chúng ta đã giải quyết được vấn đề về overfitting. Tuy nhiên nếu đi sâu
vào thì cịn rất nhiều vấn đề để nói thêm.
Chẳng hạn như làm thế nào để chọn đại lượng λ sao cho hợp lý, thuật toán học các
tham số θ có ảnh hưởng như thế nào,…
Nhưng trong phạm vi của đồ án này thì chỉ xoay quanh những kiến thức liên quan
để xây dựng nên thuật toán cho RC.


2.2.4. Xây dựng model cho Recommender System.
Recommender System được sử dụng rất nhiều và đã được giới thiệu ở Chương 1.
Vậy model cho Recommender System được xây dựng như thế nào? Chúng ta cùng
đi đến bài toán sau.

Đặt vấn đề
Giả sử chúng ta có một tập khách hàng (user), và một tập hợp các bộ phim (item).
Mỗi một khách hàng sẽ đánh giá 1 hoặc nhiều bộ phim bất kì trên thang điểm từ 0
– 5. Mức độ hài lòng cao nhất sẽ là 5 và thấp nhất là 0. Sẽ có những khách hàng
chưa (hoặc khơng) đánh giá một số bộ phim. Vậy làm thế nào để biết bộ phim nào
sẽ là phù hợp với khách hàng?
Ta cùng mô hình hóa bài tốn dưới dạng ma trận như sau:

Trong đó:
• Khách hàng là cột và các bộ phim là hàng.
• Các giá trị từ 0 – 5 sẽ được điền vào hàng i cột j của ma trận theo đánh giá của
khách hàng j cho bộ phim i.


Giả sử họ đã đánh giá như sau:
Movie
Love at last
Romance for ever
Cute puppies of love
Nonstop car chases
Sword vs. karate

Alice
5
5
?
0
0

Bob

5
?
4
0
0

Carol
0
?
0
5
5

Dave
0
0
?
4
?

Chúng ta quy ước rằng:
• r(i,j) = 1 nếu như user j đã đánh giá cho bộ phim i.
• y(i,j) = số điểm mà khách hàng j đã đánh giá cho bộ phim i và chỉ được định
nghĩa nếu r(i,j) = 1.
Và bài toán bây giờ là sẽ xác định các giá trị “?” sao cho phù hợp với khách hàng
dựa vào các đánh giá đã có.

Ý tưởng xây dựng thuật tốn
Chúng ta thêm vào ma trận hai cột nữa để đánh giá các thể loại của phim như sau:



×