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

Xây dựng hệ thống gợi ý sản phẩm dựa trên trích lọc đặc trưng

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 (2.82 MB, 58 trang )

ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA
--------------------

LƯU QUANG HUÂN

XÂY DỰNG HỆ THỐNG GỢI Ý SẢN PHẨM DỰA TRÊN
TRÍCH LỌC ĐẶC TRƯNG
AN APPROACH OF THE RECOMMENDATION SYSTEM
FOR VIETNAMESE TEXT
Ngành: Khoa học Máy tính
Mã số: 60480101

LUẬN VĂN THẠC SĨ

TP. HỒ CHÍ MINH, tháng 6 năm 2018


CƠNG TRÌNH ĐƯỢC HỒN THÀNH TẠI
TRƯỜNG ĐẠI HỌC BÁCH KHOA –ĐHQG -HCM
Cán bộ hướng dẫn khoa học: TS. LÊ THANH VÂN
Cán bộ chấm nhận xét 1: .........................................................................
(Ghi rõ họ, tên, học hàm, học vị và chữ ký)
Cán bộ chấm nhận xét 2: .........................................................................
(Ghi rõ họ, tên, học hàm, học vị và chữ ký)
Luận văn thạc sĩ được bảo vệ tại Trường Đại học Bách Khoa, ĐHQG Tp. Hồ
Chí Minh ngày . . . tháng . . . năm 2018
Thành phần Hội đồng đánh giá luận văn thạc sĩ gồm:
(Ghi rõ họ, tên, học hàm, học vị của Hội đồng chấm bảo vệ luận văn thạc sĩ)
1. ....................................................................................................................
2. ....................................................................................................................


3. ....................................................................................................................
4. ....................................................................................................................
5. ....................................................................................................................
Xác nhận của Chủ tịch Hội đồng đánh giá LV và Trưởng Khoa quản lý
chuyên ngành sau khi luận văn đã được sửa chữa (nếu có).
CHỦ TỊCH HỘI ĐỒNG

TRƯỞNG KHOA KH&KTMT

ii


ĐẠI HỌC QUỐC GIA TP.HCM
TRƯỜNG ĐẠI HỌC BÁCH KHOA

CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập - Tự do - Hạnh phúc

NHIỆM VỤ LUẬN VĂN THẠC SĨ
Họ tên học viên: LƯU QUANG HUÂN

MSHV: 1770474

Ngày, tháng, năm sinh: 25/04/1991

Nơi sinh: Gia Lai

Ngành: Khoa học Máy tính

Mã số: 60480101


I. TÊN ĐỀ TÀI: Xây dựng hệ thống gợi ý sản phẩm dựa trên trích lọc đặc trưng
II.

NHIỆM VỤ VÀ NỘI DUNG:
Mục tiêu chính của đề tài là đề xuất một mơ hình xây dựng hệ thống gợi ý các
văn bản có nội dung bằng Tiếng Việt. Từ những văn bản thô được viết bằng Tiếng
Việt, đề tài đề xuất được các phương pháp xử lý, rút trích các đặc trưng có nghĩa một
cách tự động để phân loại, phân lớp các văn bản vào thành các tập dữ liệu có sự tương
đồng để gợi ý cho người dùng.
Theo đó, mục tiêu đề tài được cụ thể thành các nhiệm vụ cụ thể như sau:
-

-

Nghiên cứu, phân tích các mơ hình xây dựng hệ thống gợi ý dựa trên nội dung
để từ đó đề xuất mơ hình hệ thống gợi ý văn bản dựa cho người sử dụng.
Tìm hiểu, nghiên cứu, ứng dụng và thực nghiệm các phương pháp khai phá dữ
liệu, xử lý ngôn ngữ tự nhiên, các phương pháp phân loại văn bản Tiếng Việt
dựa trên máy học và học sâu.
Đề xuất được mơ hình ứng dụng học sâu để rút trích đặc trưng, phân loại văn
bản Tiếng Việt, từ đó lựa chọn và gợi ý cho người sử dụng.
Thực nghiệm, đánh giá mơ hình đã đề xuất, so sánh với các phương pháp
truyền thống.

III. NGÀY GIAO NHIỆM VỤ:
IV. NGÀY HOÀN THÀNH NHIỆM VỤ: 17/06/2018
V. CÁN BỘ HƯỚNG DẪN: TS. LÊ THANH VÂN

Tp. HCM, ngày . . . . tháng .. . . năm 2018.

CÁN BỘ HƯỚNG DẪN

TRƯỞNG KHOA KH & KTMT

(Họ tên và chữ ký)

(Họ tên và chữ ký)

iii


LỜI CAM ĐOAN
Tôi cam đoan rằng, ngoại trừ các kết quả tham khảo từ các cơng trình
khác như đã ghi rõ trong luận văn, các cơng việc trình bày trong luận văn là do
chính tơi thực hiện và chưa có phần nội dung nào của luận văn này được nộp
để lấy một bằng cấp ở trường này hoặc trường khác.
TP. Hồ Chí Minh, ngày 18 tháng 6 năm 2018

Lưu Quang Huân

iv


LỜI CẢM ƠN
Tôi xin gửi lời cảm ơn chân thành đến TS. Lê Thanh Vân, người đã tận
tình hướng dẫn tơi hồn thành luận văn này.
Tơi xin gửi lời cảm ơn đến PGS TS. Huỳnh Tường Nguyên, PGS TS.
Quản Thành Thơ cùng các thầy cô trong Khoa Khoa học và Kỹ thuật Máy tính
đã tận tình giúp đỡ và giảng dạy cho tơi trong suốt q trình học tập tại trường.
Tơi xin gửi lời cảm ơn đến gia đình và bạn bè, những người đã động viên

và giúp đỡ tôi trong quá trình học tập.

v


TÓM TẮT LUẬN VĂN
Đề tài này sẽ đề xuất một mơ hình xây dựng hệ thống gợi ý giúp người
dùng dễ dàng tiếp cận các văn bản, tài liệu được thể hiện bằng Tiếng Việt.
Nghiên cứu và ứng dụng học sâu vào việc trích lọc các đặc trưng có nghĩa
để biểu diễn và phân loại văn bản Tiếng Việt một cách tự động. Chúng tôi đề
xuất ứng dụng một mô hình hệ thống gợi ý dựa trên trên kiến trúc mạng Nơron Tích Chập để phân loại, lựa chọn và gợi ý văn bản cho người dùng. Chúng
tôi cũng đã thử nghiệm và đánh giá hiệu quả của mơ hình đề xuất so với các
mơ hình truyền thống trên tập dữ liệu là các bài báo Tiếng Việt.

vi


ABSTRACT
This thesis will propose a model of a Vietnamese text recommendation
system.
Recently, word embedding have been exploited for text classification
using convolutional neural networks architecture. Based on the research of
some modern content recommendation system, we constructed a method based
on semantic word embedding, classifications and recommendations to the user.
This report discussed the details of our model with the experimental results on
Vietnamese news dataset.

vii



MỤC LỤC

CHƯƠNG I. PHÁT BIỂU VẤN ĐỀ ............................................................ 12
1.1. Động cơ ............................................................................................. 12
1.2. Mục tiêu của đề tài ............................................................................ 12
1.3. Ý nghĩa đề tài .................................................................................... 13
1.4. Phạm vi đề tài .................................................................................... 13
1.5. Cấu trúc của luận văn ........................................................................ 13
CHƯƠNG II. LÝ THUYẾT NỀN TẢNG .................................................... 15
2.1. Hệ thống gợi ý ................................................................................... 15
2.1.1. Hệ thống gợi ý dựa trên tương tác người dùng ............................ 15
2.1.2. Hệ thống gợi ý dựa trên nội dung ................................................ 15
2.1.3. Vấn đề “cold start”...................................................................... 17
2.3. Phân loại văn bản .............................................................................. 17
2.3.1. Bài toán phân lớp văn bản........................................................... 17
2.3.2. Các phương pháp phân loại văn bản Tiếng Việt .......................... 18
2.4. Học sâu .............................................................................................. 18
2.4.1. Mạng Nơ-ron Tích Chập ............................................................. 19
2.4.2. Ứng dụng mạng Nơ-ron Tích Chập trong xử lý ngôn ngữ tự nhiên
............................................................................................................. 20
2.4.3. Các Tham số trong mạng Nơ-ron Tích Chập............................... 21
2.5. Nhúng từ............................................................................................ 23
2.5.1. Word2Vec với CBOW ................................................................ 26
2.5.2. Word2Vec với Skip-Gram .......................................................... 27
CHƯƠNG III. CÁC NGHIÊN CỨU LIÊN QUAN ...................................... 29
3.1. Tổng thuật nghiên cứu về hệ thống gợi ý dựa trên nội dung .............. 29
3.2. Các phương pháp phân loại văn bản .................................................. 32
3.2.1. Các nghiên cứu về phân loại văn bản Tiếng Việt ........................ 32
viii



3.2.2. Các nghiên cứu về xử lý ngôn ngữ tự nhiên với CNNs ............... 32
CHƯƠNG IV. GIẢI PHÁP ĐỀ NGHỊ ......................................................... 36
4.1. Mơ hình tổng quan hệ thống gợi ý đề xuất ......................................... 36
4.2. Rút trích đặc trưng và phân loại văn bản tiếng Việt ........................... 37
4.2.1. Tiền xử lý dữ liệu Tiếng Việt ...................................................... 38
4.2.2. Rút trích đặc trưng và phân loại văn bản với CNNs .................... 39
4.2.3. Mô hình tốn học của việc rút trích đặc trưng văn bản ................ 40
4.3. Lựa chọn và gợi ý văn bản tiếng Việt ................................................ 40
CHƯƠNG V. THỰC NGHIỆM ................................................................... 43
5.1. Công tác chuẩn bị .............................................................................. 43
5.1.1. Môi trường thực nghiệm ............................................................. 43
5.1.2. Dữ liệu thực nghiệm ................................................................... 43
5.1.3. Đặc điểm bộ dữ liệu kiểm thử: .................................................... 44
5.2. Hiệu chỉnh tập dữ liệu........................................................................ 45
5.2.1. Loại bỏ trùng lặp......................................................................... 45
5.2.2. Xử lý tập dữ liệu ......................................................................... 46
5.3. Phương pháp thực hiện ...................................................................... 46
5.3.1. Các kịch bản thực nghiệm ........................................................... 46
5.3.2. Phương pháp đánh giá ................................................................ 47
5.4. Kết quả thực nghiệm.......................................................................... 47
5.4.1. Thử nghiệm số lượng bộ lọc ....................................................... 47
5.4.2. Thử nghiệm phân loại trên 2 chủ đề ............................................ 48
5.4.3. Thử nghiệm phân loại trên 10 lớp ............................................... 48
5.4.4. Thử nghiệm gợi ý văn bản .......................................................... 49
5.5. Phân tích kết quả huấn luyện và phân loại văn bản ............................ 51
5.5.1. Đánh giá hiệu quả phân loại văn bản........................................... 51
5.5.2. So sánh với các phương pháp truyền thống ................................. 52
5.5.3. Đánh giá hiệu quả rút trích đặc trưng .......................................... 52
ix



5.5.4. Phân tích q trình huấn luyện của mạng Nơ-ron ....................... 53
CHƯƠNG VI. KẾT LUẬN .......................................................................... 54
6.1. Tổng kết ............................................................................................ 54
6.2. Định hướng phát triển ........................................................................ 54
DANH MỤC TÀI LIỆU THAM KHẢO ...................................................... 55
PHỤ LỤC I: BẢNG THUẬT NGỮ ANH VIỆT .......................................... 57
PHỤ LỤC II: LÝ LỊCH TRÍCH NGANG .................................................... 58

x


DANH MỤC HÌNH ẢNH
Hình 1: Sự khác nhau giữa hệ thống gợi ý đựa trên nội dung và hệ thống gợi ý
dựa trên tương tác người dùng ...................................................................... 16
Hình 2: Convolved Feature Nguồn: .......... 19
Hình
3:
Quá
trình
nhận
diện
hình
ảnh
với
CNNs.
Nguồn: .................................................................... 20
Hình 4: Convolution Stride. Nguồn: ...................................................................................................... 22
Hình 5: Minh họa Max pooling trong CNN. Nguồn: 23

Hình 6: Word2Vec với CBOW. Nguồn: ine ....................... 27
Hình 7: Ma trận người dùng - sản phẩm. Nguồn
..................................................................................................................... 31
Hình 8: Mơ hình sử dụng CNNs trong phân lớp chủ đề. Nguồn [28] ............ 33
Hình 9: Mơ hình đề xuất hệ thống gợi ý văn bản .......................................... 36
Hình 10: Mơ hình đề xuất hệ thống phân loại văn bản Tiếng Việt. ............... 37
Hình 11: Mơ hình rút trích đặc trưng và phân loai văn bản với CNNs .......... 39
Hình 12: Ma trận người dùng sản phẩm ....................................................... 41
Hình 13: Ma trận người dùng chủ đề ............................................................ 41
Hình 14: Mơ hình lựa chọn và gợi ý văn bản cho người dùng theo chủ đề quan
tâm ............................................................................................................... 42
Hình 15: Biểu đồ tập dữ liệu thực nghiệm .................................................... 44
Hình 16: Biểu đồ dữ liệu thực nghiệm sau khi loại bỏ trùng lặp ................... 45
Hình 17: Biểu đồ kết quả phân loại dựa trên kích thước bộ lọc..................... 47
Hình 18: Biểu đồ độ chính xác .................................................................... 53

xi


CHƯƠNG I. PHÁT BIỂU VẤN ĐỀ
1.1. Động cơ
Đối mặt với sự bùng nổ thông tin, khi mỗi cá nhân tham gia vào mạng xã
hội luôn tạo ra những nội dung nhất định. Khác với các bài viết, bài báo, tin tức
khi được đăng tải chính thống ln được phân loại theo chủ đề, lĩnh vực hoặc ít
nhất là được đặt những từ khóa nhất định. Các bài viết của các cá nhân, các thành
viên mạng xã hội tồn tại dưới dạng các blog, bài viết ngắn, chia sẻ quan điểm
thường không được phân loại hay xác định dạng chủ đề. Khi đó, người dùng sẽ bị
tràn ngập thơng tin với nhiều chủ đề khác nhau dẫn đến nhiều khó khăn trong việc
tìm kiếm, lựa chọn và tiếp cận. Do đó, nghiên cứu xây dựng hệ thống gợi ý có khả
năng lựa chọn, phân loại và gợi ý cho người dùng đã trở thành một yêu cầu cấp

thiết.
Trong đề tài này, chúng tơi sẽ trình bày một mơ hình ứng dụng học sâu để
rút trích đặc trưng, phân loại văn bản tự động để lựa chọn và gợi ý cho người dùng
ra những mục tin phù hợp.
1.2. Mục tiêu của đề tài
Mục tiêu chính của đề tài là đề xuất một mơ hình xây dựng hệ thống gợi ý
các văn bản có nội dung bằng Tiếng Việt. Từ những văn bản thô được viết bằng
Tiếng Việt, đề tài đề xuất được các phương pháp xử lý, rút trích các đặc trưng có
nghĩa một cách tự động để phân loại, phân lớp các văn bản vào thành các tập dữ
liệu có sự tương đồng để gợi ý cho người dùng.
Theo đó, mục tiêu đề tài được cụ thể thành các nhiệm vụ cụ thể như sau:
- Nghiên cứu, phân tích các mơ hình xây dựng hệ thống gợi ý dựa trên nội
dung để từ đó đề xuất mơ hình hệ thống gợi ý văn bản dựa cho người sử
dụng.
- Tìm hiểu, nghiên cứu, ứng dụng và thực nghiệm các phương pháp khai phá
dữ liệu, xử lý ngôn ngữ tự nhiên, các phương pháp phân loại văn bản Tiếng
Việt dựa trên máy học và học sâu.
- Đề xuất được mơ hình ứng dụng học sâu để rút trích đặc trưng, phân loại
văn bản Tiếng Việt, từ đó lựa chọn và gợi ý cho người sử dụng.
- Thực nghiệm, đánh giá mơ hình đã đề xuất, so sánh với các phương pháp
truyền thống.
12


1.3. Ý nghĩa đề tài
Về mặt khoa học, đề tài nghiên cứu và ứng dụng các phương pháp khai phá
dữ liệu áp dụng kỹ thuật học sâu để phân tích tài liệu Tiếng Việt nhằm rút trích
các đặc trưng có nghĩa, phân loại văn bản để lựa chọn và gợi ý cho người dùng
các văn bản phù hợp. Ứng dụng một mơ hình học sâu dựa trên CNNs có khả năng
lựa chọn, phân loại và gợi ý các tiếng Việt cho người dùng. Đề tài cũng đã đưa ra

được các đánh giá, so sánh độ hiệu quả với các phương pháp phân loại văn bản
dựa trên máy học (SVM).
Về mặt thực tiễn, đề tài đi vào phân tích các thành phần và yếu tố, giải thuật
cũng như phương pháp để xây dưng một hệ thống gợi ý văn bản dựa trên nội dung.
Đề xuất được mơ hình phân loại và gợi ý các văn bản Tiếng Việt một cách tự
động. Thông qua các thử nghiệm khách quan trên tập dữ liệu tiếng Việt, đề tài đã
chứng minh được tính thực tiễn và hiệu quả của giải pháp đề xuất. Mô hình mơ
hình hệ thống có khả năng áp dụng rộng rãi trong việc xây dựng mạng xã hội,
trang thương mại điện tử, các trang chia sẻ tài liệu, kiến thức.
1.4. Phạm vi đề tài
Mục tiêu của đề tài tập trung vào việc đề xuất mơ hình hệ thống gợi ý cho
văn bản tiếng Việt. Trong đó, ứng dụng và triển khai và mạng Nơ-ron Tích Chập
trong phân tích ngữ nghĩa, rút trích đặc trưng và phân loại. Kết quả phân loại đó
là cơ sở để lựa chọn và đề xuất các sản phẩm (là văn bản) “tương tự” cho người
dùng. Việc thử nghiệm và đánh giá việc phân tích ngữ nghĩa, rút trích đặc trưng
và phân loại văn bản trên các tập dữ liệu là các văn bản tiếng Việt, so sánh với
các phương pháp hiện tại.
Ngoài ra, việc đánh giá hiệu quả của một hệ thống gợi ý thường được dựa
trên doanh số, độ hài lòng của người dùng, số lượt lượt view/click. Việc xây dựng
và đánh giá một hệ thống gợi ý thực tế sẽ tốn rất nhiều thời gian và nhân lực. Do
thời gian thực hiện có hạn, đề tài sẽ xem xét đánh giá hiệu quả của mơ hình đề
xuất thơng qua hiệu quả rút trích đặc trưng, phân loại văn bản để gợi ý cho người
sử dụng.
1.5. Cấu trúc của luận văn
Cấu trúc của luận văn được chia làm 6 chương: Chương II giới thiệu khái
niệm về các hệ thống gợi ý và lý thuyết nền tảng về học sâu với đại diện là mạng
Nơ-ron Tích Chập, Chương III sẽ giới thiệu tóm lược một số nghiên cứu về hệ
thống gợi ý, các nghiên cứu liên quan phân loại văn bản tự động; Chương IV trình
13



bày chi tiết mơ hình về hệ thống gợi ý các văn bản Tiếng Việt, đề xuất chi tiết mơ
hình ứng dụng CNNs vào việc rút trích đặc trưng có nghĩa để phân loại văn bản
Tiếng Việt; Chương V và VI là phần thực nghiệm, hiệu chỉnh các thông số huấn
luyện của mạng Nơ-ron và tổng kết đánh giá hệ thống.

14


CHƯƠNG II. LÝ THUYẾT NỀN TẢNG
2.1. Hệ thống gợi ý
Hệ thống gợi ý (Recommender Systems) là các công cụ phần mềm và các
giải pháp kỹ thuật nhằm đưa ra các khuyến nghị, đề xuất cho các lựa chọn của
người dùng [17]. Dựa trên những tính tốn các thơng tin của người dùng và sản
phẩm, hệ thống gợi ý đang được ứng dụng rất thành công trong rất nhiều lĩnh vực
khác nhau như hệ thống tìm kiếm thơng tin, thương mại điện tử (hỗ trợ bán hàng
trực tuyến), giải trí (gợi ý phim ảnh, bài hát,..) [5].
Một hệ thống gợi ý sẽ đóng vai trị là tư vấn viên hỗ trợ khách hàng đưa ra
các quyết định chọn và mua một món hàng phù hợp với nhu cầu của khách hàng
nhất. Theo đó, với mỗi yêu cầu của khách hàng, hệ thống sẽ lọc ra một tập các sản
phẩm phù hợp để người mua dễ dàng chọn lựa. Cách phân loại hệ thống gợi ý
cũng được dựa trên phương pháp tiếp cận để chọn ra tập các sản phẩm để gợi ý
cho người dùng [15].
2.1.1. Hệ thống gợi ý dựa trên tương tác người dùng
Hệ thống gợi ý dựa trên tương tác người dùng hoạt động dựa trên phân tích
những hành vi của nhóm những người dùng trước đó để tìm các quy luật tương
tác giữa người dùng và các sản phẩm. Được xây dựng dựa trên lý thuyết về sự
tương đồng trong sở thích của những người dùng khác nhau, hệ thống gợi ý sẽ
tiếp cận thông qua đánh giá của người dùng đối với một sản phẩm cụ thể. Sau đó
tìm ra danh sách các mục tin khác cũng được đánh giá bởi các người dùng này,

xếp hạng và đưa ra gợi ý [2].
Ví dụ: Đối với một website nghe nhạc trực tuyến, nếu 3 người dùng A, B,
C đều thích các bài hát do Hà Anh Tuấn trình bày, và cả A và B đều thích những
bài hát Mỹ Tâm và chưa biết rằng C có thích nghe nhạc Mỹ Tâm hay không. Dựa
trên những thông tin của người dùng, hệ thống có thể dự đốn được C cũng sẽ
thích nghe nhạc Mỹ Tâm và gợi ý cho C.
2.1.2. Hệ thống gợi ý dựa trên nội dung
Hệ thống gợi ý dựa trên nội dung phân tích các nội dung, đặc điểm của mục
tin/sản phẩm hiện tại và sau đó gợi ý cho người dùng các mục tin/sản phẩm tương
tự với sản phẩm mà người dùng đã xem [5].

15


Ví dụ với một website bán sách, nếu một người dùng nào đó đã mua cuốn
sách về khởi nghiệp vậy thì hệ thống gợi ý sẽ tự động gợi ý người dùng mua những
cuốn cùng loại (khởi nghiệp) như Tư duy chiến lược, Nhà đầu tư thông minh.
Cách tiếp cận này yêu cầu việc sắp xếp các sản phẩm vào từng nhóm (cụm),
các sản phẩm trong cùng một cụm sẽ có độ tương đồng hơn các sản phẩm nằm
khác cụm. Tuy nhiên, có những sản phẩm khơng có nhóm cụ thể và việc xác định
nhóm hoặc đặc trưng của từng sản phẩm đơi khi là bất khả thi [7].
Một ví dụ khác về website học trực tuyến, nếu người dùng thường đọc các
bài báo về Linux hoặc có khả năng để lại bình luận trên các blog về kỹ thuật phần
mềm, hệ thống gợi ý có thể sử dụng lịch sử này để xác định và giới thiệu nội dung
tương tự. Nội dung này có thể được định nghĩa thủ cơng (gán nhãn bài viết thuộc
loại Linux…); do đó, trong đề tài này, chúng tôi đề xuất một phương pháp có thể
trích lọc và gán nhãn một cách tự động các sản phẩm.
Sự khác biệt cơ bản nhất giữa hệ thống gợi ý dựa trên tương tác người dùng
và hệ thống gợi ý dựa trên nội dung là hệ thống gợi ý dựa trên tương tác người
dùng quan tâm đến hoạt động của nhóm những người dùng để gợi ý những sản

phẩm giống nhau cho những người dùng “tương tự” cịn hệ thống gợi ý dựa nội
dung khơng quan tâm đến hoạt động của người dùng khác.

Hình 1: Sự khác nhau giữa hệ thống gợi ý đựa trên nội dung và hệ thống gợi ý dựa trên tương tác người dùng

16


2.1.3. Vấn đề “cold start”
Một vấn đề khó khăn thường gặp trong các hệ thống gợi ý là vấn đề “cold
start”. Vấn đề này liên quan đến việc thiếu dữ liệu để đưa ra gợi ý trong trường
hợp người dùng mới, một sản phẩm mới hoặc khi một hệ thống mới được triển
khai [4].
Trong trường hợp người dùng mới chưa mua một sản phẩm nào thì vấn đề
là khơng có tiểu sử để so sánh với người dùng khác. Trong trường hợp này, sẽ rất
khó để thực hiện bất kỳ đề xuất nào, các mơ hình thường sẽ cố gắng cá nhân hóa
người dùng một cách thủ cơng hoặc cung cấp các sản phẩm mặc định phổ biến.
Tương tự khi một sản phẩm mới được thêm vào hệ thống, có vấn đề đối với
các mơ hình lọc cộng tác vì có thể khơng có bất kỳ xếp hạng nào cho nó, điều này
có nghĩa là nó khơng thể được đề xuất với bất kỳ ai. Trong trường hợp này có thể
được đề xuất bởi một mơ hình lọc nội dung.
Vấn đề khó khăn nhất của vấn đề “cold start” là khi một hệ thống hoàn toàn
mới được khởi chạy. Trong trường hợp này khơng có dữ liệu nào để thiết lập để
đưa gợi ý và một số lựa chọn để sử dụng là sử dụng dữ liệu từ một hệ thống đã có
hoặc áp dụng học sâu [9].
2.3. Phân loại văn bản
Xét trong đề tài luận văn đang đề cấp đến, phân loại văn bản là bài toán lớn
cần được giải trong bước phân loại sản phẩm để xây dựng hệ thống gợi ý. Thực
vậy, với những dữ liệu được đặt ra trong giả thuyết là các văn bản Tiếng Việt chưa
có chủ đề, việc phân loại các văn bản vào các thể loại khác nhau cần được thực

hiện bởi con người, đặc biệt với các văn bản ở dạng các bài báo khoa học thì càng
cần một chuyên gia hoặc ít nhất là một người có kinh nghiệm.
2.3.1. Bài toán phân lớp văn bản
Phân lớp văn bản là một bài tốn xử lí văn bản cổ điển, đó là ánh xạ một
văn bản vào một chủ đề đã biết trong một tập hữu hạn các chủ đề dựa trên ngữ
nghĩa của văn bản. Ví dụ một bài viết trong một tờ báo có thể thuộc một (hoặc
một vài) chủ đề nào đó (như thể thao, sức khỏe, cơng nghệ thông tin,…). Việc tự
động phân loại văn bản vào một chủ đề nào đó giúp cho việc sắp xếp, lưu trữ và
truy vấn tài liệu dễ dàng hơn về sau.
Đặc điểm nổi bật của bài toán này là sự đa dạng của chủ đề văn bản và tính
đa chủ đề của văn bản. Tính đa chủ đề của văn bản làm cho sự phân loại chỉ mang
17


tính tương đối và có phần chủ quan, nếu do con người thực hiện, và dễ bị nhập
nhằng khi phân loại tự động [14]. Rõ ràng một bài viết về Giáo dục cũng có thể
xếp vào Kinh tế nếu như nội dung bài viết là “đầu tư cho giáo dục và tác động
của đầu tư này đến kinh tế - xã hội”. Về bản chất, một văn bản là một tập hợp từ
ngữ có liên quan với nhau tạo nên nội dung ngữ nghĩa của văn bản. Từ ngữ của
một văn bản là đa dạng do tính đa dạng của ngơn ngữ (đồng nghĩa, đa nghĩa, từ
vay mượn nước ngồi,…) và số lượng từ cần xét là lớn. Ở đây cần lưu ý rằng, một
văn bản có thể có số lượng từ ngữ không nhiều, nhưng số lượng từ ngữ cần xét là
rất nhiều vì phải bao hàm tất cả các từ của ngôn ngữ đang xét.
2.3.2. Các phương pháp phân loại văn bản Tiếng Việt
Vì là bài tốn cổ điển, nên đã có nhiều phương pháp để giải sử dụng các
phương pháp như thống kê, học máy và gần đây là học sâu. Với một số mơ hình
phân loại văn bản truyền thống như Mơ hình Bayes, Mơ hình Bernoulli, cùng các
giải thuật như Máy học hỗ trợ Vector, K-means chúng tơi xin phép khơng trình
bày trong luận văn này. Chúng tơi sẽ trình bày các nghiên cứu liên quan đến phân
lớp văn bản ở trong Chương III. Phần tiếp theo của chương này chúng tơi sẽ trình

bày các cơ sở lý thuyết nền tảng của học sâu và vấn đề biểu diễn dữ liệu trong xử
lý ngôn ngữ tự nhiên.
2.4. Học sâu
Học sâu (deep learning) là nhánh của ngành học máy dựa trên một tập hợp
các thuật toán để cố gắng mơ hình dữ liệu trừu tượng hóa ở mức cao bằng cách
sử dụng nhiều lớp xử lý với cấu trúc phức tạp, hoặc bằng cách khác bao gồm nhiều
biến đổi phi tuyến [28]. Thuật ngữ này gắn liền với mạng Nơ-ron nhân tạo, với sự
thành công lớn trong lĩnh vực thị giác máy tính và xử lý ngôn ngữ tự nhiên.
Mạng Nơ-ron nhân tạo (Artificial Neural Network – ANN) là một mơ hình
xử lý thơng tin được mô phỏng dựa trên hoạt động của hệ thống thần kinh của
sinh vật, bao gồm số lượng lớn các Nơ-ron được gắn kết để xử lý thông tin. ANN
hoạt động giống như bộ não của con người, được học bởi kinh nghiệm (thơng qua
việc huấn luyện), có khả năng lưu giữ các tri thức và sử dụng các tri thức đó trong
việc dự đốn các dữ liệu.
Một mạng Nơ-ron là một nhóm các nút nối với nhau, mơ phỏng mạng Nơron thần kinh của não người. Mạng Nơ-ron nhân tạo được thể hiện thông qua ba
thành phần cơ bản: mô hình của Nơ-ron, cấu trúc và sự liên kết giữa các Nơ-ron.
Trong nhiều trường hợp, mạng Nơ-ron nhân tạo là một hệ thống thích ứng, tự thay
18


đổi cấu trúc của mình dựa trên các thơng tin bên ngồi hay bên trong chạy qua
mạng trong q trình học [28].
2.4.1. Mạng Nơ-ron Tích Chập
Mạng Nơ-ron Tích Chập có tên gốc là Convolutional Neural Network
(CNNs). Hiểu theo chức năng, convolution là một quá trình trượt một ma trận lọc
(ma trận tính tốn hay cịn gọi là một ơ cửa sổ) lên ma trận biểu diễn dữ liệu để
lấy các thơng tin dữ liệu và thu giảm khơng gian tính tốn.

Hình 2: Convolved Feature Nguồn: />
CNNs về cơ bản chỉ là một vài lớp của các convolutions được tính tốn

thơng qua các hàm kích hoạt phi tuyến như ReLU hoặc tanh [29]. Trong một mạng
Nơ-ron cổ điển, chúng ta kết nối mỗi Nơ-ron đầu vào với mỗi Nơ-ron đầu ra trong
lớp tiếp theo. Kết nối này có thể là tồn phần hoặc là kết nối cục bộ. Trong CNNs,
người ta sử dụng các convolutions trên lớp đầu vào để tính toán kết quả đầu ra.
Điều này dẫn đến các kết nối cục bộ, trong đó mỗi vùng của đầu vào được kết nối
với một Nơ-ron đầu ra. Mỗi lớp áp dụng các bộ lọc (filters) khác nhau, có đến
hàng trăm hoặc hàng nghìn như các bộ lọc được các lớp trên và kết hợp các kết
quả của chúng. Ngoài ra cịn có các kĩ thuật tổng hợp (pooling) hay cịn gọi là
subsampling giữa các lớp tính tốn. Trong giai đoạn huấn luyện, CNNs có khả
năng tự động học dựa trên tập dữ liệu đầu vào và yêu cầu cụ thể. Ví dụ, trong nhận
diện hình ảnh, CNNs có thể học cách phát hiện các cạnh từ các pixel trong lớp
19


đầu tiên, sau đó sử dụng các cạnh để phát hiện các hình dạng đơn giản trong lớp
thứ hai, và sau đó sử dụng các hình dạng này để sử dụng trong các lớp sau. Tùy
vào mục đích sử dụng, lớp cuối cùng có thể là một trình phân loại.

Hình 3: Quá trình nhận diện hình ảnh với CNNs. Nguồn:

2.4.2. Ứng dụng mạng Nơ-ron Tích Chập trong xử lý ngơn ngữ tự nhiên
Thay vì sử dụng dữ liệu đầu vào là các pixel trong xử lý ảnh, đầu vào cho
việc xử lý ngôn ngữ tự nhiên (NLP) là các câu hoặc tài liệu được biểu diễn dưới
dạng ma trận. Mỗi hàng của ma trận tương ứng với một token, thường là một từ
(trong Tiếng Việt có thể là cụm từ) hoặc là một ký tự. Tức là, mỗi hàng là vectơ
đại diện cho một token. Thông thường, việc xây dựng vectơ sử dụng các kỹ thuật
nhúng từ (word embedding) như one-hot-vector, word2vec hoặc GloVe. Ví dụ
Đối với câu 10 từ bằng kỹ thuật nhúng từ 100 chiều, chúng tôi sẽ có ma trận 10 ×
100 làm dữ liệu đầu vào.
Trong xử lý hình ảnh, ma trận lọc sẽ trượt từ gốc tọa độ theo hai trục trên

mặt phẳng hình ảnh; trong xử lý ngôn ngữ tự nhiên ma trận lọc sẽ trượt qua các
hàng đầy đủ của ma trận (token). Do đó, "chiều rộng" của các bộ lọc thường giống
với chiều rộng của ma trận đầu vào. Chiều cao của ma trận có thể thay đổi, nhưng
thường sẽ di chuyển (trượt) trên 2-5 hàng trên ma trận, tương ứng là từ 2 đến 5
token trong văn bản.
Một lập luận cho rằng CNNs có tốc độ xử lý nhanh, Convolutions là tác vụ
phù hợp với hầu hết các phần cứng GPU [22]. Trong xử lý hình ảnh, các điểm ảnh
gần nhau có thể liên quan, tức là biểu diễn một hình dạng hay vật thể nào đó. Tuy
nhiên, trong xử lý ngơn ngữ, các phần của cụm từ có thể được phân tách thành
các từ có ý nghĩa khác nhau (như hot_dog trong tiếng Anh hay mơi_trường trong
Tiếng Việt đều có thể tách thành hai từ có ý nghĩa hồn tồn khác từ ghép). Rõ
ràng, có nhiều cách để thể hiện ngữ nghĩa trong văn bản, do đó việc xác định chính
xác những gì mà văn bản muốn thể hiện bằng CNNs phức tạp hơn với xử lý hình
20


ảnh [29].
Tuy nhiên, đã có nhiều cơng trình nghiên cứu chỉ ra rằng CNNs xử lý văn
bản khá tốt, đặc biệt trong phân loại văn bản (sẽ được trình bày chi tiết trong
Chương III).
2.4.3. Các Tham số trong mạng Nơ-ron Tích Chập
v Số lượng bộ lọc
Như cách hoạt động của mạng CNNs, số lượng bộ lọc và việc tổng hợp ảnh
hưởng đến hoạt động của toàn mạng. Giả sử cần nhận diện có khn mặt nào
trong một hình ảnh hay khơng. Bộ lọc sẽ di chuyển trên tồn bộ bức ảnh để tính
tốn chứ khơng biết chính xác vị trí “nghi ngờ” có khn mặt để xem xét. Trong
xử lý ngôn ngữ tự nhiên cũng vậy, chúng ta không thể xác định trước kích thước
bộ lọc là 2, 3, hay 5 từ cho một lần xem xét. Mỗi bộ lọc sẽ “lọc” ra sự tương quan
giữa các pixel gần nhau để xác định hình dạng vật thể hay rút ra những đặc trưng,
các mối quan hệ giữa các các từ, cụm từ gần nhau [32].

v Tích chập hẹp và tích chập rộng
Tích chập hẹp (Narow convolution) và tích chập rộng (Wide convolution)
là hai thuật ngữ xuất hiện khi áp bộ bộ lọc cho phần tử đầu tiên của ma trận khơng
có bất kỳ phần tử lân cận nào ở trên cùng và bên trái (trong xử lý hình ảnh). Sử
dụng kỹ thuật zero-padding, tức là tất cả các phần tử nằm ngồi ma trận được lấy
bằng khơng. Bằng cách này, người ta có thể áp dụng bộ lọc cho mọi phần tử của
ma tận đầu vào bằng nhau. Thêm các giá trị 0 được gọi là tích chập rộng và khơng
thêm giá trị 0 sẽ là tích chập hẹp. Ví dụ:

Hình 3:Narrow vs. Wide Convolution. Nguồn: A Convolutional Neural Network for Modelling Sentences [12]

21


Có thể thấy rằng convolution rộng là tốt hơn, hoặc thậm chí cần thiết, khi
mơ hình có một bộ lọc lớn liên quan đến kích thước đầu vào. Ở trên, convolution
hẹp tạo ra một đầu ra có kích thước (7-5) + 1 = 3 và một đầu ra có kích thước lớn
(7+2*4 - 5) + 1 =11. Tổng quát lại, cơng thức cho kích thước đầu ra là
n= (n + 2 * n{padding} - n{filter}) + 1
Trong xử lý ngôn ngữ tự nhiên, kích thước đơn vị xử lý đầu vào là khác
nhau (văn bản có độ dài khác nhau) tham số này rất quan trọng. Có thể sử dụng
cách lấy được trình bày tại [29], đó là thêm các giá trị vào các văn bản
ngắn hơn để có cùng độ dài với văn bản dài nhất.
v Stride Size
Stride Size là bước trượt của ma trận lọc. Thông thường, Stride Size =1 tức
là trượt lên từng token trong đoạn văn hoặc trượt lên từng điểm ảnh. Khi đó, các
vùng tính tốn của bộ lọc chồng lấn lên nhau. Khi đó khơng gian dữ liệu trung
gian tại các lớp ẩn phình to. Khi kích thước Stride Size lớn hơn dẫn đến số lượng
kết quả của bộ lọc hay nói cách khác là kích thước đầu ra nhỏ hơn. Khi đó, mơ
hình hoạt động sẽ có dạng là dạng cây thưa.


Hình 4: Convolution Stride. Nguồn: />
v 2.4.5. Lớp Pooling
Một khía cạnh quan trọng của mạng Nơ-ron tích chập là các lớp tổng hợp
Pooling, thường được áp dụng sau các lớp liên kết (convolutional layers) và làm
mẫu phụ cho các lớp này. Cách thông thường nhất để sinh ra các lớp Pooling là
sử dụng một bộ lọc lấy giá trị lớn nhất (max pool).

22


Hình 5: Minh họa Max pooling trong CNN. Nguồn:

Tính chất của pooling là nó cung cấp một ma trận đầu ra kích thước cố định,
thường được dùng trong các giải thuật phân loại. Ví dụ: khi áp dụng bộ lọc 1.000
bộ lọc sau khi tổng hợp tối đa sẽ nhận được đầu ra 1000 chiều, bất kể kích thước
bộ lọc hay kích thước của dữ liệu đầu vào. Điều này cho phép xử lý trên ngôn ngữ
tự nhiên với kích thước văn bản là thay đổi.
Pooling cũng làm giảm kích thước đầu ra nhưng vẫn có thể lưu giữ thông
tin nổi bật nhất [30]. Thực vậy, với các danh từ đặc trưng như “chính phủ”, “quốc
hội”, “dự thảo luật” nếu xuất hiện ở đâu đó trong đoạn văn thì kết quả của việc áp
dụng bộ lọc cho vùng đó sẽ mang lại giá trị lớn. Bằng cách thực hiện Pooling thì
những đặc trưng này sẽ được giữ lại.
v Chanel
Kênh (Chanel) là “góc nhìn” khác nhau trên dữ liệu đầu vào hay nói cách
khác là cách biểu diễn dữ liệu đầu vào. Ví dụ, trong nhận dạng hình ảnh, chúng ta
thường có các kênh RGB (đỏ, lục, lam). Có thể áp dụng convolutions trên các
kênh khác nhau. Tương tự trong NLP, có nhiều cách để xây dựng các kênh riêng
dựa trên phương pháp word embedding (word2vec hay GloVe) hoặc đơn giản là
sử dụng one-hot-vector.

2.5. Nhúng từ
Nhúng từ (Word Embedding, Word2vec) là một kỹ thuật biểu diễn văn bản
thành vector được đề xuất bởi Mikolov và cộng sự [24] với ưu điểm chính là thể
23


hiện được sự giống nhau giữa các từ. Các mô hình này là mạng lưới thần kinh
hai lớp nơng, được huấn luyện để nhận biết ngữ cảnh ngôn ngữ. Word2vec nhận
đầu vào là một số lượng lớn corpus văn bản, đầu ra là các vector tương ứng. Mỗi
từ duy nhất trong corpus được gán một vector tương ứng trong không gian (có thể
là hàng trăm chiều). Các vectơ từ được định vị trong không gian vectơ sao cho
các từ chia sẻ các bối cảnh chung trong kho văn bản nằm gần nhau trong không
gian. Việc biểu diễn đảm bảo khả năng tính tốn, ví dụ như có thể áp dụng độ đo
cosin để tính tốn sự tương đồng giữa hai vector từ. Việc nhúng từ thường được
sử dụng làm lớp xử lý dữ liệu đầu tiên trong mơ hình học sâu.
Trong mơ hình xử lý ngơn ngữ tự nhiên dựa trên học sâu, nhúng từ có thể
đại diện cho các từ, cụm từ và thậm chí cả các câu. Đây là một sự khác biệt lớn
giữa các mơ hình dựa trên số từ truyền thống và các mơ hình dựa trên học tập sâu
[27].
Mơ hình Word2vec sử dụng một lớp ẩn duy nhất, được kết nối hồn tồn
với mạng Nơ-ron.

Hình 5: Mơ hình Word2Vec. Nguồn: ine

Các Nơ-ron trong lớp ẩn là tất cả các Nơ-ron tuyến tính. Lớp đầu vào được
thiết lập để có nhiều Nơ-ron vì có các từ trong tập dữ liệu để huấn luyện. Kích
thước lớp ẩn chính là số chiều của vectơ (từ) kết quả. Kích thước của lớp đầu ra
giống như lớp đầu vào. Do đó, giả định rằng tập dữ liệu huấn luyện gồm v từ và
n là số chiều nhúng, thì ta biểu diễn tập dữ liệu đầu vào bằng ma trận WI có kích
24



thước v x n với mỗi hàng đại diện cho một từ. Tương tự như vậy, WO sẽ có kích
thước là n x v, tương ứng mỗi cột biểu diễn cho một từ. Đầu vào vào mạng được
mã hóa bằng cách sử dụng "1-out of-v" đại diện có nghĩa là chỉ có một dịng đầu
vào được đặt thành một và phần còn lại của các dòng đầu vào được đặt thành 0.
Ví dụ, với dữ liệu đầu vào gồm 3 câu "Con chó nhìn_thấy một con mèo",
"con chó đuổi_theo con mèo", "con mèo trèo_lên cây"
Tổng cộng có tám từ, giả sử tập từ điển gồm {một, mèo, đuổi_theo, trèo lên,
chó, con, nhìn_thấy, cây}, mỗi từ có thể được tham chiếu bằng chỉ mục vị trí trong
từ điển, tức là mỗi từ sẽ được biểu diễn bằng một số nguyên. Tương ứng từ “mèo”
sẽ được biểu diễn dưới dạng [0,1,0,0,0,0,0,0]
Trong ví dụ này, mạng Nơ-ron của chúng ta sẽ có tám Nơ-ron đầu vào và
tám Nơ-ron đầu ra. Giả sử chúng ta sử dụng 3 Nơ-ron trong lớp ẩn. Điều này có
nghĩa là WI sẽ là ma trận 3 × 8 và WO sẽ có chiều là 8 x 3. Khi được khởi tạo,
ma trận WI sẽ nhận các giá trị ngẫu nhiên như sau:

và WO sẽ nhận các giá trị

Giả sử chúng ta muốn mạng tìm hiểu mối quan hệ giữa các từ “mèo” và
“trèo lên”. Tức là, mạng sẽ hiển thị một xác suất xảy ra cho việc xuất hiện từ “trèo
lên” khi có từ “mèo” được nhập vào mạng. Trong thuật ngữ word embedding, từ
“mèo” được gọi là từ ngữ cảnh (context word) và từ “trèo_lên” được gọi là từ mục
tiêu (target word).
Trong trường hợp này, vector đầu vào thể hiện từ mèo sẽ là X = [0 1 0 0 0
0 0 0] và từ mục tiêu là “trèo_lên”, vector đích sẽ trơng giống như [0 0 0 1 0 0 0
0].
Với vector đầu vào đại diện cho "mèo", đầu ra tại các Nơ-ron lớp ẩn có thể
được tính như sau:
H t = X t W = [-0,490796 -0,229903 0,065460]

25


×