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

Nghiên cứu sử dụng và so sánh các giải thuật machine learning và deep learning trong bài toán gợi ý ứng dụng trong các hệ thống thương mại điện tử

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 (48 KB, 50 trang )

NGUYỄN HỮU PHÚC

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

NGUYỄN HỮU PHÚC

MẠNG MÁY TÍNH VÀ TRUYỀN
THƠNG DỮ LIỆU

NGHIÊN CỨU SỬ DỤNG VÀ SO SÁNH CÁC GIẢI THUẬT
MACHINE LEARNING VÀ DEEP LEARNING TRONG BÀI TOÁN
GỢI Ý ỨNG DỤNG TRONG CÁC HỆ THỐNG THƯƠNG MẠI ĐIỆN
TỬ

LUẬN VĂN THẠC SĨ KHOA HỌC
MẠNG MÁY TÍNH VÀ TRUYỀN THƠNG DỮ LIỆU

2017B
Hà Nội – Năm 2019
1


BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
--------------------------------------NGUYỄN HỮU PHÚC

NGHIÊN CỨU SỬ DỤNG VÀ SO SÁNH CÁC GIẢI THUẬT MACHINE
LEARNING VÀ DEEP LEARNING TRONG BÀI TOÁN GỢI Ý ỨNG DỤNG
TRONG CÁC HỆ THỐNG THƯƠNG MẠI ĐIỆN TỬ



Chun ngành : Mạng máy tính và truyền thơng dữ liệu

LUẬN VĂN THẠC SĨ KHOA HỌC
MẠNG MÁY TÍNH VÀ TRUYỀN THÔNG DỮ LIỆU

NGƯỜI HƯỚNG DẪN KHOA HỌC :
1. PGS.TS. Nguyễn Linh Giang

Hà Nội – Năm 2019

2


LỜI CAM ĐOAN

Những kiến thức trình bày trong luận văn là do tơi tìm hiểu, nghiên cứu và
trình bày theo những kiến thức tổng hợp của cá nhân. Kết quả nghiên cứu trong luận
văn này chưa từng được công bố tại bất kỳ cơng trình nào khác. Trong q trình làm
luận văn, tơi có tham khảo các tài liệu có liên quan và đã ghi rõ nguồn tài liệu tham
khảo. Tơi xin cam đoan đây là cơng trình nghiên cứu của tôi và không sao chép của
bất kỳ ai.
Tôi xin chịu hồn tồn trách nhiệm, nếu sai, tơi xin chịu mọi hình thức kỷ luật
theo quy định.
Hà Nội, ngày 09 tháng 9 năm 2019
Học viên

NGUYỄN HỮU PHÚC

3



LỜI CẢM ƠN

Trước tiên, tơi xin bày tỏ lịng biết ơn sâu sắc tới PGS.TS. Nguyễn Linh Giang
và các thầy cô Viện CNTT-TT, Trường Đại học Bách Khoa Hà Nội đã nhiệt tình đào
tạo và hướng dẫn để tạo điều kiện thuận lợi cho tôi nghiên cứu khoa học, và giúp tơi
có thể hồn thành luận văn một cách tốt nhất.
Tôi cũng gửi lời cảm ơn chân thành đến anh TS. Đỗ Đức Dũng – Group Leader
Software Solution Group và anh Trịnh Hồng Cường – Part Leader Service Platform
Part đã tạo điều kiện cho tơi có cơ hội triển khai xây dựng hệ thống, cám ơn những
lời đóng góp ý kiến của các anh trong thời gian tôi làm việc. Tôi cũng gửi lời cảm ơn
đến các đồng nghiệp của tôi trong đội đã hỗ trợ tôi trong thời gian tơi làm khóa luận.
Cuối cùng tơi xin gửi lời cám ơn đến gia đình, bạn bè, những người đã ln
bên tơi, động viên và khuyến khích tơi trong q trình thực hiện đề tài nghiên cứu
của mình.
Học viên

NGUYỄN HỮU PHÚC

4


MỤC LỤC

LỜI CAM ĐOAN .......................................................................................................3
LỜI CẢM ƠN .............................................................................................................4
MỤC LỤC ...................................................................................................................5
DANH MỤC HÌNH VẼ ..............................................................................................7
THUẬT NGỮ VÀ TỪ VIẾT TẮT .............................................................................8

MỞ ĐẦU ...................................................................................................................10
1. Lý do chọn đề tài ...............................................................................................10
2. Mục đích nghiên cứu của luận văn ....................................................................11
3. Đối tượng, phương pháp và phạm vi nghiên cứu ..............................................11
4. Tóm tắt nội dung và đóng góp mới của tác giả .................................................12
CHƯƠNG 1. TỔNG QUAN BÀI TOÁN KHUYẾN NGHỊ ....................................14
1.1 Giới thiệu về bài toán khuyến nghị..................................................................14
1.2 Các khái niệm recommendation system. .........................................................15
1.3 Một số hướng tiếp cận trong recommendation system. ...................................18
CHƯƠNG 2. CƠ SỞ LÝ THUYẾT RNN và LSTM ..............................................23
2.1 Giới thiệu về Deep Learning ...........................................................................23
2.2 RNN và LSTM ................................................................................................24
CHƯƠNG 3. HƯỚNG TIẾP CẬN SESSION-BASED ...........................................34
3.1 Vấn đề người dùng trên các trang thương mại điện tử ....................................34
3.2 Hướng tiếp cận Session-based recommendation .............................................35
3.3 Hướng tiếp cận RNN trong bài toán Session-based ........................................37
3.4 Kết quả thử nghiệm..........................................................................................39
CHƯƠNG 4. CÀI ĐẶT VÀ TRIỂN KHAI ..............................................................41
4.1 Hệ thống Galaxy Gift.......................................................................................41
4.2 Chuẩn hóa dữ liệu ............................................................................................44
4.3 Cài đặt và triển khai .........................................................................................45
4.4 Kết quả đạt được. .............................................................................................46
4.5 So sánh với thuật toán Matrix Factorization đã triển khai ..............................46

5


CHƯƠNG 5. HƯỚNG PHÁT TRIỂN TRONG TƯƠNG LAI ................................48
5.1 Kết luận ............................................................................................................48
5.2 Hướng phát triển ..............................................................................................48

TÀI LIỆU THAM KHẢO.........................................................................................50

6


DANH MỤC HÌNH VẼ

Figure 1: Recommendation system ...........................................................................15
Figure 2: Matrix Utility .............................................................................................16
Figure 3: Matrix Utility sau khi chuẩn hóa ...............................................................18
Figure 4: Hướng tiếp cận Content-based ..................................................................19
Figure 5: Hướng tiếp cận Collaborative Filtering .....................................................20
Figure 6: Hướng Hybrid recommendation system....................................................20
Figure 7: Session based recommendation system .....................................................21
Figure 8: Hướng translation recommendation system ..............................................22
Figure 9: Deep learning .............................................................................................23
Figure 10: RNN .........................................................................................................24
Figure 11: Mạng RNN ..............................................................................................24
Figure 12: Cách hoạt động RNN...............................................................................26
Figure 13: RNN cần nhớ nhiều thơng tin ..................................................................26
Figure 14: LSTM.......................................................................................................27
Figure 15:Mơ hình chưa nhiều lắp tương tác trong LSTM .......................................28
Figure 16: các ký hiệu ...............................................................................................28
Figure 17: LSTM nhớ thông tin ................................................................................29
Figure 18: Logic quả cổng quên ...............................................................................29
Figure 19: Đầu vào của LSTM .................................................................................30
Figure 20: LSTM cập nhập dữ liệu mới....................................................................30
Figure 21: LSTM cập nhập vào trong đường nhớ ....................................................31
Figure 22: Cập nhập lại dữ liệu đầu ra ......................................................................32
Figure 23: Các dạng khác của LSTM .......................................................................32

Figure 24: LSTM cập nhập cùng lúc ........................................................................33
Figure 25: LSTM dạng GRU ....................................................................................33
Figure 26: Tỷ lệ người dùng .....................................................................................34
7


Figure 27: KNN.........................................................................................................35
Figure 28: Đầu vào và ra cho 3D CNN .....................................................................36
Figure 29: Dữ liệu đầu vào cho GRU .......................................................................37
Figure 30: Kiến trúc mạng ........................................................................................38
Figure 31: Mini-batch ...............................................................................................39
Figure 32: Sơ đồ hệ thống .........................................................................................41
Figure 33: Amazon S3 ..............................................................................................42
Figure 34: Lambda ....................................................................................................43
Figure 35: Rabbit MQ ...............................................................................................43
Figure 36: Dữ liệu log ...............................................................................................44
Figure 37: Dữ liệu sau xử lý .....................................................................................45
Figure 38: Flask framework ......................................................................................46

THUẬT NGỮ VÀ TỪ VIẾT TẮT

Từ viết tắt

Tên tiếng Anh

Thuật ngữ tiếng Việt

CNTT

Công nghệ thông tin


CSDL

Cơ sở dữ liệu

RSs

Recommendation systems

Hệ thống gợi ý

ML

Machine learning

Học máy

DL

Deep Learning

Học sâu

RNN

Recurrent Neural Network

LSTM

Long short-term memory


CF

Collaborative filtering

Aws

Amazon web service

S3

Amazon web service storage

Học cộng hưởng

8


Lambda

Amazon web service lambda

BE

Backend

TF-IDF

term frequency – inverse
document frequency


DB

database

Sigmod

Sigmod

GPU

Graphics Processing Unit

GRU

Gated recurrent unit

CbF

Contend-based filtering

NoSQL

No SQL

Cơ sở dữ liệu không cấu trúc

JavaScript Object Notation

Phân đoạn thăm khám bệnh


1 hàm kích hoạt trong RNN

Framework
Json

nhân
Log

System log

Log ghi gọi API

Kaggle
api

Trang web chuyên về ML
application programming interface

9


MỞ ĐẦU

1. Lý do chọn đề tài
Dự đoán và trong đó là recommendation system đang là lĩnh vực được các nhà
khoa học và các doanh nghiệp quan tâm nghiên cứu trong nhiều năm gần đây. Ứng
dụng trong đó là recommendation system được thực hiện trong nhiều lĩnh vực khác
nhau như giáo dục, y tế, tài chính, ngân hàng, kinh doanh... – với hàng chục các
cuộc thi trên Kaggle mỗi tháng. Đặc biệt, trong thời gian gần đây, recommendation

system trong các hệ thống thương mại điện tử đang được quan tâm nghiên cứu. Đối
với các trang thương mại điện tử, việc đưa ra những sản phẩm phù hợp với chính
những người tiêu dùng là một điều cực kỳ thiết yếu. Để làm được điều này, hệ thống
phải có các thơng tin liên quan đến các sản phẩm và sự tương tác với hệ thống của
người dùng. Người dùng có thể phải tự mình tìm kiếm hoặc lựa chọn các sản phẩm
mà họ đã định hình sẵn trong đầu. Tuy nhiên, việc người dùng mua các sản phẩm mà
họ tình cờ bắt gặp trong lúc ở trên các ứng dụng chiếm một tỷ lệ lớn. Đây là một trong
những yếu tố để thúc đẩy nghiên cứu và phát triển các module recommendation
system trong các hệ thống thương mại điện tử, mạng xã hơi, ... Đây cũng là bài tốn
được đặt ra cho lĩnh vực khai phá dữ liệu khi có dữ liệu lớn về thói quen người dùng
và q trình tương tác của người dùng trong hệ thống nhằm hỗ trợ cho người dùng
tìm kiếm, trải nghiệm các dịch vụ tốt hơn mà hệ thống mang lại. Khi làm luận án tôi
đang công tác tại Trung tâm nghiên cứu và phát triển điện thoại Samsung Việt Nam
SVMC, trước những bài toán đang tồn tại ở nơi làm việc cùng với lĩnh vực tôi đang
theo học, được sự đồng ý của PGS.TS. Nguyễn Linh Giang tôi chọn đề tài luận
văn: “Nghiên cứu sử dụng và so sánh các giải thuật machine learning và deep learning
trong bài toán gợi ý ứng dụng trong các hệ thống thương mại điện tử”, luận văn góp
phần vào việc giải quyết các bài toán cần thiết trong thực tế.

10


2. Mục đích nghiên cứu của luận văn
Xây dựng hệ thống dữ liệu phục vụ cho quá trình làm phát triển các mơ hình
học máy. Các dữ liệu được xây dựng đảm bảo tính bảo mật của người dùng. Các dữ
liệu này được sử dụng để xây dựng mơ hình dự đoán sử dụng trong hệ thống
recommendation system cho các ứng dụng thương mại điện tử.
Kết quả nghiên cứu có thể sử dụng cho các trang thương mại điện tử trong đó
có hệ thống Galaxy Gift, ứng dụng được phát triển bởi trung tâm SVMC tại Việt
Nam.

Kết quả là sự bổ xưng tiếp theo cho đồ án tốt nghiệp của chính tác giả với các
tiếp cận và bài tốn khác. Mục đích nghiên cứu bổ trợ cùng với hướng tiếp cận cũ,
giúp cho q việc đưa ra dự đốn chính xác hơn.
3. Đối tượng, phương pháp và phạm vi nghiên cứu
a. Đối tượng nghiên cứu
Đối tượng nghiên cứu đầu tiên là các hành vi người dùng trên hệ thống, các
hành vi này bao gồm tất cả các hành vi tương tác với hệ thống bao gồm like, comment,
click, … đối với hệ thống.
Đối tượng nghiên cứu thứ hai là các mơ hình học máy RNN. Các mơ hình này
cho phép nhớ trạng thái mà người dùng đã tương tác với hệ thống và đưa ra các dự
đoán mới.
b. Phương pháp nghiên cứu
- Phương pháp nghiên cứu lý thuyết tìm hiểu về các hướng tiếp cận
recommendation system hiện nay. Các hướng giải pháp tiếp cận theo hướng sessionbased khả thi đối với bộ dữ liệu. Phương pháp triển khai đối hệ thống thực tế.
- Phương pháp nghiên cứu thực nghiệm: Sau khi xây dựng thành công hệ thống,
thử nghiệm cài đặt ứng dụng và đánh giá hiệu năng.

c. Phạm vi nghiên cứu

11


- Nghiên cứu và ứng dụng trong hệ thống recommendation system của hệ
thống Galaxy Gift ứng dụng của công ty SVMC.
4. Tóm tắt nội dung và đóng góp mới của tác giả
Luận văn tác giả trình bày nghiên xây dựng hệ thống recommendation system
phục vụ tăng trải nghiệm khách hàng trong các hệ thống thương mại điện tử. Sau đó
áp dụng hệ thống này cho hệ thống.
Bố cục luận văn gồm 5 chương :
Chương 1. Tổng quan về hệ thống Recommendation system. Chương này trình bày

tổng quan về các hệ thống recommendation system, các hướng tiếp cận để từ đó đưa
ra cách triển khai hệ thống phù hợp
Chương 2. Cơ sở lý thuyết mơ hình RNN và LSTM. Chương này sẽ đưa ra những
điểm đặc biệt trong mơ hình RNN và tại sao nó có thể triển khai được trong bài toán
session-based.
Chương 3: Hướng tiếp cận Session-based. Chương này sẽ mô tả hướng tiếp cận theo
session-based. Tại sao cần hướng tiếp cận này, hướng tiếp cận này có những đặc điểm
gì. Tơi sẽ cài đặt và triển khai hướng tiếp cận này với một bộ dữ liệu mẫu đã có sẵn
trên Kaggle.
Chương 4: Cài đặt và triển khai. Chương này sẽ trình bày thử nghiệm các kịch bản
đã được tác giả xây dựng từ đó đưa ra các kết luận và đánh giá. Mơ hình sẽ triển khai
trên hệ thống Galaxy Gift với bộ dữ liệu từ hệ thống.
Chương 5: Hướng phát triển trong tương lai. Chương này sẽ trình bày những vấn đề
mới mà bản thân tác giả gặp trong khi nghiên cứu. Chương sẽ đề xuất những hướng
tiếp cận và nghiên cứu mới với mục đích bài tốn recommendation system sẽ chính
xác hơn và có hiện năng tốt hơn trong triển khai thực tế.

12


Trong luận văn này tác giả đã nghiên cứu, phân tích, đánh giá các mơ hình
recommendation system trong thực tế. Bên cạnh đó đây sẽ là hướng triển khai cho hệ
thống của công ty.

13


CHƯƠNG 1. TỔNG QUAN BÀI TOÁN KHUYẾN NGHỊ

1.1 Giới thiệu về bài toán khuyến nghị

Như chúng ta thường biết, các hệ thống thương mại điện tử và mạng xã hội
thường gợi ý chúng ta như:
-

Facebook gợi ý chúng ta kết bạn với ai đó mỗi khi chúng ta chấp nhận hoặc
gửi một yêu cầu kết bạn đến với ai.

-

Zalo giới thiệu cho chúng ta những hội nhóm mà có thể chúng ta sẽ mong
muốn vào.

-

Youtube có sẵn 1 list các video để chạy sau khi video bạn đang xem đang
kết thúc.

-

Hay đơn giản như, khi bạn search một từ khóa trên trang tìm kiếm google,
thì hàng loạt các gợi ý về từ khóa đó sẽ xuất hiện ở những quảng cáo mà
bạn sẽ bắt gặp ngay sau đó.

Hiểu một cách đơn giản, các bài toán khuyến nghị đưa những sản phẩm “phù
hợp nhất” với mục đích đến với những người sử dụng. Việc sử dụng các hệ thống
khuyến nghị sẽ giúp ích rất nhiều cho việc mang lại trải nghiệm người dùng tốt hơn
và đặc biệt là giữ chân người dùng lâu hơn.
Những thuật toán đứng sau hỗ trợ các hệ thống khuyến nghị này là các thuật
toán machine learning với tên gọi chung là recommendation system. Hiện nay thường
niên, có rất nhiều các hội thảo của các tổ chức khoa học và doanh nghiệp với chủ đề

về recommendation system, có thể kể đến là hội thảo : ACM RecSys ( link :
). Các xu hướng của các mô hình sử dụng cho các bài tốn
recommendation system cụ thể được chia sẻ tại đây.

14


Figure 1: Recommendation system
1.2 Các khái niệm recommendation system.
Mặc dù là một mảng lớn của Machine learning, tuy nhiên phải đến thời kỳ
internet bùng nổ, các bài toán về recommendation system với cụ thể và được quan
tâm rộng rãi hơn trước. Hiện nay có rất nhiều các hướng tiếp cận mới từ dữ liệu, mơ
hình, cách hệ thống hoạt động, … Tuy nhiên, các bài tốn recommendation system
thường có 2 đối tượng chính là Users và Items. Trong đó ta có thể hiểu đơn giản là
Users là người dùng và Items là các sản phẩm trong hệ thống.
Một khái niệm được sử dụng trong recommendation system là Utility matrix1
– đây là một ma trận 2 chiều, trong đó 1 chiều đại diện cho Users, 1 chiều đại diện
cho Items và giá trị giữa các ô thể hiện độ phù hợp giữa User và Item đó. Độ phù hợp
ở đây là độ u thích hoặc độ khơng u thích giữa một người dùng và một sản phẩm.

15


Figure 2: Matrix Utility

Ở hình trên mơ tả, các item là các bài hát : “mưa nửa đêm”, “cỏ úa”, “vùng lá
me bay”, “con cò bé bé”, “em yêu trường em”. Các User là các người A, B, C, D, E,
F.
Giá trị của các ô là 5 đại diện cho mức độ u thích của người với bài hát đó
ở mức độ là 5 hiểu là rất thích. Giá trị của các ô là 4 thể hiện mức độ yêu thích người

đó với bài hát là ở mức độ thích, tuy nhiên kém so với mức 5. Trái ngược lại, giá trị
của các ơ là 0 có mang ý hàm ý đây là một bài hát tệ đối với người dùng đó.
Ta có thể nhìn thấy có rất nhiều ơ có giá trị là “?” các ơ này thể hiện rằng,
người dùng ở ơ đó chưa tương tác với bài hát ở ô này. Hay đơn giản hơn là đây là các
ơ cịn trống. Bài tốn recommendation system là bài tốn cần điền đủ các ơ cịn trống
này để từ đó ta có thể lựa chọn được những bài items phù hợp nhất cho những users.
Thông thường, các matrix utility thường là các ma trận thưa với một lượng lớn
các users và một lượng lớn các items chưa tương tác với nhau – hay là một ma trận
với một lượng lớn các ơ là “?”. Ví dụ, trên youtube có hàng tỷ người dùng và cũng
có hàng trăm triệu video. Mỗi người dùng chỉ tương tác với một lượng nhỏ trong các

16


video này. Đây chính là một trong số những bài toán hay thách thức đối với các hệ
thống recommendation system.
Chúng ta đã hiểu khái niệm Users, Items và matrix utility trong hệ thống
recommendation system. Không giống như users và items thì matrix utility Khơng có
sẵn. Chúng ta ln thường gặp tình trạng Khơng có các con số : “1,0,4,5, …” như
trong ví dụ ở trên. Vậy để xây dựng được matrix utility ta cần làm gì và làm những
gì? Sau đây sẽ là cơng việc mà bất kỳ bài tốn machine learning cần phải làm đầu
tiên đó là làm dữ liệu. Sau đây là một trong những cách mà bản thân tôi đã sử dụng
trong khi làm module recommendation system cho hệ thống Galaxy Gift - ứng dụng
tặng quà của Samsung:
-

Dựa vào người dùng rate các sản phẩm trên hệ thống. Mỗi một sản
phẩm ở trên hệ thống sẽ có các thang để user có thể rate, tương ứng với
độ thích sẽ là số star mà người đó vote. Sau khi người dùng vote ta có
thể coi là người đó đã tương tác với sản phẩm. Tuy nhiên với việc rate

có thể bị ảnh hưởng bởi bias từ những người dùng trước và số lượng
người dùng rate sản phẩm là không nhiều.

-

Dựa vào sự tương tác của người dùng. Tùy vào hệ thống đã xây dựng
bạn có thể có một số thơng tin hữu ích và giá trị khác đó là sự tương tác
của một người dùng với một sản phẩm. Cụ thể đó là “click”, “số lần
click”, “thời gian click”,“like”, “dislike”, … Tuy nhiên với cách này,
bạn cần một bước chuẩn hóa dữ liệu để có được các điểm số cụ thể mà
bạn có thể mong muốn sử dụng được trong hệ thống recommendation
systems của mình.

17


Figure 3: Matrix Utility sau khi chuẩn hóa

1.3 Một số hướng tiếp cận trong recommendation system.
Content-based: hệ thống sẽ học để có thể đưa ra gợi ý những item mà tương
tự với những sản phẩm mà user đã tương tác trong quá khứ. Độ tương tự giữa các
item được tính dựa trên những đặc trưng kết hợp với những item được so sánh – thông
thường sẽ so sánh thông qua content của các item để tính độ tương đồng. Chẳng hạn,
nếu user rate điểm cao ( hoặc có những tương tác khác như xem nhiều, like, … ) cho
một bộ phim thuộc thể loại hành động, thì hệ thống có thể học để gợi ý những bộ
phim khác thuộc thể loại này.
Phương pháp sử dụng trong hướng tiếp cận này thường là IF-IDF (term
frequency – inverse document frequency) đây là một thuật tốn cho phép bạn có thể
sử lý nội dung text ở các content của các items một cách đơn giản. Việc sử lý dựa
trên 2 thông tin: tần xuất xuất hiện trong văn bản của một từ, tần xuất xuất hiện trong

nhiều văn bản của một từ. Kết hợp 2 thông tin này cho các từ trong một content của
item ta đã có biểu hiện khác có thể xử lý đơn giản hơn !

18


Figure 4: Hướng tiếp cận Content-based
Collaborative filtering (CF - học cộng tác): cách hiểu đơn giản nhất cho hướng
tiếp cận này là gợi ý cho user những item mà những user khác có cùng sở thích đã
thích trước đó. Độ tương tự hay gọi là độ giống nhau về sở thích của 2 user được tính
tốn dựa trên mức độ tương tự về lịch sử rating của 2 user. Lọc cộng tác được xem là
kỹ thuật phổ biến và được sử dụng nhiều nhất trong RS.
Mơ hình CF có 2 hướng tiếp cận chủ yếu – tùy thuộc vào bài toán và dữ liệu
mà hệ thống cung cấp. Hướng tiếp cận user, tìm các sự giống nhau của các user và
gợi ý cho họ những sản phẩm mà trước đó họ chưa tương tác. Ngược lại với hướng
này là hướng item, tìm sự giống nhau giữa các item và gợi ý cho những người dùng
những sản phẩm tương tự. Ngoài ra còn một hướng nữa là phân tách trực tiếp ma trận
– Matrix Factorization. Đây được đánh giá là một trong những phương pháp dễ triển
khai và trên thực tế đem lại những kết quả tích cực hơn so với phương pháp dựa trên
content based.
Trong đồ án tốt nghiệp trước đó của tơi, tơi đã Trình bày chi tiết về hướng tiếp
cận và cách triển khai trong thực tế của mơ hình học cộng tác.

19


Figure 5: Hướng tiếp cận Collaborative Filtering

Hybrid recommender system: đây là một phương pháp kết hợp, hệ thống này
dựa trên kết hợp của những kỹ thuật đố là CF và Content-based. Lấy ví dụ, phương

pháp CF sẽ gặp vấn đề với các item mới – các người dùng cũ chưa tương tác, nghĩa
là nó khơng thể sinh ra gợi ý cho các item mà chưa có rating. Tuy nhiên điều này lại
khơng ảnh hưởng đến content-based vì phương pháp này dự đốn cho các item mới
dựa trên mơ tả của chúng chỉ dựa vào các content. Với hai kỹ thuật Recommendation
Systems cơ bản kết hợp lại tạo ra một hệ thống hybrid mới nhằm tận dụng lợi thế
của kỹ thuật này để bổ sung cho điểm yếu của kỹ thuật kia.

Figure 6: Hướng Hybrid recommendation system

20


1.4 Một số hướng tiếp cận mới.
Ngoài các hướng tiếp cận trên, trong một số trường hợp chúng ta sẽ sử dụng
các hướng tiếp cận khác để phù hợp với dữ liệu và hệ thống mà ta sẽ triển khai trên
đó.
1.4.1 Hướng session based

Figure 7: Session based recommendation system

Bài tốn: Người dùng khơng có thơng tin đăng nhập, khi có sử dụng hệ thống
ta chỉ có các thơng tin click của người dùng trong phiên làm việc đó. Các
recommendation dựa trên chính các item trước họ click để dự đốn item tiếp theo.
Hướng này thực tế được sử dụng ở rất nhiều trên các trang xem phim, nghe
nhạc trực tuyến. Vì người dùng thường ít có thói quen đăng nhập trong với các hệ
thống.
1.4.2 Hướng tiếp cận translation recommendation.
Phương pháp này sử dụng kết hợp đồng thời cả dữ liệu người dùng và dữ liệu
trong phiên làm việc của người dùng đó. Cùng tương tác với 1 bộ phim, nhưng hệ
thống sẽ recommend cho mỗi người dùng một sản phẩm khác nhau dựa trên profile

trước đó của họ.

21


Figure 8: Hướng translation recommendation system

Hướng tiếp cận này đòi hỏi, ta phải xây dựng một profile của mỗi người dùng
và kết hợp nó với item. Mơ hình tính tốn phải đáp ứng với các request trong near
real time.- Phần cứng - máy chủ và hệ thống lưu trữ có thông số kỹ thuật duy nhất,
bao gồm một số lượng lớn bộ xử lý và không gian bộ nhớ, băng ghi âm, thành phần
mạng, lưu trữ lâu dài đối với các hoạt động huấn luyện và không gian lưu trữ lớn với
khả năng xử lý tốc độ cao để mô phỏng huấn luyện lưới và cho các hoạt động huấn
luyện.
Trong đồ án tốt nghiệp, tác giả đã trình bày về hướng tiếp cận Collaborative
Filtering với thuật toán Matrix Factorization với những kết quả thử nghiệm đạt được.
Tuy nhiên khi triển khai trên thực tế mơ hình trên đã vấp phải thực tế đó là q ít
người dùng có hồ sơ để có thể sử dụng. Chính vì vậy tiếp theo Chương 2 tác giả sẽ đi
sâu vào cơ sở lý thuyết về mạng RNN và LSTM bổ xung cho hướng tiếp cận Sessionbased mà tác giả sẽ trình bày ở chương 3.

22


CHƯƠNG 2. CƠ SỞ LÝ THUYẾT RNN và LSTM
2.1 Giới thiệu về Deep Learning
Deep learning là một nhánh trong Machine learning. Hiện nay deep learning
được sử dụng rất nhiều trong các ứng dụng có thể kể đến như: nhận diện giọng nói,
nhận hiện hình ảnh, sử lý tiếng nói, …

Figure 9: Deep learning


Một hệ thống deep learning gồm các thành phần : input đầu vào, model mạng,
output đầu ra. Trong đó model của thuật tốn sử dụng các kiến trúc mạng neutral
network.
Kiến trúc của các mạng neutral network sử dụng trong deep learning thường
bao gồm 3 thành phần:
-

Input layer: Các giá trị đầu vào đại diện x1, x2, .. xn sẽ được đưa vào
trong lớp này.
Output layer: Kết quả của quá Trình training với các input đầu vào sẽ
là output tương ứng y1, y2, … yn.
Lớp hidden layer: Đây là cơng việc chính của q Trình training, tìm
ra các parameter ẩn của hidden layer. Việc tìm ra các parameter cũng
chính là giải quyết bài toán của chúng ta.

23


2.2 RNN và LSTM
Trong một model deep learning, ta thấy rằng ta chỉ có sự tương tác giữa đầu
vào và đầu ra là các cặp (x1,y1), (x2,y2), … Điều đó có Nghĩa kết quả của đầu ra y2
sẽ chỉ phụ thuộc vào giá trị đầu vào tại thời điểm đó. Tuy nhiên trên thực tế có rất
nhiều trường hợp kết quả đầu ra của ta Không chỉ phụ thuộc vào đầu vào mà còn phụ
thuộc vào kết quả đầu ra trước đó. Ví dụ như trong ngơn ngữ: ý Nghĩa của một từ cịn
thể hiện từ chính nó và các từ trước và sau nó. Điều này có ý Nghĩa cần một mơ hình
mà nó có thể lưu được các trạng thái trước của model. Đây chính là concept trong tư
tưởng của RNN:

Figure 10: RNN


Kiến trúc mạng của RNN rất đơn giản với 1 cell! Ta vẫn có dữ liệu đầu vào và
dữ liệu đầu ra. Tuy nhiên ngoài 1 đường đi từ đầu vào x đến đầu ra h thơng qua mơ
hình ta cịn thấy chính 1 đường đầu ra quay ngược trở lại. Điều này làm cho mạng
RNN có vẻ bí ẩn và khó hiểu. Ta có hình minh họa đơn giản hơn:

Figure 11: Mạng RNN

24


Bản chất giống như chuỗi này cho thấy các mạng RNN có liên quan mật thiết
đến các chuỗi và danh sách. Họ sử dụng kiến trúc tự nhiên của mạng nơ ron để sử
dụng cho dữ liệu đó.

Trong vài năm qua, đã có những thành cơng đáng kinh ngạc khi áp dụng RNN
cho nhiều vấn đề khác nhau: nhận dạng giọng nói, mơ hình ngơn ngữ, dịch thuật, chú
thích hình ảnh Danh sách tiếp tục…
Kíến trúc của RNN sau khi ta bỏ những vòng loop trở nên đơn giản và tường
minh hơn. Cũng giống như các mơ hình mạng khác. Mạng RNN sẽ bao gồm đầu vào
và đầu ra. Tuy nhiên như đã nói, điểm đáng chú ý ở đây đó là kết quả của trạng thái
thứ n, sẽ được chuyển tiếp cùng với đầu vào ở trạng thái thứ n+1 ở trạng thái tiếp
theo. Chính vì điều này mà mạng có thể học được sự liên quan giữa các dữ liệu theo
thứ tự thời gian.
Tuy nhiên để nói hết về RNN thì điều cần thiết cho những thành cơng này là
việc sử dụng LSTMs, một loại mạng RNN rất đặc biệt, hoạt động, cho nhiều tác vụ,
tốt hơn nhiều so với phiên bản tiêu chuẩn. Hầu như tất cả các kết quả thú vị dựa trên
các mạng RNN đều đạt được với chúng. Nó có những LSTM mà bài tiểu luận này sẽ
khám phá.
Vấn đề Long-term

Có 1 vấn đề của RNN đó là nó ln cố gắng ghi nhớ những gì diễn ra trước
đó. Ví dụ như nó hiểu các frame diễn ra trước đó trong 1 video để có thể hiểu frame
hiện tại. Tuy nhiên, câu hỏi đặt ra có thực sự RNN làm được điều như thế hay Khơng
? Nếu có thể, nó có bị phụ thuộc ?
Đơi khi, chúng ta chỉ cần nhìn vào thơng tin gần đây để thực hiện nhiệm vụ
hiện tại. Ví dụ, hãy xem xét một mơ hình ngơn ngữ đang cố gắng dự đoán từ tiếp theo
dựa trên các từ trước đó. Nếu chúng ta đang cố gắng dự đốn từ cuối cùng trong các
“đám mây trên bầu trời”, thì chúng ta không cần bất kỳ bối cảnh nào nữa - đó là một
điều khá rõ ràng, từ tiếp theo sẽ là bầu trời. Trong những trường hợp như vậy, khi
khoảng cách giữa thông tin liên quan và địa điểm mà nó cần là nhỏ, RNN có thể học
cách sử dụng thông tin trong quá khứ.

25


×