1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Phân loại thực thể có tên trên wikipedia để phục vụ cho bài toán xây dựng hệ tri thức

79 38 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 79
Dung lượng 4,28 MB

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

Nội dung

Bên cạnh đó, luận văn cũng đóng góp cho cộng đồng nghiên cứu một tập dữ liệu lớn gồm 10,000 thực thể được gán nhãn thủ công và một công cụ để thực hiện tiền xử lý dữ liệu, có thể được tá

Trang 1

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

LƯU MẠNH HÀ

PHÂN LOẠI THỰC THỂ CÓ TÊN TRÊN WIKIPEDIA ĐỂ PHỤC VỤ CHO BÀI

TOÁN XÂY DỰNG HỆ TRI THỨC

LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN

HÀ NỘI - 2019

Trang 2

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

LƯU MẠNH HÀ

PHÂN LOẠI THỰC THỂ CÓ TÊN TRÊN WIKIPEDIA ĐỂ PHỤC VỤ CHO BÀI

TOÁN XÂY DỰNG HỆ TRI THỨC

LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN

Cán bộ hướng dẫn: PGS TS Phạm Bảo Sơn

HÀ NỘI - 2019

Trang 3

Lời cảm ơn

Trước tiên, tôi xin gửi lời cảm ơn sâu sắc nhất đến thầy giáo: Phó giáo sư - Tiến

sĩ Phạm Bảo Sơn và thầy giáo: Tiến sĩ Nguyễn Bá Đạt, đã tận tình hướng dẫn tôi trong suốt quá trình thực hiện luận văn tốt nghiệp

Tôi xin bày tỏ lời cảm ơn chân thành tới Trường Đại học Công nghệ - ĐHQG Hà Nội và những thầy cô giáo đã giảng dạy, truyền thụ kiến thức cho tôi trong thời gian qua, cùng với các anh chị em tại Công ty cổ phần NERD, đã hỗ trợ cho tôi trong suốt thời gian thực hiện luận văn này

Tôi cũng cảm ơn các lãnh đạo của Tập đoàn Công nghiệp Viễn thông Quân đội Viettel và các đồng nghiệp đã tạo điều kiện để tôi hoàn thành việc học cao học và bảo vệ luận văn thạc sĩ

Cuối cùng, tôi xin cảm ơn tất cả gia đình, bạn bè đã luôn động viên giúp đỡ tôi trong thời gian nghiên cứu đề tài Tuy đã có những cố gắng nhất định nhưng do thời gian và trình độ có hạn nên luận văn còn nhiều thiếu sót và hạn chế Kính mong nhận được sự góp ý của quý thầy cô và các bạn

Trang 4

Lời cam đoan

Tôi xin cam đoan các kết quả nghiên cứu, thực nghiệm được trình bày trong luận văn này do tôi thực hiện dưới sự hướng dẫn của Phó giáo sư - Tiến sĩ Phạm Bảo Sơn và Tiến sĩ Nguyễn Bá Đạt, và được thực hiện trong quá trình hợp tác nghiên cứu giữa Đại học Công Nghệ và Công ty cổ phần NERD

Tất cả những tham khảo từ các nghiên cứu liên quan đều được nêu nguồn gốc một cách rõ ràng từ danh mục tài liệu tham khảo của luận văn Trong luận văn, không

có việc sao chép tài liệu, công trình nghiên cứu của người khác mà không chỉ rõ

về tài liệu tham khảo

Hà Nội, ngày 12/11/2019

Học viên

Lưu Mạnh Hà

Trang 5

Mục lục

Lời cảm ơn i

Lời cam đoan ii

Danh sách bảng v

Danh sách hình vẽ vi

Lời mở đầu 1

Chương 1 Giới thiệu 2

1.1 Phạm vi bài toán và mục tiêu nghiên cứu 2

1.2 Đóng góp của luận văn 4

1.3 Cấu trúc của luận văn 5

Chương 2 Hệ thống kiểu của thực thể có tên 7

2.1 Khái niệm 7

2.1.1 Hệ tri thức 7

2.1.2 Thực thể 9

2.1.3 Thực thể có tên 10

2.1.4 Kiểu của thực thể 10

2.2 Các hệ thống kiểu thực thể 11

2.2.1 Các hệ thống kiểu chi tiết cho Tiếng Anh 11

2.2.2 Hệ thống kiểu thực thể NERD-TS 13

2.2.3 Điểm khác biệt giữa NERD-TS với hệ thống kiểu trong bài toán NER truyền thống 14

Chương 3 Phân loại thực thể có tên trên Wikipedia tiếng Việt 18

3.1 Học máy 18

3.1.1 Tổng quan về học máy 18

Trang 6

3.2 Mô hình SVM 25

3.2.1 Tổng quan 25

3.2.2 Mô hình SVM với nhân tuyến tính 27

3.2.3 Phân loại đa lớp (Multiclass classification) 29

3.3 Bộ công cụ Sklearn 31

3.3.1 Thư viện Sklearn Linear SVC (Linear Support Vector Classification) 32 3.3.2 Trích chọn đặc trưng (Feature extraction) 34

3.3.3 Lựa chọn đặc trưng (Feature selection) 36

3.3.4 Kiểm định chéo (Cross-validation) 38

3.4 Tiền xử lý dữ liệu 41

3.4.1 Giới thiệu về VnCoreNLP 43

3.4.2 Phân tách từ 43

3.4.3 Gán nhãn từ loại (POS tagging) 46

3.5 Tập đặc trưng 47

Chương 4 Thực nghiệm 49

4.1 Tập dữ liệu 49

4.2 Tiến hành thực nghiệm 50

4.3 Độ đo 52

4.4 Kết quả 52

4.5 Phân tích đóng góp của từng loại đặc trưng 54

Kết luận và hướng phát triển 57

Tham khảo 59

Phụ lục 62

Phụ lục 1 Một số ví dụ trong tập dữ liệu 10,000 trang Wikipedia được gán nhãn thủ công 62

Phụ lục 2 Một số luật gán kiểu thực thể dựa trên infobox template 66

Phụ lục 3: Mô tả nội dung tệp dữ liệu sau tiền xử lý 69

Trang 7

Danh sách bảng

Bảng 2.1: Một vài ví dụ về thực thể có tên 10

Bảng 2.2: Các kiểu được sử dụng trong hệ thống FIGER [9] 12

Bảng 3.1: Cách biểu diễn cụ thể cho từng loại đặc trưng 48

Bảng 4.1: Thống kê số lượng thực thể theo từng loại trên tập dữ liệu thực nghiệm 50

Bảng 4.2: Kết quả chi tiết của phương pháp cơ sở 53

Bảng 4.3: Kết quả của mô hình học máy được đề xuất so với phương pháp cơ sở 53

Bảng 4.4: Kết quả chi tiết của mô hình học máy với từng loại thực thể 53

Bảng 4.5: Kết quả của mô hình học máy khi thử loại bỏ từng loại đặc trưng 54

Bảng 4.6: Kết quả chi tiết với việc loại bỏ đặc trưng F1 54

Bảng 4.7: Kết quả chi tiết với việc loại bỏ đặc trưng F2 55

Bảng 4.8: Kết quả chi tiết với việc loại bỏ đặc trưng F3 55

Bảng 4.9: Kết quả chi tiết với việc loại bỏ đặc trưng F4 55

Bảng 4.10: Kết quả chi tiết với việc loại bỏ đặc trưng F5 56

Trang 8

Danh sách hình vẽ

Hình 1.1: Trang Wikipedia tiếng Việt về Đại học Quốc Gia Hà Nội 4

Hình 2.1 Kiến trúc của hệ tri thức 7

Hình 2.2 Biểu diễn dữ liệu trong hệ tri thức dưới dạng knowledge graph 8

Hình 2.3: Các ý nghĩa khác nhau của từ “đá” 9

Hình 2.4 Kiến trúc của hệ thống kiểu trong hệ tri thức Dbpedia 12

Hình 2.5: Công cụ nhận dạng thực thể của Đại học Stanford 15

Hình 2.6: Trang Wikipedia tiếng Việt về Tôn Ngộ Không 16

Hình 3.1: Mối quan hệ giữa AI, Machine Learning và Deep Learning 19

Hình 3.2: MNIST – bộ cơ sở dữ liệu của chữ số viết tay 21

Hình 3.3: AlphaGo chơi cờ vây với Lee Sedol 24

Hình 3.4: Ví dụ về phân loại SVM với lề cực đại (đường H 3 ) 26

Hình 3.5: Sử dụng kernel trick để ánh xạ dữ liệu lên không gian nhiều chiều hơn 27

Hình 3.6 Ví dụ về lề phân lớp cực đại 𝑤 𝑥 = 𝑏 28

Hình 3.7: Ví dụ về Linear SVC trong thư viện Sklearn 32

Hình 3.8: Biểu điễn của hành vi kiển định chéo 3-fold Stratified CV 40

Hình 3.9 Các bước tiền xử lý dữ liệu 41

Hình 3.10 Một trang wikipedia điển hình 42

Hình 3.11: Kiến trúc tổng thể của VNCoreNLP [23] 43

Hình 3.12: Phân loại các phương pháp tiếp cận Phân tách từ 45

Hình 3.13: Ví dụ về sự tương ứng giữa bài toán tách từ và bài toán gán nhãn chuỗi [28] 45

Hình 3.14: Các đặc trưng được trích xuất từ một thực thể có tên trên Wikipedia 48

Hình 4.1: Phương pháp tiến hành thực nghiệm 51

Trang 9

Trong luận văn này, học viên giới thiệu một phương pháp hiệu quả để giải quyết bài toán phân loại thực thể có tên trên phiên bản Wikipedia tiếng Việt dựa trên

máy véc-tơ hỗ trợ (Support Vector Machine) Đặc biệt, luận văn cũng hoàn thành

xây dựng một công cụ để thực thi bài toán này với độ chính xác cao trên 94% Bên cạnh đó, luận văn cũng đóng góp cho cộng đồng nghiên cứu một tập dữ liệu lớn gồm 10,000 thực thể được gán nhãn thủ công và một công cụ để thực hiện tiền xử lý dữ liệu, có thể được tái sử dụng để phục vụ cho các bài toán có nội dung liên quan

Học viên tin tưởng rằng những đóng góp của luận văn sẽ đẩy nhanh quá trình xây dựng hệ tri thức tiếng Việt giàu có về thông tin Qua đó, học viên sẽ trực tiếp hoặc

gián tiếp đóng góp vào các nghiên cứu trong lĩnh vực xử lý ngôn ngữ tự nhiên (Natural Language Processing) và trí tuệ nhân tạo (Artificial Intelligence) như hỏi đáp tự động (Question Answering), tổng hợp và trích xuất thông tin

(Information Extraction)

Trang 10

Chương 1

Giới thiệu

1.1 Phạm vi bài toán và mục tiêu nghiên cứu

Hiện nay, với nhu cầu ngày càng nhiều của các ứng dụng trí tuệ nhân tạo, đặc biệt

là các ứng dụng trợ lý ảo như Google Assistant (Google), Alexa (Amazon), Siri (Apple), v.v thì nhu cầu xây dựng hệ tri thức để phục vụ cho các ứng dụng này ngày càng cấp bức và thiết yếu Trong việc xây dựng hệ tri thức thì việc xây dựng một cơ sở dữ liệu các thực thể có tên và phân loại các thực thể có tên này là bước

quan trọng nhất Bài toán phân loại thực thể có tên để phục vụ cho xây dựng hệ tri thức là bài toán sử dụng thông tin từ một nguồn dữ liệu để trích lọc ra các thực thể có tên, từ đó phân loại các thực thể có tên thành các kiểu thực thể như người

(Person), tổ chức (Organization), Địa điểm (Place), Sự kiện (Event), v.v hoặc các kiểu chi tiết hơn như kiểu FIGER [9], NERD, v.v để phục vụ cho việc xây dựng các hệ tri thức

Đây là bài toán quan trọng trong lĩnh vực trích xuất thông tin (Information Extraction), và xây dựng hệ tri thức (Knowledge Base Construction), phân loại

thực thể có tên trên miền Wikipedia thu hút được sự quan tâm lớn của giới học thuật trên thế giới [14], [16], [19] Tại Việt Nam, trong bối cảnh nhiều công ty công nghệ như FPT1, NERD2, v.v và các tổ chức phi lợi nhuận như Đề án hệ tri thức Việt số hóa3 đã và đang nỗ lực xây dựng một hệ tri thức lớn cho thị trường Việt, việc xây dựng và nghiên cứu một công cụ phân loại thực thể có tên cho tiếng Việt là cần thiết

Một số nghiên cứu liên quan có thể kể đến như công cụ dự đoán kiểu của thực thể trong hệ tri thức Dbpedia của tác giả Nguyễn Thị Như và cộng sự [12], [13] Đây

có thể coi là bước khởi đầu cho bài toán này đối với tiếng Việt Tuy nhiên, kết quả thu được chưa thực sự tốt do dữ liệu Dbpedia phiên bản tiếng Việt còn rất khiêm tốn Hơn nữa, do các công cụ trích xuất thông tin của hệ tri thức Dbpdia

1 https://fpt.ai/

2 https://www.nerd.vn/

3 https://itrithuc.vn/

Trang 11

không được tối ưu cho tiếng Việt, vì thế một số lượng lớn nhiễu vẫn còn tồn tại trong đó

Trong khuôn khổ của luận văn này, học viên nghiên cứu và xây dựng một công

cụ dự đoán kiểu của thực thể có tên sử dụng dữ liệu lấy từ các trang Wikipedia tiếng Việt4 Nhờ đó, công cụ này có khả năng tận dụng nhiều kiểu đặc trưng hữu ích khác nhau từ một trang Wikipedia như:

• kiểu đặc trưng có cấu trúc, ví dụ: hộp thông tin (infobox properties), tiêu

đề (heading);

• kiểu đặc trưng phi cấu trúc, ví dụ: từ khóa bao gồm thể loại (categories) và

các cụm danh từ quan trọng thường xuất hiện ở đầu trang, v.v

Theo sự hiểu biết và tìm kiếm thông tin của học viên, hiện nay chưa có nghiên cứu nào tương tự cho tiếng Việt

Để đạt được mục tiêu trên, luận văn sẽ tập trung triển khai các nội dung nghiên cứu chính như sau:

• Tải dữ liệu từ Wikipedia tiếng Việt và tiền xử lý, lọc bỏ nhiễu (html, redirect pages, template pages, v.v.)

• Lựa chọn ngẫu nhiên 10,000 bài viết và gán nhãn thủ công cho 10,000 bài viết này Đồng thời luận văn cũng đã xây dựng được một bộ luật từ thông tin Infobox template được thực hiện thủ công

• Xây dựng một công cụ để trích chọn các đặc trưng từ các trang Wikipedia này để phục vụ cho bài toán chính Trong đó, luận văn có tái sử dụng lại công cụ VNCoreNLP, là một công cụ rất phổ biến trong việc phân tách từ

và gán nhãn từ loại tiếng Việt

• Tiếp theo, luận văn xây dựng một mô hình học máy, lựa chọn phương pháp Máy véc tơ hỗ trợ (SVM) để phân loại các thực thể sau khi đã thử nghiệm với một vài phương pháp khác dựa trên một tập dữ liệu nhỏ Trong phần này học viên sử dụng thư viện Sklearn để thực thi các bài toán học máy cụ thể Mô hình này nhận dữ liệu đầu vào là thực thể có tên và các đặc trưng được trích chọn từ một trang Wikipedia tiếng Việt đã được tiền xử như trên,

ví dụ: Đại học Quốc Gia Hà Nội, và cho ra kết quả là một kiểu của thực thể

trong danh sách các kiểu đã được định nghĩa trước, ví dụ: tổ chức

(Organization)

4 Luận văn được thực hiện trong quá trình hợp tác nghiên cứu giữa Đại học Công Nghệ và Công ty cổ phần NERD.

Trang 12

• Cuối cùng, luận văn đánh giá kết quả của phương pháp này và so sánh với phương pháp sơ sở (baseline) để chứng minh cho độ ưu việt của giải pháp

• Đồng thời, học viên cũng đưa ra các đề xuất để phát triển tiếp công cụ này trong tương lai

Lý do luận văn lựa chọn Wikipedia do đây là một nền tảng tri thức đa ngôn ngữ,

có cộng đồng phát triển đông đảo ở hầu hết các quốc gia trên thế giới Đây chính

là nguồn dữ liệu cơ bản giúp xây dựng các hệ tri thức lớn trên thế giới như Dbpedia [2], Wikidata [20], Yago [18], v.v Hiện nay, phiên bản Wikipedia có hơn 52 triệu bài viết trên 309 ngôn ngữ, riêng tiếng Việt5 có khoảng 1.24 triệu bài viết với hơn

1.7 triệu thực thể bao gồm các khái niệm như Cầu thủ bóng đá, Trường đại học,

v.v., và các thực thể có tên như Đoàn Văn Hậu, Đại học Quốc gia Hà Nội, v.v Hình

1.1 thể hiện một phần trang Đại học Quốc Gia Hà Nội trên miền Wikipedia tiếng Việt

Hình 1.1: Trang Wikipedia tiếng Việt về Đại học Quốc Gia Hà Nội

1.2 Đóng góp của luận văn

Luận văn này đã đóng góp cho cộng đồng nghiên cứu:

• một công cụ có khả năng phân loại thực thể có tên trên miền Wikipedia

tiếng Việt đạt độ chính xác 𝐹'.( = 94%,

• một bộ dữ liệu với 10,000 thực thể được gán nhãn thủ công

5 https://vi.wikipedia.org

Trang 13

• một công cụ tiền xử lý dữ liệu có thể tái sử dụng cho các bài toán và nghiên cứu liên quan

Học viên tin tưởng rằng những đóng góp trên sẽ đẩy nhanh quá trình xây dựng hệ tri thức tiếng Việt giàu có về thông tin Qua đó, luận văn sẽ trực tiếp hoặc gián

tiếp đóng góp vào các nghiên cứu trong lĩnh vực xử lý ngôn ngữ tự nhiên (Natural Language Processing) và trí tuệ nhân tạo (Artificial Intelligence) như hỏi đáp tự động (Question Answering), tổng hợp và trích xuất thông tin (Information

Extraction), v.v

1.3 Cấu trúc của luận văn

Các phần còn lại của luận văn được tổ chức như sau: các khái niệm cơ bản và

quan trọng của bài toán xây dựng hệ tri thức và phân loại thực thể được trình

bày trong chương 2 như khái niệm hệ tri thức, thực thể, thực thể có tên, kiểu thực

thể và các hệ thống kiểu thực thể phổ biến Luận văn cũng sẽ phân tích những điểm khác biệt giữa bài toán này với bài toán nhận dạng thực thể có tên (Named Entity Recognization – NER) để làm rõ tính cần thiết của bài toán này

Trong chương 3, luận văn sẽ giới thiệu cụ thể về các công cụ và phương pháp

được sử dụng trong bài toán Luận văn sẽ giới thiệu tổng quan về các phương

pháp học máy, và phân tích chi tiết hơn về phương pháp máy véc tơ hỗ trợ (Support vector machine – SVM) là phương pháp học máy chính được học viên

sử dụng trong luận văn Đồng thời luận văn cũng giải thích chi tiết về thư viện Sklearn được sử dụng để thực thi mô hình học máy trong luận văn và một số công

cụ của thư viện được sử dụng để phân chia dữ liệu thành tập huấn luyện và tập

kiểm tra để kiểm định chéo (Stratified K-folds cross validation), trích chọn đặc trưng (Feature extraction), lựa chọn đặc trưng (Feature selection) Luận văn cũng

giới thiệu sơ lược về VNCoreNLP, một công cụ rất phổ biến và hiệu quả để phân tách từ và gán nhãn từ loại, được sử dụng trong khâu tiền xử lý dữ liệu và trích chọn đặc trưng Luận văn cũng mô tả các đặc trưng sẽ sử dụng, cũng như cách biểu diễn các đặc trưng này trong bài toán

Tiếp theo, mô hình thực nghiệm và kết quả của thực nghiệm sẽ được trình bày

ở chương 4 Trong chương này, luận văn sẽ mô tả sơ bộ về tập dữ liệu được sử

dụng, các bước thực hiện thực nghiệm Đồng thời luận văn cũng trình bày về mô hình được sử dụng trong thực nghiệm và các cài đặt trong mô hình (chiến lược phân loại, phương pháp phân chia dữ liệu, lựa chọn đặc trưng, v.v.) Luận văn cũng nêu ra phương pháp đánh giá hiệu quả của mô hình và so sánh với phương pháp cơ sở để chứng minh tính ưu việt của phương pháp

Trang 14

Cuối cùng, toàn bộ các công việc đã thực hiện được tổng kết và trình bày trong phần kết luận Đồng thời, trong phần này cũng trình bày hướng nghiên cứu, mở

rộng tiếp theo của luận văn trong tương lai

Trang 15

của nó [25] Một hệ tri thức (knowledge-based system) là một chương trình máy tính sử dụng một cơ sở tri thức (knowledge base) với một công cụ suy luận (inference engine) để giải quyết các vấn đề thường đòi hỏi tư duy đặc biệt của con

người Hình 2.1 mô tả kiến trúc chung của một hệ tri thức

Hình 2.1 Kiến trúc của hệ tri thức 6

6 https://searchcio.techtarget.com/definition/knowledge-based-systems-KBS

Trang 16

Công cụ giao diện hoạt động như công cụ tìm kiếm và cơ sở tri thức đóng vai trò

là kho lưu trữ kiến thức Học máy là một thành phần thiết yếu của các hệ tri thức

và mô hình học giúp cải thiện hệ thống Các hệ tri thức có thể được phân loại thành các hệ dựa trên CASE, hệ dạy học thông minh (Intelligent tutoring systems),

hệ chuyên gia (Expert systems), hệ thao tác siêu văn bản (Hypertextmanipulationsystems ) và cơ sở dữ liệu với giao diện người dùng thông minh7

So với các hệ thống thông tin dựa trên máy tính truyền thống, các hệ tri thức có nhiều ưu việt hơn Chúng có thể cung cấp tài liệu hiệu quả và cũng xử lý một lượng lớn dữ liệu phi cấu trúc theo cách thông minh Các hệ tri thức có thể hỗ trợ trong việc ra quyết định chuyên sâu và cho phép người dùng làm việc ở mức độ chuyên môn cao hơn và thúc đẩy năng suất và tính nhất quán Các hệ thống này rất hữu ích khi không có chuyên môn hoặc khi dữ liệu cần được lưu trữ để sử dụng trong tương lai hoặc cần được nhóm với chuyên môn khác nhau ở một nền tảng chung, do đó cung cấp tích hợp kiến thức quy mô lớn Cuối cùng, các hệ thống dựa trên tri thức có khả năng tạo ra kiến thức mới bằng cách tham khảo nội dung được lưu trữ

Hình 2.2 Biểu diễn dữ liệu trong hệ tri thức dưới dạng knowledge graph 8

7 https://www.techopedia.com/definition/7969/knowledge-based-system-kbs

8 https://yashuseth.blog/2019/10/08/introduction-question-answering-knowledge-graphs-kgqa

Trang 17

Hình 2.2 thể hiện biểu diễn của dữ liệu trong hệ tri thức dưới dạng Knowledge

graph, trong đó các nút là các thực thể có tên, được phân loại (quan hệ “is a”) và

có các mối quan hệ với nhau (như “is located in”, “painted”, v.v.)

Ngày nay, các ứng dụng với hệ tri thức ngày càng nhiều, đặc biệt là với các ứng dụng trợ lý ảo, không thể hoạt động nếu thiếu các hệ tri thức Việc xây dựng hệ tri thức thu hút được rất nhiều mối quan tâm của cộng đồng nghiên cứu và các doanh nghiệp công nghệ lớn Các hệ tri thức lớn và phổ biến hiện nay gồm Dbpedia [2], Wikidata [20], Yago [18], v.v.Tuy nhiên, các hệ tri thức tiếng Việt vẫn còn ít và còn tương đối hạn chế

2.1.2 Thực thể

Thực thể (entity) là một đối tượng (ví dụ: Đoàn Văn Hậu, Đại học Quốc gia Hà Nội,

v.v.), hoặc một lớp đối tượng (ví dụ: Cầu thủ bóng đá, Trường đại học, v.v.) trong thế giới tự nhiên [18], [19] Mỗi thực thể mang một ý nghĩa rõ ràng, không còn

sự mập mờ của ngôn ngữ Hình 2.3 thể hiện ba ý nghĩa khác nhau của từ “đá”

trong ngôn ngữ tự nhiên:

• Nước đá: là tên gọi khác của nước đóng băng;

• Đá (võ thuật): là cách sử dụng chân trong võ thuật, thể thao và thi đấu;

• Chia tay (tình cảm): là hành động rời bỏ, cắt đứt quan hệ về mặt tình cảm

Hình 2.3: Các ý nghĩa khác nhau của từ “đá”

Nhờ loại bỏ sự nhập nhằng của ngôn ngữ tự nhiên, thực thể giúp máy móc có khả năng phân tích và hiểu ngôn ngữ như người Thực thể là đơn vị nhỏ nhất và là

đơn vị cơ bản cấu thành hệ tri thức

Trang 18

2.1.3 Thực thể có tên

Tuy mỗi thực thể mang một và chỉ một ý nghĩa, vẫn có những thực thể ám chỉ không chỉ một mà là một nhóm đối tượng Ví dụ, Trường đại học là một tập hợp bao gồm Đại học Quốc gia Hà Nội, Đại học Bách Khoa Hà Nội, Đại học Ngoại

Thương, v.v Thực thể có tên (named entity) là một thực thể được biểu diễn dưới

dạng tên riêng và chỉ duy nhất một đối tượng [5], [6], [18] Trong các ví dụ ở Bảng 2.1 là ví dụ phân biệt giữa thực thể có tên và nhóm thực thể, cụ thể:

• Đoàn Văn Hậu, Đại học Quốc gia Hà Nội, Hà Nội là thực thể có tên;

• Cầu thủ bóng đá, Trường đại học không phải là thực thể có tên

Một số nghiên cứu trên thế giới, như [18], [19], sử dụng thuật ngữ thực thể (entity)

để chỉ thực thể có tên, và lớp thực thể (class) để chỉ những thực thể khác

2.1.4 Kiểu của thực thể

Kiểu của thực thể có tên (named entity type) là loại của một thực thể như người

(Person), tổ chức (Organization), địa điểm (Place), v.v [5], [6], [21] Bảng 2.1

mô tả một vài ví dụ về các loại thực thể khác nhau Theo đó, các thực thể có tên như Donal Trump, Đại học Quốc gia Hà Nội là các thực thể có tên và kiểu tương ứng của chúng Trong khi đó, Trường đại học, Thành phố không phải một thực thể duy nhất mà chỉ một lớp đối tượng, và vì thế không có kiểu tương ứng

Bảng 2.1: Một vài ví dụ về thực thể có tên

Đại học Quốc gia Hà Nội ü Organization

Trang 19

2.2 Các hệ thống kiểu thực thể

Khái niệm về kiểu của thực thể và số lượng kiểu phụ thuộc vào từng bài toán, từng lĩnh vực khác nhau Trong khi những nghiên cứu chung [3], [5] chỉ quan tâm đến một vài loại thực thể (số lượng thường không quá 10 loại), một số nghiên cứu đặc thù cần quan tâm sâu hơn tới kiểu của thực thể, ví dụ:

• hệ tri thức[10], [18] cần biết một thực thể chỉ người là một người thật

(Person) hay một nhân vật hư cấu (Character);

• ứng dụng bản đồ9 cần biết một thực thể chỉ địa điểm là một tòa nhà

(Building) hay một ngọn núi (Mountain), v.v

Trong bài toán xây dựng hệ tri thức, ngoài các kiểu chung, thì cần có các hệ thống kiểu chi tiết, trong đó các kiểu như Person, Organization, v.v được chia nhỏ thành các kiểu chi tiết Sau đây, luận văn sẽ giới thiệu một số hệ thống kiểu chi tiết phổ biến

2.2.1 Các hệ thống kiểu chi tiết cho Tiếng Anh

Các hệ thống kiểu chi tiết (fine-grained type system) được sử dụng rộng rãi trong

các hệ tri thức như Dbpedia [2], Wikidata [20], Yago [18], v.v Gần đây, nhiều công cụ nhận dạng thực thể có tên mới cho tiếng Anh cũng áp dụng các hệ thống kiểu chi tiết này [4], [9], [17] Bảng 2.2 chứa hơn 100 kiểu của thực thể được sử dụng trong hệ thống nhận dạng tên riêng FIGER [9], ví dụ: kiểu Person chứa các kiểu:

• Actor: chỉ diễn viên;

• Athlete: chỉ vận động viên;

• Musician: chỉ nhạc sĩ, v.v

Hình 2.4 mô tả phân cấp của hệ thống kiểu trong hệ tri thức Dbpedia Theo đó, kiểu Person được chia nhỏ thành các cấp thấp chi tiết hơn như Artist, Engineer, Athlete, Farmer, Scientist Tiếp tục, các kiểu này lại được chia nhỏ hơn nữa, ví dụ Artist được chia thành Dancer, Actor và Comedian

9 https://www.google.com/maps

Trang 20

Hình 2.4 Kiến trúc của hệ thống kiểu trong hệ tri thức Dbpedia

Bảng 2.2: Các kiểu được sử dụng trong hệ thống FIGER [9]

Trang 21

ít nhất 5,000 bản ghi trên phiên bản Wikipedia tiếng Việt được thống kê vào ngày 10/01/2019 Đồng thời, hệ thống kiểu NERD-TS cũng được chia nhỏ thành khoảng 100 kiểu chi tiết, bao gồm:

• Person: thực thể chỉ người trong thế giới thực như

o danh nhân văn hóa: Nguyễn Trãi, Nguyễn Du, Hồ Chí Minh, v.v.;

o chính trị gia: Nguyễn Phú Trọng, Nguyễn Xuân Phúc, v.v.;

o cầu thủ bóng đá: Đoàn Văn Hậu, Nguyễn Quang Hải (sinh 1997), v.v.;

o và nhiều thực thể khác: Chi Pu, Nguyễn Lê Việt Anh, v.v

• Organization: thực thể chỉ tổ chức như

o trường đại học: Đại học Quốc gia Hà Nội, Đại học Bách Khoa, v.v.;

o công ty: Công ty FPT, Tập đoàn Viettel, v.v.;

o và nhiều thực thể khác: Đội tuyển bóng đá quốc gia Việt Nam, Quân đội nhân dân Việt Nam, v.v

• Place: thực thể chỉ địa điểm như

o địa điểm tự nhiên: Hang Sơn Đoòng, Hồ Tây, v.v.;

o địa điểm nhân tạo: Sân bay quốc tế Nội Bài, Cung thể thao Quần

Ngựa, v.v.;

o và nhiều thực thể khác: Việt Nam, Hà Nội, v.v

• Event: thực thể chỉ sự kiện như

o chiến tranh: Chiến tranh Việt Nam, Chiến tranh Iraq, v.v.;

o sự kiện thể thao: Giải vô địch bóng đá thế giới 2018, Thế vận hội

2020, v.v.;

10 https://www.nerd.vn/

11 https://en.wikipedia.org/wiki/Wikipedia:List_of_infoboxes

Trang 22

o và nhiều thực thể khác: Hoa hậu thế giới 2019, Hội nghị thượng đỉnh Triều Tiên – Hoa Kỳ 2019, v.v

• Creative Work: thực thể chỉ sản phẩm nghệ thuật như

o sách: Dế Mèn phiêu lưu ký, Chúa tể những chiếc nhẫn, v.v.;

o phim: Về nhà đi con, Chúa tể những chiếc nhẫn: Hiệp hội nhẫn thần,

v.v.;

o chương trình máy tính: Cốc Cốc (bộ máy tìm kiếm), Zalo, v.v.;

o tranh vẽ: Thiếu nữ bên hoa huệ, Tan ca mời chị em ra họp thi thợ

Thực thể có tên và phân loại kiểu của thực thể có tên là những khái niệm gắn liền

với bài toán nhận dạng thực thể (Named Entity Recognition) Trong lĩnh vực xử

lý ngôn ngữ tự nhiên (Natural Language Processing), bài toàn này thuộc nhóm các bài toán gán nhãn chuỗi (Sequence Labeling), nhằm xác định và phân loại

thực thể có tên từ một đoạn văn bản [3], [21] Ví dụ 2.1 thể hiện kết quả của một

công cụ nhận dạng thực thể trên câu “Thủ tướng Nguyễn Xuân Phúc thăm Đại học Quốc Gia Hà Nội” Trong đó, “Nguyễn Xuân Phúc” được nhận ra là một thực thể

chỉ người (Person), và “Đại học Quốc Gia Hà Nội” là một thực thể chỉ tổ chức (Organization)

Ví dụ 2.1 Nhận dạng thực thể có tên tiếng Việt

Nhận dạng thực thể lần đầu được giới thiệu ở hội thảo MUC-6 [5], [6] Kể từ đó đến nay, bài toán này luôn giành được sự quan tâm lớn từ cộng đồng xử lý ngôn

17

o chiến tranh: Chiến tranh Việt Nam, Chiến tranh Iraq, v.v.;

o sự kiện thể thao: Giải vô địch bóng đá thế giới 2018, Thế vận hội

2020, v.v.;

o và nhiều thực thể khác: Hoa hậu thế giới 2019, Hội nghị thượng đỉnh Triều Tiên – Hoa Kỳ 2019, v.v

• Creative Work: thực thể chỉ sản phẩm nghệ thuật như

o sách: Dế Mèn phiêu lưu ký, Chúa tể những chiếc nhẫn, v.v.;

o phim: Về nhà đi con, Chúa tể những chiếc nhẫn: Hiệp hội nhẫn thần,

v.v.;

o chương trình máy tính: Cốc Cốc (bộ máy tìm kiếm), Zalo, v.v.;

o tranh vẽ: Thiếu nữ bên hoa huệ, Tan ca mời chị em ra họp thi thợ

giỏi, v.v

• Character: thực thể chỉ nhân vật hư cấu trong phim hoặc trong tiểu thuyết như Tôn Ngộ Không, John Snow, v.v

2.2.2 Điểm khác biệt với hệ thống kiểu trong bài toán NER truyền thống

Thực thể có tên và phân loại kiểu của thực thể có tên là những khái niệm gắn liền

với bài toán nhận dạng thực thể (Named Entity Recognition) Trong lĩnh vực xử

lý ngôn ngữ tự nhiên (Natural Language Processing), bài toàn này thuộc nhóm

các bài toán gán nhãn chuỗi (Sequence Labeling), nhằm xác định và phân loại

thực thể có tên từ một đoạn văn bản [3], [21] Ví dụ 1 thể hiện kết quả của một

công cụ nhận dạng thực thể trên câu “Thủ tướng Nguyễn Xuân Phúc thăm Đại học

Quốc Gia Hà Nội” Trong đó, “Nguyễn Xuân Phúc” được nhận ra là một thực thể

chỉ người (Person), và “Đại học Quốc Gia Hà Nội” là một thực thể chỉ tổ chức (Organization)

Ví dụ 1 Nhận dạng thực thể có tên tiếng Việt

Nhận dạng thực thể lần đầu được giới thiệu ở hội thảo MUC-6 [5], [6] Kể từ đó đến nay, bài toán này luôn giành được sự quan tâm lớn từ cộng đồng xử lý ngôn

Thủ tướng Nguyễn Xuân Phúc thăm Đại học Quốc Gia Hà Nội

Person Organization

Trang 23

ngữ tự nhiên trên toàn thế giới, cũng như tại Việt Nam12 Thông thường một công

cụ nhận dạng thực thể chỉ quan tâm đến một vài kiểu thực thể như người (Person),

tổ chức (Organization), địa điểm (Place)

Hình 2.5 thể hiện kết quả của công cụ nhận dạng thực thể phổ biến nhất cho tiếng Anh Stanford-NER13 [3] Theo đó, nếu cho một đoạn văn bản đầu vào, công cụ này sẽ nhận biết được các thực thể có tên, đồng thời phân loại các thực thể có tên này một vài loại phổ biến Trong ví dụ này, câu “Prime Minister Nguyen Xuan Phuc visits Vietnam National University Hanoi” được phân tích Kết quả là hai thực thể “Nguyen Xuan Phuc” và “Vietnam National University Hanoi” được ghi nhận và phân loại tương ứng là Person và Organization

Hình 2.5: Công cụ nhận dạng thực thể của Đại học Stanford

Khác với các hệ thống kiểu thực thể truyền thống được sử dụng trong bài toán nhận dạng thực thể, hệ thống kiểu NERD-TS được thiết kế hướng tới bài toán xây dựng hệ tri thức [26], [27], vì vậy có xu hướng chia nhỏ kiểu của thực thể hơn, để giúp cho các thông tin trong hệ tri thức cụ thể hơn, giúp xử lý tốt hơn cho các bài toán truy vấn thông tin Cụ thể, NERD-TS phân biệt giữa thực thể chỉ người (Person) và thực thể chỉ nhân vật hư cấu (Character) Hơn nữa, hệ thống kiểu NERD-TS còn được chia nhỏ thành hơn 100 kiểu chi tiết, giúp cho dữ liệu về kiểu được sử dụng hiệu quả hơn

12 http://vlsp.org.vn/vlsp2016/eval/ner

13 http://nlp.stanford.edu:8080/ner/

Trang 24

Trong ngữ cảnh của bài toán nhận dạng thực thể, việc phân biệt giữa kiểu Person

và Character là bất khả thi trong rất nhiều trường hợp Ví dụ, công cụ nhận dạng thực thể (NER) không thể nhận biết “Tôn Ngộ Không” trong câu “Tôn Ngộ Không bái Đường Tăng là sư phụ.” là một người thật hay một nhân vật hư cấu Tuy nhiên phân loại thực thể trên miền Wikipedia, với thông tin về hộp thông tin (infobox)

và các thông tin mô tả chi tiết về thực thể hoàn toàn có khả năng làm được điều này Hình 2.6 cho thấy từ thông tin trang Wikipedia về Tôn Ngộ Không, có rất nhiều thông tin có thể sử dụng để phân biệt được đây là một nhân vật hư cấu, như

“nhân vật chính”, “tiểu thuyết”, “thánh nhân”, “văn học”,v.v

Hình 2.6: Trang Wikipedia tiếng Việt về Tôn Ngộ Không

Việc phân biệt chi tiết kiểu của thực thể, ví dụ giữa Person và Character, giúp quá trình trích xuất thông tin lấy được những thông tin phù hợp, qua đó giúp tạo hệ tri thức chứa thông tin có ý nghĩa Ví dụ: một nhân vật hư cấu (Character) cần có thông tin về tác phẩm văn học (hoặc bộ phim) liên quan, và thông tin về người sáng tạo ra nhân vật đó

Trong khuôn khổ của luận văn, tôi chỉ sử dụng hệ thống kiểu NERD-TS với sáu kiểu thực thể phổ biến nhất (Person, Organization, Place, Event, Creative Work, Other) để phân loại các thực thể trên miền Wikipedia tiếng Việt bởi

• nguồn dữ liệu Wikipedia tiếng Việt còn rất khiêm tốn so với phiên bản tiếng Anh

• công việc gán nhãn tập dữ liệu bằng tay với số lượng lớn các kiểu của thực thể đòi hỏi thời gian dài, không phù hợp với khuôn khổ của luận văn

Trang 25

Tuy nhiên, phương pháp làm của luận văn hoàn toàn có thể mở rộng trong tương lai, với hệ thống kiểu chi tiết hơn Phương pháp luận cũng tương tự với từng kiểu phổ biến, sau đó thực hiện phân loại tiếp các thực thể trong cùng một kiểu phổ biến này thành các kiểu chi tiết hơn.

Trang 26

Chương 3

Phân loại thực thể có tên trên Wikipedia tiếng Việt

Bài toán phân loại thực thể có tên trên Wikipedia tiếng Việt để phục vụ cho xây dựng hệ tri thức là một bài toán lớn, phức tạp, phải thực hiện nhiều công đoạn

Các bước thực hiện đòi hỏi nhiều công sức và thời gian từ chuẩn bị dữ liệu và gán nhãn thủ công, tiền xử lý dữ liệu, trích chọn đặc trưng, xây dựng mô hình học máy

và thực hiện dự báo, đánh giá Trong khuôn khổ của luận văn, học viên đã sử nhiều công cụ và phương pháp học máy cũng như các thư viện sẵn có để thực hiện được bài toán đề ra, như:

• Tải dữ liệu từ Wikipedia tiếng Việt và tiền xử lý, lọc bỏ nhiễu (html, redirect pages, template pages, v.v.) bằng công cụ Wikiextrator

• Trích chọn các đặc trưng từ các trang Wikipedia bằng công cụ xử lý ngôn ngữ tự nhiên VNCoreNLP để tách từ và gán nhãn từ loại

• Sử dụng phương pháp máy véc tơ hỗ trợ (SVM) để xây dựng mô hình học máy Việc thực thi mô hình học máy này được thực hiện trên thư viện Sklearn

Trong khuôn khổ nội dung của chương này, học viên sẽ giới thiệu về các công

các công cụ và phương pháp được sử dụng trong luận văn Luận văn sẽ giới thiệu

tổng quan về các phương pháp học máy, và phân tích chi tiết hơn về phương pháp máy véc tơ hỗ trợ (Support vector machine – SVM), thư viện Sklearn Đồng thời luận văn cũng mô tả các đặc trưng sẽ sử dụng, cũng như cách biểu diễn các đặc trưng này trong bài toán và các công cụ sử dụng trong tiền xử lý dữ liệu như VNCoreNLP

3.1 Học máy

3.1.1 Tổng quan về học máy

Học máy (Machine Learning) là một tập con của trí tuệ nhân tạo (Artificial

Intelligence)14 Nói một cách đơn giản, học máy là một lĩnh vực của Khoa học

14 https://machinelearningcoban.com/2016/12/26/introduce/

Trang 27

máy tính (Computer Science), nó có khả năng tự học hỏi dựa trên dữ liệu đưa vào

mà không cần phải được lập trình cụ thể Những năm gần đây, khi mà khả năng tính toán của các máy tính được nâng lên một tầm cao mới và lượng dữ liệu khổng

lồ được thu thập bởi các hãng công nghệ lớn, Học máy đã tiến thêm một bước dài

và một lĩnh vực mới được ra đời gọi là học sâu (Deep Learning) Hình 3.1 thể

hiện mối quan hệ giữa trí tuệ nhân tạo, học máy, và học sâu

Hình 3.1: Mối quan hệ giữa AI, Machine Learning và Deep Learning 15

Học sâu đã giúp máy tính thực thi những việc tưởng chừng như không thể vào mười năm trước: phân loại cả ngàn vật thể khác nhau trong các bức ảnh, tự tạo chú thích cho ảnh, bắt chước giọng nói và chữ viết của con người, giao tiếp với con người, hay thậm chí cả sáng tác văn hay âm nhạc

15

https://blogs.nvidia.com/blog/2016/07/29/whats-difference-artificial-intelligence-machine-learning-deep-learning-ai/

Trang 28

3.1.2 Phân nhóm các thuật toán học máy dựa trên phương thức học

Theo phương thức học, các thuật toán học máy thường được chia làm bốn nhóm:

học có giám sát (Supervised Learning), học không giám sát (Unsupervised Learning), học bán giám sát (Semi-supervised Learning), và học tăng cường

(Reinforcement Learning)

Học có giám sát (Supervised Learning)

Supervised learning là thuật toán dự đoán đầu ra (outcome) của một dữ liệu mới

(new input) dựa trên các cặp (input, outcome) đã biết từ trước Cặp dữ liệu này còn được gọi là (data, label), tức (dữ liệu, nhãn) Học có giám sát là nhóm phổ

biến nhất trong các thuật toán Học máy

Một cách toán học, Học có giám sát là khi chúng ra có một tập hợp biến đầu vào 𝑋 = {𝑥/, 𝑥1, , 𝑥2} và một tập hợp nhãn tương ứng 𝑌 = {𝑦/, 𝑦1, , 𝑦2} , trong đó 𝑥6, 𝑦6 là các véc tơ Các cặp dữ liệu biết trước (𝑥6, 𝑦6) ∈ 𝑋 × 𝑌 được gọi

là tập dữ liệu huấn luyện (training data ) Từ tập dữ liệu huấn luyện này, chúng

ta cần tạo ra một hàm số ánh xạ mỗi phần tử từ tập 𝑋 sang một phần tử (xấp xỉ) tương ứng của tập 𝑌:

𝑦6 ≈ 𝑓(𝑥6), ∀ 𝑖 = 1,2, , (3.1)

Mục đích là xấp xỉ hàm số 𝑓(𝑥) thật tốt để khi có một dữ liệu 𝑥 mới, chúng ta có thể tính được nhãn tương ứng của nó y = 𝑓(𝑥)

Ví dụ 3.1: trong nhận dạng chữ viết tay, ta có ảnh của hàng nghìn ví dụ của mỗi

chữ số được viết bởi nhiều người khác nhau Chúng ta đưa các bức ảnh này vào trong một thuật toán và chỉ cho nó biết mỗi bức ảnh tương ứng với chữ số nào Sau khi thuật toán tạo ra một mô hình, tức một hàm số mà đầu vào là một bức ảnh

và đầu ra là một chữ số, khi nhận được một bức ảnh mới mà mô hình “chưa nhìn thấy bao giờ”, nó sẽ dự đoán bức ảnh đó chứa chữ số nào Ví dụ này khá giống

với cách học của con người khi còn nhỏ Ta đưa bảng chữ cái cho một đứa trẻ và chỉ cho chúng đây là chữ A, đây là chữ B Sau một vài lần được dạy thì trẻ có thể nhận biết được đâu là chữ A, đâu là chữ B trong một cuốn sách mà chúng chưa nhìn thấy bao giờ Hình 3.2 mô tả một bộ dữ liệu huấn luyện cho bài toán nhận dạng số viết tay

Ví dụ 3.2: Thuật toán dò các khuôn mặt trong một bức ảnh đã được phát triển từ

rất lâu Thời gian đầu, facebook sử dụng thuật toán này để chỉ ra các khuôn mặt

Trang 29

trong một bức ảnh và yêu cầu người dùng tag friends - tức gán nhãn cho mỗi khuôn mặt Số lượng cặp dữ liệu (khuôn mặt, tên người) càng lớn, độ chính xác ở những lần tự động tag tiếp theo sẽ càng lớn

Hình 3.2: MNIST – bộ cơ sở dữ liệu của chữ số viết tay 16

Ví dụ 3.3: Bản thân thuật toán dò tìm các khuôn mặt trong một bức ảnh cũng là

một thuật toán Học có giám sát với dữ liệu huấn luyện (training data) là hàng ngàn

cặp (ảnh, mặt người) và (ảnh, không phải mặt người) được đưa vào Chú ý là dữ liệu này chỉ phân biệt mặt người và không phải mặt người mà không phân biệt

khuôn mặt của những người khác nhau

Thuật toán supervised learning còn được tiếp tục chia nhỏ ra thành hai loại chính:

• Phân loại (Classification): Một bài toán được gọi là phân loại nếu

các nhãn (label) của dữ liệu đầu vào (input data) được chia thành một số

hữu hạn nhóm Ví dụ: Gmail xác định xem một email có phải là spam hay không; các hãng tín dụng xác định xem một khách hàng có khả năng thanh

toán nợ hay không Ba ví dụ phía trên được chia vào loại này

• Hồi quy (Regression): Nếu nhãn (label) không được chia thành các nhóm

mà là một giá trị thực cụ thể Ví dụ: một căn nhà rộng x m2, có y phòng ngủ

và cách trung tâm thành phố z km sẽ có giá là bao nhiêu?

16 http://www.rubylab.io/2015/03/18/simple-neural-network-implenentation-in-ruby

Trang 30

Bài toán phân loại thực thể trong luận văn thuộc nhóm bài toán Học có giám sát, tức là có tập dữ liệu huấn luyện đã được gán nhãn sẵn và mô hình sẽ dự báo kiểu của các dữ liệu đầu vào mới được đưa vào mô hình

Học không giám sát (Unsupervised Learning)

Trong thuật toán này, chúng ta không biết được kết quả (outcome) hay nhãn mà

chỉ có dữ liệu đầu vào Thuật toán học không giám sát sẽ dựa vào cấu trúc của dữ liệu để thực hiện một công việc nào đó, ví dụ như phân nhóm (clustering) hoặc giảm số chiều của dữ liệu (dimension reduction) để thuận tiện trong việc lưu trữ

và tính toán

Một cách toán học, Học không giám sát là khi chúng ta chỉ có dữ liệu vào X mà

không biết nhãn Y tương ứng

Những thuật toán loại này được gọi là Học không giám sát vì không giống như Học có giám sát, chúng ta không biết câu trả lời chính xác cho mỗi dữ liệu đầu vào Giống như khi ta học, không có thầy cô giáo nào chỉ cho ta biết đó là chữ A

hay chữ B Cụm không giám sát được đặt tên theo nghĩa này

Các bài toán Học không giám sát được tiếp tục chia nhỏ thành hai loại:

• Phân cụm (Clustering): Một bài toán phân nhóm toàn bộ dữ liệu X thành

các nhóm nhỏ dựa trên sự liên quan giữa các dữ liệu trong mỗi nhóm Ví dụ: phân nhóm khách hàng dựa trên hành vi mua hàng Điều này cũng giống như việc ta đưa cho một đứa trẻ rất nhiều mảnh ghép với các hình thù và màu sắc khác nhau, ví dụ tam giác, vuông, tròn với màu xanh và đỏ, sau đó yêu cầu trẻ phân chúng thành từng nhóm Mặc dù không cho trẻ biết mảnh nào tương ứng với hình nào hoặc màu nào, nhiều khả năng chúng vẫn có thể phân loại các mảnh ghép theo màu hoặc hình dạng

• Luật kết hợp (Association): Là bài toán khi chúng ta muốn khám phá ra

một quy luật dựa trên nhiều dữ liệu cho trước Ví dụ: những khách hàng nam mua quần áo thường có xu hướng mua thêm đồng hồ hoặc thắt lưng; những khán giả xem phim Spider Man thường có xu hướng xem thêm phim Bat Man, dựa vào đó tạo ra một hệ thống gợi ý khách hàng (Recommendation System), thúc đẩy nhu cầu mua sắm

Trang 31

Học bán giám sát (Semi-Supervised Learning)

Các bài toán khi chúng ta có một lượng lớn dữ liệu nhưng chỉ một phần trong chúng được gán nhãn được gọi là Học bán giám sát Những bài toán thuộc nhóm này nằm giữa hai nhóm được nêu bên trên

Một ví dụ điển hình của nhóm này là chỉ có một phần ảnh hoặc văn bản được gán nhãn (ví dụ bức ảnh về người, động vật hoặc các văn bản khoa học, chính trị) và phần lớn các bức ảnh/văn bản khác chưa được gán nhãn được thu thập từ Internet Thực tế cho thấy rất nhiều các bài toán Học máy thuộc vào nhóm này vì việc thu thập dữ liệu có nhãn tốn rất nhiều thời gian và có chi phí cao Rất nhiều loại dữ liệu thậm chí cần phải có chuyên gia mới gán nhãn được (ảnh y học chẳng hạn) Ngược lại, dữ liệu chưa có nhãn có thể được thu thập với chi phí thấp từ Internet

Học tăng cường (Reinforcement Learning)

Học tăng cường là các bài toán giúp cho một hệ thống tự động xác định hành vi dựa trên hoàn cảnh để đạt được lợi ích cao nhất (maximizing the performance)

Hiện tại, Học tăng cường chủ yếu được áp dụng vào Lý Thuyết Trò Chơi (Game

Theory), các thuật toán cần xác định nước đi tiếp theo để đạt được điểm số cao nhất

Trang 32

Hình 3.3: AlphaGo chơi cờ vây với Lee Sedol 17

Lưu ý rằng ngoài cách phân nhóm các thuật toán học máy dựa trên phương thức học, chúng ta còn có thể phân nhóm các thuật toán học máy dựa trên chức năng, hoặc lĩnh vực chúng được áp dụng như:

• nhóm các bài toán phân loại (classfication),

• nhóm các bài toán phân cụm (clustering),

• nhóm các bài toán hồi quy (regression),

• và nhiều nhóm khác

Mô hình học máy trong khuôn khổ luận văn, sử dụng mô hình học có giám sát do với một tập kiểu thực thể (nhãn) hữu hạn cho trước (Person, Organization, Place, Event, Creative Work, Character, Other) và tập dữ liệu huấn luyện được gán nhãn thủ công được sử dụng để huấn luyện mô hình học máy Sau khi thử nghiệm trên một tập nhỏ dữ liệu với các phương pháp Cây quyết định, Naive Bayes, Hồi quy logistic, máy véc tơ hỗ trợ, học viên quyết định sử dụng máy véc tơ hỗ trợ Đây cũng là phương pháp học máy đã được ứng dụng rất thành công trong các bài toán phân loại Trong tương lai, học viên dự kiến sẽ thực hiện tiếp với các phương pháp khác, thậm chí khi có đủ dữ liệu, sẽ thử nghiệm thêm với các phương pháp học sâu

Tiếp theo đây sẽ giới thiệu chi tiết thêm về thuật toán học máy được sử dụng trong luận văn cùng với các cài đặt và chiến lược phân loại được sử dụng

17 https://en.wikipedia.org/wiki/Deep_Blue_(chess_computer)

Trang 33

một mô hình học máy để phân loại cho các mẫu mới Trước tiên, mô hình SVM

biểu diễn các mẫu dữ liệu như các điểm trong không gian Sau đó, mô hình SVM nhị phân (binary classification) sẽ xây dựng mô hình phân loại dựa trên cơ sở tối

ưu hóa lề cực đại để phân tách các mẫu huấn luyện Cuối cùng, một mẫu dữ liệu

mới cũng sẽ được ánh xạ thành một điểm trong mô hình không gian này, và sẽ được phân loại dựa theo việc vị trí của điểm đó nằm ở phía nào của đường phân chia Lưu ý rằng,

• các biến thể của mô hình SVM có thể phân loại nhiều hơn hai loại nhãn (multiple classification); và

• ngoài việc thực hiện phân loại tuyến tính (linear kernel), SVM có thể thực hiện phân loại không tuyến tính (non-linear kernel)

Bài toán phân loại (classification) là một bài toán phổ biến trong học máy Giả sử

ta đã biết một số điểm, mỗi điểm thuộc về một trong hai loại nhãn Mục tiêu đặt

ra là quyết định điểm dữ liệu mới sẽ thuộc loại nhãn nào Với phương pháp máy véc-tơ hỗ trợ, điểm dữ liệu được xem dưới dạng véc-tơ N chiều Nếu có thể tách

các điểm dữ liệu bằng một siêu phẳng N-1 chiều thì đây gọi là phân loại tuyến tính Siêu phẳng tối ưu nhất được lựa chọn là siêu phẳng phân tách rõ ràng nhất giữa hai loại dữ liệu, hay tạo ra một khoảng cách lớn nhất giữa hai loại Đó chính

là siêu phẳng có khoảng cách từ nó đến điểm dữ liệu gần nhất ở mỗi bên là cực đại Nếu một siêu phẳng như vậy tồn tại, nó được gọi là siêu phẳng có biên độ tối

đa và phân loại tuyến tính mà nó xác định được gọi là phân loại lề tối đa Hình 3.4 đưa ra ví dụ về các đường phân loại18 Trong đó

• đường 𝐻/ không có khả năng phân loại,

• đường 𝐻1 phân loại hai lớp với lề nhỏ, và

• đường 𝐻C phân loại hai lớp với lề cực đại

18 https://en.wikipedia.org/wiki/Support-vector_machine

Trang 34

Cụ thể hơn, một máy vectơ hỗ trợ xây dựng một siêu phẳng hoặc một bộ siêu

phẳng trong một không gian có nhiều chiều hoặc vô hạn chiều, có thể được sử dụng để phân loại, hồi quy hoặc các tác vụ khác như phát hiện ngoại lệ, v.v Một cách trực quan, một siêu phẳng tốt cần đạt được khoảng cách lớn nhất đến điểm

dữ liệu huấn luyện gần nhất của bất kỳ lớp nào (được gọi là lề chức năng), vì khi

đó, lỗi tổng quát hóa của bộ phân loại thấp

Trong rất nhiều bài toán thực tế, để phân tách được tuyến tính, không gian hữu hạn chiều ban đầu cần được ánh xạ vào một không gian có nhiều chiều hơn, với giả định là sẽ làm cho việc phân tách dễ dàng hơn trong không gian mới Cụ thể, các ánh xạ được sử dụng bởi các lược đồ SVM được thiết kế để đảm bảo rằng các tích vô hướng của các cặp véc-tơ dữ liệu đầu vào có thể được tính toán dễ dàng theo các biến trong không gian ban đầu, bằng cách xác định chúng theo trong một hàm hạt nhân (kernel funtion) 𝑘(𝑥, 𝑦) được chọn cho phù hợp với vấn đề Các siêu phẳng trong không gian nhiều chiều hơn này được xác định là tập hợp các điểm có tích véc-tơ với một vectơ trong không gian đó là hằng số, trong đó một tập các vectơ như vậy là một tập các véc-tơ trực giao (và do đó tối thiểu) xác định một siêu phẳng

Hình 3.5 mô tả một trường hợp đơn giản trong việc sử dụng kỹ thuật hạt nhân (kernel trick) để ánh xạ dữ liệu lên một không gian nhiều chiều hơn, từ đó có thể phân tách tuyến tính dữ liệu bằng một siêu phẳng Theo đó, dữ liệu giữa hai lớp

là hoàn toàn không thể phân biệt tuyến tính trên không gian hai chiều Bằng cách

áp dụng kỹ thuật hạt nhân, biến đổi dữ liệu ban đầu từ không gian hai chiều thành

Trang 35

không gian ba chiều Ở không gian mới này, dữ liệu đã có thể phân biệt tuyến tính bằng một mặt phẳng

Hình 3.5: Sử dụng kernel trick để ánh xạ dữ liệu lên không gian nhiều chiều

hơn 19

Phương pháp SVM có thể được sử dụng để giải quyết nhiều bài toán khác nhau trong thực tế:

• Xử lý văn bản: SVM rất hữu ích trong việc phân loại văn bản (document

classification), phân tích ý định của người dùng qua câu truy vấn (intent classification), phân tích quan điểm (sentiment analysis), v.v Một số phương pháp phân tích ngữ nghĩa nông cũng dựa trên các máy vectơ hỗ trợ

• Xử lý ảnh: Trước khi các thuật toán học sâu (deep learning) được sử dụng

rộng rãi trong lĩnh vực xử lý ảnh như hiện nay, SVM cũng là một trong những phương pháp được dùng rất phổ biến các bài toàn về nhận dạng chữ viết tay, và nhận dạng ảnh, vật thể trong ảnh

• Ngoải ra, thuật toán SVM được áp dụng rộng rãi trong sinh học và các ngành khoa học khác Chúng đã được sử dụng để phân loại protein với độ chính xác lên tới 90%

3.2.2 Mô hình SVM với nhân tuyến tính

Tiếp theo, luận văn sẽ giới thiệu kỹ hơn về mô hình SVM với nhân tuyến tính [1] Cho một tập dữ liệu mẫu n điểm theo dạng:

(𝑥FFF⃑, 𝑦/ /), (𝑥FFFF⃑, 𝑦1 1), … , (𝑥FFFF⃑, 𝑦2 2)

19 https://www.hackerearth.com/blog/developers/simple-tutorial-svm-parameter-tuning-python-r/

Trang 36

Trong đó,

• 𝑦6 có giá trị là 1 hoặc −1, tương ứng với mỗi loại của 𝑥FFF⃑, I

• 𝑥FFF⃑ là một véc-tơ thực p chiều I

Chúng ta muốn tìm siêu phẳng lề cực đại, phân chia nhóm các điểm 𝑥FFF⃑ ứng với I

𝑦6 = 1 và nhóm các điểm ứng với 𝑦6 = −1 Cụ thể, siêu phẳng được xác định sao cho khoảng cách giữa siêu phẳng và điểm gần nhất của cả hai nhóm đều là cực đại

Bất kỳ siêu phẳng nào cũng có thể được viết dưới dạng tập hợp các điểm 𝑥⃑ thỏa mãn

càng tốt (Hình 3.6) Vùng giới hạn bởi hai siêu phẳng này được gọi là “lề”, và

siêu phẳng có biên cực đại là siêu phẳng nằm giữa chúng Với một bộ dữ liệu

Hình 3.6 Ví dụ về lề phân lớp cực đại 𝑤 FF⃑ 𝑥⃑ = 𝑏 20

20 https://en.wikipedia.org/wiki/Support-vector_machine

Trang 37

được bình thường hoá hoặc chuẩn hóa, các siêu phẳng này có thể được mô tả bằng các phương trình:

• 𝑤FF⃑ 𝑥⃑ − 𝑏 = 1 (những gì thuộc hoặc nằm trên ranh giới này là của loại nhãn 1), và

• 𝑤FF⃑ 𝑥⃑ − 𝑏 = −1 (những gì thuộc hoặc nằm dưới ranh giới này là của nhãn

−1)

Hay nói cách khác, ta có mệnh đề sau:

• 𝑤FF⃑ 𝑥FFF⃑ − 𝑏 ≥ 1, nếu 𝑦I 6 = 1, và

• 𝑤FF⃑ 𝑥FFF⃑ − 𝑏 ≤ −1, nếu 𝑦I 6 = −1 (3.3) Lưu ý, siêu phẳng có biên độ tối đa được xác định hoàn toàn bởi những 𝑥FFF⃑ nằm Igần nó nhất Những 𝑥FFF⃑ này được gọi là véc-tơ hỗ trợ I

Lề mềm (Soft margin)

Trong rất nhiều trường hợp thực tế, dữ liệu không thể phân tách tuyến tính, ví dụ khi một số dữ liệu huấn luyện bị gán nhãn sai Thuật toán lề mềm sẽ chọn một siêu phẳng phân tách các mẫu huấn luyện tốt nhất có thể, và đồng thời cực đại hóa khoảng cách giữa siêu phẳng với các mẫu được gán đúng nhãn Chúng ta cần cực tiểu hàm:

Q1

𝑛S max (0,1 − 𝑦6(𝑤FF⃑ 𝑥FFF⃑ − 𝑏))I

2 6W/

X + 𝜆‖𝑤FF⃑‖ 1 (3.4)

Trong đó, tham số 𝜆 xác định sự đánh đổi giữa việc tăng kích thước lề và đảm bảo rằng 𝑥FFF⃑ nằm ở phía đúng của lề I

3.2.3 Phân loại đa lớp (Multiclass classification)

Mô hình máy véc tơ hỗ trợ là mô hình hỗ trợ việc phân loại nhị phân (binary classification) Theo đó thông tin đầu vào sẽ được gán với các nhãn đầu ra thuộc một trong hai lớp được xác định trước Tuy nhiên, với bài toán phân loại thực thể, một thực thể đầu vào cần phải được phân loại thành một loại trong rất nhiều loại kiểu thực thể, có thể đến hàng trăm loại kiểu chi tiết Trong phạm vi luận văn, phải thực hiện phân loại một thực thể đầu vào thành một trong sáu kiểu Person, Organization, Place, Event, v.v Có nhiều cách để thực hiện điều này, thông qua các biến thể của phương pháp phân loại nhị phân để thực hiện các bài toán phân

Trang 38

loại đa lớp (muticlass classification) Dưới đây là ba chiến lược phổ biến nhất được sử dụng:

Chiến lược một-một (One-vs-One)

Trong chiến lược này, sẽ phải xây dựng rất nhiều bộ phân loại nhị phân cho từng cặp lớp Bộ thứ nhất phân biệt lớp 1 và lớp 2, bộ thứ hai phân biệt lớp 1 và lớp 3, v.v Khi có một dữ liệu mới vào, đưa nó vào toàn bộ các bộ phân loại nhị phân nêu trên Kết quả cuối cùng có thể được xác định bằng cách xem lớp nào mà điểm

dữ liệu đó được phân vào nhiều nhất (major voting) 21

Như vậy, nếu có n lớp thì tổng số mô hình phân loại nhị phân phải xây dựng là n*(n−1)/2 Đây là một con số lớn, cách làm này không lợi về tính toán với các bài toán có số lượng lớp lớn

Chiến lược một-tất cả (One-vs-the-rest hay One-vs-all)

Trong chiến lược này, được thực hiện bằng cách phân loại cho từng lớp theo thứ

tự lần lượt Với mỗi một lớp, sẽ có một mô hình được xây dựng riêng để thực hiện phân loại cho lớp đó với tất cả các lớp còn lại Nếu có n lớp thì chỉ cần xây dựng

n bộ phân loại nhị phân Bộ phân loại thứ nhất giúp phân biệt lớp 1 và không phải lớp 1, tức xem một điểm có thuộc lớp 1 hay không, hoặc xác suất để một điểm rơi vào lớp 1 là bao nhiêu Tương tự như thế, bộ phân loại thứ hai sẽ phân biệt lớp

2 không phải lớp 2, v.v Kết quả cuối cùng có thể được xác định bằng cách xác định lớp mà một điểm rơi vào với xác suất cao nhất

Phương pháp này còn được gọi là one-hot coding (được sử dụng nhiều nên có rất

nhiều tên) vì với cách mã hóa trên, giả sử có lớp thì các lớp 1, 2, 3, 4 sẽ lần lượt được mã hóa dưới dạng nhị phân bởi 1000, 0100, 0010 hoặc 0001 One-hot vì chỉ

Trang 39

Các làm như một-một (one-vs-one) sẽ mất rất nhiều thời gian huấn luyện vì có

quá nhiều mô hình phân lớp cần được xây dựng Một cách khác giúp tiết kiệm số

mô hình phân lớp hơn đó là phân tầng Ý tưởng của chiến lược này là gom các lớp thành một số ít nhóm hơn, từ đó xây dựng các bộ phân loại các nhóm này với nhau Tiếp theo đó, xây dựng các bộ phân loại để phân biệt các lớp con trong một nhóm Như vậy số bộ phân loại có thể giảm đi rất nhiều so với chiến lược một-một Hạn chế lớn nhất của nó là việc nếu chỉ một phân loại cho kết quả sai thì kết quả cuối cùng chắc chắn sẽ sai

Trong luận văn học viên sử dụng chiến lược một-một để thực hiện cho bài toán

phân loại thực thể Với tổng số bảy loại nhãn (bao gồm cả Other), số mô hình máy véc tơ hỗ trợ phải xây dựng là 7*6/2 = 21 mô hình Con số này không quá lớn nên vẫn đảm bảo thực hiện được đễ dàng Tuy nhiên, trong tương lai, khi mở rộng phạm vi bài toán với lượng dữ liệu phong phú hơn và hệ thống kiểu chi tiết hơn thì việc sử dụng chiến lược nào cũng cần cân nhắc lại

3.3 Bộ công cụ Sklearn

Sklearn23 [15] (trước đây gọi là scikits.learn), một dự án của David Cournapeau tham gia Google Summer of Code, là một thư viện học máy miễn phí viết bằng ngôn ngữ lập trình Python Sklearn là một công cụ rất phổ biến để chạy thực nghiệm các thuật toán học máy với Python Sklearn cung cấp nhiều lựa chọn cho

cả các thuật toán học có giám sát và các thuật toán học không giám sát Trên hết,

Sklearn rất dễ sử dụng và được cộng đồng nghiên cứu coi như là một “bộ công

cụ học máy trong sáng nhất” Sklearn là một trong những lựa chọn tốt nhất hiện

nay để sử dụng trong bất kỳ dự án học máy nào, xuyên suốt từ giai đoạn nghiên cứu cho đến triển khai sản xuất

Sklearn được xây dựng dựa trên một số thư viện Python phổ biến Ví dụ, chúng

ta có thể truyền trực tiếp các mảng Numpy và cấu trúc dữ liệu Pandas cho các thuật toán học máy của Sklearn Cụ thể, Sklearn sử dụng các thư viện sau:

• NumPy: khi cần làm việc với ma trận;

• SciPy: khi cần tính toán khoa học và kỹ thuật;

• Matplotlib: khi cần mô phỏng dữ liệu;

23 https://scikit-learn.org/stable/modules/generated/sklearn.svm.LinearSVC.html

Ngày đăng: 19/03/2020, 17:25

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