1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

58 93 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 58
Dung lượng 2,82 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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

Trang 1

ĐẠ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

Trang 2

ii

CÔNG TRÌNH ĐƯỢC HOÀ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

Trang 3

iii

ĐẠ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Ĩ

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

Trang 4

iv

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

Trang 5

đã tận tình giúp đỡ và giảng dạy cho tôi trong suốt quá 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

Trang 6

vi

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

Trang 7

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

Trang 8

viii

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

Trang 9

ix

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 toá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

Trang 10

x

5.5.4 Phân tích quá 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

Trang 11

xi

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: http://deeplearning.stanford.edu/ 19

Hình 3: Quá trình nhận diện hình ảnh với CNNs Nguồn:http://www.wildml.com 20

Hình 4: Convolution Stride Nguồn: http://cs231n.github.io/convolutional-networks/ 22

Hình 5: Minh họa Max pooling trong CNN Nguồn: http://cs231n.github.io 23 Hình 6: Word2Vec với CBOW Nguồn: https://iksinc.online 27

Hình 7: Ma trận người dùng - sản phẩm Nguồn http://www.researchgate.net 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

Trang 12

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

Trang 13

13

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

Trang 14

14

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

Trang 15

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ự đoá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]

Trang 16

16

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

Trang 17

17

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 toá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

Trang 18

18

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 ngoà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 toá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ử

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ự đoán các dữ liệu

Một mạng ron là một nhóm các nút nối với nhau, mô phỏng mạng 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

Trang 19

Hình 2: Convolved Feature Nguồn: http://deeplearning.stanford.edu/

CNNs về cơ bản chỉ là một vài lớp của các convolutions được tính toá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à toà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 toá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

Trang 20

20

đầ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:http://www.wildml.com

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 hoàn toà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

Trang 21

21

ả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ó khuôn mặt nào trong một hình ảnh hay không Bộ lọc sẽ di chuyển trên toàn bộ bức ảnh để tính toán chứ không biết chính xác vị trí “nghi ngờ” có khuôn 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 ngoà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]

Trang 22

22

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ị <pad> 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 toá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: http://cs231n.github.io/convolutional-networks/

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)

Trang 23

23

Hình 5: Minh họa Max pooling trong CNN Nguồn: http://cs231n.github.io

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ể

Trang 24

24

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 toán, ví dụ như có thể áp dụng độ đo cosin để tính toá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 hoàn toàn với mạng Nơ-ron

Hình 5: Mô hình Word2Vec Nguồn: https://iksinc.online

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

Trang 25

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]

Trang 26

26

Gọi xác suất từ k xuất hiện tại ngữ cảnh X là Pr (wordk|wordcontext)

Word2vec đạt được điều này bằng cách chuyển đổi các giá trị kích hoạt của các Nơ-ron lớp đầu ra thành các xác suất sử dụng hàm softmax Do đó, đầu ra của Nơ-ron thứ k được tính bằng biểu thức sau:

Khi đó, xác xuất cho 8 từ trong tập từ điển là [0.143073, 0.094925 0.114441, 0.111166, 0.149289, 0.122874, 0.119431, 0.144800]

Với từ mục tiêu là “trèo_lên” tương ứng với vector [0,0,0,1,0,0,0,0] ta tính được xác xuất của từ “trèo_lên” khi có từ “mèo” là 0.111166

Vector lỗi cho lớp đầu ra có thể được tính toán dễ dàng bằng cách lấy vectơ đích trừ đi vector xác suất Một khi lỗi được biết, các trọng số trong ma trận WO

và WI có thể được cập nhật bằng cách sử dụng backpropagation Do đó, việc huấn luyện có thể tiến hành bằng cách ghép đôi các từ trong từ điển thường hay xuất hiện cùng nhau hoặc mạng ý nghĩa khi đứng cạnh nhau Về bản chất, đây là cách Word2vec học các mối quan hệ giữa các từ và trong quá trình phát triển các biểu diễn vector cho các từ trong kho văn bản

2.5.1 Word2Vec với CBOW

Trong mô hình túi từ liên tục, ngữ cảnh được biểu thị bằng nhiều từ cho một

từ mục tiêu nhất định Ví dụ, chúng ta có thể sử dụng "mèo" và "cây" làm từ ngữ cảnh cho "trèo lên" làm từ mục tiêu Điều này đòi hỏi một sửa đổi đối với kiến trúc mạng Nơ-ron Sửa đổi, được hiển thị bên dưới, bao gồm việc sao chép đầu vào cho các kết nối lớp ẩn C lần, số từ ngữ cảnh và thêm phân chia theo hoạt động

C trong các Nơ-ron lớp ẩn

Trang 27

27

Hình 6: Word2Vec với CBOW Nguồn: https://iksinc.online

2.5.2 Word2Vec với Skip-Gram

Mô hình Skip-gram thực hiện ngược lại với CBOW Trong trường hợp này,

từ mục tiêu trở thành dữ liệu đầu vào, lớp ẩn vẫn giữ nguyên, và lớp đầu ra của mạng thần kinh được nhân bản nhiều lần để chứa số từ ngữ được chọn Lấy ví dụ

“mèo” và “cây” làm từ ngữ cảnh và “trèo lên” làm từ mục tiêu, vector đầu vào trong mô hình skim-gram sẽ là [0 0 0 1 0 0 0 0] t , trong khi hai đầu ra các lớp sẽ

có [0 1 0 0 0 0 0 0] và [0 0 0 0 0 0 0 1] là các vectơ mục tiêu tương ứng Thay cho việc tạo ra một như mô hình tổng quát, hai vectơ xác suất sẽ được tạo ra Tuy nhiên, các vectơ lỗi từ tất cả các lớp đầu ra được tổng hợp để điều chỉnh trọng số

Trang 28

28 thông qua backpropagation Điều này đảm bảo rằng trọng số trên ma trận WO cho mỗi lớp đầu ra vẫn giống hệt nhau thông qua huấn luyện

Trang 29

29

CHƯƠNG III CÁC NGHIÊN CỨU LIÊN QUAN

Trong chương này, chúng tôi sẽ tổng thuật lại các nghiên cứu liên quan về các hệ thống gợi ý văn bản nổi bật hiện nay Các phương pháp ứng dụng học sâu trong xử lý ngôn ngữ tự nhiên nói chung và các phương pháp xử lý Tiếng Việt nói riêng Thông qua việc phân tích các công trình nghiên cứu này, chúng tôi sẽ rút ra những kinh nghiệm và có định hướng tốt hơn trong việc xây dựng hệ thống gợi ý văn bản Tiếng Việt

3.1 Tổng thuật nghiên cứu về hệ thống gợi ý dựa trên nội dung

Trong những năm gần đây, hệ thống gợi ý đã trở thành một hướng nghiên cứu thu hút nhiều sự quan tâm, chú ý và đã gặt hái được nhiều thành quả nhất định

Một trong những đề tài nổi bật về hệ thống gợi ý dựa trên nội dung là

“Google news personalization” [1] của Abhinandan Das và các đồng sự tại Google Đây là một hướng tiếp cận hệ thống gợi ý theo phương pháp lai dựa trên giải thuật lọc cộng tác và lọc nội dung, theo đó, cơ sở để đưa ra gợi ý cho người dùng dựa trên những xếp hạng của những người dùng khác Nhóm tác giả đề xuất một thuật toán dựa trên hệ số tương quan người dùng và độ tương tự Cosin để tìm

ra 'sự giống nhau' giữa các sản phẩm Kết hợp kỹ thuật phân tích ngữ nghĩa tiềm

ẩn (PLSI), MinHash và số lần được xem của tin tức để đưa ra xếp hạng mục tin Cách tiếp cận của nhóm tác giả là dựa trên người dùng nên ngoài việc có thể áp dụng để gợi ý tin tức như Google Tin tức, phương pháp này dễ dàng áp dụng với một số ứng dụng và áp dụng được với các dạng sản phẩm khác như sản phẩm tiêu dùng, âm nhạc, phim ảnh,

Mở rộng và phát triển việc cá nhân hóa nội dung tin tức dựa trên các giải thuật lọc cộng tác Abhinandan Das tại [1], Lihong Li cùng các đồng sự đã đề xuất cải tiến Google Tin tức bằng giải thuật gợi ý dựa trên hành vi người dùng

“Personalized news recommendation based on click behavior”[7] Các tác giả đã

đề xuất một bộ lọc cho phép loại bỏ thông tin không cần thiết khỏi tập dữ liệu Đầu tiên, họ đã phân tích mối quan tâm của người dùng trong khoảng thời gian

14 tháng cho mỗi danh mục bài viết (các danh mục được xác định trước) Theo

đó, các hoạt động của người dùng như rê chuột, nhấp chuột, hay dừng lại lâu hơn

ở một mục tin tức nào đó sẽ được ghi nhận Các thông tin này sẽ được đánh giá

và xếp hạng (đánh trọng số chủ đề) mà người dùng quan tâm Sau đó, họ sử dụng

Ngày đăng: 26/01/2021, 08:40

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w