You are on page 1of 20

LỜI CẢM ƠN

Em xin trân trọng cảm ơn tất cả lời chỉ dẫn và giúp đỡ của thầy cô, anh
chị và bạn bè. Trong quá trình thực hiện bài tập lớn trên, nhóm chúng
em đã nhận được rất nhiều sự quan tâm, ủng hộ và giúp đỡ của quý
thầy cô, anh chị và bạn bè. Nhóm xin gửi lời tri ân chân thành nhất đến
thầy Đặng Văn Vinh, là các quý giảng viên đã hướng dẫn cho chúng em
đề tài này. Nhờ có các thầy cô hết lòng chỉ bảo mà nhóm đã hoàn thành
bài báo cáo đúng tiến độ và giải quyết tốt những vướng mắt gặp phải.
Sự hướng dẫn của thầy cô là kim chỉ nam cho mọi quyết định, hành
động của nhóm và phát huy tối đa mối quan hệ hỗ trợ giữa thầy và trò
trong môi trường giáo dục.
Bên cạnh đó, nhóm cũng xin cảm ơn các thầy cô giảng viên, chuyên gia
nghiên cứu, tác giả của các tài liệu, sách báo mà nhóm đã tham khảo
Tuy vốn kiến thức, hiểu biết còn hạn chế nhưng chúng em đã rất cố
gắng để hoàn thiện đề tài này. Tuy nhiên, sẽ không thể tránh khỏi
những thiếu sót. Vì thế, chúng em rất mong nhận được những lời nhận
xét, góp ý của quý thầy cô và các bạn, các anh chị để đề tài này được
hoàn thiện tốt nhất có thể
Lời cuối, xin một lần nữa gửi lời biết ơn sâu sắc đến các cá nhân, các
quý thầy cô đã dành thời gian để chỉ dẫn cho nhóm. Đây chính là niềm
tin nguồn động lực to lớn cho nhóm chúng em có thể đạt được kết quả
tốt như ngày hôm nay
MỤC LỤC
CHƯƠNG 1. MỞ ĐẦU..................................................................................................................
1.1 Giới thiệu đề tài ............................................................................................................
CHƯƠNG 2. CƠ SỞ LÝ THUYẾT .......................................................................................................
2.1. Trị riêng và vecto riêng của ma trận ............................................................................
2.1.1 Tổng quan lý thuyết ...................................................................................
2.1.2 Các bước tìm trị riêng và vecto riêng của ma trận......................................
2.2. Hệ trực giao và ma trận trực giao ................................................................................
2.2.1 Tổng quan lý thuyết....................................................................................
2.2.2 Các bước chéo hóa trực giao ma trận đối xứng thực A .............................
2.3 Phân tích SVD................................................................................................................
2.3.1 Tổng quan lý thuyết ...................................................................................
2.3.2 Các bước phân tích SVD .............................................................................
CHƯƠNG 3. PHÂN TÍCH SVD TRONG HỆ THỐNG GỢI Ý TRONG HỌC MÁY
(MACHINE LEARNING).....................................................................................................................
3.1 Giới thiệu hệ thống gợi ý (Recommender Systems) .....................................................
3.1.1 Các phương pháp gợi ý...............................................................................
3.1.2 Chức năng hệ thống gợi ý...........................................................................
3.2 Ứng dụng phân tích SVD vào hệ thống gợi ý trong học máy (machine
Learning) .........................................................................................................................................
3.2.1 Bài toán tổng quát của hệ thống gợi ý........................................................
3.2.2 Các bước xử lí.............................................................................................
CHƯƠNG 4. MATLAB......................................................................................................................
CHƯƠNG 5. KẾT LUẬN....................................................................................................................
TÀI LIỆU THAM KHẢO
CHƯƠNG 1: MỞ ĐẦU
1.1 Giới thiệu đề tài
Trong chương trình học của chúng ta về trị riêng và vecto riêng, việc
phân tích một ma trận ra thành tích của nhiều ma trận đặc biệt khác
(Matrix Factorization hoặc Matrix Decomposition) mang lại nhiều lợi ích
quan trọng như: giảm số chiều dữ liệu, nén dữ liệu, tìm hiểu các đặc
tính của dữ liệu, giải các hệ phương trình tuyến tính, clustering, và
nhiều ứng dụng khác. Recommendation System cũng là một trong rất
nhiều ứng dụng của Matrix Factorization. Trong bài báo cáo này, chúng
ta sẽ nghiên cứu về một trong những phương pháp Matrix Factorization
của Đại số tuyến tính. Phương pháp này có tên là Singualr Value
Decomposition (SVD). Phương pháp SVD sẽ tìm ra một lớp các ma trận
xấp xỉ tốt nhất với một ma trận cho trước dựa trên khoảng cách norm
Frobenios giữa 2 ma trận. Người ta đã chứng minh được rằng ma trận
xấp xỉ tốt nhất được biểu diễn dưới dạng tích của 3 ma trận rất đặc biệt
bao gồm 2 ma trận trực giao (orthogonal matrix) và 1 ma trận đường
chéo (diagonal matrix). Quá trình nhân ma trận thực chất là quá trình
biến đổi các điểm dữ liệu của ma trận gốc thông qua những phép xoay
trục (rotation) và phép thay đổi độ lớn (scaling) và từ đó tạo ra những
điểm dữ liệu mới trong không gian mới. Điều đặc biệt của ma trận
đường chéo đó là các phần tử của nó chính là những giá trị riêng của
ma trận gốc. Những điểm dữ liệu trong không gian mới có thể giữ được
100% thông tin ban đầu hoặc chỉ giữ một phần lớn thông tin của dữ liệu
ban đầu thông qua các phép truncate SVD. Bằng cách sắp xếp các trị
riêng theo thứ tự giảm dần trên đường chéo chính thuật toán SVD có
thể thu được ma trận xấp xỉ tốt nhất mà vẫn đảm bảo giảm được hạng
của ma trận sau biến đổi và kích thước các ma trận nhân tử nằm trong
giới hạn cho phép. Do đó nó tiết kiệmđược thời gian và chi phí tính
toán và đồng thời cũng tìm ra được một giá trị dự báo cho ma trận gốc
với mức độ chính xác cao.
Do đó, để tiếp cận được thuật toán phân tích SVD, chúng ta cần phải
nắm những kiến
thức cơ bản về cơ sở tạo nên nó. Gọi tắt là Cơ sở lí thuyết của việc phân
tích SVD
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
2.1. Trị riêng và vecto riêng của ma trận
2.1.1 Tổng quan lý thuyết
Véc tơ riêng và trị riêng: Véc tơ riêng của một ma trận vuông A ∈ R n× n là
một véc tơ đặc biệt vì nó sở hữu tính chất khi nhân với ma trận A thì kết
quả thu được chính là véc tơ đó nhân với một đại lượng vô hướng λ :
AX=λ X
Chúng ta gọi x là vector riêng (Eigenvector) ứng với trị riêng λ
(Eigenvalue) . Khai triển biểu thức trên để đưa về dạng tích của x :

( A−λ I ) X=0
Ta sẽ chứng minh công thức trên
Giả sử λ là một trị riêng của ma trận A
Theo định nghĩa, tồn tại vecto X ≠0 để AX = λ X
⟺ AX – λ X = 0 ⟺ (A - λ I )X = 0
Suy ra X là một nghiệm khác 0 của hệ phương trình (A - λ I )X = 0
Hệ thuần nhất có nghiệm khác không khi và chỉ khi định thức của ma
trận hệ số bằng 0. Tức là det (A- λI )X = 0
Vậy λ là một nghiệm của phương trình det (A- λI )X = 0

 Trị riêng và vector riêng của ma trận có những tính chất sau:

1. Tổng tất cả các trị riêng của A bằng với det (A)
2. Một giá trị riêng có thể có nhiều vecto riêng
3. Mỗi vectơ riêng chỉ ứng với một giá trị riêng duy nhất.
4. Nếu x là vectơ riêng ứng với giá trị riêng λ của ma trận vuông A thì
kx cũng là vectơ riêng λ: Ax = λx ⟺ A (kx) = λ (kx)
5. Nếu λ trị riêng của A thì λ m là trị riêng của ma trận Am, m ∈ N
6. Ma trận vuông A khả nghịch khi và chỉ khi không có trị riêng bằng
0. Nếu λ là trị riêng của A thì λ−1trị riêng của ma trận A-1
2.1.2 Các bước tìm trị riêng và vecto riêng của ma trận
Bước 1: Tìm giá trị riêng
+ Lập phương trình det ( A- λ I ) = 0
+ Tính định thức, giải phương trình
+Tất cả các nghiệm của phương trình là tất cả các trị riêng của A
Bước 2: Tìm vectơ riêng
+ Tương ứng với trị riêng λ1. Giải hệ phương trình ( A- λ1 I )X = 0
+ Tất cả các nghiệm khác 0 của hệ là tất cả các vectơ riêng của A
ứng với trị riêng λ1.
+ Tương tự tìm vectơ riêng của A ứng với các trị riêng còn lại
Lưu ý: Theo tính chất trên, thì hpt luôn luôn có vô số nghiệm. Do đó,
nếu bạn giải pt (2) mà vô nghiệm hoặc có nghiệm duy nhất thì phải
kiểm tra lại.

Ví dụ 1. Tìm GTR, VTR của ma trận A= (−1


−2 4 )
3

Bước 1: Lập phương trình đặc trưng của ma trận A:

P(λ)=det ( A− λ I )=0 ⟺ |−1−λ


−2
3
4−λ | 2
=0⇔ λ −3 λ+2=0

Giải phương trình đặc trưng, ta có: λ 1=1 , λ 2=2

Bước 2: Tìm các VTR:


1. Ta tìm các VTR ứng với giá trị riêng λ 1=1
Ứng với giá trị riêng λ 1=1 ta có VTR u1=¿ ( x; y) là nghiệm của hệ phương
trình:
( A- λ1 I )X1 = 0 ⟺ {−2 x +3 y=0 ⇒ 2 x=3 y
−2 x +3 y=0

Vậy VTR ứng với GTR λ 1=1 có dạng u1= (3 a; 2 a )=( 3 ; 2 ) a ; a ≠ 0


2. Ta tìm các VTR ứng với giá trị riêng λ 2=2
Ứng với giá trị riêng λ 2=2 ta có u1=¿ ( x; y) VTR là nghiệm của hệ phương
trình:
( A- λ2 I )X2 = 0 ⟺ {−3 x+3 y =0 ⇒ x= y
−2 x+2 y=0

Vậy VTR ứng với λ 2=2GTR có dạng u1= ( b ; b )= (1 ; 1 ) b ; b ≠ 0


2.2 Hệ trực giao và ma trận trực giao
2.2.1 Tổng quan lý thuyết
Họ trực giao: Một hệ véctơ {x 1 , x 2 , ..., x m }∈ R K được gọi là một họ trực
giao (orthogonal) nếu chúng đôi môt trực giao với nhau, nghĩa là
xi ⊥ x j ; ∀ i ≠ j
⟨ x i x j ⟩ =0
Họ trực chuẩn: Một hệ véctơ {x 1 , x 2 , ..., x m }∈ R K được gọi là họ trực
chuẩn (orthonormal) nếu chúng là một hệ trực giao và độ dài của mỗi
vec-tơ đều bằng 1. Nghĩa là:

{ xi ⊥ x j ; ∀ i≠ jϵ {1 , 2 , … ,m }
‖ xi‖=1 ; ∀ i=1, m

Ma trận trực giao: Ma trận trực giao (orthogonal matrix) là ma trận


vuông thỏa mãn họ vecto các dòng (cột) của nó là một hệ trực chuẩn.
Điều đó có nghĩa là một ma trận trực giao A ∈ R D × D thoả mãn:

A A=I D

Với I D là ma trận đơn vị với kích thước D chiều.

Ma trận đường chéo: Một ma trận D là ma trận đường chéo khi các
phần tử của nó thỏa mãn:
d ii ≠ 0 , d ij =0 ∀ i≠ j

Hay nói cách khác ma trận có các phần tử trên đường chéo chính khác 0
và các phần tử còn lại bằng 0. Ma trận đường chéo có thể không vuông.
Ma trận đơn vị I n là một dạng ma trận đường chéo khi nó vừa là một
ma trận vuông và đồng thời các phần tử trên đường chéo chính bằng 1.
Ngoài ra ta có thể nhận thấy mối liên hệ giữa ma trận trực giao và ma
trận đường chéo đó là một ma trận U ∈ R D × D có các cột tạo thành một
hệ trực giao thì tích của nó với ma trận chuyển vị của nó sẽ tạo thành
một ma trận đường chéo.

[ ][ ]
a 21 a1 a2 a 1 a 3 … a1 a D a21 0 0 … 0
⊺ 2 2
A A= a2 a1 a 2
2 a 2 a3 … a2 a D a D a2 ¿ aD a3 ¿…¿a ¿ = 0
D a 2
2 0 … 0 0¿ 0¿…¿a D ¿
⋮ ⋮ ⋮ ⋮ ¿ ⋮ ⋮ ⋱ ⋮ ¿

 Định nghĩa 1: Ma trận A ∈ M n (R ¿ gọi là ma trận đối xứng thực nếu



A =A
 Tính chất :
+ Trị riêng của A là các số thực
+ A luôn chéo hóa trực giao được
+ Hai vecto riêng ứng với các trị riêng khác nhau vuông góc
với nhau
 Định nghĩa 2: Ma trận A ∈ M n ( R ¿ gọi là ma trận trực giao nếu
⊺ –1
A =A
 Tính chất :
+ Nếu ma trận A chéo hóa trực giao được, thì A là ma trận
đối xứng
 Định nghĩa 3: Ma trận vuông, thực A gọi là chéo hóa ma trận trực
giao được, nếu

A=PDP =PDP
−1 T
với D là ma trận chéo và P là ma trận trưc giao

2.2.2 Các bước chéo hóa trực giao ma trận đối xứng thực A
Bước 1: Tìm các trị riêng λ1 , λ2 ,…, λk của A
Bước 2: Tìm một cơ sở trực chuẩn của từng không gian con riêng
o Để tìm cơ sở trực chuẩn của không gian con riêng Eλk, ta theo các
bước sau:
a) Chọn cơ sở Ek tuỳ ý của Eλk
b) Dùng quá trình Gram-Schmidt (nếu cần) để tìm cơ sở trực
giao Fk
c) Chia mỗi vectơ trong Fk cho độ dài của nó ta có cơ sở trực
chuẩn Qk của Eλk
Bước 3: Kết luận
o Ma trận A luôn chéo hoá trực giao được. Tức là T
A=PDP , trong đó
ma trận chéo D có các phần tử trên dường chéo là các giá trị riêng
của A, họ vectơ cột của ma trận trực giao P từ các vectơ riêng
trong các cơ sở trực chuẩn ở bước 2
Ví dụ 2: Hãy chéo hóa trực giao ma trận A.

( )
3 −1 −1
A= −1 3 −1
−1 −1 3

| |
3− λ −1 −1
Xét det ( A−λI ) = −1 3−λ −1 =−(λ−1)¿
−1 −1 3− λ

⟦ λ1=1
λ2 =λ3=4

+ Với λ 1=1thì

{ {
2 x− y−z =0 x=t
( A−I )[ x ]=0 ⇔ −x +2 y−z=0 ⇔ y=t
−x− y+ 2 z=0 z=t

Chọn v 1=(1 , 1 ,1). Trực chuẩn ta được e 1= √ 3 ( 1


,
1
√3
,
1
√3 )
+ Với λ 2=λ3 =4 thì

{ {
−x− y −z=0 x=i
( A−4 I )[x ]=0 ⇔ −x− y −z=0 ⇔ y= j
−x− y −z=0 z=−i− j
Chọn v 2=( 1 ,0 ,−1 ) , v 3=( 0 , 1 ,−1 ) Trực giao hoá ta được v '2=v 2
'
v 3=v 3−
⟨ v 3 , v '2 ⟩ v ' = 1 (−1 , 2 ,−1 )
⟨ v '2 , v'2 ⟩ 2
2

Trực chuẩn hoá e 2= √2 (1 , 0 ,−


1
√2 ) (
, e3=
−1
√6
,
2
√6
,
−1
√6 )

( )
1 1 −1
√3 √2 √6
1 2
Vậy ma trận trực giao là P=
√3
0
√6
1 −1 −1
√3 √2 √6

2.3 Phân tích SVD


2.3.1 Tổng quan lý thuyết
 Định nghĩa:
Cho A là một ma trận thực cỡ mxn. Ta chứng minh rằng tập hợp các trị
riêng khác không của AA

và ⊺
A A là trùng nhau. Thật vậy, giả sử λ0 là

một trị riêng khác 0 của ⊺


và X0 là vectơ
AA

riêng của A A⊺tương ứng. Khi đó:


AA

X0 = λ0X0. Suy ra ⊺
A AA X0 =

A

λ0X0

Điều này tương đương với A A



( A

X0 ) = λ0( A

X0 ), vì λ0 ≠0 nên A

X0 ≠

0. Suy ra λ0 là trị riêng của A A


 Ma trận AA

và ma trận A A và ma trận ⊺
A A là hai ma trận
đối xứng, nên chéo hoá trực giao được.
 Phân tích SVD cho ma trận A:
Phép phân tích suy biến (Singular Value Decomposition) được viết tắt
là SVD là một dạng matrix factorization. Theo đó phương pháp này cũng
nhằm phân rã một ma trận thành tích của ba ma trận số thực . Trong đó
hai ma trận ở vị trí đầu tiên và cuối cùng là ma trận trực giao có thể
không là khả nghịch của nhau và ở giữa là ma trận đường chéo có thể
không vuông.

Amn =Qmm Σ mn Pnn

 Kích thước ma trận được để ở bên dưới chân ma trận, tức là ma


trận Amn ∈ R
m ×n
. Trong công thức trên thì Qmm , P nn là các ma trận trực
giao và Σmn là ma trận đường chéo có các phần tử trên đường chéo
δ1 ; δ2 ; … ; δr là những số thực dương và được gọi là các singular

values của A. Q được gọi là left singular vectors P được gọi là


right singular vectors.

Khi đó ta thu được :


AAT= QΣPT(QΣPT)T=QΣPTPΣTQT=QTQT
Và AAT= (QΣPT)TQΣPT=PΣTQTQΣPT=PΣTΣPT
o Các cột của Q là các vectơ riêng của A A⊺ và δ 21 ; δ 22; … ; δ 2r là các trị
riêng khác 0 không A A⊺.
o Các cột của P là các vectơ riêng của A⊺ A và δ 21 ; δ 22; … ; δ 2r cũng là các
trị riêng khác 0 của A⊺ A .
o Trong D, ta sắp xếp các singular values của A theo tứ tự giảm dần:
δ1≥ δ2≥…≥ δr
( )
σ1 0 … 0
0 σ2 … 0
 Gọi Q=(q1|q2|…|qn) và P=(p1|p2|…|pn), D =
… … … 0
0 0 … σr
Từ đó ma trận A có thể ghi dưới dạng

A= σ 1 q 1 pT1 + σ 2 q 2 pT2 + ... + σ r qr pTr với mỗi q i pTi là một ma trận có hạng bằng 1
Như vậy, ma trận A chỉ phụ thuộc vào r cột đầu tiên của P, Q và r
phần tử khác không trên đường chéo của Σ. Ta có thể phân tích
gọn hơn của A gọi là compact SVD:
A=Qr D P r với Qr , Pr là các ma trận tạo nên từ các cột của Q và P tương
ứng
2.3.2 Các bước phân tích SVD
Bước 1: Tìm ma trận A A → chéo

hóa trực giao→ tìm các cột của Q
Bước 2: Tìm ma trận A A →chéo

hóa trực giao →tìm các cột của P
T

Bước 3: Sắp xếp các singular value của A tạo thành Σ

Ví dụ 3: Tìm phân tích SVD của ma trận (−2


A=
10 5 )
11

( ) (−2
10 5 ) ( 28 )
T
Ta có: A⊺ A= −2 11 11 = 104 28
10 5 146

Khi này ta có trace ( A⊺ A ) = 250


Thành lập phương trình đặc trưng det ( A⊺ A− λI ¿=0 , tacó :

det ( A

A− λI ¿=0 ⇔det ⁡ ( 104−λ
28
28
146−λ)=0

⇔ (104−λ ¿ (146−λ ¿−282=0


2
⇔ λ −250 λ +14400=0

Giải phương trình trên ta có nghiệm λ 1=90 và λ 2=160.Khi đó ta có các giá trị
σ i lần lượt là σ 1=3 √ 10 , σ 2=4 √ 10
Vậy Σ= √0
3 10
( 0
4 √10 )
Trong trường hợp λ 1=90 ta có:

A A− λ1 I = (1428 2856) →(10 20)
Vậy ta có nghiệm của hệ phương trình trên là (−21) t , t ∈ R . Chọnt=1 ,ta có
¿

vecto riêng ứng với giá trị riêng λ 1=90 và p1 = (−21). Ta chuẩn hóa vecto
bằng chuẩn Euclide như sau

‖ p1‖2= ‖( )‖ √
−2
1
= (−2 ) +1 = √ 5
2 2

Khi đó vecto riêng là:


p1 =
'
( )
1 −2
√5 1
Làm tương tự với λ 2=160ta cũng được vecto riêng là
p2 =
'
()
1 1
√5 2
( )
T
T 1 −2 1
Vậy PT =[ p'1 , p'2 ] =
√5 1 2

( )( ) ( )
T
Ta lại có: A A⊺= −2 11 −2 11 = 125 35
10 5 10 5 35 125

Thành lập phương trình đặc trưng det ( ⊺


A A − λI ¿=0 , tacó :

det (

A A − λI ¿=0 ⇔det ⁡ ( 125−λ
35
35
125−λ
=0 )
2 2
⇔(125−λ) −35 =0

⇔(160−λ)(90−λ)=0

Giải phương trình trên ta có nghiệm λ 3=90 và λ4 =160.


Trong trường hợp λ 3=90 ta có:
:

A A − λ1 I = (3535 3535) →( 10 10)
Vậy ta có nghiệm của hệ phương trình trên là (−11 ) t , t ∈ R . Chọnt=1 ,ta có
¿

(1)
vecto riêng ứng với giá trị riêng λ 1=90 và q 1= −1 . Ta chuẩn hóa vecto

bằng chuẩn Euclide như sau:

‖q3‖2 = (‖ −11 )‖= √(−1) +1 =√ 2


2 2

'
q 3= ( )
1 1
√2 −1
Làm tương tự với λ 4=160 ta cũng được vecto riêng là
q 4=
'
()
1 1
√2 1

Vậy Q= [ q1 , q 2 ]= √ (
2 1 1
2 −1 1 )

( )( )( )
T

Vậy ta kết luận A=QΣ PT = 1 1 3 0 −2 1


−1 1 0 4 1 2

Nhận xét: Để tìm phân tích SVD của ma trận chúng ta phải thực hiện
tiến hành chéo hóa trực giao hai ma trận. Trong khi ma trận là ma trận
vuông bậc hai, còn là ma trận vuông bậc năm, việc giải bài toán chéo
hoá trựcgiao hai bài toán này tốn rất nhiều thời gian nếu không có công
cụ hỗ trợ máy tính. Để tiết kiệm thời gian tính toán, chúng ta có thể sử
dụng một công cụ hỗ trợ toán học rất hữu ích đó là MATLAB.
Giải bài toán bằng
Matlab

Bước 1: Nhập vào ma


trận mà ta muốn
phân tích

Bước 2: Sử dụng hàm


được lập trình sẵn
của Matlab để phân
tích SVD với cú pháp:
[U, S, V] =svd(A)

Bước 3: Nhấn Enter


ta thu được kết quả
sau khi phân tích SVD
như hình bên

Hình 1. Kết quả phân tích SVD sử dụng Matlab

CHƯƠNG 3. PHÂN TÍCH SVD TRONG HỆ THỐNG GỢI Ý TRONG HỌC


MÁY (MACHINE LEARNING)
3.1 Giới thiệu hệ thống gợi ý (Recommender Systems)
Hệ thống gợi ý là hệ thống hỗ trợ ra quyết định nhằm gợi ý các thông
tin liên quan đến người dùng một cách dễ dàng và nhanh chóng, phù
hợp với từng người dùng.
Hệ thống gợi ý nhằm dựa vào sở thích, thói quen, nhu cầu,... trong quá
khứ c ủa người sử d ụng để d ự đoán sở thích trong tương lai và hướng
dẫn những người dùng thiếu kinh nghiệm hoặc chưa đủ thẩm quyền để
đánh giá số lượng áp đảo các item thay thế.

Phương pháp, kỹ thuật nổi trội nhất hiện nay trong RS là kỹ thật SVD
(Singular Value Decomposition), kỹ thuật phân rã ma trận (matrix
factorization – MF), kỹ thuật NN-MF (Nonnegative Matrix
Factorization)

3.1.1 Các phương pháp gợi ý


Các hệ thống gợi ý thường được phân ba loại dựa trên cách nó dùng để
ước lượng hạng của sản phẩm:

- Dựa trên nội dung (Content – based): người dùng được gợi ý
những sản phẩm tương tự như các sản phẩm từng được họ đánh giá
cao
+ Điểm mạnh: không yêu cầu số lượng người dùng lớn, dựa
vào thông tin sẵn có để đưa ra gợi ý

+ Điểm yếu: có những items không có nhóm cụ thể và việc


xác định nhóm hoặc đặc trưng của từng item đôi khi là bất khả thi.

- Dựa trên lọc cộng tác (collaborative): người dùng được gợi ý
những sản phẩm mà người có cùng sở thích với họ đánh giá cao

+ Điểm mạnh: dự đoán sở thích, nhu cầu của người tiêu


dùng mà không cần hiểu sản phẩm; gợi ý được những sản phẩm mới
phù hợp sở thích mới

+ Điểm yếu: không thể gợi ý nếu khách hàng chưa có dữ liệu
về lịch sử tương tác mặt hàng; không gợi ý được những sản phẩm mới
hoặc sản phẩm chưa được ai đánh giá

- Lai ghép (hybrid): kết hợp cả hai phương pháp trên


3.1.2 Chức năng hệ thống gợi ý
- Đối với nhà cung cấp
+ Tăng số lượng các sản phẩm bán ra cho các hệ thống
thương mại điện tử.
+ Bán các sản phẩm đa dạng hơn trên các hệ thống thương
mại điện tử.
+ Hiểu rõ những gì người dùng muốn.
- Đối với người dùng
+ Tìm ra tất cả sản phẩm tốt
+ Được gợi ý liên tục.
+ Bày tỏ ý kiến của mình
3.2 Ứng dụng phân tích SVD vào hệ thống gợi ý trong học máy (machine
Learning)
3.2.1 Bài toán tổng quát của hệ thống gợi ý
Bài toán tư vấn được coi là bài ước lượng trước hạng (rating) của các
sản phẩm chưa được người dùng xem xét. Việc ước lượng này thường
được dựa trên những đánh giá đã có của chính người dùng đó hoặc
những người dùng khác. Những sản phẩm có hạng cao nhất sẽ được
dùng để tư vấn. Một cách hình thức bài toán được mô tả như sau:

i1 i2 … in
u1 r 11 r 12 … r1 n
u2 r 21 r 22 … r2 n
… … … … …
um rm 1 rm 2 … r mn
 Trong hệ thống gợi ý người ta quan tâm đến 3 đối tượng: người
dùng (user), sản phẩm (item) và các phản hồi của người dùng trên
sản phẩm, thường là các xếp hạng (rating).
o Gọi U là tập tất cả người dùng (users) có giá trị trong khoảng
{1,m}
o I là tập hợp tất cả các sản phẩm (items) sẽ được gợi ý có giá trị
trong khoảng {1,n}
o Hàm f(u , i) đo độ phù hợp (hay hạng) của sản phẩm i với người
dùng u
f (u , i)→ R

o R là tập hợp các giá trị ước lượng sở thích người dùng và r ui ∈ R là
xếp hạng của người dùng u cho sản phẩm i. Tập hợp những rating
r của người dùng (bao gồm những giá trị chưa biết) tạo thành ma
trận utility matrix
Với mỗi người dùng u U , cần tìm sản phẩm i  I , sao cho hàm f(u , i)
đạt giá trị lớn nhất:
∀ u ∈U i u=¿ arg max f ( u , i )
Vấn đề chính của hàm tư vấn: hàm f(u , i) không được xác định trên toàn
không gian U x I mà chỉ trên một miền nhỏ của không gian đó. Những ô
trống là những item chưa được xem ( điều đáng lưu ý là mỗi user chỉ
mua vài item trong quá khứ, do vậy còn rất nhiều ô còn trống trong ma
trận này – còn gọi là ma trận thưa – sparse matrix)
Sản phẩm A Sản phẩm B Sản phẩm C Sản phẩm D Sản phẩm E
Người tiêu 5 4 ? 2 3
dùng 1
Người tiêu ? 0 2 ? 1
dùng 2
Người tiêu 2 ? ? 3 ?
dung 3
Người tiêu 1 0 5 ? 2
dùng 4
Người tiêu ? 5 ? 0 4
dùng 5
Người tiêu 4 1 3 ? ?
dùng 6

Nhiệm vụ chính của RS: dựa vào các ô đã có giá trị trong ma trận để dự
đoán các ô còn trống, sau đó sắp xếp kết quả dự đoán và chọn ra
những item phù hợp nhất gợi ý cho người dùng
3.2.2 Các bước xử lí
• Lập user-item matrix.
• Tách user-item matrix thành hai thừa số: user matrix và item matrix.
• Mỗi người dùng tương ứng với một hàng trên user matrix.
• Mỗi sản phẩm tương ứng với một cột trên item matrix.
• Ước tính độ phù hợp bằng tích vô hướng của vector người dùng và
vector sản
phẩm.
• Ước tính độ tương tự bằng cách so sánh các vector người dùng với
nhau (hoặc
các vector sản phẩm với nhau)
X U S ⊺
V ¿
¿

( )(
x 11 x 12 … x 1n

)( )( )
u 11 … u1 r s 11 0 … v 11 … v 1 n
x 21 x 22 … x2n
= ⋮ ⋮ ⋮ 0 ⋱ ⋮ ⋮ ⋮ ⋮
⋮ ⋮ ⋮ …
um 1 … umr ⋮ … srr v r 1 … v rn
xm1 xm2 … x mn
Trong đó:
+ Ma trận User là tích hai ma trận U và S
+ Ma trận Item là ma trận V ⊺.
⇒ Nhờ phương pháp phân tích SVD, ta loại bỏ thông tin bằng cách bỏ
bớt các chiều cuối cùng
CHƯƠNG 4: MATLAB

ui

You might also like