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

Nghiên cứu phương pháp học sâu cho lọc cộng tác (LV 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.88 MB, 65 trang )

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
---------------------------------------

TRƯƠNG THỊ HẬU

NGHIÊN CỨU PHƯƠNG PHÁP HỌC SÂU
CHO LỌC CỘNG TÁC
CHUYÊN NGÀNH : KHOA HỌC MÁY TÍNH
MÃ SỐ:

60.48.01.01 (Khoa học máy tính)

LUẬN VĂN THẠC SĨ KỸ THUẬT

NGƯỜI HƯỚNG DẪN KHOA HỌC: TS. NGUYỄN DUY PHƯƠNG

HÀ NỘI – 2016


LỜI CAM ĐOAN
Tôi cam đoan đây là công trình nghiên cứu của riêng tôi.
Các số liệu, kết quả nêu trong luận văn là trung thực và chưa từng được ai công bố
trong bất kỳ công trình nào khác.

TÁC GIẢ LUẬN VĂN

TRƯƠNG THỊ HẬU


LỜI CẢM ƠN
Trong suốt quá trình học tập cũng như thực hiện luận văn, tôi đã nhận được


rất nhiều những sự quan tâm giúp đỡ, hưỡng dẫn tận tình của các thầy cô cùng với
những lời động viên khuyến khích từ phía gia đình, bạn. Tôi xin bày tỏ lời cảm ơn
chân thành đến tất cả mọi người.
Tôi xin tỏ lòng biết ơn sâu sắc đến thầy Nguyễn Duy Phương đã tận tình
hướng dẫn, định hướng cho tôi trong quá trình thực hiện đề tài. Thầy cho tôi
những lời khuyên, chỉ dẫn, truyền đạt cho tôi những kiến thức, kinh nghiệm về
việc thực hiện luận văn.
Tôi xin cảm ơn các thầy cô trong khoa Quốc tế và đào tạo sau đại học, học
viện Công nghệ Bưu chính Viễn thông đã tận tình dạy dỗ và cho tôi những kiến
thức bổ ích trong suốt quá trình hai năm học tập, giúp tôi nâng cao được chuyên
môn, làm nền tảng để tôi có thể hoàn thành khóa luận, cũng như tự tin phát triển
công việc sau này.
Cuối cùng, tôi muốn gửi lời cảm ơn tới gia đình và bạn bè, những người thân
đã luôn ở bên, cảm thông, hỗ trợ, giúp đỡ tôi những khó khăn trong công việc,
cuộc sống cũng như trong quá trình học tập.
Hà Nội, tháng 11 năm 2016
Trương Thị Hậu


i

MỤC LỤC

DANH MỤC CÁC CHỮ VIẾT TẮT ................................................................................iii
DANH MỤC HÌNH VẼ VÀ SƠ ĐỒ .................................................................................. iv
DANH MỤC BẢNG BIỂU .................................................................................................. v
MỞ ĐẦU ............................................................................................................................... 1
CHƯƠNG 1. GIỚI THIỆU VỀ DEEP LEARNING ....................................................... 3
1.1.


Tổng quan về Deep Learning ............................................................................... 3

1.1.1.

Định nghĩa ...................................................................................................... 3

1.1.2.

Lịch sử ............................................................................................................. 4

1.1.3.

Ứng dụng ......................................................................................................... 6

1.2.

Phân loại các phương pháp học sâu .................................................................... 9

1.2.1.

Mạng học sâu có giám sát .............................................................................. 9

1.2.2.

Phương pháp học sâu không giám sát ......................................................... 11

1.2.3.

Mạng học sâu kết hợp................................................................................... 11


1.3.

Kết luận chương .................................................................................................. 12

CHƯƠNG 2. DEEP LEARNING CHO LỌC CỘNG TÁC ........................................... 14
2.1.

Giới thiệu về phương pháp tư vấn dựa trên kỹ thuật lọc cộng tác ................. 14

2.1.1.

Giới thiệu về hệ thống tư vấn ....................................................................... 14

2.1.2.

Tư vấn dựa trên lọc cộng tác ........................................................................ 15

2.2.

Giới thiệu về máy Bolzmman ((Botlzmann Machine)) .................................... 21

2.2.1.

Mô hình máy Bolzman.................................................................................. 22

2.2.2.

Huấn luyên cho máy Bolzmann ................................................................... 24

2.3.


Máy hạn chế Botlzmann (Restrist Botlzmann Machine)................................. 27

2.3.1.

Mô hình máy hạn chế Botlzmann ................................................................ 27

2.3.2.

Huấn luyện cho máy hạn chế Botlzmann (RBM) ....................................... 28

2.4.

Máy hạn chế Botlzmann (RBMs) trong lọc cộng tác ....................................... 30

2.4.1.

Mô hình máy hạn chế Botlzmann (RBMs) trong lọc cộng tác ................... 30

2.4.2.

Huấn luyện máy hạn chế Botlzmann (RBMs) trong lọc cộng tác .............. 33

2.4.3.

Dự đoán ......................................................................................................... 35

2.5.

Kết luận ................................................................................................................ 36


CHƯƠNG III. XÂY DỰNG HỆ THỐNG VÀ THỬ NGHIỆM .................................... 37
3.1.

Xây dựng bài toán ............................................................................................... 37


ii

3.2.

Hệ thống của máy hạn chế Boltzmann (RBMs) trong lọc cộng tác ................ 37

3.3.

Mô tả dữ liệu Dataset Netflix ............................................................................. 40

3.4.

Cài đặt bài toán ................................................................................................... 43

3.4.1.

Ý nghĩa các tham số trong máy hạn chế Boltzmann ................................... 43

3.4.2.

Yêu cầu hệ thống và thư viện sử dụng ......................................................... 45

3.4.3.


Kết quả thực nghiệm và đánh giá ................................................................ 45

3.5.

Kết luận ................................................................................................................ 52

KẾT LUẬN ......................................................................................................................... 54
DANH MỤC CÁC TÀI LIỆU THAM KHẢO ................................................................ 56


iii

DANH MỤC CÁC CHỮ VIẾT TẮT
STT
1
2
3
4
5
6

Ký hiệu
BM
RBM
CF
v
h
RMSE


Tiếng Anh
Botlzmann Machine
Restrict Botlzmann Machine
Collarborative Filter
visible unit
hidden unit
Root Mean Squared Error

7
8
9
10
11

CD
E
u
DL
ML

Contrastive Divergence
Energy function
user
Deep Learning
Machine Learning

Tiếng Việt
Máy Botlzmann
Máy hạn chế Botlzmann
Lọc cộng tác

Nút hiện
Nút ẩn
Căn bậc hai của trung
bình bình phương sai số
Phân kỳ tương phản
Hàm năng lượng
Người dùng
Học sâu
Học máy


iv

DANH MỤC HÌNH VẼ VÀ SƠ ĐỒ
Hình 1-1: Nhận diện hai khuôn mặt tương tự nhau .............................................................. 7
Hình 1-2: Hệ thống tư vấn cho người dùng .......................................................................... 9
Hình 2-1: Minh họa hệ thống tư vấn sách cho người đọc................................................... 14
Hình 2-2: Minh họa phương pháp tư vấn dựa trên lọc cộng tác ......................................... 15
Hình 2-3: Quy trình của hệ thông tư vấn dựa trên lọc cộng tác.......................................... 16
Hình 2-4: Mạng nơ-ron hồi quy một lớp ............................................................................ 22
Hình 2-5: Một Boltzmann Machine, các nút có thể nối với nhau theo bất kỳ cách nào. .... 23
Hình 2-6: Một Restricted Boltzmann Machine chỉ có sự liên kết giữa các nút hiện và các
nút ẩn.................................................................................................................................... 28
Hình 2-7: Huấn luyện CD, nút hiện và nút ẩn được cập nhật qua T bước lặp.................... 30
Hình 2-8: So sánh RBMs nhị phân và RBMs trong lọc cộng tác ....................................... 31
Hình 2-9: Restricted Boltzmann Machine cho lọc cộng tác. .............................................. 32
Hình 3-1: Xây dựng bài toán trong lọc cộng tác ................................................................. 37
Hình 3-2: Sơ đồ khối hệ thống sử dụng giải thuật RBMs trong lọc cộng tác. .................... 38
Hình 3-3: Biểu diễn sai số dự đoán ..................................................................................... 40
Hình 3-4: Định dạng của đánh giá những người dùng đối với những bộ phim .................. 41

Hình 3-5: Thủ tục sử dụng phương pháp walk-forward chia tập dữ liệu trong Netflix...... 43
Hình 3-6: Thư viện Numpy tính toán toán học trong ngôn ngữ Python ............................. 45
Hình 3-7: File cấu hình lần một cho huấn luyện RBMs lần một ........................................ 46
Hình 3-8: Kết quả chỉ số RMSE thu được lần một ............................................................. 47
Hình 3-9: Đồ thị chỉ số đánh giá RMSE lần một ................................................................ 47
Hình 3-10: File cấu hình lần một cho huấn luyện RBMs lần hai ....................................... 48
Hình 3-11: Kết quả dữ liệu kiểm tra (validation set) RMSE thu được lần hai ................... 49
Hình 3-12: Đồ thị chỉ số đánh giá RMSE lần hai ............................................................... 49
Hình 3-13: File cấu hình lần một cho huấn luyện RBMs lần ba ........................................ 50
Hình 3-14: Kết quả dữ liệu kiểm tra (validation set) RMSE thu được lần ba .................... 51
Hình 3-15: Đồ thị chỉ số đánh giá RMSE lần ba ................................................................ 52


v

DANH MỤC BẢNG BIỂU
Bảng 2-1: Bảng giải thuật Positive phase 26
Bảng 2-2: Bảng giải thuật Negative phase 26
Bảng 2-3: Bảng giải thuật huấn luyện phân kỳ tương phản CD
29
Bảng 2-4: Những người dùng đánh giá cho từng bộ phim 32
Bảng 2-5: Một người dùng (U2 bảng 1) đánh giá cho những bộ phim
Bảng 2-6: Dự đoán của giải thuật RBMs trong lọc cộng tác 36
Bảng 3-1: Tập dữ liệu Test cho ví dụ RMSE 39
Bảng 3-2: Tập giá trị được dự đoán và sai số trong ví dụ RMSE
40
Bảng 3-3: Thông số dữ liệu mà Netflix cung cấp
42
Bảng 3-4: Bảng yêu cầu hệ thống và thư viện sử dụng
45


33


1

MỞ ĐẦU
Thế giới đã chứng kiến sự phát triển vượt bậc của lĩnh vực trí tuệ nhân tạo
(Artificial Intelligence - AI) trong những năm gần đây. Bên trong các máy tìm kiếm
của Google, hóng hớt buôn chuyện trên Facebook, trò chuyện với người thân qua
Skype, sai vặt Siri trên iPhone đều là những sản phẩm của trí tuệ nhân tạo. Google,
Microsoft và Facebook đã thành lập những nhóm nghiên cứu và thực thi thành công
một số dự án không tưởng. Một vài trong số dự án này trú trọng đến việc khai thác
sự phong phú, đa dạng của dữ liệu được tạo ra bởi người sử dụng mạng xã hội. Rất
nhiều trong số đó tập trung vào phân tích, và nâng cao hiệu quả tính toán. Chìa khóa
để dẫn đến những thành công này được hỗ trợ một phần không nhỏ bởi một xu
hướng mới trong AI, được gọi là “Deep Learning”.
Deep Learning là một thuật toán dựa trên một số ý tưởng từ não bộ tới việc
tiếp thu nhiều tầng biểu đạt, cả cụ thể lẫn trừu tượng, qua đó làm rõ nghĩa của các
loại dữ liệu. Nói cách khác, deep learning là một lĩnh vực mới của machine learning
nhằm cải thiện những ứng dụng như thị giác máy tính (computer vision), xử lý ngôn
ngữ tự nhiên (natural language processing) để giải đáp những thách thức đối với dữ
liệu phi cấu trúc. Điểm đặc biệt của Deep Learning là tính chính xác dựa vào lượng
dữ liệu, lượng dữ liệu có thể có kích thước khổng lồ mà không bị hạn chế.
Deep Learning có thể hiểu là hệ thống dựa trên phân tích dữ liệu lớn đa tầng
để máy tự học, tự rút kinh nghiệm và tự hoàn thiện. Hiện nay tại nhiều hãng công
nghệ lớn sử dụng các mạng thần kinh (hệ thống phần cứng và phần mềm mô phỏng
não người và hệ thần kinh) phân tích những lượng khổng lồ các hình ảnh kỹ thuật
số và từ đó học cách nhận diện vật thể, từ ngữ, và cả khuôn mặt người. Sự đột phá
của các công nghệ Deep Learning được ứng dụng ngày càng nhiều bởi các doanh

nghiệp để tạo ra các mô hình kinh doanh mới và xây dựng những ứng dụng mới mẻ
để giải quyết những bài toán thực tế. Một số ứng dụng nổi tiếng và thông dụng của
deep learning đó là trợ lý kích hoạt bằng giọng nói (một tính năng được tìm thấy
trên hầu hết các smartphones), ứng dụng trong các hệ thống khuyến nghị, nhận diện


2

ảnh(Image Recognition), dịch tiếng nói (speech translation), chuyển tiếng nói thành
văn bản (speech transcription), phân loại văn bản (text classification), phát hiện nội
dung (content discovery), thương hiệu thông minh (brand intelligence), và theo dõi
(monitoring) social media. Chính vì vậy em đã chọn đề tài “Nghiên cứu phương
pháp học sâu cho lọc cộng tác” để thực hiện trong khuôn khổ luận văn tốt nghiệp
thạc sỹ ngành khoa học máy tính.
Nội dung luận văn được cấu trúc thành 3 chương như sau
Chương 1: Giới thiệu về Deep Learning
Trong chương này, luận văn sẽ giới thiêu tổng quan về phương pháp học sâu:
định nghĩa và các loại phương pháp học sâu.
Chương 2: Deep Learning cho lọc cộng tác
Trình bày phương pháp học Deep Learningg cho lọc cộng tác. Dựa vào
những nghiên cứu cơ bản, đi sâu tìm hiểu vào kỹ thuật học sâu cho lọc cộng tác
bằng máy hạn chế Bolzmman.
Chương 3: Xây dựng hệ thống và thực nghiệm
Chương 3 trình bày về phương pháp thử nghiệm và đánh giá.
Kết luận và hướng phát triển
Trình bày tóm tắt những kết quả đã đạt được và chưa đạt được. Từ đó đề xuất
mục tiêu cũng như hướng nghiên cứu, phát triển tiếp theo.


3


CHƯƠNG 1. GIỚI THIỆU VỀ DEEP LEARNING
Chương này sẽ cung cấp một cái nhìn tổng quan về phương pháp học sâu:
định nghĩa, các loại phương pháp học sâu và các ứng dụng của chúng trong một loạt
các nhiệm vụ xử lý tín hiệu và thông tin.

1.1.

Tổng quan về Deep Learning

1.1.1. Định nghĩa
Từ năm 2006, học với cấu trúc sâu, hay thường gọi là học sâu hoặc học theo
từng lớp đã nổi lên như một lĩnh vực mới trong nghiên cứu học máy. Trong nhiều
năm qua, các kỹ thuật phát triển từ nghiên cứu học sâu đã bị ảnh hưởng tới một loạt
các tín hiệu và công việc xử lý thông tin. Rất nhiều các hội thảo, hướng dẫn và các
phiên họp đặc biệt trong những năm gần đây đã được dành riêng để giới thiệu về
học sâu và ứng dụng của nó đến các tín hiệu khác nhau và các tiến trình xử lý thông
tin. Trước khi đi vào tìm hiểu cụ thể, luận văn tìm hiểu các định nghĩa về học sâu,
đã có nhiều định nghĩa được đưa ra:
-

Định nghĩa 1: Một nhóm các kỹ thuật học máy khai thác nhiều lớp xử lý
thông tin tuyến tính để trích tách đặc điểm và chuyển đổi. Các thuật toán này
có thể được giám sát hoặc không cần giám sát và các ứng dụng bao gồm các
mô hình phân tích (không có giám sát) và phân loại (giám sát).

-

Định nghĩa 2: Một lĩnh vực nhỏ tron học máy đó là dựa trên các thuật toán
cho việc học nhiều cấp độ của các dữ liệu có quan hệ phức tạp. Các tính năng

cấp cao hơn được xác định trong các tính năng cấp dưới và như một hệ thống
các tính năng được gọi là một kiến trúc sâu. Hầu hết các mô hình dựa trên
học không giám sát của các đại diện ( theo Wikipedia về" Deep Learning
"khoảng tháng ba năm 2012)

-

Định nghĩa 3: Một lĩnh vực của học máy đó là dựa vào việc học nhiều cấp độ
của các đại diện, tương ứng với một hệ thống các tính năng hoặc các yếu tố
hoặc các khái niệm, nơi mà các khái niệm cấp cao hơn được xác định từ
những cái cấp dưới và khái niệm cấp dưới có thể giúp xác định nhiều khái


4

niệm cấp cao hơn. Học sâu là một phần của gia đình rộng lớn của các
phương pháp học máy dựa trên các đại diện học . Một quan sát (ví dụ, một
hình ảnh) có thể được biểu diễn bằng nhiều cách (ví dụ, một vector của điểm
ảnh), nhưng một số các đại diện làm cho nó dễ dàng hơn để học hỏi các
nhiệm vụ quan tâm (ví dụ, đây là hình ảnh của một khuôn mặt con người?)
Từ các ví dụ, và nghiên cứu trong lĩnh vực này cố gắng xác định những gì
làm cho các đại diện tốt hơn và làm thế nào để tìm hiểu chúng. "(Wikipedia
về" Deep Learning "vào tháng hai năm 2013).
-

Định nghĩa 4: Học sâu là một tập hợp các thuật toán trong học máy cố gắng
học hỏi ở nhiều cấp độ, tương ứng với các cấp trừu tượng khác nhau. Nó sử
dụng các mạng thần kinh nhân tạo. Các cấp độ trong các mô hình học thống
kê _ tương ứng với các cấp độ khác nhau của các khái niệm, nơi mà các khái
niệm cấp cao hơn được xác định từ những cái cấp dưới, và các khái niệm

mức thấp tương tự có thể giúp xác định nhiều khái niệm cấp cao hơn.

-

Định nghĩa 5: Học sâu là một lĩnh vực mới của nghiên cứu học máy, đã được
giới thiệu với mục đích đưa học máy gần gũi hơn với một trong những mục
tiêu ban đầu của nó: Trí tuệ nhân tạo. Học Sâu là học hỏi nhiều cấp độ của
các đại diện và sự trừu tượng đó giúp làm cho ý nghĩa của dữ liệu như hình
ảnh, âm thanh rõ ràng hơn ( />Các định nghĩa này có điểm chung là nhiều lớp các đơn vị xử lý phi tuyến và

học có giám sát hoặc không có giám sát của biểu diễn đặc tính ở mỗi lớp, với các
lớp hình thành một hệ thống các tính năng phân cấp từ thấp đến cao cấp. Các thành
phần của một lớp của đơn vị xử lý phi tuyến sử dụng một thuật toán học sâu tùy
theo vấn đề cần được giải quyết. Các lớp được sử dụng trong học sâu bao gồm các
lớp ẩn của một mạng nơ-ron nhân tạo và tập các công thức mệnh đề phức
tạp. Chúng cũng có thể bao gồm các biến tiềm ẩn được tổ chức thành các lớp chọn
lọc trong các mô hình thể sinh (có khả năng sinh ra) sâu như các nút trong Deep
Belief Networks và Deep Boltzmann Machines.

1.1.2. Lịch sử


5

Các kiến trúc học sâu, đặc biệt là những kiến trúc được xây dựng từ mạng
nơ-ron nhân tạo (ANN) đã từng thống trị ít nhất là tới Neocognitron được giới thiệu
bởi Masahiko Fukushima vào năm 1980. Thách thức là làm thế nào để huấn luyện
mạng lưới này với nhiều lớp. Năm 1989, Yann Le Cun và các cộng sự đã có thể áp
dụng các thuật toán truyền ngược tiêu chuẩn đối với một mạng nơ-ron sâu với mục
đích nhận dạng chữ viết tay mã ZIP trong các bức thư. Mặc dù sự thành công trong

việc áp dụng thuật toán này tuy nhiên thời gian để đào tạo dựa trên số liệu này mất
khoảng 3 ngày. Vậy, việc sử dụng nó vào các mục đích bình thường trở nên không
thực tế.
Năm 1995, Brendan Frey đã chứng minh rằng có thể huấn luyện một mạng
nơ-ron bao gồm sáu lớp kết nối và vài trăm đơn vị ẩn bằng cách sử dụng thuật toán
wake-sleep, nó được hợp tác phát triển với Peter Dayan và Geoffrey Hinton. Tuy
nhiên, việc huấn luyện này cũng phải mất hai ngày.
Trong năm 1991, những mạng nơ-ron như vậy được sử dụng để nhận diện
chữ số viết tay 2-D, nhận dạng đối tượng 3-D được thực hiện bằng cách kết hợp các
hình ảnh 2-D với một mô hình đối tượng 3-D thủ công. Juyang Weng và các cộng
sự đề xuất rằng một bộ não người không sử dụng một mô hình đối tượng 3-D
nguyên khối, và vào năm 1992, họ xuất bản Cresceptron, một phương pháp để thực
hiện nhận dạng đối tượng 3-D trực tiếp từ các dữ liệu lộn xộn. Cresceptron là một
ghép tầng của các lớp tương tự như Neocognitron. Nhưng trong khi Neocognitron
yêu cầu một người lập trình viên giám sát, Cresceptron sẽ tự động học được một số
đặc điểm không có giám sát trong mỗi lớp, mỗi đặc điểm được đại diện bởi một tích
chập. Cresceptron cũng phân đoạn từng đối tượng học được bằng cách phân tích
ngược mạng đó. Mặc dù có những lợi thế như thế, các mô hình đơn giản hơn sử
dụng nhiệm vụ cụ thể có đặc điểm thủ công như bộ Gabor và các máy hỗ trợ
vector (SVM-support vector machines) đã là lựa chọn phổ biến trong thập niên
1990 và thập niên 2000, bởi vì chi phí tính toán các ANN nhỏ.
Trong lịch sử của nhận dạng giọng nói, cả học nông và học sâu (ví dụ, các
mạng tái phát) của mạng nơ-ron nhân tạo đã được khám phá trong nhiều


6

năm. Nhưng những phương pháp này không bao giờ thắng được công nghệ của mô
hình hỗn hợp/mô hình Markov ẩn Gaussian (GMM-HMM) thủ công-nội bộ dựa trên
các mô hình có thể sinh ra của việc huấn luyện nhận dạng giọng nói một cách rõ

ràng. Một số khó khăn chính đã được phân tích một cách có phương pháp, bao gồm
giảm bớt gradient và cấu trúc tương quan trong các mô hình nơ-ron nhân
tạo. Những khó khăn đó là thiếu dữ liệu huấn luyện và khả năng tính toán nhỏ trong
thời gian đầu. Vì vậy, hầu hết các nhà nghiên cứu về nhận dạng giọng nói đã hiểu rõ
các rào cản như vậy nên đã theo đuổi mô hình các mạng nơ-ron, cho đến gần đây sự
ra đời của học sâu đã vượt qua tất cả những khó khăn này. Hinton cùng các cộng sự
đã bắt đầu nghiên cứu học sâu và các ứng dụng của nhận dạng giọng nói.

1.1.3. Ứng dụng
Sự đột phá của các công nghệ Deep Learning được ứng dụng ngày càng
nhiều bởi các doanh nghiệp để tạo ra các mô hình kinh doanh mới và xây dựng
những ứng dụng mới mẻ để giải quyết những bài toán thực tế, trong đó phải kể đến
những ứng dụng có nhiều tiềm năng thương mại hóa sau:

a. Nhận dạng giọng nói:
Từ năm 2010 đến năm 2014, hai hội nghị lớn về xử lý tín hiệu và nhận dạng
giọng nói IEEE-ICASSP và Interspeech, đã cho thấy một sự gia tăng lớn các báo
cáo được chấp nhận trong các báo cáo hội nghị thường niên tương ứng về chủ đề
học sâu trong nhận dạng giọng nói. Quan trọng hơn, tất cả các hệ thống nhận dạng
giọng nói thương mại chính (ví dụ: Microsoft Cortana, Xbox, Skype Translator,
Google Now, Apple Siri, Baidu và iFlyTek tìm kiếm bằng giọng nói và một loạt các
sản phẩm của Nuance speech, vv) được dựa trên phương pháp học sâu.

b. Nhận dạng hình ảnh
Mục tiêu của công nghệ nhận diện ảnh là nhận biết và xác định các đối tượng
trong ảnh cũng như hiểu được nội dung và ngữ cảnh trong đó. Ví dụ trên cho thấy
dịch vụ nhận diện và xác định khuôn mặt của AlchemyVision có khả năng phân biệt
hai khuôn mặt tương tự nhau giữa nam diễn viên Will Ferrell và tay trống của Red
Hot Chili Peppers, Chad Smith. Công nghệ nhận diện hình ảnh cũng được đưa vào



7

Facebook để gợi ý người dùng tag mặt bạn bè hay ứng dụng vào khoa học tội phạm
và điều tra.

Hình 1-1: Nhận diện hai khuôn mặt tương tự nhau

c. Xử lý ngôn ngữ tự nhiên
Mạng nơ-ron đã được sử dụng cho việc thực hiện các mô hình ngôn ngữ kể
từ đầu những năm 2000. Các kỹ thuật quan trọng trong lĩnh vực này là lấy mẫu
âm và nhúng chữ (word embedding). Nhúng chữ, chẳng hạn như word2vec, có thể
được dùng như một lớp đại diện trong một kiến trúc học sâu, điều này sẽ biến đổi
một từ đơn thành một đại diện vị trí của từ đó liên quan đến các từ khác trong bộ dữ
liệu; vị trí được đại diện như là một điểm trong một không gian vector. Sử dụng một
từ nhúng như là một lớp đầu vào với một mạng lưới thần kinh đệ quy (RNNrecursive neural network) cho phép đào tạo mạng để phân tích cú pháp câu và cụm
từ bằng cách sử dụng một ngữ pháp vector tổng hợp có hiệu quả. Một ngữ pháp
vector tổng hợp có thể được coi làngữ pháp không phụ thuộc ngữ cảnh xác suất
(PCFG-probabilistic context free grammar) được thực hiện bởi một mạng thần kinh
đệ quy. Tự động-mã hóa đệ qui được xây dựng trên đỉnh từ nhúng đã được đào tạo
để đánh giá câu tương tự và phát hiện các chú giải dài dòng. Các kiến trúc thần kinh
sâu đã đạt được những kết quả tiên tiến nhất trong nhiều tác vụ xử lý ngôn ngữ tự


8

nhiên như phân tích thống kê, phân tích tình cảm, tra cứu thông tin, dịch máy, liên
kết thực thể ngữ cảnh, và.v.v.

d. Khám phá dược phẩm và độc chất học

Ngành công nghiệp dược phẩm phải đối mặt với vấn đề mà một tỷ lệ lớn các
loại thuốc tiềm năng thất bại khi tiếp cận với thị trường. Những thất bại của các hợp
chất hóa học này gây ra bởi không đủ hiệu quả trên mục tiêu phân tử sinh học, có
các tương tác không bị phát hiện và không mong muốn với các phân tử sinh
học khác, hoặc các hiệu ứng độc dược ngoài dự tính. Trong năm 2012, một nhóm
dẫn đầu bởi George Dahl đã chiến thắng "Merck Molecular Activity Challenge" sử
dụng các mạng nơ-ron sâu đa tác vụ để dự đoán mục tiêu phân tử sinh học của một
hợp chất. Trong năm 2014, nhóm của Sepp Hochreiter sử dụng Học Sâu để phát
hiện ra mục tiêu lạ và các ảnh hưởng độc dược của các môi trường hóa chất trong
các chất dinh dưỡng, sản phẩm gia dụng và thuốc men và đã chiến thắng "Tox21
Data Challenge" của NIH, FDA và NCATS. Những thành công ấn tượng chỉ ra rằng
học sâu có thể vượt trội so với các phương pháp kiểm tra ảo khác. Các nhà nghiên
cứu đến từ Google và Stanford đã mở rộng học sâu để khám phá dược phẩm bằng
cách kết hợp dữ liệu từ nhiều nguồn khác nhau.

e. Hệ thống gợi ý trên các nền tảng
Các nền tảng lớn hiện nay như Facebook, Amazon, Netflix,... đều có hệ
thống gợi ý (recommend) rất mạnh giúp tăng đáng kể độ tương tác của người dùng.
Cụ thể là chúng dựa trên các dữ liệu người dùng phát sinh ra khi dùng để gợi ý thêm
những sản phẩm họ sẽ thích (trên các nền tảng mua sắm), những bộ phim họ sẽ
muốn xem (vd. như trên Netflix), gợi ý các bài quảng cáo/được tài trợ (trên
Facebook) hay các khóa học người học quan tâm (trên các nền tảng học online).


9

Hình 1-2: Hệ thống tư vấn cho người dùng

1.2.


Phân loại các phương pháp học sâu
Như đã giới thiệu ở trên, học sâu đề cập đến một phần khá rộng của các kỹ

thuật học máy và các cấu trúc, với các dấu hiệu của việc sử dụng nhiều lớp xử lý
thông tin phi tuyến tính phân cấp trong tự nhiên. Tùy thuộc vào mục đích sử dụng
các cấu trúc và kỹ nhuật như thế nào mà ta có thể phân học sâu thành ba loại chính
là: mạng học sâu có giám sát (deep network for supervised learning), mạng học sâu
không giám sát (deep network for unsupervised learning), mạng học sâu kết hợp
(deep network for hybrid learning).

1.2.1. Mạng học sâu có giám sát
Mạng học sâu có giám sát cung cấp trực tiếp tài liệu cho mục đích phân biệt
các mô hình phân loại bằng cách mô tả sự phân bố hậu nghiệm của các lớp có điều
kiện trên tập dữ liệu có sẵn. Tức là, dữ liệu huấn luyện bao gồm các lớp đầu vào và
đầu ra mong muốn. Đầu ra là dự đoán của một lớp phân loại cho một đối tượng đầu
vào. Nhiệm vụ của chương trình học sâu có giám sát là dự đoán giá trị của hàm đầu
ra cho một đối tượng bất kì là đầu vào hợp lệ, sau khi đã xem xét tập dữ liệu huấn


10

luyện (là các đầu vào và đầu ra tương ứng). Để đạt được điều này, chương trình
phải học tổng quát hóa từ các dữ liệu sẵn có để dự đoán được những tình huống
chưa gặp phải theo một cách hợp lý.
Trong học có giám sát, ta được cho trước một tập ví dụ gồm các
cặp {\displaystyle (x,y),x\in X,y\in Y} và mục tiêu là tìm một hàm f (trong lớp các
hàm được phép) tương ứng với các ví dụ. Nói cách khác, ta muốn tìm ánh xạ mà dữ
liệu đầu vào đã hàm ý, với hàm chi phí đo độ không khớp giữa ánh xạ của ta và dữ
liệu.
Nhiều trong số các kỹ thuật phân loại đối với học có giám sát trong tín hiệu

và xử lý thông tin là kiến trúc nông như HMMs và các lĩnh vực ngẫu nhiên có điều
kiện. Một CRF tự bản chất là một kiến trúc phân biệt nông, đặc trưng bởi các mối
quan hệ tuyến tính giữa các tính năng đầu vào và các tính năng chuyển đổi. Bản
chất nông của CRF được thực hiện rõ ràng nhất của sự tương đương thành lập giữa
CRF và phân biệt được huấn luyện các mô hình Gaussian và HMMs. Gần đây, cấu
trúc sâu CRFs đã được phát triển bằng cách xếp chồng các đầu ra trong mỗi lớp
dưới của CRF, cùng với các dữ liệu đầu vào ban đầu, lên tầng cao hơn. Các phiên
bản khác nhau của cấu trúc sâu CRDs được ứng dụng thành công để gọi nhận diện.
Tuy nhiên, ít nhất là cho các nhiệm vụ gọi nhận diện, hiệu suất của cấu trúc sâu
CRDs, đó là phân biệt hoàn toàn, không thể phù hợp với các phương pháp lai liên
quan đến DBN.
Morgan đưa ra một đánh giá tuyệt vời trên các mô hình phân biệt hiện nay
trong việc nhận dạng tiếng nói dựa chủ yếu vào các mạng noron truyền thống, kiến
trúc MLP sử dụng việc học lan truyền ngược với khởi tạo ngẫu nhiên. Nó lập luận
về tầm quan trọng của cả hai độ rộng tăng lên của mỗi lớp trên mạng lưới noron và
độ sâu tăng. Đặc biệt một lớp các mô hình mạng noron tạo nên cơ sở của cách tiếp
cận “tandem” phổ biến, trong đó đầu ra của mạng noron được học nhận diện là một
phần của các biến quan sát trong HMMs.
RNNs cũng có thể được sử dụng như là một mô hình phân biệt mà đầu ra là
một chuỗi nhãn kết hợp với chuỗi dữ liệu đầu vào. Lưu ý rằng, như vậy thì phân


11

biệt RNNs hay các mô hình hàng đợi đã áp dụng được phát biểu trước đây có thành
công hạn chế.

1.2.2. Phương pháp học sâu không giám sát
Phương pháp này nắm bắt độ tương đồng của dữ liệu quan sát được để phân
tích mô hình và xác định được đầu ra khi không có thông tin gì về nhãn lớp mục

tiêu có sẵn. Nó khác biệt với học có giám sát ở chỗ là đầu ra đúng tương ứng cho
mỗi đầu vào là không biết trước. Trong học không có giám sát, một tập dữ liệu đầu
vào được thu thập. Học không có giám sát thường xem với các đối tượng đầu vào
như là một tập các biến ngẫu nhiên. Sau đó, một mô hình mật độ kết hợp sẽ được
xây dựng cho tập dữ liệu đó.
Trong học không có giám sát, ta được cho trước một số dữ liệu {\displaystyle
x}, và hàm chi phí cần được cực tiểu hóa có thể là một hàm bất kỳ của dữ
liệu {\displaystyle x} và đầu ra của mạng, {\displaystyle f}. Hàm chi phí được
quyết định bởi phát biểu của bài toán. Phần lớn ứng dụng nằm trong vùng các bài
toán ước lượng như mô hình hóa thống kê, nén, lọc(filtering), blind source
seperation và phân mảnh (clustering).
Dựa trên học (không có giám sát) của nhiều cấp các đặc điểm hoặc đại diện
của dữ liệu. Các tính năng cao cấp bắt nguồn từ các tính năng thấp cấp hơn để tạo
thành một đại diện thứ bậc. Rất nhiều các thuật toán học sâu được áp dụng cho các
nhiệm vụ học không có giám sát. Đây là một lợi ích quan trọng bởi vì dữ liệu không
dán nhãn (chưa phân loại) thường phong phú hơn các dữ liệu dán nhãn. Một ví dụ
của một cấu trúc sâu có thể được đào tạo theo cách không có giám sát là một mạng
lưới tin sâu (deep belief network).

1.2.3. Mạng học sâu kết hợp
Thuật ngữ “kết hợp” đề cập đến các kiến trúc sâu bao gồm hoặc sử dụng cả
hai thành phần mô hình sinh mẫu và mô hình phân biệt. Trong kiến trúc mạng học
sâu kết hợp, mục tiêu cuối cùng là các thành phần sinh mẫu chủ yếu được khai thác
để giúp mô hình phân biệt.


12

Câu hỏi đặt ra là làm thế nào hay tại sao mô hình sinh mẫu có thể giúp được
mô hình phân biệt được xem xét từ hai quan điểm:

-

Quan điểm tối ưu hóa những mô hình sinh mẫu được huấn luyện trongmột
kiểu học không giám sát có thể cung cấp các điểm khởi đầu trong vấn đề ước
lượng tham số phi tuyến (Thuật ngữ thường được sử dụng trong
"pretraining" trong học sâu đã được giới thiệu vì lý do này)

-

Quan điểm có quy tắc mà các mô hình học không giám sát có hiệu quả có
thể cung cấp một tiền đề trên tập các chức năng biểu diễn bởi mô hình.
DBN, một mô hình sinh mẫu, mạng sâu cho học không giám sát, có thể

chuyển đổi và sử dụng như mô hình khởi đầu cho 1 DNN cho học có giám sát với
cùng cấu trúc mạng, đó là tiếp tục huấn luyện một cách phân biệt hoặc tinh chỉnh sử
dụng các nhãn đích được cung cấp. Khi DBN được dùng như trên thì có thể coi mô
hình DBN-DNN như một “mô hình sâu kết hợp”, là mô hình được huấn luyện sử
dụng dữ liệu không giám sát giúp tạo mô hình phân biệt hiệu quả cho học có giám
sát.
Một ví dụ khác của mạng kết hợp sâu được phát triển, trong đó các trọng số
DNN cũng được khởi tạo từ một DBN sinh mẫu nhưng lại được tinh chỉnh với một
tiêu chí phân biệt trình tự theo cấp, mà xác suất có điều kiện của chuỗi nhãn cho
trình tự tính năng đầu vào, thay vì tiêu chí ở cấp khung hình của entropy chéo
thường được sử dụng. Từ đó cho thấy DNN-CRF tương đương với “kiến trúc kết
hợp sâu” DNN và HMM
Một ví dụ khác là việc dùng mô hình sinh mẫu DBN để huấn luyện trước
mạng nơ ron xoắn sâu. Việc huấn luyện trước giúp tăng tốc cho CNN thông qua
khởi tạo ngẫu nhiên. Huấn luyện trước DNN hoặc CNN sử dụng tập mã hóa tự động
sâu có quy tắc, bao gồm các bộ mã hóa giảm nhiễu, các bộ mã hóa co rút, các bộ mã
hóa rải rác, cũng là các ví dụ cho “mạng kết hợp sâu”.


1.3.

Kết luận chương
Chương 1 đã giới thiệu tổng quan về phương pháp deep learning. Deep

Learning được xem như là nhánh chi tiết hơn của Machine Learning, thuật ngữ


13

dùng để chỉ một phân ngành của trí tuệ nhân tạo chuyên nghiên cứu và xây dựng
các hệ thống có khả năng học hỏi từ dữ liệu thay vì chỉ thực thi theo những dòng
lệnh được lập trình sẵn. Trong bối cảnh lượng dữ liệu thu thập được ngày càng
nhiều, công nghệ học hỏi của máy tính càng phải “sâu” để có thể đưa ra được những
kết quả hữu ích. Deep learning được biết đến như việc tiếp thu nhiều tầng biểu đạt,
cả cụ thể lẫn trừu tượng, qua đó làm rõ nghĩa của các loại dữ liệu ví dụ như hình
ảnh, âm thanh và văn bản. Trên thế giới đã có nhiều công trình nghiên cứu đạt
những kết quả khả quan, các ông lớn như Google, Microsoft và Facebook, họ đã tự
thành lập những nhóm nghiên cứu và tiếp tục đầu tư vào lĩnh vực này.
Mặc dù nghiên cứu về AI cũng như Deep Learning vẫn còn chưa phổ biến ở
Việt Nam, chúng vẫn là những xu hướng mà các nhà khoa học của ta cần nắm bắt.
Với mong muốn được nghiên cứu sâu hơn, trong chương 2, luận văn sẽ trình bày
vào bài toán cụ thể là nghiên cứu thuật toán RBM (Restricted Boltzmann machine)
trong Deep Learning cho hệ lọc cộng tác.


14

CHƯƠNG 2. DEEP LEARNING CHO LỌC CỘNG TÁC

Trình bày phương pháp học Deep Learning cho lọc cộng tác. Dựa vào những
nghiên cứu cơ bản, đi sâu tìm hiểu vào kỹ thuật học sâu cho lọc cộng tác bằng máy
hạn chế Bolzmman.

2.1.

Giới thiệu về phương pháp tư vấn dựa trên kỹ thuật lọc cộng tác

2.1.1. Giới thiệu về hệ thống tư vấn
Hệ thống tư vấn (Recommender Systems -RSs) là những công cụ hay kỹ thuật
phần mềm cung cấp các gợi ý về các sản phẩm cho người dùng. Các gợi ý này liên
quan đến quá trình ra quyết định về loại sản phẩm cần mua, loại âm nhạc cần nghe,
hoặc tin tức cần đọc,...

Hình 2-1: Minh họa hệ thống tư vấn sách cho người đọc

Ứng dụng: Phạm vi ứng dụng của hệ thống tư vấn lựa chọn là rất rộng.
Trong thương mại điện tử, hầu hết các hệ thống này là các hệ thống bán sách, giới
thiệu phim, tin tức, đĩa CD ca nhạc, các trang Web...
-

Phim: Netflix, Firefly, MovieCritic, MovieLens, Mangarate, Morse

-

Âm nhạc: Firefly, CdNow

-

Sách: Amazon, Barnes&Noble


-

Web: Webwatcher, Webfilter, Webwasher, Select, Webdoggie,
Gustos


15

-

Tin tức: Shift, Infoscan, NewsSieve, Borger, RAMA, GroupLens.

-

Thương mại điện tử: TripMatcher (du lịch), ShopMatcher, E-Markets

Phân loại: Có rất nhiều cách để dự đoán, ước lượng hạng /điểm cho các sản
phẩm như sử dụng học máy, lí thuyết xấp sỉ, các thuật toán dựa trên kinh nghiệm …
Theo [1], các hệ thống tư vấn thường được phân thành ba loại:
-

Tư vấn dựa trên nội dung: Người dùng sẽ được tư vấn những sản
phẩm tương tự với những sản phẩm đã được người dùng đó ưa thích
trước đây.

-

Tư vấn dựa trên cộng tác: Người dùng sẽ được tư vấn những sản
phẩm được ưa chuộng xuất phát từ những người dùng có cùng thị hiếu

và sở thích với mình.

-

Tư vấn dựa trên cách tiếp cận kết hợp: Kết hợp hai phương pháp tiếp
cận dựa trên nội dung và cộng tác.

2.1.2. Tư vấn dựa trên lọc cộng tác
Mục đích của giải thuật lọc cộng tác là gợi ý những sản phẩm mới hoặc dự
đoán một sản phẩm hợp lý cho người dùng, dựa trên những sở thích trước đây và
lựa chọn từ những sở thích của những người dùng khác.

Hình 2-2: Minh họa phương pháp tư vấn dựa trên lọc cộng tác

Trong kịch bản điển hình của lọc cộng tác, có một danh sách m người dùng
U ={u1, u2, … , um} và một danh sách n sản phẩm I = {i1, i2,…, in}. Mỗi người dùng


16

ui có danh sách các sản phẩm Su, mà người dùng đã đánh giá về sản phẩm đó. Chú ý
rằng Su  I và Iui có thể là rỗng.
Vị trí cần dự đoán
i1

i2

i3 ... ij

...


u1
u2
...
ua

in

Dự đoán
Prediction
Tư vấn
Recommendation

...

um

Đầu vào: Ma trận đánh giá R
Rating maxtrix

Raj (Dự đoán của người dùng
a trên tài nguyên j)

{Ti1, Ti2,..., TiN} danh sách
N tài nguyên đầu tiên cho
người dùng a

Giải thuật lọc cộng tác
Collaborative Filtering Algorithm


Đầu ra

Hình 2-3: Quy trình của hệ thông tư vấn dựa trên lọc cộng tác

Hình 2.3 mô tả quy trình lọc cộng tác bao gồm 2 nhiệm vụ chính là:
-

Dự đoán: cho ra giá trị Raj thể hiện đánh giá của người dùng a lên tài nguyên
j.
- Tư vấn: cho ra danh sách N tài nguyên {TiN} mà người dùng a thích nhất.
Trong phạm vi của luận văn chỉ tập trung vào phần sử dụng giải thuật trong

lọc cộng tác để dự đoán ra giá trị Raj đánh giá độ hiệu quả của thuật toán qua
RMSE.
Giải thuật lọc cộng tác được mô tả thông qua một ma trận đánh giá R m x n
người dùng và sản phẩm. Mỗi phần tử ai,j trong mảng R biểu diễn đánh giá của
người dùng thứ i đối với sản phẩm thứ j. Mỗi đánh giá cá nhân là một số và nó có
thể nhận giá trị 0 khi người dùng chưa đánh giá sản phẩm đó. Các nhà nghiên cứu
đã xây dựng một số các giải thuật lọc cộng tác mà có thể chia thành 2 loại chính:
dựa trên bộ nhớ (Memory-based) và dựa trên mô hình (Model-based).
Giải thuật lọc công tác dựa trên bộ nhớ (Memory-based): Giải thuật lọc
cộng tác dựa trên bộ nhớ sử dụng các cơ sở dữ liệu người dùng – sản phẩm để dự
đoán. Những hệ thống triển khai kỹ thuật thống kê để tìm những lựa chọn của người


17

dùng, như biết người lân cận, có lịch sử phù hợp với người dùng đích (ví dụ, người
dùng đánh giá tương tự các sản phẩm khác nhau hoặc có khuynh hướng mua những
sản phẩm tương tự nhau). Một khi lân cận của người dùng được hình thành, hệ

thống sử dụng những giải thuật khác nhau để kết hợp những sở thích của người
dùng lân cận để đề xuất một dự đoán hoặc một tư vấn top-N cho người dùng.
Theo [7], Thuật toán dựa trên bộ nhớ về căn bản sử dụng các độ do kinh
nghiệm (heuristics) để sinh ra dự đoán dựa trên tập các sản phẩm của người dùng.
Cụ thể là, đánh giá trị ru,i của người dùng u đối với sản phẩm i thường được tính
toán như là một sự kết hợp trọng số của nhiều người dùng khác nhau với cùng một
sản phẩm i (thường là N sản phẩm giống nhau nhất):

ru ,i  aggr (ru ',i )

(2.1)

uUˆ

ˆ
Trong đó U biểu diễn tập người dùng N có trọng số về sản phẩm i giống nhất
với người dùng u (N có thể bắt đầu từ 1 đến tất cả người dùng). Một số ví dụ về
đánh giá ru,i là:

ru ,i 

1
N

r

u 'U

u ',i


(2.2)

ru ,i  k  sim(u, u')  ru ',i
u 'U

(2.3)

ru ,i  ru  k  sim(u, u')  (ru ',i  ru ' )
u 'U

Trong đó :
k: hệ số chuẩn hóa và thường được lựa chọn là k=

ru

1/ u 'Uˆ sim(u, u' )

: trọng số trung bình của người dùng u, được định nghĩa như sau:
𝑟̅𝑢 =

1
∑ 𝑟𝑢,𝑖
𝑆𝑢
𝑢∈𝑆𝑢

(2.4)


×