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

Hệ gợi ý luận văn thạc sĩ

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.47 MB, 67 trang )

..

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
--------------------------------------PHẠM ANH MINH

Phạm Anh Minh

CÔNG NGHỆ THÔNG TIN

HỆ GỢI Ý

LUẬN VĂN THẠC SĨ KỸ THUẬT
CÔNG NGHỆ THÔNG TIN

2015B
Hà Nội – Năm 2018


BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
--------------------------------------Phạm Anh Minh

HỆ GỢI Ý

Chuyên ngành : Công nghệ thơng tin

LUẬN VĂN THẠC SĨ KỸ THUẬT
CƠNG NGHỆ THƠNG TIN

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


1. PGS. TS. LÊ THANH HƯƠNG

Hà Nội – Năm 2018


Lời cam đoan
Tôi xin cam đoan: Luận văn thạc sĩ Công nghệ thông tin với đề tài: “Hệ gợi ý”
là cơng trình nghiên cứu thật sự của cá nhân tơi dưới sự hướng dẫn của PGS. TS. Lê
Thanh Hương. Các kết quả nêu trong luận văn là trung thực và chưa từng được cơng bố
trong bất kì cơng trình nào khác.
Tôi xin chịu trách nhiệm về lời cam đoan này.
Hà Nôi, ngày tháng năm 2018
Tác giả

Phạm Anh Minh

1


LỜI CẢM ƠN
Sau nhiều tháng tìm hiểu, nghiên cứu, với sự chỉ dạy nhiệt tình của thầy giáo
hướng dẫn tơi đã hoàn thành luận văn tốt nghiệp.
Trước hết em xin chân thành cảm ơn thầy giáo PGS. TS. Lê Thanh Hương - Viện
Công nghệ thông tin và Truyền thông – Đại học Bách khoa Hà Nội, người đã trực tiếp
hướng dẫn, nhận xét, nhắc nhở, giúp đỡ em trong suốt quá trình thực hiện luận văn. Em
xin chân thành cảm ơn các thầy, cô trong Viện Công nghệ thông tin và Truyền thông,
Viện đào tạo sau đại học và các thầy cô trong trường Đại học Bách khoa Hà Nội,
những người dạy dỗ, chỉ bảo em trong những năm học tập và nghiên cứu tại trường.
Cuối cùng tôi xin bày tỏ lịng biết ơn đến gia đình và những người bạn thân, đồng
nghiệp đã giúp đỡ, động viên tôi rất nhiều trong quá trình học tập và làm luận văn.

Do năng lực kiến thức chun mơn cịn có phần hạn chế nên luận văn em thực
hiện chắc chắn không tránh khỏi những thiếu sót nhất định, rất mong nhận được sự
thơng cảm và ý kiến đóng góp của thầy, cơ giáo.
Em xin chân thành cảm ơn!
Hà Nôi, ngày tháng năm 2018
Tác giả

Phạm Anh Minh

2


MỤC LỤC
Lời cam đoan .................................................................................................................... 1
LỜI CẢM ƠN .................................................................................................................. 2
MỤC LỤC ........................................................................................................................ 3
Danh mục các ký hiệu và chữ viết tắt .............................................................................. 5
Danh mục hình ảnh .......................................................................................................... 6
Danh mục các bảng .......................................................................................................... 7
MỞ ĐẦU .......................................................................................................................... 9
1.

Lý do chọn đề tài ................................................................................... 9

2.

Mục đích nghiên cứu luận văn, đối tượng, phạm vi nghiên cứu ........ 10

3.


Tóm tắt nội dung chính ....................................................................... 10
Tổng quan về hệ gợi ý .................................................................... 12

1.1.

Giới thiệu về hệ gợi ý ......................................................................... 12

1.2.

Ứng dụng của hệ gợi ý ........................................................................ 12

1.3.

Các phương pháp chính xây dựng hệ gợi ý ........................................ 14
Các phương pháp xây dựng hệ gợi ý .............................................. 16

2.1.

Rating matrix ...................................................................................... 16
2.1.1.

Khái niệm rating matrix ............................................................ 16

2.1.2.

Xây dựng Rating Matrix ........................................................... 17

2.2.

Content-based Recommendation Systems .......................................... 18

2.2.1.

Cơ sở lý thuyết .......................................................................... 19
3


2.2.2.

Ví dụ với tập dữ liệu MovieLens 100k ..................................... 27

2.2.3.

Đánh giá mơ hình ...................................................................... 31

2.3.

Neighborhood-based Collaborative Filtering ..................................... 33
2.3.1.

Cơ sở lý thuyết .......................................................................... 33

2.3.2.

Ví dụ với tập dữ liệu MovieLens 100k ..................................... 43

2.3.3.

Đánh giá mơ hình ...................................................................... 45
Xây dựng ứng dụng thử nghiệm ..................................................... 47


3.1.

Bài toán thử nghiệm ............................................................................ 47
3.1.1.

Mục tiêu thử nghiệm ................................................................. 47

3.1.2.

Mơ tả bài tốn ........................................................................... 47

3.2.

Xây dựng hệ thống gợi ý .................................................................... 47
3.2.1.

Thu thập dữ liệu ........................................................................ 48

3.2.2.

Tiền xử lý dữ liệu ...................................................................... 49

3.2.3.

Xây dựng rating matrix ............................................................. 54

3.2.4.

Xây dựng mơ hình gợi ý ........................................................... 55


3.3.

3.4.

Kiểm thử hệ thống .............................................................................. 58
3.3.1.

Phương pháp kiểm thử .............................................................. 58

3.3.2.

Kết quả thử nghiệm ................................................................... 59
Đánh giá hệ thống thử nghiệm ............................................................ 61

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ..................................................................... 62
TÀI LIỆU THAM KHẢO.............................................................................................. 64

4


Danh mục các ký hiệu và chữ viết tắt
STT

Chữ viết tắt

Giải thích

1

RS


Recommendation System

2

CBRS

Content-based Recommendation System

3

NBCF

Neighborhood-based Collaborative Filtering

4
5

5


Danh mục hình ảnh
Hình 1.

Hệ thống gợi ý sản phẩm của Lazada ................................................. 13

Hình 2.

Hệ thống gợi ý từ khóa tìm kiếm của Google ..................................... 14


Hình 3.

Gợi ý sản phẩm được tìm kiếm nhiều nhất của Lazada ...................... 15

6


Danh mục các bảng
Rating matrix thể hiện đánh giá của người dùng với các bộ phim ..... 17
Vector đặc trưng của các bộ phim ...................................................... 20
Mơ hình cần tối ưu cho người dùng .................................................... 22
Rating matrix cho 5 người dùng và 10 sản phẩm đầu tiên ................. 28
Vector hồ sơ sản phẩm cho 10 bộ phim đầu tiên ................................ 29
Sai số đối với 2 tập dữ liệu training và test ......................................... 31
Rating matrix sau khi điền thêm các giá trị trung bình cộng .............. 35
Rating matrix sau khi đã chuẩn hóa .................................................... 36
Giá trị tương tự của các người dùng ................................................... 38
Ma trận dự đoán về độ quan tâm của người dùng đến các bộ phim . 40
Giá trị dự đoán phục hồi về dạng ban đầu ........................................ 41
Bảng dự đoán các giá trị đánh giá ..................................................... 42
Sai số trên tập dữ liệu test với k khác nhau ...................................... 44
Thông tin 5 người dùng đầu tiên ....................................................... 48
Thông tin về điện thoại đã và đang sử dụng của 5 người dùng đầu
tiên

49
Nghề nghiệp và giá trị tương ứng ..................................................... 50
Sở thích và giá trị tương ứng ............................................................ 50
Thuộc tính của giá trị tuổi ................................................................. 51
Phân chia tuổi theo nhóm tuổi .......................................................... 51

Thông tin 5 người dùng đầu tiên sau khi tiền xử lý .......................... 52
7


Thông tin sử dụng điện thoại của 5 người dùng đầu tiên sau khi
chuẩn hoá

53
Hồ sơ người dùng của 5 người dùng đầu tiên ................................... 57
Vector đặc trưng của 5 người dùng đầu tiên ..................................... 58
Sai số của mơ hình trong trường hợp 1 ............................................. 59
Sai số của mơ hình trong trường hợp 2 ............................................. 60

8


MỞ ĐẦU
1. Lý do chọn đề tài
Ngày nay khi internet đang ngày càng phát triển, tạo tiền đề cho sự phát triển
của hàng loạt các ứng dụng machine learning nhằm phục vụ cho mọi mặt trong cuộc
sống của con người. Trong đó “Hệ gợi ý” (Recommendation System) chính là một ứng
dụng nổi bật và phổ biến nhất len lỏi vào mọi ngóc ngách trong cuộc sống con người
đặc biệt là trong lĩnh vực thương mại điện tử.
Hiện nay thay vì phải ra tận cửa hàng để mua sắm sản phẩm như trước, giờ đây
người tiêu dùng chỉ việc truy cập vào các trang thương mại điện tử đặt mua các sản
phẩm mà hệ thống gợi ý và chờ sản phẩm được giao đến tay mình. Quả thật các trang
thương mại điện tử đang phát triển nhanh chóng và đem đến nhiều sự tiện lợi cho
người tiêu dùng. Và để phục vụ ngày càng tốt hơn cho người tiêu dùng, mỗi trang
thương mại điện tử đều phải trang bị cho mình một hệ thống gợi ý sản phẩm tốt nhất
đến mỗi người tiêu dùng, các hệ thống gợi ý này được gọi chung là “Hệ gợi ý”.

Khơng chỉ có trong các trang thương mại điện tử mà hiện nay hệ gợi ý còn được
áp dụng rộng rãi trong nhiều lĩnh vực khác như giải trí, học tập, tìm kiếm, mạng xã hội,
… với các ứng dụng khác nhau nhằm đem lại trải nghiệm tốt nhất cho người dùng.
Vì vậy nhằm bắt kịp được xu thế phát triển của công nghệ trong thời đại cách
mạng công nghiệp 4.0 hiện nay việc nghiên cứu về các thuật toán và ứng dụng của
machine learning nói chung và hệ gợi ý nói riêng là có ý nghĩa quan trọng.

9


2. Mục đích nghiên cứu luận văn, đối tượng, phạm vi nghiên cứu
Mục đích nghiên cứu:
- Hiểu được khái quát về hệ gợi ý
- Nghiên cứu các thuật toán và phương pháp xây dựng hệ gợi ý.
- So sánh và đánh giá ưu nhược điểm của các phương pháp xây dựng hệ gợi ý.
- Xây dựng một ứng dụng thử nghiệm của hệ gợi ý phục vụ cho mục đích gợi ý
việc mua điện thoại smartphone.
Đối tượng nghiên cứu
- Các thuật toán và phương pháp xây dựng một hệ gợi ý.
- Các thư viện và câu lệnh python phục vụ cho mục đích xây dựng hệ gợi ý
Phạm vi nghiên cứu
- 2 phương pháp chính để xây dựng hệ gợi ý
- Ứng dụng python để xây dựng hệ gợi ý mua điện thoại smartphone.

3. Tóm tắt nội dung chính
Luận văn bao gồm phần mở đầu, 3 chương chính và cuối cùng là phần kết luận
và hướng phát triển, cụ thể:
Phần mở đầu
Chương 1: Tổng quan về hệ gợi ý
Nội dung chương này bao gồm: Định nghĩa và khái niệm về hệ gợi ý; các ứng

dụng của hệ gợi ý trong thực tế; Giới thiệu và phần loại các phương pháp xây dựng hệ
gợi ý.

10


Chương 2: Các phương pháp xây dựng hệ gợi ý
Nội dung chính của chương này gồm: Hai Phương pháp xây dựng hệ gợi ý là
Content-based Recommendation System và Neighborhood-based Collaborative
Filtering, ví dụ cũng như ưu-nhược điểm của từng phương pháp.
Chương 3: Xây dựng ứng dụng thử nghiệm
Nội dung chương này gồm: Giới thiệu về bài toán thử nghiệm, xây dựng mơ
hình gợi ý và đánh giá kết quả của mơ hình đã xây dựng cho bài tốn gợi ý mua điện
thoại smartphone.
Kết luận và hướng phát triển
Tài liệu tham khảo

11


Tổng quan về hệ gợi ý
1.1. Giới thiệu về hệ gợi ý
Hệ gợi ý (Recommendation System hay Recommender System viết tắt là RS) là
một dạng của hệ thống lọc thông tin (information filtering system), nó được sử dụng để
dự đốn sở thích (preferences) hay xếp hạng (rating), gọi chung là mức độ quan tâm, mà
người dùng có thể dành cho một mục thơng tin (item có thể là bài hát, bộ phim, đoạn
video clip, sách, bài báo, …) mà họ chưa xem xét tới trong quá khứ [1].
Trong hệ gợi ý, ta thường cần quan tâm đến 3 thông tin chính là người dùng (user),
sản phẩm (item) và phản hồi (feedback) hay còn được gọi mức độ quan tâm của người
dùng đối với sản phẩm. Đặc điểm của các thông tin này là người dùng thường chỉ phản

hồi cho một số lượng rất nhỏ các sản phẩm, và nhiệm vụ của hệ gợi ý sẽ là dựa trên số
lượng rất nhỏ những phản hồi ấy để dự đoán được phản hồi có thể có của người dùng đối
với sản phẩm mà họ chưa phản hồi trong hệ thống. Rồi từ đó hệ thống sẽ lựa chọn các
sản phẩm có mức độ phản hồi hay mức độ quan tâm tích cực nhất để gợi ý tới người dùng.

1.2. Ứng dụng của hệ gợi ý
Hệ gợi ý được ứng dụng trong nhiều lĩnh vực khác nhau, trong đó nổi bật nhất là
các hệ thống thương mại điện tử (chẳng hạn như amazon ở Mỹ hay Lazada ở Việt Nam),
nhằm tối ưu khả năng mua sắm hàng hóa (item) của khách hàng (user). Các hệ thống này
quan tâm đến việc những khách hàng nào ‘sẽ yêu thích’ những sản phẩm nào dựa trên các
dữ liệu về việc mua sắm hoặc đánh giá hay tìm kiếm sản phẩm, … của khách hàng trong
quá khứ. Hình 1 bên dưới là minh họa cho hệ thống gợi ý sản phẩm của Lazada [2].

12


Hình 1.

Hệ thống gợi ý sản phẩm của Lazada

Ngồi lĩnh vực thương mại điện tử, trong thực tế hệ gợi ý cịn được ứng dụng khá
thành cơng trong nhiều lĩnh vực khác như trong giải trí (các hệ thống gợi ý bài hát như
của Spotify
Youtube

[5]

[3]

, hệ thống gợi ý phim ảnh của Netflix


[4]

, hệ thống gợi ý video clip của

, …), trong giáo dục và đào tạo (các hệ thống gợi ý sách, báo, …), trong các

mạng xã hội (với các hệ thống gợi ý bạn bè, gợi ý bài viết, …) và nhiều lĩnh vực khác
nữa. Hình 2 bên dưới là ví dụ về hệ thống gợi ý từ khóa tìm kiếm của Google [6].

13


Hình 2.

Hệ thống gợi ý từ khóa tìm kiếm của Google

1.3. Các phương pháp chính xây dựng hệ gợi ý
Hiện nay với sự phát triển mạnh mẽ của các hệ gợi ý, đã có rất nhiều phương pháp
xây dựng hệ gợi ý đã và đang được phát triển. Tuy nhiên tự chung lại chúng ta có 2 nhóm
phương pháp chính để xây dựng hệ gợi ý:
- Content-based Systems: là nhóm phương pháp thực hiện việc gợi ý dựa vào hồ
sơ (profiles) của người dùng hoặc dựa vào các nội dung/thuộc tính của những sản phẩm
tương tự như những sản phẩm mà người dùng đã chọn trong quá khứ [8].
- Collaborative Filtering: là nhóm phương pháp gợi ý dựa trên sự tương quan
giữa các người dùng hoặc các sản phẩm với nhau

[9]

. Hay có thể hiểu rằng ở nhóm này


một sản phẩm được gợi ý tới một người dùng dựa trên những người dùng có hành vi
tương tự. Trong nhóm này có nhiều phương pháp khác nhau nhưng trong luận văn này sẽ

14


chỉ đề cập đến một phương pháp điển hình cho nhóm này đó là phương pháp
Neighborhood-based Collaborative Filtering.
Ngồi 2 nhóm phương pháp đã kể ở trên, trong thực tế còn một số nhóm phương
pháp khác cũng đang được sử dụng như là:
- Nhóm phương pháp lai ghép (Hybrid recommendation Systems)

[9]

. Nhóm

phương pháp này được thực hiện bằng cách kết hợp cả 2 phương pháp trên.
- Nhóm phương pháp khơng cá nhân hóa (non-personalize): Đây là nhóm phương
pháp đơn giản nhất, việc gợi ý không được dựa trên các thông tin về của người dùng mà
lựa chọn những sản phẩm được “quan tâm” trong thời gian gần đây để làm sản phẩm
được gợi ý cho người dùng, ví dụ như là các sản phẩm bán chạy nhất, được tìm kiếm
nhiều nhất, hay được đánh giá cao nhất hoặc được thảo luận nhiều nhất, …. Ưu điểm của
phương pháp này là không cần biết về thông tin cũng như lịch sử sử dụng của người dùng,
tuy nhiên phương pháp này lại có 1 nhược điểm đó là các sản phẩm được gợi ý là giống
nhau đối với tất cả người dùng, do vậy độ hiệu quả của việc gợi ý là không cao. Hình 2 là
minh họa cho việc gợi ý các sản phẩm được tìm kiếm nhiều nhất của Lazada. Tuy
phương pháp này được áp dụng rất nhiều trong các trang thương mại điện tử hiện nay,
nhưng do tính chất đơn giản của nó nên sẽ khơng được nghiên cứu chi tiết trong luận văn
này.


Hình 3.

Gợi ý sản phẩm được tìm kiếm nhiều nhất của Lazada

15


Các phương pháp xây dựng hệ gợi ý
Trong trương này chúng ta sẽ đi nghiên cứu 2 phương pháp đặc trưng cho 2 nhóm
phương pháp Content-based System và Collaborative Filtering đã nêu trên với mục đích
tìm ra phương pháp cơ bản xây dựng hệ gợi ý, so sánh độ chính xác giữa các phương
pháp cũng như các yếu tố ảnh hưởng tới độ chính xác của q trình gợi ý.
Tuy nhên trước khi tìm hiểu về 2 phương pháp xây dựng hệ gợi ý, ta cần tìm hiểu
về một thành phần khơng thể thiếu trong mỗi hệ gợi ý đó là Rating matrix hay cịn có
cách gọi khác là Rating matrix.

2.1. Rating matrix
Dữ liệu chính là một thành phần khơng thể thiếu trong các hệ thống học máy nói
chung và đặc biệt là hệ gợi ý nói chung. Ngồi ra bên cạnh việc thu thập được nhiều dữ
liệu nhất có thể thì việc tổ chức các dữ liệu ấy cũng vô cùng quan trọng, và một trong các
cách tổ chức dữ liệu thường được sử dụng trong các hệ gợi ý đó là Rating matrix (cịn có
cách gọi khác là utility matrix). Vì vậy trong phần này sẽ đề cập đến khái niệm và cách
xây dựng rating matrix.

2.1.1. Khái niệm rating matrix
Như đã đề cập từ trước, trong các hệ gợi ý đề có 2 loại thực thể chính là người
dùng (user) và sản phẩm (item). Mỗi người dùng sẽ có mức độ quan tâm (degree of
preference) khác nhau đến các sản phẩm khác nhau. Mức độ quan tâm này, nếu đã biết
trước (nằm trong tập huấn luyện) sẽ được gán cho một giá trị tương ứng với mỗi cặp

người dùng-sản phẩm (user-item) [8].
Giả sử rằng mức độ quan tâm này được được đo bằng giá trị mà người dùng đánh
giá (rate) cho sản phẩm, tạm gọi là các đánh giá, với các giá trị là 1, 2, 3, 4 và 5 giống
như việc đánh giá sản phẩm trên các trang thương mại điện tử. Cũng giống như tại các
trang thương mại điện tử, người dùng thường chỉ đánh giá cho 1 hoặc một vài sản phẩm,
nên sẽ có rất nhiều giá trị đánh giá là chưa xác định và cần được dự đoán. Tập hợp tất cả
16


các giá trị đánh giá bao gồm cả các giá trị đã xác định và chưa xác định cần được dự đoán
sẽ tạo thành một ma trận được gọi là rating matrix.
Ví dụ, ta có 4 người dùng là A, B, C, D và 7 bộ phim Harray Poster phần 1, Harry
Poster phần 2, Harry Poster phần 3, Twilight, Star Wars 1, Star Wars 2 và Star Wars 3
được kí hiệu lần lượt là HP1, HP2, HP3, TW, SW1, SW2, SW3. Các giá trị đánh của
người dùng đối với 1 bộ phim có thể nhận các giá trị từ 1 sao đến 5 sao tương ứng với
mức độ yêu thích của người dùng đối với bộ phim đó. Rating matrix thể hiện các giá trị
đánh giá của người dùng với các bộ phim trên được thể trong bảng 1 bên dưới

HP1

A

B

4

5

HP2


5

HP3

4

C

D

3

3

TW

5

2

SW1

1

4
5

SW2
5


SW3

1

Rating matrix thể hiện đánh giá của người dùng với các bộ phim

Trong ví dụ trên, các ơ để trống là các ô chưa xác định được giá trị cũng tương
ứng với việc người dùng ở hàng tương ứng chưa đánh giá cho bộ phim ở cột tương ứng.
Công việc của một hệ gợi ý là dự đoán giá trị cho các ơ cịn để trống này từ đó đưa ra gợi
ý cho người dùng.

2.1.2. Xây dựng Rating Matrix
Khơng có Rating Matrix, việc gợi ý sản phẩm đến người dùng gần như là khơng
thể thực hiện được. Vì vậy trong các hệ gợi ý, việc xây dựng Rating matrix là cực kì quan
17


trọng. Tuy nhiên trong thực tế việc xây dựng được ma trận này lại gặp khá nhiều khó
khan do người dùng thường rất hiếm khi hoặc thậm chí là khơng đánh giá bất kì sản
phẩm nào. Do đó trong thực tế, thường có 2 phương pháp phổ biến để xác định giá trị
mức độ quan tâm của người dùng đối với sản phẩm phục vụ cho việc xây dựng Rating
Matrix, 2 phương pháp đó là:


Phương pháp trực tiếp: đó là “nhờ” người dùng đánh giá cho các sản

phẩm mà họ đã sử dụng [8]. Phương pháp này thường được các trang thương mại điện tử
sử dụng. Ưu điểm của phương pháp này là dễ thực hiện và dễ thu thập, tuy nhiên phương
pháp này lại có nhiều nhược điểm như người dùng thường ít đánh giá sản phẩm nên
lượng thơng tin đem lại khơng nhiều, có thể gây khó chịu cho người dùng khi “đòi hỏi”

họ phải đánh giá sản phẩm, giá trị đánh giá của người dùng thường mang tính chất chủ
quan. Ngồi ra phương pháp này cịn có 1 nhược điểm nữa là dễ xuất hiện gian lận trong
đánh giá.


Phương pháp gián tiếp: đó là dựa trên các hành vi của người dùng đối với

các thông tin liên quan đến sản phẩm để đánh giá mức độ quan tâm của người dùng đối
với sản phẩm đó [8]. Ưu điểm của phương pháp này là đem lại nhiều thông tin hơn so với
phương pháp trực tiếp. Tuy nhiên để xây dựng được công thức quy đổi từ các hành vi của
người dùng sang giá trị mức độ quan tâm đối với sản phẩm lại không hề đơn giản và khó
có thể kiểm chứng.

2.2. Content-based Recommendation Systems
Sau khi đã tìm hiểu về rating matrix, ta sẽ nghiên cứu một phương pháp xây dựng
hệ gợi ý dựa trên đặc trưng của sản phẩm hoặc người dùng, đó là phương pháp Contentbased Recommendation System. Trong phần này luận văn sẽ đề cập đến các nội dung
sau:
- Cơ sở lý thuyết và xây dựng mơ hình gợi ý dựa trên phương pháp CBRS
- Đánh giá độ chính xác và các yếu tố ảnh hưởng đến độ chính xác của mơ hình
gợi ý thơng qua ví dụ với tập dữ liệu movielens 100k.
18


2.2.1. Cơ sở lý thuyết
2.2.1.1.

Hồ sơ sản phẩm – item profile

Trong các hệ thống content-based, việc gợi ý được dựa trên đặc trưng của mỗi sản
phẩm. Để làm được điều này chúng ta cần xây dựng một bộ hồ sơ cho mỗi sản phẩm

(item profile) [8], bộ hồ sơ này được biểu diễn dưới dạng toán học là một vector đặc trưng
(feature vector). Trong những trường hợp đơn giản, vector đặc trưng có thể được trích
xuất trực tiếp từ tài liệu đặc tả sản phẩm. Ví dụ khi xem xét các đặc trưng của một bộ
phim mà ta có thể sử dụng trong 1 hệ gợi ý, các đặc trưng đó có thể là:
-

Thể loại: Nhiều người thích thể loại phim viễn tưởng, trong khi 1 số khác lại
thích phim tâm lý tình cảm, một số khác lại thích phim hài.

-

Diễn viên: Cùng một thể loại phim với nội dung tương tự nhau nhưng có người
lại thích phim do Tom Cruise đóng, nhiều người lại chỉ thích phim của Johnny
Depp…

-

Đạo diễn: Nhiều người chỉ thích phim của 1 số đạo diễn nhất định mà khơng hề
thích phim của các đạo diễn khác.

-

Năm sản xuất: Các bộ phim mới hơn thường có nhiều hiệu ứng âm thanh hình
ảnh hơn làm nhiều người cảm thấy thích thú hơn, tuy nhiên một số khác lại chỉ
thích các bộ phim cũ ít hiệu ứng.

Các đặc trưng trên đều có thể xác định được rõ ràng cho từng bộ phim, bên cạnh
những yếu tố đó cịn có nhiều yếu tố khác có thể được sử dụng bao gồm cả các yếu tố có
thể xác định rõ ràng và khơng thể xác định rõ ràng.
Ví dụ, bảng dưới đây thể hiện vector đặc trưng đơn giản của các bộ phim bao gồm

2 đặc trưng là mức độ tâm lý tình cảm và mức độ hành động trong phim được tính theo
thang điểm từ 1 đến 5.

HP1

A

B

4

5

C

D

Feature vector
x1=[1, 3]

19


HP2

5

HP3

4


3

3

x2=[2, 4]
x3=[2, 3]

TW

5

2

x4=[5, 4]

SW1

1

4

x5=[3, 4]

5

x6=[2, 5]

SW2
SW3


5

1

x7=[3, 4]

Vector đặc trưng của các bộ phim

a) Trích rút đặc trưng (Feature Extraction hay Feature Engineering)
Như ta đã thấy, hồ sơ sản phẩm được tạo thành từ các đặc trưng của sản phẩm, vì
vậy một công việc bắt buộc khi xây dựng hồ sơ sản phẩm đó là trích rút đặc trưng.
Thơng thường các dữ liệu mà ta thu thập được (tạm gọi là dữ liệu thô hay raw
input) sẽ không ở dạng vector, hoặc có thể ở dạng vector nhưng có số chiều khác nhau,
hoặc cũng có thể các thơng tin này đã ở dạng vector cùng số chiều nhưng số lượng chiều
lại quá lớn như khi xử lý các bức ảnh màu với cùng độ phân giải cao thì số chiều của
vector ảnh đã xác định là kích thước ảnh nhưng kích thước này lại quá lớn dẫn tới thời
gian xử lý cũng là rất lớn. Không chỉ vậy trong nhiều trường hợp, dữ liệu thơ cịn chứa
nhiều thơng tin khơng cần thiết (hay cịn gọi là nhiễu).
Do đó cơng việc của trích rút đặc trưng là cần đưa các thơng tin dạng thơ về dạng
chuẩn hóa là các vector có số chiều bằng nhau và loại bỏ các thông tin thừa khơng cần
thiết.
b) Các bước trích rút đặc trưng
Do việc trích rút đặc trưng là rất phức tạp và phụ thuộc nhiều vào bài toán cụ thể
nên trong luận văn này sẽ khơng đề cập chi tiết đến cách thức trích rút đặc trưng mà chỉ

20


nếu ra các bước cơ bản thường được sử dụng để trích rút đặc trưng. Các bước này bao

gồm:
1. Tìm kiếm các đặc trưng trong tập dữ liệu thô
2. Quyết định đâu là đặc trưng
3. Xây dựng đặc trưng
4. Kiểm tra khả năng hoạt động của đặc trưng với mô hình đã xây dựng
5. Tối ưu đặc trưng
6. Tiếp tục tìm kiếm đặc trưng khác có thể có
Trong các bước trên việc tìm kiếm và quyết định đâu là đặc trưng là cực kì quan
trọng, nó ảnh hưởng trực tiếp đến độ chính xác của việc gợi ý. Khi đặc trưng được xác
định đúng sẽ giúp cho việc xây dựng vector đặc trưng của sản phẩm được chính xác, từ
đó hệ thống dễ dàng phân loại và tìm thấy các người dùng tương tự để đưa ra gợi ý được
chính xác nhất.
Ngoài ra bước thứ 5, tối ưu đặc trưng, cũng được coi là một bước quan trọng
không thể thiếu vì trong nhiều trường hợp sau khi các đặc trưng được xác định và các
vector đặc trưng được hình thành nhưng lại có số chiều quá lớn, dẫn đến thời gian tính
tốn là rất lớn làm giảm hiệu nâng tồn hệ thống, lúc này việc tối ưu đặc trưng bằng việc
giảm số chiều cần được cân nhắc. Tuy nhiên có một vấn đề là khi số chiều giảm xuống
thường sẽ đồng nghĩa với việc thông tin sẽ bị mất mát vì vậy cần cân nhắc và kiểm thử kĩ
trước khi quyết định có giảm số chiều của vector đặc trưng hay không.

2.2.1.2.

Hồ sơ người dùng – user’s profile

Ở trên ta đã nói về hồ sơ sản phẩm (item’s profle). Dù rằng trong phần lớn các bài
toán ta thường sử dụng vector đặc trưng cho các sản phẩm do đặc tính dễ dàng thu thập từ
đặc tả kĩ thuật của sản phẩm, tuy nhiên trong một số bài toán đặc biệt mà việc xây dựng
vector đặc trưng cho các sản phẩm là khó hoặc khơng khả thi thì ta có thể sử dụng vector
đặc trưng cho các người dùng hay còn gọi là hồ sơ người dùng hay user’s profile. Về bản
21



chất, user’s profile khơng khác gì item’s profile, chỉ khác là các đặc trưng được áp dụng
lên người dùng chứ khơng phải là sản phẩm như trong item’s profile. Chính vì sự giống
nhau này nên để tránh sự lặp lại trong luận văn sẽ không đề cập chi tiết đến user’s profile
nữa.
2.2.1.3.

Xây dựng mơ hình gợi ý

Sau khi đã có rating matrix và các vector đặc trưng cho từng sản phẩm, để thực
hiện việc gợi ý, nhiệm vụ của chúng ta là điền giá trị vào các ơ cịn trống trong rating
matrix. Để làm được việc này, ta cần xây dựng được mơ hình để có thể dự đốn mức độ
quan tâm của từng người dùng đối với từng sản phẩm. Sau đó ta có thể sử dụng các giá trị
dự đoán được này để lựa chọn các sản phẩm cần gợi ý cho người dùng
Giả sử mơ hình mức độ quan tâm của người dùng (user’s model) thứ i được kí
hiệu là fi. Như vậy để việc gợi ý được chính xác nhất, ta cần đi tối ưu mơ hình fi cho từng
người dùng.
Bảng 3 dưới đây biểu diễn mơ hình cần tối ưu cho bài tốn gợi ý các bộ phim

HP1

A

B

4

5


HP2

5

HP3

4

C

D

Feature vector
x1=[1, 3]

3

3

x2=[2, 4]
x3=[2, 3]

TW

5

2

x4=[5, 4]


SW1

1

4

x5=[3, 4]

5

x6=[2, 5]

SW2
5

SW3
User’s modes

f1

f2

1
f3

x7=[3, 4]

f4

Mơ hình cần tối ưu cho người dùng

Giả sử có N người dùng và M sản phẩm, các vector đặc trưng của sản phẩm m là
một vector hàng được kí hiệu là 𝑥𝑚 , X là ma trận đặc trưng với mỗi hàng là một vector
22


đặc trưng của một sản phẩm và ma trận rating matrix được mơ tả bằng ma trận Y, trong
đó 𝑌𝑚,𝑛 chính là mức độ quan tâm của người dùng n đối với sản phẩm m. Dễ dàng nhận
thấy rằng ma trận Y bị khuyết rất nhiều vị trí. Như vậy việc dự đoán mức độ quan tâm
của người dùng m với sản phẩm n sẽ tương đương với việc điền giá trị tại các ơ 𝑌𝑚,𝑛 cịn
trống vào ma trận Y.
Ta có:
𝑌𝑚,𝑛 = 𝑓𝑛 (𝑥𝑚 )

(1)

Ta nhận thấy đây là cơng thức điển hình của bài tốn hồi quy (Regression), để phù
hợp với mục đích nghiên cứu, ta giả sử mơ hình có dạng tuyến tính Linear Regression [13]
(trong thực tế mơ hình có thể có dạng phi tuyến tính), như vậy cơng thức (1) có thể được
viết lại dưới dạng sau đây:
𝑌𝑚,𝑛 = 𝑓𝑛 (𝑥𝑚 ) = 𝑥𝑚 ∗ 𝑤𝑛

(2)

Trong đó:
𝑤𝑛 : là vector cột, là vector trọng số ứng với các đặc trưng của người dùng n
𝑥𝑚 : là vector hàng, là vector đặc trưng ứng với hồ sơ của sản phẩm m
Giả sử, ta đã xây dựng được mơ hình cho người dùng i, hay chính là việc ta đã tìm
được 𝑤𝑖 . Gọi 𝑌̂𝑖,𝑗 là giá trị dự đoán về mức độ quan tâm của người dùng thứ i đối với sản
phẩm j. Ta có:
𝑌̂𝑖,𝑗 = 𝑥𝑗 ∗ 𝑤𝑖

Lúc này, sai số giữa giá trị thực 𝑌𝑖,𝑗 và giá trị dự đoán 𝑌̂𝑖,𝑗 là:
𝑒𝑖,𝑗 = 𝑌̂𝑖,𝑗 − 𝑌𝑖,𝑗 = 𝑥𝑗 ∗ 𝑤𝑖 − 𝑌𝑖,𝑗

(3)

Để việc gợi ý được chính xác nhất thì địi hỏi 𝑒𝑖,𝑗 phải nhỏ nhất, cũng tương đương
với giá trị của biểu thức sau đây phải nhỏ nhất:
1
2

1
2
𝑒𝑖,𝑗
= (𝑌̂𝑖,𝑗 − 𝑌𝑖,𝑗 )2 =
2

1
2

(𝑥𝑗 ∗ 𝑤𝑖 − 𝑌𝑖,𝑗 )2
23

(4)


×