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

Nghiên cứu phương pháp học sâu cho lọc cộng tác (tt)

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.09 MB, 26 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)

TÓM TẮT LUẬN VĂN THẠC SĨ

HÀ NỘI – 2016


Luận văn được hoàn thành tại:
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

Người hướng dẫn khoa học: TS. Nguyễn Duy Phương
Phản biện 1:………………………………………………………………………….
Phản biện 2:………………………………………………………………………….

Luận văn sẽ được bảo vệ trước hội đồng chấm luận văn thạc sĩ tại Học viện Công
nghệ Bưu chính Viễn thông
Vào lúc:

……..giờ …….ngày …… tháng …… năm ……….

Có thể tìm hiểu luận văn tại:


-

Thư viện của Học viện Công nghệ Bưu chính Viễn thông.


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. 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ế. 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.


2

CHƯƠNG 1. GIỚI THIỆU VỀ DEEP LEARNING
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
đưa ra định nghĩa về học sâu:
“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.”

1.1.2. Lịch sử

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ấ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ụ dưới 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


3

Smith. Công nghệ nhận diện hình ảnh cũng được đưa vào 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). Các mạng kiến trúc 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ự 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. 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 ý


4

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).

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 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ý.


5

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 đó.

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.

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ữ 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.


6

CHƯƠNG 2. DEEP LEARNING CHO LỌC CỘNG TÁC
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...
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

-

Tư vấn dựa trên cộng tác

-

Tư vấn dựa trên cách tiếp cận kết hợp

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.


7


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

2.2.

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

2.2.1. Mô hình máy Bolzman
Botlzmann Machine là một mạng nơ ron hồi quy (là mạng mà đầu ra của một nơ-ron
có thể thành đầu vào của rơ-ron trên cùng một lớp hoặc của các lớp trước đó, nó có chu
trình khép kín hình 2-4 gồm các nút nhị phân ngẫu nhiên và các kết nối đối xứng được tìm
ra bởi David Ackley, Geofrey Hinton, và Terrence Sejnowski [2].

Hình 2-3: Mạng nơ-ron hồi quy một lớp


8

Các đơn vị ẩn- Hidden units

H

H

H

H

V


H

H

V

H

V

V

H

V

V

V

V

V

Các đơn vị hiện- Visible units

Hình 2-4: Một Boltzmann Machine, các nút có thể nối với nhau theo bất kỳ cách nào.

Các nút của một BM thường được chia thành hai lớp, một là tập hợp các nút có thể
nhìn thấy được (visible units) trong đó có thể có dữ liệu giữ trên nó, và một tập hợp các nút

ẩn (hidden units) mà hành động như các biến tiềm ẩn [4]. Các nút được kết nối với nhau
bằng các kết nối đối xứng theo bất kỳ cách nào tùy ý, ngoại trừ với chính mình (hình 2-5).
Mỗi nút i có một trạng thái si nhị phân và hai trạng thái “tắt” hoặc “mở” (si=0 hoặc si=1) với
một xác suất đó là một hàm logistic của các yếu tố đầu vào mà nó nhận được từ các nút
khác j nó được kết nối tới [4]:p(si  1) 

1
1  exp(bi   si w ij )
i

(2.8)
Trong đó bi là ngưỡng (hay còn gọi là độ lệch bias: Ngưỡng này thường được đưa
vào như một thành phần của hàm truyền của nút i và trọng số wij là trọng số liên kết của đối
xứng giữa nút i và nút j.

E (v, h)   bi si(v,h)   si(v,h) s (v,h)
w ij
j
i

i j

(2.9)

Nếu các nút được lựa chọn ngẫu nhiên và liên tục được cập nhật bằng cách sử dụng
công thức (2.8), nó có thể được chỉ ra rằng mạng cuối cùng sẽ đạt được một phân bố xác


9


suất ổn định (hoặc cân bằng), trong đó xác suất tìm thấy mạng trong bất kỳ cấu hình toàn
cục (v,h) được xác định bởi năng lượng của các cấu hình tương đối so với các nguồn năng
exp(  E(v, h))

(v, h)có
 thể có [4]:
lượng của tất cả các cấu hình pkhác

 exp( E (u, g))
u,g

(2.10)
Đặc biệt hơn nữa, xác suất tìm thấy mạng ở tính dừng với một v cấu hình với các nút
có thể nhìn thấy nó được cho bởi:
p(v) 

 exp( E(v, h))
h

 exp( E(u, g))
u,g

(2.11)

2.2.2. Huấn luyên cho máy Bolzmann
Các đơn vị trong BM được chia thành các nút ẩn và các nút hiện. Các đơn vị hiện có
thể nhận được thông tin từ “môi trường”, tức là tập huấn luyện là một tập vector nhị phân
trên tập V. Sự phân phối trên tập huấn luyện được ký hiệu là P+ (V) và P- (V) phân phối sinh
ra trên các visible units của một BM khi mạng chạy tự do ở trạng thái cân bằng. Xem xét đo
Kullback – Leibler (Entropy tương đối) để đánh giá khoảng cách giữa hai phân phối, huấn

luyện để giảm thiểu:

P  (v)
G   P (v) ln(  )
P (v)
v


(2.12)

Ý nghĩa của Gain(G) là một thước đo độ tương tự giữa P+ (V) và P- (V). G=0 thì P+
(V) = P- (V) và ngược lại.
Từ công thức (2.12) là hàm gián tiếp của những trọng số và ngưỡng của BM, mô
hình này có thể được cải thiện bằng việc chỉnh sửa trong số wij và ngưỡng bi như vậy là để
giảm G. Do đó một chiến lược gradient descent có thể được sử dụng để giảm thiểu G. Đáng
ngạc nhiên, nó có thể được hiển
Gthị [2] mà đạo hàm riêng của G đối với wij là đơn giản như:
w ij

 ( si s j     si s j   )

(2.13)

Trong đó,
 <sisj>+ là xác suất trung bình, khi dữ liệu những vector từ P+ (V) được giữ trên các
nút có thể nhìn thấy, tìm kiếm cả nút i và nút j bật khi BM chạy ở trạng thái cân bằng.


10


 <sisj>- là xác suất trung bình của tìm kiếm cả nút i và nút j bật khi BM chạy tự do ở
trạng thái cân bằng.
Trong thực tế, tính toán <sisj>+ được gọi là positive phase và có thể thực hiện như mô tả
trong thuật toán bảng 2-1. Tính toán <sisj>- được gọi là negative phase và có thể được thực
hiện như mô tả trong thuật toán bảng 2-2.
Bảng 2-1: Bảng giải thuật Positive phase

Giải thuật BM- Positive phase
1. Giữ một vector dữ liệu trên các nút hiển thị của BM
2. Cập nhật các nút ẩn theo thứ tự ngẫu nhiên bằng công thức 2.8
3. Một khi BM đã đạt đến trạng thái phân phối cân bằng của mình, vector trạng thái
lấy mẫu và ghi lại sisj
4. Lặp lại các bước 1,2,3 cho toàn bộ dữ liệu. Tính trung bình để lấy <sisj>+.

Bảng 2-2: Bảng giải thuật Negative phase

Giải thuật BM- Negative phase
1. Khởi tạo BM với các trạng thái là ngẫu nhiên
2. Cập nhật các visible và hidden unit theo thứ tự ngẫu nhiên sử dụng công thức
2.8
3. Một khi BM đã đạt đến trạng thái phân phối cân bằng của mình, vector trạng
thái lấy mẫu và ghi lại sisj
4. Lặp lại các bước 1,2, và 3 nhiều lần. Tính trung bình để lấy <sisj>+

2.3.

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

2.3.1. Mô hình máy hạn chế Botlzmann
Mô hình RBM là một Botlzmann Machine có kiến trúc hạn chế. Với BM thì các nút

hiện (visible units) và các nút ẩn (hidden units) có thể kết nối với nhau. Còn trong RBM nó
cũng gồm hai lớp, một lớp là các nút hiện (visible units) và một lớp là các nút ẩn (hidden
units) nhưng không có sự kết nối giữa các nút hiện với nút hiện (visible - visible) hoặc nút
ẩn với nút ẩn (hidden - hidden) giữa chúng là hoàn toàn độc lập [5]. Với tính năng hạn chế


11

giữa các nút đó làm cho việc đào tạo RBM trở lên dễ dàng. Một ví dụ của mô hình RBM
trong hình 2-6

Các đơn vị ẩn - Hidden units - H, các ngưỡng - bj
H, b1

H, b3

H, b5

H, b7
....

H, b2

H, b4

H, bj

H, b6

W


V, b1

V, b3

V, b5

V, b7
....

V, b2

V, b4

V, b6

V, bi

Các nút hiện - Visible units - H, các ngưỡng – bi, W - trọng số liên kết V và H

Hình 2-5: 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.

2.3.2. Huấn luyện cho máy hạn chế Botlzmann (RBM)
Với việc giới hạn các kết nối, việc tính toán <sisj>+ không còn gặp khó khăn. Thật
vậy, khi mà một vector dữ liệu được giữ trên các nút hiện, các nút ẩn là điều kiện độc lập và
lấy mẫu unbiased từ <sisj>+ có thể được tính toán trong một bước song song bằng cách sử
dụng công thức (2.8).
May mắn thay, việc học thực sự vẫn hoạt động khá tốt nếu <sisj>- được thay thế bằng
một xấp xỉ <sisj>T được mô tả như trong thuật toán bảng 2.3. Các quy tắc học tập trở thành:

wij   ( sis j    sis j T )
(2.16)
bi   ( si     si T )

Bảng 2-3: Bảng giải thuật huấn luyện phân kỳ tương phản CD

Giải thuật RBM- Contrastive Divergence
1. Giữ một vector dữ liệu trên các visible unit của RBMs
2. Cập nhật song song tất cả các hidden units sử dụng công thức 2.8

(2.17)


12

3. Lặp T bước hình 2.4, luân phiên cập nhật tất cả các visible units, các hidden units
song song, vẫn sử dụng công thức 2.8
4. Lấy mẫu sisj từ cấu hình hiện tại.
5. Lặp lại các bước 1,2,3, và 4 cho mỗi dữ liệu có sẵn và tính trung bình để có
<sisj>T

2.4.

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

2.4.1. Mô hình máy hạn chế Botlzmann (RBMs) trong lọc cộng tác
Giả sử chúng ta có N người dùng đánh giá M bộ phim, các đánh giá (rating) dạng số
nguyên có giá trị 1 -> K. Khi đưa mô hình RBMs áp dụng vào trong lọc cộng tác thì gặp hai
vấn đề. Vấn đề thứ nhất, mô hình gốc của RBM với giá trị đầu vào các nút hiện là dạng nhị
phân. Trong khi đó, dữ liệu đầu vào dùng cho các nút hiện của RBMs trong lọc cộng tác lại

là dạng số nguyên (giá trị của N người dùng đánh giá M bộ phim) hình 2-7. Một giải pháp
đơn giản để giải quyết vấn đề đó là “softmax” units. Mỗi đánh giá được biến đổi thành một
mã nhị phân, các nút nhị phân ở vị trí thứ k của softmax được gán bằng 1 khi và chỉ khi
người dùng đánh giá bộ phim thứ k.
Vấn đề thứ hai là làm sao để giải quyết số lượng lớn của dữ liệu thưa nói cách khác
là không có đánh giá của người dùng cho các bộ phim như đã đề cập trong chương 1. Giải
pháp được đề xuất trong [9] là xem xét rằng các nút hiện tương ứng với các bộ phim mà
người dùng không đánh giá thì sẽ không tồn tại hình 2-8.


13
Hình 2-6: So sánh RBMs nhị phân và RBMs trong lọc cộng tác[8]
hj

Wijk

h

W

V

Không có đánh giá

Không có đánh giá

 ik

Hình 2-7: Restricted Boltzmann Machine cho lọc cộng tác.


Nút hiện nhị phân được thay thế với các softmax units. Mỗi người dùng chỉ có một
RBMs bao gồm softmax units cho những bộ phim được đánh giá bởi người dùng đó
Bảng 2-4: Những người dùng đánh giá cho từng bộ phim

Movie

M1

M2

M3

U1

1

4

1

U2

3

U3

1

U4


4

M4

M5

User

1

2

2

4

2

3

1

2

4

3

Bảng 2-5: Một người dùng (U2 bảng 1) đánh giá cho những bộ phim


M1

M2

M3

M4

M5

1

0

0

0

0

0

2

0

0

1


0

0

3

1

0

0

0

0

Movie
K


14

4

0

0

0


1

0

Cụ thể hơn, Xét một người dùng u đánh giá M bộ phim. Xây dựng ma trận V có
k
K  M , K là đánh giá của u đối với M bộ phim có dạng số nguyên 1 -> K. Các vị trí vi  1

nếu người dùng u đánh giá bộ phim i là k và các giá trị còn lại sẽ là 0 (Bảng 2-4 -> Bảng 2-5
xét cho một người dùng U2). Các hj có j=1,...F là các giá trị nhị phân của các nút ẩn. Cột
của V được mô hình hóa bằng cách sử dụng một phân phối đa thức (một softmax) và các
F

k
k
exp(b
h jWij2.8
) [9]:
đặc trưng ẩn h được mô phỏng giống như trong
công
thức
i 
j 1
k
p( i  1| h)  K
F

 exp(b   h W
l 1


p (h j  1| V ) 

l
i

j

j 1

l
ij

)

(2.18)

1
m

K

1  exp( b j   ikWijk )
i 1 k 1

(2.19)
Trong đó,

Wijk

k

là trọng số kết nối giữa đánh giá k của bộ phim i và nút ẩn j, bi là bias

(ngưỡng) của đánh giá k cho bộ phim i và bj là ngưỡng của nút ẩn j.

2.4.2. Huấn luyện máy hạn chế Botlzmann (RBMs) trong lọc cộng tác
Mặc dù hàm kích hoạt của các nút hiện đã thay đổi, các quy tắc học ở công thức
(2.16), (2.17) vẫn như cũ. Sự khác biệt duy nhất là Gibbs sampling được sử dụng để tái tạo
lại phân phối duy nhất trong xếp hạng không missing ratings [9]. Sử dụng các ký hiệu giới
thiệu trước đây để học trở thành:
Wijk   w ( vik hj    vik hj T )

(2.20)

bik   v ( vik     vik T )

(2.21)

bkj   h ( hj    hj T )

(2.22)

2.4.3. Dự đoán
Quay lại vấn đề là làm sao để tư vấn? Bây giờ đã biết làm thế nào để mô hình một
phân phối đánh giá trên các nút hiện của một RBM, suy luận ra các xếp hạng chưa đánh giá
là thực tế khá đơn giản: Giữ các xếp hạng người dùng trên các nút softmax, và sau đó thực
hiện một bước lấy mẫu Gibbs duy nhất trên tất cả các đánh giá bị missing. Đó chính là cách
giải quyết. Thuật toán dự đoán được đưa ra dưới bảng 2-6:


15

Bảng 2-6: Dự đoán của giải thuật RBMs trong lọc cộng tác

Giải thuật RBM- Dự đoán
Inputs: Một người dùng u và một bộ phim i
Outputs: Một dự đoán của R(u,i)
1. Giữ đánh giá của người dùng u trên các softmax units của RBM.
2. Tính toán

3. Tính toán

pˆ j  p (h j  1| V) k F
k hidden units j
cho tất
cả
exp(b
pˆ jWcác

i
ij )
j 1
p( ik  1| p)  K
F
l
exp(b


 pˆ jWijl )
i
l 1


j 1

cho k =1,...,K

K

4. Dự đoán giá trị. ví dụ:

2.5.

R(u,i)   p( ik  1| pˆ )k
k 1

.

Kết luận
Chương 2 đã giới thiệu về giải thuật BM, RBM và RBMs trong lọc cộng tác. Phương

pháp huấn luyện, cập nhật giá trị các tham số và dự đoán của giải thuật RBMs cũng đã được
đề cập.
Chương 3 tiếp theo sẽ tiến hành cài đặt thuật toán cho bài toán được đưa ra với dữ
liệu dataset mà hệ thống Netflix cung cấp.


16

CHƯƠNG III. XÂY DỰNG HỆ THỐNG VÀ THỬ NGHIỆM
Xây dựng bài toán

3.1.


Vị trí cần dự đoán

i1

i2

i3 ...

ij

u1
u2
...
ua

...

in
Dự đoán
Prediction

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

...

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


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

Đầu ra

Hình 3-1: Xây dựng bài toán trong lọc cộng tác

Bài toàn mà luận văn xây dựng, hình 3.1 thì bài toàn được đưa ra như sau:
Trong bài toán tư vấn dựa trên lọc cộng tác, giá trị đầu vào của hệ tư vấn chính là các
đánh giá dạng số nguyên K của người dùng tới những bộ phim được xây dựng thành
dạng ma trận R. R có kích thước N  M với N là số người dùng. Đầu ra của bài toán có
giá trị Raj với a  N , j  M chính là kết quả dự đoán của kỹ thuật lọc cộng tác. Cụ thể ở
đây được thể hiện bằng giải thuật RBMs. Các kết quả dự đoán được sử dụng để tính độ
hiệu quả của thuật toán qua chỉ số đánh giá RMSE của giải thuật.

3.2.

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


17

Khởi tạo
+Khởi tạo trọng số W với các giá trị 0
+Khởi tạo ngưỡng b với các giá trị 0
Tất cả users -người dùng chia n mini -batch

mini-batch 2


mini-batch 1
m users
Một user
+Tính xác suất điều kiện
của h và v
+Chạy Gibbs sampler qua
T bước lặp

Dữ liệu
đầu vào
DataSet

mini-batch n
m users

m users
Một user
+Tính xác suất điều kiện
của h và v
+Chạy Gibbs sampler qua
T bước lặp

...

Một user
+Tính xác suất điều kiện
của h và v
+Chạy Gibbs sampler qua
T bước lặp


Đưa ra các dự đoán
và chỉ số đánh giá RMSE

Khối 3 - Khối dự đoán,
đánh giá
Cập nhật các
giá trị

Cập nhật các
giá trị

Cập nhật các
giá trị

Khối 1 - Khối dữ
liệu
Trọng số Ngưỡng
w
b phía h

Ngưỡng
b phía v

Trọng số
w

Ngưỡng
b phía h


Ngưỡng
b phía v

Trọng số Ngưỡng Ngưỡng
w
b phía h b phía v

Khối 2 -Khối giải thuật
RBM

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.

Căn bậc hai của trung bình bình phương sai số (Root Mean Squared Error) [8]:
RMSE 

1
(R(u,i)  Rˆ (u,i)) 2

| T | (u,i)T

(3.1)
Trong đó,
+ T là bộ dữ liệu kiểm tra(testing set)
+ R(u,i) là giá trị đánh giá thực của người dùng u với bộ phim i
ˆ
+ R (u,i) là giá trị dự đoán của người dùng u với bộ phim i theo giải bảng xx

3.3.

Mô tả dữ liệu Dataset Netflix


Khối 1, dữ liệu theo như [9] và Netflix [11 ] cung cấp, dữ liệu được thu thập từ giữa
tháng 10 năm 1998 đến tháng 12 năm 2005 gồm những đánh giá của người dùng đối với
những bộ phim theo định dạng hình 3.4.


18

Hình 3-3: Định dạng của đánh giá những người dùng đối với những bộ phim

Trong hình 3.4 mô tả dữ liệu dataset của nhiều người dùng. Mỗi người dùng chứa
một mảng hai chiều là mã những bộ phim và giá trị được người dùng đánh giá. Ví dụ xét
người dùng trong hình ô số 1. Các giá trị 252, 411, 788,... chiều thứ nhất là mã của các bộ
phim. Chiều số hai là 1, 4, 1,... là kết quả đánh giá của người đó với tương ứng mã các bộ
phim ở mảng một. Ở ô số 2 và các ô còn lại cũng tương tự.
Khi huấn luyện, Netflix cung cấp các tập: dữ liệu huấn luyện (Training set) bao gồm
100,480,507 đánh giá từ 480,189 người dùng và 17,770 bộ phim, dữ liệu kiểm tra
(validation) bao gồm 1,408,395 đánh giá, và dữ liệu kiểm định (testing set, gồm các mẫu
hoàn toàn mới) gồm 2,817,131 cặp người dùng / bộ phim đánh giá. Bảng 3.3 sẽ mô tóm
lược lại các thông số dữ liệu.
Bảng 3-1: Thông số dữ liệu mà Netflix cung cấp


19

Người dùng

Bộ phim

Đánh giá


(User)

(Movie)

480,189

Huấn luyện

Kiểm

(Rating

(Training

(Validation (Testing

value)

Set)

Set)

Set)

[1,4]

100,480,507

1,408,395


2,817,131

17,770

tra Kiểm định

Hình 3.4 cũng mô tả định dạng dữ liệu của cả ba tập : dữ liệu huấn luyện, dữ liệu kiểm
tra, dữ liệu kiểm định. Tức là dữ liệu gồm n người dùng theo thứ tự từ trên xuống, mỗi
người dùng sẽ có một cặp id (mã) bộ phim và đánh giá (rating) tương ứng của bộ phim đó.
Một phương pháp chặt chẽ mà Netflix sử dụng để chia dữ liệu là walk-forward. Phương
pháp walk-forward chia tập dữ liệu thành một chuỗi các tập dữ liệu nhỏ hơn huấn luyệnkiểm tra- kiểm định gối chồng lên nhau hình 3.5 [11].

Hình 3-4: Thủ tục sử dụng phương pháp walk-forward chia tập dữ liệu trong Netflix

Netflix cũng cung cấp số điểm RMSE của hệ thống riêng của mình được huấn luyện trên
cùng tập dữ liệu, đó là 0.9514.

3.4.

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

3.4.1. Ý nghĩa các tham số trong máy hạn chế Boltzmann
a. Tốc độ học (Learning rate)
b. Weight - decay
c. Nhóm mẫu nhỏ (Mini-batch)
d. Hằng số quán tính (Momentum)
e. Epoch



20

3.4.2. Yêu cầu hệ thống và thư viện sử dụng
Bảng 3-2: Bảng yêu cầu hệ thống và thư viện sử dụng

Hệ thống

Chip intel core i3, 2.1GHz, Ram 4GB,
Windows 7 64bit

Ngôn ngữ cài đặt

Python version 34

Thư viện

NumPy version 1.10.1

Thư viện NumPy hình 3.6 [13] là một gói chương trình phục vụ cho các tính toán toán
học phức tạp bằng ngôn ngữ lập trình Python.

Hình 3-5: Thư viện Numpy tính toán toán học trong ngôn ngữ Python

3.4.3. Kết quả thực nghiệm và đánh giá
Luận văn thực hiện huấn luyện ba lần với cấu hình các tham số khác nhau, các tham số
này cần kiểm nghiệm thực tế để đạt được chỉ số đánh giá RMSE mong muốn.

a. Lần một
Theo [9] khuyến nghị, nút ẩn (Hidden) cố định cả ba lần được khởi tạo với giá trị F =
100, bộ phim M (movie) = 17765, K (số lượng rating (1->5)) = 5. Riêng các giá trị sau thì

thay đổi:
Tốc độ học (learning rate) learningRate = 0.01, momentum = 0.5, wDecay (weight
decay) = 0.00002, số lượng epoch numberOfEpoch = 20.


21

Hình 3-6: Kết quả chỉ số RMSE thu được lần một

b. Lần hai
Tốc độ học (learning rate) learningRate = 0.001, momentum = 0.5, wDecay (weight
decay) = 0.00002, số lượng epoch numberOfEpoch= 20.

Hình 3-7: Kết quả dữ liệu kiểm tra (validation set) RMSE thu được lần hai


22

c. Lần ba
Tốc độ học (learning rate) learningRate = 0.001, momentum = 0.5, wDecay (weight
decay) = 0.002, số lượng epoch numberOfEpoch = 50.

Hình 3-8: Kết quả dữ liệu kiểm tra (validation set) RMSE thu được lần ba

3.5.

Kết luận
Chương 3 đã cài đặt thực nghiệm bài toán với dữ liệu dataset Netflix, đưa ra chỉ số

RMSE đánh giá độ hiệu quả của thuật toán. Sau ba lần huấn luyện với các tham số truyền

vào khác nhau. Với 20 epoch khi luận văn chỉ thay đổi giá trị tham số với một lượng rất nhỏ
(ví dụ learning rate được thay đổi từ 0.01 sang 0.001) thì kết quả của chỉ số đánh giá RMSE
cũng đã khác đi nhiều. Cụ thể, lần một và lần hai tham số hoàn toàn giống nhau, chỉ khác
giá trị learning rate lần một là 0.01 và lần hai là 0.001. Chỉ số đánh giá RMSE thu cho thấy
với lần một kết quả RMSE không ổn định, lúc giảm lúc tăng. Với lần hai thì kết quả RMSE
ổn định, việc dự đoán của giải thuật là chính xác hơn. Với 50 epoch huấn luyện lần ba thì
giá trị chỉ số đánh giá mà giải thuật thực nghiệm thu được cuối cùng là 0.89399 tốt hơn so
với hệ thống riêng của Netflix đưa ra là 0.9514.


23

KẾT LUẬN
Trên cơ sở tìm hiểu, nghiên cứu giải thuật Restrited Boltzmann Machines trong
Deep Learning cho hệ lọc cộng tác.
Luận văn đã đạt được một số kết quả sau:
 Giới thiệu kỹ thuật lọc cộng tác trong hệ tư vấn: luận văn đã trình bày
một số kiến thức cơ sở về hệ thống tư vấn, bài toán tư vấn, các phương pháp tư vấn
là bao gồm tư vấn dựa trên nội dung và tư vấn dựa trên kỹ thuật lọc cộng tác.
Những vấn đề còn tồn tại để tư vấn có độ chính xác cao, độ phức tạp thấp, với dữ
liệu lớn, dữ liệu bị thưa cũng là một vấn đề lớn được các nhà nghiên cứu quan tâm.
Luận văn cũng đề xuất một giải thuật là máy hạn chế Botlzmann (Restricted
Botlzmann Machine) [9] để thực hiện và giải quyết một số vấn đề còn tồn tại trong
lọc cộng tác.
 Mô hình máy hạn chế Boltzmann (RBMs) trong lọc cộng tác: giới thiệu
về giải thuật BM, RBM và RBMs trong lọc cộng tác. Phương pháp huấn luyện, cập
nhật giá trị các tham số và dự đoán của giải thuật RBMs cũng đã được đề cập.
 Sử dụng mô hình giải thuật RBMs cài đặt cho bài toán đề xuất: cài đặt
thực nghiệm bài toán với dữ liệu lớn dataset Netflix, đưa ra chỉ số RMSE đánh giá
độ hiệu quả của thuật toán. Sau ba lần huấn luyện với các tham số truyền vào khác

nhau. Với 20 epoch khi luận văn chỉ thay đổi giá trị tham số với một lượng rất nhỏ
(ví dụ learning rate được thay đổi từ 0.01 sang 0.001) thì kết quả của chỉ số đánh giá
RMSE cũng đã khác đi nhiều. Với 50 epoch huấn luyện lần 3 thì giá trị chỉ số đánh
giá mà giải thuật thực nghiệm thu được cuối cùng là 0.89399 tốt hơn so với hệ
thống riêng của Netflix đưa ra là 0.9514.
Những hạn chế còn tồn tại:
 Thuật toán chạy lâu khi huấn luyện
 Chưa xử lý được vấn đề còn tồn tại là người dùng mới, sản phẩm mới.
Hướng phát triển trong tương lai:


×