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

Ứng Dụng Mạng Neural Vào Hệ Gợi Ý Trong Thương Mại Điện Tử (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.49 MB, 56 trang )

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

VÕ ĐỨC ANH

ỨNG DỤNG MẠNG NEURAL VÀO HỆ GỢI Ý
TRONG THƯƠNG MẠI ĐIỆN TỬ

LUẬN VĂN THẠC SĨ KỸ THUẬT
(Theo định hướng ứng dụng)

HỒ CHÍ MINH - 2017


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

VÕ ĐỨC ANH

ỨNG DỤNG MẠNG NEURAL VÀO HỆ GỢI Ý
TRONG THƯƠNG MẠI ĐIỆN TỬ
Chuyên ngành: Hệ thống thông tin
Mã số: 60.48.01.04

LUẬN VĂN THẠC SĨ KỸ THUẬT
(Theo định hướng ứng dụng)

NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS. LÊ TUẤN ANH

HỒ CHÍ MINH - 2017



i

LỜI CAM ĐOAN
Tôi cam đoan đây là công trình nghiên cứu riêng của tôi.
Các số liệu và kết quả trong luận văn đều là trung thực và chưa từng ai công bố trong
các công trình nghiên cứu khác.
TP.HCM, ngày 28 tháng 05 năm 2017
Học viên thực hiện luận văn

Võ Đức Anh


ii

LỜI CẢM ƠN
Để hoàn thành luận văn này, ngoài những nỗ lực nghiên cứu và cố gắng của bản
thân thì không thể thiếu những định hướng và chỉ bảo quý báu của các Thầy Cô hướng
dẫn. Em xin được gửi lời cảm ơn sâu sắc tới Thầy - PGS. TS. Lê Tuấn Anh, giáo
viên trực tiếp hướng dẫn và Thầy - TS. Bùi Xuân Lộc, người đã tận tình chỉ bảo và
định hướng thêm cho em trong suốt quá trình nghiên cứu và thực hiện luận văn.
Em cũng xin gửi lời cảm ơn chân thành đến tất cả các Thầy Cô của trường Học
Viện Công Nghệ Bưu Chính Viễn Thông cơ sở tại TP. Hồ Chí Minh đã giảng dạy và
dìu dắt chúng em trong suốt quá trình học tập tại Trường.
Cuối cùng, em xin gửi lời cảm ơn đến gia đình, bạn bè và những người luôn đồng
hành, cổ vũ tinh thần, giúp em vượt qua những giai đoạn khó khăn và tạo điều kiện
thuận lợi cho em học tập tốt và hoàn thành luận văn này.
Em xin chân thành cảm ơn!
TP.HCM, ngày 28 tháng 05 năm 2017
Học viên thực hiện luận văn


Võ Đức Anh


iii

MỤC LỤC
LỜI CAM ĐOAN ....................................................................................................... i
LỜI CẢM ƠN ............................................................................................................ ii
MỤC LỤC ................................................................................................................. iii
DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT ............................................v
DANH SÁCH BẢNG ............................................................................................... vi
DANH SÁCH HÌNH VẼ, BIỂU ĐỒ ...................................................................... vii
MỞ ĐẦU ......................................................................................................................1
CHƯƠNG 1 1.1.

CƠ SỞ LÝ LUẬN ..........................................................................3

Tổng quan về thương mại điện tử ......................................................................... 3
Định nghĩa.................................................................................................... 3
Giới thiệu về hệ thống gợi ý ........................................................................ 4
Hiện trạng các hệ thống thương mại điện tử hiện nay ................................. 6

1.2.

Tổng quan về mạng neural ................................................................................... 7
Cấu trúc mạng neural ................................................................................... 7
Phân loại cấu trúc mạng neural .................................................................... 9
1.2.2.1.


Mạng neural truyền thẳng một lớp (hay là perceptron một lớp) ............. 9

1.2.2.2.

Mạng neural truyền thẳng nhiều lớp (hay là perceptron nhiều lớp) ........ 9

1.2.2.3.

Mạng neural tự tổ chức (mạng Kohonen, hay là mạng cạnh tranh) ...... 10

1.3.

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

1.4.

Mục tiêu của đề tài ............................................................................................. 12

1.5.

Phạm vi và nội dung nghiên cứu ........................................................................ 12

CHƯƠNG 2 -

THỰC TRẠNG NGHIÊN CỨU .................................................13

2.1.

Deep learning ..................................................................................................... 13


2.2.

Hệ thống gợi ý .................................................................................................... 13
Các khái niệm chính .................................................................................. 13
Các kỹ thuật chính trong hệ gợi ý hiện nay ............................................... 14

2.3.

Thuật giải lọc cộng tác ....................................................................................... 16


iv

Kỹ thuật k láng giềng gần nhất (User/Item k-nearest neighbors) .............. 17
Kỹ thuật phân rã ma trận (matrix factorization) ........................................ 19
2.4.

Autoencoder........................................................................................................ 22
Autoencoder không đầy đủ (Undercomplete Autoencoders) .................... 24
Autoencoder định chuẩn (Regularized Autoencoders) .............................. 25
Autoencoder thưa (Sparse Autoencoders) ................................................. 26
Autoencoder giảm nhiễu (Denoising Autoencoders)................................. 29

CHƯƠNG 3 3.1.

THỰC NGHIỆM VÀ ĐÁNH GIÁ .............................................30

Môi trường thực nghiệm ..................................................................................... 30
Ngôn ngữ lập trình python. ........................................................................ 30
Giới thiệu về thư viện TensorFlow ............................................................ 31

Cấu hình máy thực nghiệm ........................................................................ 33

3.2.

Thông tin các tập dữ liệu .................................................................................... 33

3.3.

Mô tả phương pháp thực nghiệm ....................................................................... 35
Tiền xử lý dữ liệu và xây dựng ma trận đánh giá ...................................... 36
Xây dựng mô hình ..................................................................................... 37
Khai báo tham số ....................................................................................... 38
Huấn luyện mô hình ................................................................................... 40
Dự đoán kết quả và tính toán tỉ lệ lỗi ......................................................... 40

3.4.

Kết quả thực nghiệm ........................................................................................... 41
MovieLens ................................................................................................. 41
NguyenKim ................................................................................................ 44

3.5.

Nhận xét và đánh giá .......................................................................................... 44

KẾT LUẬN VÀ KIẾN NGHỊ .................................................................................45
1.

Những đóng góp của luận văn ............................................................................ 45


2.

Những vấn đề còn tồn tại.................................................................................... 45

3.

Hướng phát triển tiếp theo của luận văn............................................................. 46

DANH MỤC CÁC TÀI LIỆU THAM KHẢO ......................................................47


v

DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT
Viết tắt

Tiếng Anh

Tiếng Việt

EC, TMĐT E-commerce, Ecommerce

Thương mại điện tử

RS

Recommendation System

Hệ thống gợi ý


CF

Collaborative Filtering

Lọc cộng tác

CDF

Collaborative Deep Learning

Học sâu cộng tác

RNN

Recurrent Neural Network

Mạng neural tái phát

KNN

K-Nearest Neighbors

K láng giềng gần nhất

MF

Matrix Factorization

Kỹ thuật phân rã ma trận


DL

Deep Learning

Học sâu

NLP

Natural Language Processing

Xử lý ngôn ngữ tự nhiên

AE

Autoencoders

Mô hình mã hoá - giải mã

SGD

Stochastic Gradient Descent

Kỹ thuật giảm gradient ngẫu
nhiên

SDAE

RMSE

Stacked Denoising


Mô hình mã hoá – giải mã giảm

Autoencoder

nhiễu xếp chồng

Root Mean Squared Error

Giá trị bình phương trung bình
lỗi lấy căn


vi

DANH SÁCH BẢNG
Bảng 3.1: Mô tả rank của tensor ..............................................................................32
Bảng 3.2: Mô tả cú pháp shape của tensor ..............................................................32
Bảng 3.3: Mô tả kiểu dữ liệu trong tensorflow ........................................................33
Bảng 3.4: Thông tin các tập dữ liệu thực nghiệm ....................................................34


vii

DANH SÁCH HÌNH VẼ, BIỂU ĐỒ
Hình 1.1: Mô hình thương mại điện tử ......................................................................3
Hình 1.2: Một mô hình hệ thống gợi ý ......................................................................5
Hình 1.3: Neural nhân tạo .........................................................................................7
Hình 1.4: Mô hình mạng neural truyền thẳng ............................................................8
Hình 1.5: Mô hình mạng neural truyền thẳng một lớp...............................................9

Hình 1.6: Mô hình mạng Kohonen ..........................................................................11
Hình 2.1: Một mô hình deep learning với hai lớp ẩn ...............................................13
Hình 2.2: Ma trận trọng số biểu diễn đánh giá ........................................................14
Hình 2.3: Phân rã ma trận........................................................................................20
Hình 2.4: Kiến trúc tổng quát của một autoencoder, ánh xạ một đầu vào x tới một đầu
ra (gọi là tái thiết) r thông qua mã h ................................................................22
Hình 2.5: Mô hình trực quan autoencoder ...............................................................23
Hình 3.1: Mô tả cú pháp, các dòng lệnh trong Python.............................................30
Hình 3.2: Bảng xếp hạng các ngôn ngữ lập trình năm 2016 ....................................31
Hình 3.3: Tỉ lệ lỗi khi kiểm tra chéo trên tập Movielens-1M ..................................41
Hình 3.4: Tỉ lệ lỗi khi mô hình hoá dựa trên dòng và cột trên tập Movielens-1M ...42
Hình 3.5: Tỉ lệ lỗi khi điều chỉnh tốc độ học trên tập Movielens-1M ......................42
Hình 3.6: Tỉ lệ lỗi khi thay đổi số lần vào mạng trên tập Movielens-1M ................43
Hình 3.7: Tỉ lệ lỗi khi thay đổi số lớp ẩn của mạng trên tập Movielens-1M ...........43


1

MỞ ĐẦU
Trong những năm gần đây, thương mại điện tử (E-commerce) phát triển bùng nổ.
Lợi ích và hiệu quả của nó thì khỏi phải bàn cãi, các hệ thống bán hàng trực tuyến đã
đem lại cho người dùng sự tiện lợi, dễ dàng hơn với giá cả cạnh tranh và phục vụ tốt
hơn. Đi cùng với đó, các doanh nghiệp phải cạnh tranh khốc liệt hơn để giành và duy
trì thị phần của mình, sao cho làm khách hàng phải ngày càng thỏa mãn, đem tới trải
nghiệm ngày một cao hơn. Do đó, để việc bán hàng trở nên phát triển ngoài các lợi
thế vốn có thì việc có thêm một “người trợ giúp” là rất cần thiết. Hệ gợi ý là một giải
pháp hữu hiệu và đang được áp dụng rộng rãi. Tuy nhiên ở Việt Nam hiện nay, hệ
thống gợi ý chưa được xem xét và áp dụng đúng mức. Vấn đề này chúng ta cần chúng
ta phải có cái nhìn thấu đáo hơn.
Mạng neural cùng với các mô hình deep learning hiện tại đang là một xu hướng phổ

biến. Mô hình này các biến thể của nó đang được ứng dụng rộng rãi trong rất nhiều
lĩnh vực. Một vài mô hình mạng neural được giới thiệu gần đây có sự thay đổi cách
tiếp cận với những cải tiến đáng kể, giải quyết nhiều vấn đề thực tiễn gặp phải, đem
lại những kết quả khả quan. Có thể nói sau một thời kỳ chững lại với nhiều hạn chế
trong cách tiếp cận cũ, nay mạng neural đã và đang phát triển mạnh mẽ trở lại như
đúng vị trí và vai trò của nó.
Từ những nhận định trên, đề tài đã đề xuất hướng nghiên cứu ứng dụng mạng neural
vào hệ gợi ý trong bài toán thương mại điện tử.
Các nhà phát triển hệ thống gợi ý đầu tiên vào năm 1992 (D. Goldberg cùng các cộng
sự) đã đưa ra thuật ngữ “collaborative filtering” (lọc cộng tác). Nhiều các công ty đã
xây dựng hệ gợi ý cho website của mình từ sớm điển hình như Amazon, eBay,
CDNOW, Levis, Netflix [1]. Từ đó đến nay, rất nhiều các website đã và đang phát
triển hệ gợi ý cho riêng mình [2]. Phương pháp hiện tại dùng cho hệ gợi ý có thể chia
thành ba nhóm chính: phương pháp dựa trên nội dung, phương pháp dựa trên lọc cộng
tác và phương pháp lai. Phương pháp lọc cộng tác được đánh giá là có hiệu quả nhất
và được coi là có nhiều cách tiếp cận mới.


2

Hiện nay khi nói tới hệ gợi ý thì phải nhắc tới lọc cộng tác (CF). Giả thuyết của bài
toán lọc cộng tác điển hình là: “Nếu người dùng 𝑢 và 𝑢′ cùng đánh giá cho n sản
phẩm tương tự nhau (như: xem, mua, nghe…) thì họ sẽ đánh giá tương tự nhau với
các sản phẩm khác”.
Lọc cộng tác là phương pháp phổ biến cho việc xây dựng các hệ thống tư vấn. Các
thuật toán lọc cộng tác hiện tại thường dựa trên thông tin mua bán hoặc lịch sử đánh
giá của người dùng để đưa ra các dự đoán dựa trên độ tương tự về sở thích giữa các
người dùng với nhau. Các thông tin về độ tuổi, giới tính, vùng miền, trình độ dân trí
đã bao hàm trong các thông tin đánh giá từ phía người dùng.
Mô hình ứng dụng mạng neural vào hệ gợi ý mà cụ thể là sử dụng mô hình mạng

neural để huấn luyện tập dữ liệu của người dùng, phát hiện ra các hành vi, mối tương
quan ẩn trong tập dữ liệu hiện tại rồi từ đó đánh giá thông tin có được, đưa ra gợi ý
co khách hàng.
Năm 2015, nhóm tác giả đến từ đại học Hong Kong đã giới thiệu mô hình Bayes phân
cấp được gọi là CDL (Collaborative Deep Learning – Học sâu cộng tác), với việc học
biểu diễn sâu cho nội dung thông tin đồng thời lọc cộng tác cho ratings (feedback)
[3].
Năm 2016, nhóm tác giả người Pháp giới thiệu mô hình lọc cộng tác lai với
Autoencoders [4] nhằm giải quyết các vấn đề còn hạn chế trong lọc cộng tác.
Một cách tiếp cận mới hệ gợi ý với mạng neural tái phát (RNNs – Recurrent Neural
Networks) của hai tác giả đến từ Đại học Stanford cũng cho kết quả rất khả quan dựa
trên các thông tin đánh giá nhận xét dưới dạng chuỗi.
Luận văn sẽ đi sâu nghiên cứu các mô hình này, thực nghiệm và đánh giá trên các tập
mẫu thử có được liên quan tới thương mại điện tử nhằm cho ra kết quả cụ thể. Từ
những kết quả này luận văn sẽ đề xuất hướng ứng dụng phù hợp.


3

CHƯƠNG 1 - CƠ SỞ LÝ LUẬN
1.1.

Tổng quan về thương mại điện tử
Định nghĩa

Thương mại điện tử (E-commerce - EC) gọi tắt là TMĐT chỉ sự mua bán sản
phẩm hay dịch vụ trên các hệ thống điện tử. TMĐT thông thường được xem ở các
khía cạnh của kinh doanh điện tử, có thể được chia ra thành:



E-tailing (bán lẻ trực tuyến) hay cửa hàng ảo trên trang web với các danh mục
trực tuyến, đôi khi được gom thành các trung tâm mua sắm ảo.



Việc thu thập và sử dụng dữ liệu cá nhân thông qua các địa chỉ liên lạc web



Trao đổi dữ liệu điện tử (EDI), trao đổi dữ liệu giữa doanh nghiệp với doanh
nghiệp



Email và fax và cách sử dụng chúng như là phương tiện cho việc tiếp cận và
thiếp lập mối quan hệ với khách hàng (ví dụ như bản tin, newsletters, tin nhắn)



Việc mua và bán giữa doanh nghiệp với doanh nghiệp



Bảo mật các giao dịch kinh doanh

Hình 1.1: Mô hình thương mại điện tử


4


Các hình thức TMĐT thì khá đa dạng. Hiện nay có nhiều tranh cãi về các hình
thức tham gia cũng như cách phân chia các hình thức này trong thương mại điện tử.
Nếu phân chia theo đối tượng tham gia thì có 3 đối tượng chính bao gồm: Chính
phủ (G - Goverment), Doanh nghiệp (B - Business) và Khách hàng (C - Customer
hay Consumer). Nếu kết hợp đôi một 3 đối tượng này sẽ có 9 hình thức theo đối tượng
tham gia: B2C, B2B, B2G, G2B, G2G, G2C, C2G, C2B, C2C.
Về cơ bản thì TMĐT vẫn mang bản chất của thương mại truyền thống nhưng với sự
phát triển của internet và các ứng dụng công nghệ thông tin TMĐT đã và đang thay
đổi chóng mặt. Cách thức cũng như mô hình mới làm TMĐT có nhiều lợi thế cạnh
tranh hơn và nhờ đó khách hàng được hưởng lợi nhiều hơn.
TMĐT giúp người tiêu dùng thu thập nhanh chóng và dễ dàng thông tin đa dạng
về sản phẩm, giá cả và người bán. Ngày nay đã xuất hiện nhiều website chuyên cung
cấp dịch vụ đánh giá về sản phẩm và nhà cung cấp, so sánh giá cả giữa các website
bán hàng. Hơn nữa, người tiêu dùng có thể trực tiếp đưa ra các đánh giá của mình về
nhiều khía cạnh liên quan tới giao dịch mua sắm, giúp cho những người khác có nhiều
cơ hội chọn lựa sản phẩm phù hợp nhất, hoặc chọn được người bán cung cấp dịch vụ
tốt nhất, hoặc mua được sản phẩm với giá rẻ nhất.

Giới thiệu về hệ thống gợi ý
Hệ gợi ý hay hệ khuyến nghị (Recommender system - RS) là một dạng của hệ
hỗ trợ quyết định, cung cấp giải pháp mang tính cá nhân hóa mà không phải trải qua
quá trình tìm kiếm phức tạp. Hệ thống có thể đưa ra những mục thông tin phù hợp
cho người dùng bằng cách dựa vào dữ liệu về hành vi trong quá khứ của họ rồi dự
đoán thông tin mới mà người dùng có thể cần. Hệ thống gợi ý với việc đưa ra các
thông tin gợi ý cho người dùng, hiển thị thêm những nội dung liên quan sẽ giúp giữ
người dùng ở lại trang lâu hơn, tăng số lượng khách hàng tiềm năng, giúp đẩy mạnh
tiêu thụ sản phẩm. Thông tin gợi ý, nội dung liên quan nói trên là các đề xuất, các gợi
mở, lựa chọn, là kết quả được tính toán dựa trên việc thu thập dữ liệu về người dùng
liên quan tới việc xem, mua hàng, đánh giá cá nhân trước đó. Việc thực hiện tính toán
dựa trên các thuật toán học máy, nhằm cho ra dự đoán tốt nhất và phù hợp nhất. Quá



5

trình đánh giá và cải tiến sẽ được thực hiện liên tục để hệ thống ngày càng chính xác
hơn.

Hình 1.2: Một mô hình hệ thống gợi ý

Các dạng gợi ý cũng có nhiều loại: gợi ý các sản phẩm tới người tiêu dùng, các thông
tin sản phẩm mang tính cá nhân hóa, tổng kết các ý kiến từ cộng đồng, các xu hướng
trào lưu hiện tại, các nội dung được quan tâm, các chia sẻ, các phê bình, đánh giá
mang tính số đông liên quan tới yêu cầu, mục đích cho người sử dụng. Trong lĩnh
vực thương mại điện tử, để xây dựng hệ gợi ý chúng ta cũng dựa vào nhiều yếu tố:
lượt xem, lượt mua, số lượng mua, đánh giá sản phẩm, nhận xét phản hồi…từ đó làm
cơ sở để phân loại đưa ra các thông tin phù hợp cho khách hàng.
Một vấn đề làm cho hệ gợi ý trở nên cần thiết đó là việc có quá nhiều thông tin đối
với khách hàng: sản phẩm có quá nhiều chủng loại, kích thước, giá thành, đến từ
nhiều nhà sản xuất với nhiều mẫu mã, kiểu dáng, chưa kể chất lượng, mức độ tin cậy
thì chưa được kiểm chứng. Khách hàng đưa ra một yêu cầu đơn giản, tất nhiên yêu
cầu đó không đầy đủ nhưng mong muốn nhận lại được thông tin về số ít sản phẩm
ưng ý nhất. Điều này về cơ bản đối với các hệ thống tìm kiếm thông thường là không
làm được. Hệ gợi ý sẽ hỗ trợ giải quyết một phần khó khăn này, góp phần cung cấp
các hỗ trợ cho người dùng trong việc đưa ra quyết định.


6

Hệ gợi ý không phân biệt khách hàng, tất cả khách hàng đều sẽ có được thông tin gợi
ý, tất nhiên các gợi ý mỗi khách hàng khác nhau sẽ không giống nhau. Việc tính toán

đưa ra gợi ý cho khách hàng sẽ nằm bên trong hệ thống, sao cho đảm bảo hiệu quả
tốt nhất. Việc phân loại khách hàng tiềm năng sẽ được xem xét ở một khía cạnh khác
để khai thác riêng trên tập khách hàng này.

Hiện trạng các hệ thống thương mại điện tử hiện nay
Hiện nay trên thế giới có rất nhiều doanh nghiệp đã tích hợp hệ gợi ý vào website
của họ, đem lại hiệu quả đáng kể. Điển hình không thể không nhắc đến là Amazon.
Tuy rằng, mỗi website có những đặc trưng riêng và cách thức áp dụng cũng sẽ có đôi
chút khác nhau nhưng tựu chung lại thì hệ gợi ý là một giải pháp đúng đắn và rất cần
được áp dụng. Ở Việt Nam một vài website thương mại điện tử cũng đã có hệ thống
gợi ý. Điều này đã góp phần không nhỏ vào hiệu quả của việc bán hàng, ảnh hưởng
tới sự sống còn của doanh nghiệp trong bối cảnh cạnh tranh khốc liệt như hiện nay.
Thị trường TMĐT Việt Nam gần đây có khá nhiều biến động, nhiều tên tuổi đình
đám như Beyeu, Deca, Cucre, Lamdieu, Foreva, Lingo, Nhommua đã từ giã cuộc
chơi; sự sang tên đổi chủ của Foodpanda, 123mua; ông lớn Alibaba mua lại Lazada,
Tiki thay đổi mô hình kinh doanh hay gần đây là Zalora hợp nhất với Robins. Bỏ qua
các nguyên nhân liên quan tới chiến lược kinh doanh thì có thể dễ dàng nhận thấy các
website này đã không thật sự thu hút được sự chú ý của khách hàng, lượng mua sụt
giảm và đóng cửa là điều tất yếu. Trong bối cảnh đó, giải pháp nào để thu hút và giữ
khách hàng ở lại với website của mình. Hệ gợi ý có thể được xem xét như là một yếu
tố ảnh hưởng không nhỏ tới quyết định của khách hàng, cải thiện trải nghiệm của
người dùng, làm thay đổi cách tiếp cận với món hàng và hành vi mua hàng, qua đó
tăng sức mua.
Hệ gợi ý đã và đang được sử dụng và tiếp tục được mở rộng phát triển để đảm bảo
cho những nhu cầu mới ngày mỗi cao của khách hàng, đặc biệt là trong lĩnh vực
TMĐT.


7


1.2.

Tổng quan về mạng neural
Cấu trúc mạng neural
Mỗi neural nhân tạo là một đơn vị xử lý thông tin, nó được mô phỏng theo

neural sinh học trong bộ não con người. Neural là thành phần cơ bản của một mạng
neural. Cấu trúc của một neural:

Hình 1.3: Neural nhân tạo

Các thành phần cơ bản của một neural nhân tạo bao gồm:
 Tập các đầu vào: Là các tín hiệu vào (input signals) của neural, các tín hiệu
này thường được đưa vào dưới dạng vectơ N chiều.
 Tập các liên kết: Mỗi liên kết được thể hiện bởi một trọng số (gọi là trọng số
liên kết – Link weight). Trọng số liên kết giữa tín hiệu vào thứ j với neural k
thường được kí hiệu là 𝑤𝑘𝑗 . Thông thường, các trọng số này được khởi tạo
một cách ngẫu nhiên ở thời điểm khởi tạo mạng và được cập nhật liên tục trong
quá trình học mạng.
 Hàm tổng: Thường dùng để tính tổng của tích các đầu vào với trọng số liên
kết của nó.
 Ngưỡng (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.
 Hàm truyền (còn gọi là hàm kích hoạt – activation function): Hàm này được
dùng để giới hạn phạm vi đầu ra của mỗi neural. Nó nhận đầu vào là kết quả
của hàm tổng và ngưỡng đã cho. Thông thường, phạm vi đầu ra của mỗi neural
được giới hạn trong đoạn [0, 1] hoặc [-1, 1]. Các hàm truyền rất đa dạng, có
thể là hàm tuyến tính hoặc phi tuyến. Việc lựa chọn hàm truyền là tùy vào bài
toán.
 Đầu ra: Là tín hiệu đầu ra của một neural, với mỗi neural sẽ có tối đa là một

đầu ra.


8

Mạng neural nhân tạo (Artificial Neural Network - ANN) gọi tắt là mạng neural là
mô hình xử lý thông tin mô phỏng hoạt động như hệ thần kinh của con người. Nó
được tạo nên từ một số lượng lớn các neural kết nối với nhau thông qua các liên kết
làm việc như một thể thống nhất nhằm giải quyết một vấn đề cụ thể nào đó. Một mạng
neural nhận tạo được cấu hình cho một ứng dụng cụ thể, thông qua quá trình học từ
tập các mẫu huấn luyện. Về bản chất học chính là quá trình hiệu chỉnh trọng số liên
kết giữa các neural.
Mạng neural là một kỹ thuật mới được sử dụng trong mô hình hóa người dùng. Nó
được tạo nên bởi các nút chính là người dùng và kết nối giữa các nút là quan hệ giữa
các người dùng. Các nút có phương thức hoạt hóa làm nhiệm vụ tính toán giá trị hoặc
năng lượng của chúng. Dữ liệu đầu vào sẽ kích hoạt mạng, rồi tới mạng sẽ kích hoạt
các nút. Quá trình tính toán thông báo và được cập nhật trong toàn mạng qua sự lan
truyền, trả về tri thức theo yêu cầu. Các nút chứa ánh xạ tức thời của tri thức trong hệ
thống. Mạng neural có nhiều biến thể: dạng tĩnh hoặc dạng động, đơn hoặc đa chiều,
mạng đơn nguyên hoặc đa nguyên, có thể nhiều mạng kết nối lại. Trong mạng các
nút không cố định mà có thể được xóa hoặc tạo mới, hỗ trợ những hình thái tri thức
linh hoạt, thông minh hơn.
Các neural nhân tạo liên kết lại với nhau sẽ hình thành nên mạng neural với nhiều lớp
gồm lớp đầu vào (input layers), các lớp ẩn (hidden layers) và lớp đầu ra (output layer).
Mô hình đơn giản nhất của mạng neural chính là mạng neural truyền thẳng
(Feedforward neural networks). Các neural trong mạng truyền thẳng liên kết với nhau
mà không hình thành chu trình nên tín hiệu sẽ truyền thẳng từ đầu vào qua các lớp ẩn
và đến đầu ra.

Hình 1.4: Mô hình mạng neural truyền thẳng



9

Phân loại cấu trúc mạng neural
1.2.2.1.

Mạng neural truyền thẳng một lớp (hay là perceptron một

lớp)
Đây là mô hình đơn giản nhất của mạng neural truyền thẳng với chỉ một lớp
đầu ra. Trong lớp này chỉ có thể một hoặc nhiều neural và các thông số đầu vào sẽ
được kết nối trực tiếp đến các neural đầu ra này.

Hình 1.5: Mô hình mạng neural truyền thẳng một lớp

Mô hình này này vốn bắt nguồn từ thuật toán perceptron, nên có tên gọi khác là
perceptron một lớp. Ý tưởng của nó là đi tìm một hàm tuyến tính
𝑓 ∶ 𝑓(𝑥) = 𝑤 ∗ 𝑥 = 𝑤1 ∗ 𝑥1 + 𝑤2 ∗ 𝑥2 + … + 𝑤𝑛 ∗ 𝑥𝑛 để phân tách dữ liệu thành
các lớp thông qua việc học dữ liệu huấn luyện và điều chỉnh các trọng số 𝒘.
Hạn chế của mô hình perceptron một lớp này là chỉ giải quyết được các bài toán có
khả năng phân tách tuyến tính, như mô phỏng hàm AND, OR và NOT; còn đối với
các bài toán không thể phân tách tuyến tính thì không thể giải quyết được. Điều này
đã được hai giáo sư Marvin Minsky và Seymour Papert chứng minh năm 1969.

1.2.2.2.

Mạng neural truyền thẳng nhiều lớp (hay là perceptron nhiều

lớp)

Mô hình perceptron nhiều lớp, cải tiến của perceptron một lớp, là một mạng
neural truyền thẳng điển hình. Mô hình này ngoài các lớp đầu vào và đầu ra còn có
các lớp ẩn và một neural trong một lớp được kết nối đầy đủ đến tất cả các neural của
lớp tiếp theo.


10

Khác biệt lớn nhất giữa mạng Perceptron một lớp và Perceptron nhiều lớp chính là
hàm kích hoạt. Perceptron nhiều lớp sử dụng hàm kích hoạt phi tuyến. Hai hàm được
sử dụng nhiều nhất là:
1

𝑦(𝑥) = 𝑡𝑎𝑛ℎ(𝑥) và 𝑦(𝑥) = 1+𝑒 −𝑥
Lý do sử dụng các hàm phi tuyến vì mạng chỉ sử dụng các hàm tuyến tính có thể lược
giản thông qua các biến đổi đại số thành mô hình perceptron một lớp và như vậy vẫn
không có tiến triển gì so với mô hình một lớp. Đồng thời các hàm phi tuyến này cũng
gần tương đương với các hàm kích hoạt tuyến tính, chúng vẫn có thể chia ngưỡng
thành các giá trị 0, 1 (hoặc +1 và -1) khi x có giá trị đủ lớn.
Mạng neural truyền thẳng Perceptron nhiều lớp học điều chỉnh các trọng số 𝒘 thông
qua thuật toán lan truyền ngược sai số (backpropagation). Tư tưởng chính của thuật
toán này như tên gọi của nó: lan truyền sai số giữa kết quả huấn luyện y mà mô hình
đưa ra với đầu vào x và kết quả thật sự trong tập huấn luyện là d để cập nhật các trọng
số cho từng nút mạng (các neural).
Mạng neural nhiều lớp có nhiều ưu điểm hơn một lớp, điển hình như mô phỏng hàm
XOR. Mô hình này còn có nhiều ứng dụng trong các bài toán nhận diện hình ảnh,
nhận dạng giọng nói, xử lý ngôn ngữ tự nhiên...

1.2.2.3.


Mạng neural tự tổ chức (mạng Kohonen, hay là mạng cạnh

tranh)
Mạng neural tự tổ chức (seft-organizing map) hay gọi là mạng Kohonen là
một loại mạng neural nhân tạo được huấn luyện thông qua phương pháp học không
giám sát (Unsuppervised learning). Khác với các mô hình mạng neural truyền
thẳng, mạng Kohonen sử dụng cách học cạnh tranh (competitive learing) thay vì
phương pháp sửa lỗi (error correction).
Mô hình này được đề xuất bởi Teuvo Kohonen vào những năm 1980 dựa trên một
phần cách thức mà các tín hiệu được xử lý trong não bộ. Cũng giống với các mô
hình neural khác, mạng Kohonen cũng cần trải qua quá trình huấn luyện. Tuy nhiên,
như đã đề cập, phương pháp và ý tưởng của mạng Kohonen có nhiều sự khác biệt so
với các mô hình mạng neural học theo phương pháp học có giám sát.


11

Mạng Kohonen với phương pháp học không giám sát được sử dụng hiệu quả trong
các bài toán gom nhóm (clustering). Có thể nói mô hình này gần giống với phương
pháp gom nhóm K-mean hơn là các mạng neural khác.

Hình 1.6: Mô hình mạng Kohonen

1.3.

Lý do chọn đề tài
Mạng neural với khả năng linh hoạt và mới phát triển mạnh mẽ trở lại đây

đang ngày càng được ứng dụng trong nhiều lĩnh vực thực tế, giải quyết những vấn đề
khó tưởng chừng như không thực hiện được. Đặc biệt là các bài toán nhận dạng mẫu,

lọc dữ liệu và dự báo. Đã có nhiều công trình nghiên cứu, bài báo mở ra hướng ứng
dụng của mạng neural, nhiều mô hình mạng neural đã đưa lại những kết quả rất khả
quan. Bởi vậy khả năng ứng dụng mạng neural vào hệ gợi ý là triển vọng và hoàn
toàn khả thi.
Autoencoder là một mô hình mạng neural dùng để học không giám sát
(Unsupervised learning) thông qua các mã (code) với ý tưởng là nếu một mô hình
mạng neural có số nút mã trung gian nhỏ hơn số nút đầu vào thì mô hình đó sẽ học
được các đặc tính ẩn của dữ liệu. Chính vì điều này mà Autoencoder học được cách
biểu diễn cho một tập dữ liệu, giúp dự đoán đầu ra từ một đầu vào ban đầu. Trong
thực tế, Autoencoder đã được ứng dụng thành công để giảm chiều dữ liệu, tất nhiên
không làm mất đi các đặc tính quan trọng của dữ liệu. Các công trình nghiên cứu
hướng ứng dụng gần đây về Autoencoder cũng đem lại những kết quả tốt. Đó chính
là lý do lựa chọn đề tài.


12

1.4.

Mục tiêu của đề tài
Nghiên cứu các kỹ thuật đã áp dụng thành công hiện nay vào hệ gợi ý, đánh

giá các ưu nhược điểm của từng kỹ thuật.
Nghiên cứu mô hình mạng Autoencoder và các biến thể của nó, xem xét và
đánh giá chi tiết khả năng ứng dụng vào hệ gợi ý.
Đề xuất một mô hình mạng Autoencoder phù hợp cho bài toán thương mại
điện tử nhằm đưa ra được gợi ý có độ chính xác cao.
Tối ưu mô hình mạng, thực hiện so sánh và đánh giá các kết quả thực nghiệm
với các phương pháp khác.


1.5.

Phạm vi và nội dung nghiên cứu

Tập trung nghiên cứu các thành phần trong hệ thống gợi ý, đặc biệt là trong bài
toán thương mại điện tử, các hệ gợi ý đã hoàn chỉnh.
Nghiên cứu các mô hình mạng neural mà cụ thể là Autoencoder, xem xét khả năng
ứng dụng thực tế và các lĩnh vực bài toán đã được ứng dụng thành công.
Tổng quan về các giải pháp cho hệ gợi ý hiện nay, các cách thức tiếp cận, thành
công cũng như hạn chế của từng phương pháp. Đánh giá một cách thức tiếp cận khác,
một hướng ứng dụng mới.
Tham khảo các tập dữ liệu thực nghiệm mở được cung cấp nhằm phục vụ mục
đích nghiên cứu, thực nghiệm đặc biệt là về thương mại điện tử. Xem xét các bộ công
cụ thực nghiệm hiện nay, đánh giá và lựa chọn bộ công cụ phù hợp.
Tập trung nghiên cứu và đi sâu tìm hiểu về mô hình mạng Autoencoder và các
biến thể của nó. Tiến hành ứng dụng mô hình mạng Autoencoder vào tập thực nghiệm
thu được, tối ưu và đánh giá kết quả.
Phạm vi đề tài tập trung vào việc thực nghiệm kết quả, đặc biệt là huấn luyện và
tối ưu mô hình. Kết quả được so sánh để điều chỉnh các tham số mô hình mạng. Quá
trình thực nghiệm tập trung giải quyết hai vấn đề quan trọng nhất là giảm tối đa thời
gian huấn luyện và tăng độ chính xác của kết quả.


13

CHƯƠNG 2 - THỰC TRẠNG NGHIÊN CỨU
2.1.

Deep learning
Deep learning (Học sâu) được xây dựng trên cơ sở một mạng lưới các neural


nhân tạo, tổ chức thành từng lớp (Layer). Kết quả của mỗi lớp lại biểu diễn các thuộc
tính (features) của các lớp cao hơn (lớp ở phía sau). Hay nói cách khác đây là quá
trình áp dụng công nghệ deep neural network để giải quyết vấn đề. Khái niệm deep
neural network là một mô hình mạng neural với một số lớp ẩn. Đây là một kỹ thuật
học máy (machine learning) mạnh mẽ, có khả năng vừa học lẫn biểu đạt thông tin rất
tốt. DL được ứng dụng vào rất nhiều lĩnh vực và đem lại những hiệu quả rất lớn.

Hình 2.1: Một mô hình deep learning với hai lớp ẩn

2.2.

Hệ thống gợi ý
Các khái niệm chính
Trong một hệ thống gợi ý, thông thường người ta quan tâm tới ba thông tin

chính là người dùng (user), sản phẩm (item, ở đây có thể là một mặt hàng, bộ phim,
bài hát…) và đánh giá (rating) của người dùng trên sản phẩm đó (xếp hạng theo mức
độ tốt/xấu, sự quan tâm của họ). Các thông tin này được biểu diễn thông qua một ma
trận như hình 2.2:


14

Hình 2.2: Ma trận trọng số biểu diễn đánh giá
của một người dùng 𝒖 với một sản phẩm 𝒊

Ở đây, mỗi dòng là một user, mỗi cột là một item và mỗi ô là một giá trị đánh giá
biểu diễn của user trên item tương ứng. Các ô có giá trị là những item mà đã các user
đánh giá trong quá khứ. Các giá trị này thường nằm trong một miền giá trị nhất định

(ví dụ năm mức độ từ 1 tới 5). Các ô trống là những item chưa được đánh giá. Đáng
lưu ý là thường mỗi user chỉ đánh giá cho một vài item nhất định, do vậy có rất nhiều
ô trống, ma trận kiểu này gọi là ma trận thưa (Sparse matrix).
Nhiệm vụ chính của hệ thống gợi ý là dựa vào các thông tin đã có (các giá trị đã được
đánh giá trong ma trận ở trên), thông qua mô hình xây dựng để nhằm đưa ra dự đoán
phù hợp (tức là các giá trị còn trống).Từ kết quả có được đưa ra những gợi ý phù hợp
cho người dùng.
Để dễ dàng cho việc theo dõi và tính toán, ta có một vài quy ước hình thức như sau:
-

Coi 𝑼 là tập hợp 𝑛 người dùng (user), |𝑼| = 𝑛 và 𝑢 là một người dùng bất kì
(𝑢 ∈ 𝑼).
Coi 𝑰 là tập hợp 𝑚 sản phẩm (item), |𝑰| = 𝑚 và 𝑖 là một sản phẩm bất kì (𝑖 ∈
𝑰).
Coi 𝑹 là tập hợp các giá trị đánh giá của người dùng (user) đối với sản phẩm
(item), và 𝑟𝑢𝑖 ∈ 𝑹 là giá trị đánh giá của người dùng 𝑢 trên sản phẩm 𝑖.
Coi 𝑫𝒕𝒓𝒂𝒊𝒏 ⊆ 𝑼 × 𝑰 × 𝑹 là tập dữ liệu huấn luyện
Coi 𝑫𝒕𝒆𝒔𝒕 ⊆ 𝑼 × 𝑰 × 𝑹 là tập dữ liệu kiểm thử

Các kỹ thuật chính trong hệ gợi ý hiện nay
Hệ gợi ý đã và đang thay đổi cách chúng ta tìm kiếm thông tin về sản phẩm, định
hướng tiêu dùng và cá thể hoá tới từng người dùng. Hiện tại, trong bài toán hệ gợi ý


15

có rất nhiều giải thuật được đề xuất, tuy nhiên có thể phân loại thành ba nhóm phương
pháp chính như sau:
 Lọc dựa trên nội dung (Content-based filtering)
Phương pháp tập trung dựa vào các đặc tính của sản phẩm để suy luận độ phù hợp

với người dùng. Mỗi người dùng được mô hình thông qua một hồ sơ. Hệ thống sẽ
đưa ra những sản phẩm mới nhất tới người dùng thông qua việc xem xét giữa mô tả
thuộc tính, nội dung của những sản phẩm tương tự như sản phẩm mà người dùng đã
chọn trong quá khứ. Hạn chế của cách tiếp cận này là người dùng mới khi chưa có
thông tin thì khó đưa ra gợi ý phù hợp, hoặc các sản phẩm mới không có thông tin
mô tả. Đặc biệt với những sản phẩm mà thông tin về nội dung không có sẵn (chẳng
hạn như một đoạn phim, một bản nhạc hay bài thơ…) thì sẽ rất khó phân tích và khó
đưa ra tư vấn được. Hơn nữa, vì hệ chỉ chủ yếu so sánh dựa trên nội dung nên khó có
thể tạo ra được sự bất ngờ trong gợi ý, đôi khi còn gợi ý cho người dùng những sản
phẩm mà người dùng đã biết hoặc đã sử dụng trước đó.
 Lọc cộng tác (Collaborative Filtering)
Đây là hướng tiếp cận thành công hiện nay. Phương pháp này tập hợp các đánh
giá từ người dùng đối với sản phẩm (xem nhiều, mua nhiều, đánh giá tốt…) và sử
dụng để tiến hành phân loại. Hệ thống sử dụng lọc cộng tác dự đoán mối quan tâm
của người dùng đối với một sản phẩm dựa trên tính toán độ tương tự giữa các người
dùng, độ tương tự giữa các sản phẩm. Lọc cộng tác không khai thác nội dung sản
phẩm mà đi tìm những người sử dụng có chung sở thích. Các đặc tính độ tuổi, giới
tính, vùng miền vô hình đã bao hàm trong việc đánh giá và tính toán. Các hệ gợi ý
dựa trên lọc công tác không yêu cầu quá nặng vào việc tính toán, do đó có thể đưa ra
những gợi ý có độ chính xác cao và nhanh chóng cho một số lượng lớn người dùng.
Hơn nữa, hệ gợi ý dạng này không yêu cầu mô tả nội dung tường minh mà chỉ sử
dụng đánh giá của người dùng để ước lượng, do đó hệ có khả năng gợi ý phong phú
và thường tạo ra các gợi ý bất ngờ cho người dùng.
 Phương pháp lai (Hybrid approach)


16

Tức kết hợp hai hay nhiều phương pháp trên cùng một hệ thống. Mỗi phương
pháp có thế mạnh hay hạn chế riêng nên khi kết hợp sẽ làm giảm hạn chế thấp nhất.

Tuy nhiên để thực hiện thì không hề đơn giản.

2.3.

Thuật giải lọc cộng tác
Lọc cộng tác (Collaborative filtering) là một cách tiếp cận thông thường và

hữu dụng hiện nay. Phát biểu bài toán lọc cộng tác:
Cho tập hữu hạn 𝑈 = {𝑢1 , 𝑢2 , … , 𝑢𝑁 } là tập gồm N người dùng, 𝐼 = {𝑖1 , 𝑖2 , … , 𝑖𝑀 } là
tập gồm M sản phẩm. Mỗi sản phẩm 𝑖 ∈ 𝐼 có thể là hàng hóa, phim ảnh, sách báo, tài
liệu hay dịch vụ hoặc bất cứ dạng thông tin nào mà người dùng cần đến. Mối quan
hệ giữa tập người dùng U và tập sản phẩm I được biểu diễn thông qua ma trận đánh
giá 𝑅 = {𝑟𝑢𝑖 , 𝑢 = 1. . 𝑁, 𝑖 = 1. . 𝑀}. Mỗi giá trị 𝑟𝑢𝑖 thể hiện đánh giá của người dùng
𝑢 ∈ 𝑈 đối với sản phẩm 𝑖 ∈ 𝐼 Giá trị 𝑟𝑢𝑖 có thể được thu thập trực tiếp hoặc gián tiếp
thông qua phản hồi từ người dùng. Giá trị 𝑟𝑢𝑖 = ∅ được hiểu người dùng 𝑢 chưa đánh
giá hoặc chưa bao giờ biết đến mặt hàng 𝑖. Nhiệm vụ của lọc cộng tác là dự đoán
quan điểm của người dùng 𝑢 đối với mặt hàng mới 𝑖, trên cơ sở đó tư vấn cho người
dùng những sản phẩm phù hợp.
Ma trận đánh giá (Rating matrix) R là thông tin đầu vào với M dòng và N cột, các giá
trị được biểu trong miền hữu hạn 𝑟𝑢𝑖 ∈ {∅, 1, 2, … , R}. Giải thuật CF thực hiện tính
𝛼
toán để đưa ra giá trị dự đoán 𝑟̂𝑢𝑖
cùng danh sách các khoản mục gợi ý cho người

dùng 𝛼 có độ tương tự phù hợp.
Dựa trên ma trận đánh giá, các phương pháp lọc cộng tác thực hiện hai tác vụ: Dự
đoán quan điểm của người dùng hiện thời về các sản phẩm mà họ chưa đánh giá,
đồng thời đưa ra danh sách các sản phẩm có đánh giá cao nhất phân bổ cho người
dùng hiện thời.
Có nhiều phương pháp đề xuất cho bài toán lọc cộng tác. Tuy nhiên ta có phân loại

thành hai cách tiếp cận chính:
 Lọc cộng tác dựa vào bộ nhớ (Memory-based, còn gọi là phương pháp láng
giềng, Neighborhood-based)
Lọc cộng tác dựa trên bộ nhớ tiếp cận theo hai phương pháp chính là:


×