Lý do chọn đề tài Từ lâu, mô hình chủ đề của một văn bản đã được sử dụng để kiểm tra và khám phá nội dung của một tập tài liệu văn bản dựa trên việc tìm kiếm các chủ đề tiềm ẩn nằm tron
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
NGUYỄN HỒ DUY TRI
KHAI PHÁ CHỦ ĐỀ CỦA KHO VĂN BẢN LỚN THEO TIẾP CẬN ĐỒ THỊ TRÊN NỀN TÍNH TOÁN PHÂN TÁN
LUẬN VĂN THẠC SĨ NGÀNH KHOA HỌC MÁY TÍNH
Mã số: 60 48 01 01
TP HỒ CHÍ MINH – NĂM 2018
Trang 2TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
NGUYỄN HỒ DUY TRI
KHAI PHÁ CHỦ ĐỀ CỦA KHO VĂN BẢN LỚN THEO TIẾP CẬN ĐỒ THỊ TRÊN NỀN TÍNH TOÁN PHÂN TÁN
LUẬN VĂN THẠC SĨ NGÀNH KHOA HỌC MÁY TÍNH
Mã số: 60 48 01 01
NGƯỜI HƯỚNG DẪN KHOA HỌC:
PGS TS ĐỖ PHÚC
TP HỒ CHÍ MINH – NĂM 2018
Trang 3LỜI CAM ĐOAN
Tác giả luận văn có lời cam đoan danh dự về công trình khoa học của mình, cụ thể: Tôi tên: NGUYỄN HỒ DUY TRI
Sinh ngày 10 tháng 09 năm 1991 tại tỉnh Đồng Nai
Quê quán: Quảng Nam
Hiện công tác tại: Trường Đại học Công Nghệ Thông Tin – ĐHQG TP.HCM
Là học viên khóa 9 ngành Khoa học Máy tính
Mã số học viên: CH1401037
Tôi cam đoan: “Khai phá chủ đề của kho văn bản lớn theo tiếp cận đồ thị trên nền tính toán phân tán” là công trình nghiên cứu của riêng tôi, các kết quả nghiên cứu có tính độc lập riêng, không sao chép bất kỳ tài liệu nào và chưa công bố nội dung này
ở bất kỳ đâu Các số liệu trong luận văn được sử dụng trung thực, nguồn trích dẫn có chú thích rõ ràng, minh bạch, có tính kế thừa, phát triển từ các tài liệu, tạp chí, các công trình nghiên cứu đã được công bố, các website có uy tín
Nếu phát hiện có bất kỳ sự gian lận nào tôi xin hoàn toàn chịu trách nhiệm về lời cam đoan danh dự của tôi Trường Đại học Công Nghệ Thông Tin không liên quan đến những vi phạm tác quyền, bản quyền do tôi gây ra trong quá trình thực hiện (nếu có)
TP HCM, ngày 10 tháng 02 năm 2018
Tác giả luận văn
Nguyễn Hồ Duy Tri
Trang 4MỤC LỤC
LỜI CAM ĐOAN 1
MỤC LỤC 2
DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT 5
DANH MỤC CÁC B ẢNG 6
DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ 7
MỞ ĐẦU 9
Chương 1 TỔNG QUAN 10
1.1 Lý do chọn đề tài 10
1.2 Mục tiêu, đối tượng và phạm vi nghiên cứu của luận văn 10
1.3 Nội dung và phương pháp nghiên cứu 11
1.3.1 Xây dựng kho văn bản lớn 11
1.3.2 Nghiên cứu áp dụng phương pháp biểu diễn văn bản bằng đồ thị 12
1.3.3 Nghiên cứu áp dụng phương pháp tìm đồ thị con phổ biến trên nền tính toán phân tán 12
1.3.4 Xây dựng tập đồ thị đặc trưng cho từng chủ đề văn bản, qua đó rút trích được mô hình chủ đề 12
1.4 Cấu trúc luận văn 13
Chương 2 CƠ SỞ LÝ THUYẾT 14
2.1 Mô hình hóa chủ đề 14
2.2 Biểu diễn văn bản bằng đồ thị 15
2.2.1 Giới thiệu 15
2.2.2 Tổng quan biểu diễn văn bản bằng đồ thị 15
2.2.3 Các loại mô hình đồ thị cơ bản 16
2.2.4 Đồ thị đồng hiện (Co-occurrence Graph) 19
2.3 Mô hình hóa chủ đề văn bản được biểu diễn bằng đồ thị 21
2.4 Khai phá đồ thị con phổ biến 21
2.4.1 Giới thiệu 21
2.4.2 Hướng tiếp cận 22
2.4.3 Thuật toán Graph-Based Substructure Pattern Mining – gSpan 23
2.5 Khoảng cách giữa hai đồ thị 25
2.6 Cơ sở dữ liệu đồ thị 27
Trang 52.6.1 Hệ quản trị cơ sở dữ liệu MongoDB 28
2.6.2 Hệ quản trị cơ sở dữ liệu Neo4j 29
2.6.3 Hệ quản trị cơ sở dữ liệu OrientDB 31
2.6.4 So sánh giữa hệ quản trị cơ sở dữ liệu OrientDB với MongoDB và Neo4j 32
2.7 Tổng quan về dữ liệu lớn 37
2.7.1 Khái niệm và lịch sử hình thành phát triển 37
2.7.2 Đặc điểm 38
2.8 Các nền tảng tính toán phân tán 41
2.8.1 MapReduce 41
2.8.2 Giới thiệu chung về Hadoop 42
2.8.3 Hadoop 1.0 (MRv1) 43
2.8.4 Hadoop 2.0 (MRv2, YARN - Yet Another Resource Negotiator) 45
2.8.5 Giới thiệu về Apache Spark 48
2.8.6 Các thành phần của Apache Spark 49
Chương 3 PHÂN TÍCH THIẾT KẾ HỆ THỐNG 52
3.1 Tổng quan hệ thống 52
3.2 Tiền xử lý và lưu trữ kho văn bản lớn 53
3.3 Biểu diễn văn bản sử dụng mô hình đồ thị 54
3.4 Khai phá tập đồ thị con phổ biến 56
3.5 Mô hình hóa chủ đề dựa trên việc trích xuất đồ thị đ ặc trưng 58
Chương 4 HIỆN THỰC VÀ THỬ NGHIỆM 60
4.1 Môi trường và công cụ 60
4.1.1 Hệ điều hành Ubuntu 60
4.1.2 Môi trường phát triển tích hợp Eclipse 62
4.1.3 Ngôn ngữ Scala 63
4.2 Dữ liệu sử dụng 67
4.3 Hiện thực phương pháp khai phá chủ đề đã đề xuất 68
Chương 5 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 71
5.1 Kết luận 71
5.2 Những đóng góp của đề tài 71
5.3 Khả năng ứng dụng thực tiễn 71
5.4 Hướng phát triển 72
Trang 6DANH MỤC CÔNG BỐ KHOA HỌC CỦA TÁC GIẢ 73 TÀI LIỆU THAM KHẢO 74 BÀI BÁO KHOA HỌC
QĐ THÀNH LẬP HỘI ĐỒNG CHẤM LUẬN VĂN THẠC SĨ
QĐ THAY ĐỔI THÀNH VIÊN HỘI ĐỒNG CHẤM LUẬN VĂN THẠC SĨ NHẬN XÉT LUẬN VĂN THẠC SĨ
PHIẾU YÊU CẦU CHỈNH SỬA LUẬN VĂN THẠC SĨ
BẢN GIẢI TRÌNH CHỈNH SỬA LUẬN VĂN THẠC SĨ
Trang 7DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT
STT Từ viết tắt Cụm từ gốc
1 ACID Atomicity, Consistency, Isolation, và Durability
2 CG Conceptual Graph
3 CSDL Cơ sở dữ liệu
4 DFS Depth First Search
5 FTP File Transfer Protocol
6 GPL GNU General Public License
7 gSpan Graph-Based Substructure Pattern Mining
8 HD High Definition
9 HDFS Hadoop Distributed File System
10 IDE Integrated Development Environment
11 JSON JavaScript Object Notation
12 NASA National Aeronautics and Space Administration
13 RDD Resilient Distributed Datasets
14 YARN Yet Another Resource Negotiator
Trang 8DANH MỤC CÁC BẢNG
Bảng 2.1: So sánh chức năng giữa OrientDB và MongoDB 34
Bảng 2.2: So sánh ngôn ngữ truy vấn trong OrientDB và MongoDB 36
Bảng 4.1: Mô tả các kiểu dữ liệu trong ngôn ngữ Scala 64
Bảng 4.2: Số lượng đồ thị con đ ặc trưng ứng với từng chủ đề 69
Trang 9DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ
Hình 2.1: Mô hình túi từ 15
Hình 2.2: Mô hình đồ thị khái niệm 16
Hình 2.3: Mô hình đồ thị hình sao 17
Hình 2.4: Mô hình đồ thị vô hướng sử dụng tần số xuất hiện 18
Hình 2.5: Mô hình đồ thị có hướng cạnh không gán nhãn 18
Hình 2.6: Mô hình đồ thị khoảng cách n đơn giản của câu “AAA BBB CCC DDD” .19
Hình 2.7: Mô hình đồ thị đồng hiện 20
Hình 2.8: Ví dụ về đồ thị con chung 26
Hình 2.9: Đồ thị con chung lớn nhất 26
Hình 2.10: Hệ quản trị cơ sở dữ liệu MongoDB 28
Hình 2.11: Hệ quản trị cơ sở dữ liệu Neo4j 30
Hình 2.12: Hệ quản trị cơ sở dữ liệu OrientDB 31
Hình 2.13: Bộ dữ liệu đơn giản dưới dạng JSON 32
Hình 2.14: Liên kết dữ liệu trong OrientDB 33
Hình 2.15: 05 đặc điểm của dữ liệu lớn (mô hình 5V) 40
Hình 2.16: Framework Apache Hadoop 42
Hình 2.17: Các thành phần của Hadoop 1.0 43
Hình 2.18: Quy trình MapReduce trong Hadoop 44
Hình 2.19: Cấu trúc cài đặt một cụm tính toán của Hadoop 1.0 45
Hình 2.20: Những thay đổi cơ bản của Hadoop 2.0 so với Hadoop 1.0 46
Hình 2.21: Cấu trúc cài đặt một cụm tính toán mới YARN 47
Hình 2.22: Biểu tượng của Apache Spark 48
Hình 2.23: Các thành phần của Apache Spark 50
Hình 3.1: Tổng quan hệ thống 52
Hình 3.2: Quy trình tiền xử lý tập tin văn bản 53
Hình 3.3: Cửa sổ trượt kích thước 2 được cho trượt qua văn bản để tạo thành đồ thị .54
Hình 3.4: Đồ thị đồng hiện được tạo thành từ ví dụ đã cho 55
Trang 10Hình 3.5: Quy trình biểu diễn văn bản sử dụng mô hình đồ thị 56
Hình 3.6: Mô hình phân tán của thuật toán gSpan 57
Hình 3.7: Sơ đồ các bước trích xuất đồ thị đặc trưng 59
Hình 4.1: Biểu đồ thời gian thực thi chương trình 70
Trang 11MỞ ĐẦU
Đề tài “Khai phá chủ đề của kho văn bản lớn theo tiếp cận đồ thị trên nền tính toán phân tán” được đặt ra nhằm mục tiêu tìm kiếm và đề xuất được phương pháp mới dùng để mô hình hóa chủ đề của tập văn bản mà vẫn giữ nguyên được cấu trúc của thông tin, cụ thể là trật tự của từ, điều làm ảnh hưởng rất lớn đến chủ đề của văn bản nhưng lại không được các mô hình trước đây đề cập đến
Thông qua quá trình nghiên cứu, đề tài đã khảo sát và lựa chọn các thuật toán, cũng như công cụ phù hợp như đồ thị đồng hiện (Co-occurrence Graph), thuật toán phân tán Graph-Based Substructure Pattern Mining (Distributed gSpan), hệ quản trị cơ sở
dữ liệu OrientDB, nền tảng hỗ trợ xử lý phân tán Apache Spark… để đề xuất phương pháp mô hình hóa chủ đề mới, nhằm giúp ích trong việc khai thác mô hình chủ đề về sau Trong đó, quá trình rút trích mô hình chủ đề cũng được luận văn thực hiện trên
hệ thống xử lý phân tán dữ liệu lớn nhằm phù hợp với hiện thực dữ liệu ngày nay
Trang 12Chương 1 TỔNG QUAN
Ở Chương đầu tiên, luận văn trình bày về nhu cầu thực tế của xã hội hiện nay, cũng như trong nghiên cứu khoa học dẫn đến lý do lựa chọn đề tài, bên cạnh đó là các thông tin về mục tiêu, đối tượng và phạm vi mà luận văn này nhắm đến Phần còn lại trong chương này sẽ mô tả nội dung, phương pháp nghiên cứu và cấu trúc của toàn
bộ báo cáo
1.1 Lý do chọn đề tài
Từ lâu, mô hình chủ đề của một văn bản đã được sử dụng để kiểm tra và khám phá nội dung của một tập tài liệu văn bản dựa trên việc tìm kiếm các chủ đề tiềm ẩn nằm trong văn bản đó Nhiều năm qua, đã có không ít các thuật toán phát triển dựa trên
mô hình này, chủ yếu dựa vào các hướng tiếp cận như “túi từ” và không gian vector Các hướng tiếp cận này chủ yếu thực hiện việc tìm kiếm, thống kê tần suất xuất hiện của các từ liên quan đến chủ đề của văn bản, qua đó rút trích được mô hình của một chủ đề cụ thể Tuy nhiên, với các hướng tiếp cận này cấu trúc của câu, cụ thể là thứ
tự của từ, điều làm ảnh hưởng đến nội dung ý nghĩa của văn bản lại thường bị bỏ qua Một điểm cần lưu ý nữa của hướng tiếp cận này là do dựa trên việc thống kê nên khi làm việc với các văn bản ngắn, có số lượng từ hạn chế thì độ chính xác của mô hình
sẽ không cao Do đó, thông qua nghiên cứu này, luận văn muốn đưa ra một hướng tiếp cận mới để khai phá chủ đề tìm ẩn của tập tài liệu văn bản, sao cho có thể giữ nguyên được thứ tự của các từ trong văn bản Mục tiêu của luận văn là muốn khắc phục được vấn đề thứ tự từ ảnh hưởng đến ý nghĩa và chủ đề của văn bản Ngoài ra,
mô hình đề xuất của luận văn còn có thể được ứng dụng trên tập các văn bản ngắn Bên cạnh đó, với sự bùng nổ thông tin trong thời đại ngày nay, dữ liệu được sinh ra trong một đơn vị thời gian ngày càng lớn, đòi hỏi việc xử lý tính toán phải càng nhanh
và hiệu quả mới mang lại được lợi ích thực tế cao, do đó đề tài cũng muốn cài đặt mô hình đề xuất của mình trên hệ thống xử lý phân tán dữ liệu lớn nhằm tăng tốc quá trình xử lý, cũng như tận dụng tối đa được nguồn tài nguyên xử lý đang ngày một phát triển
1.2 Mục tiêu, đối tượng và phạm vi nghiên cứu của luận văn
Mục tiêu nghiên cứu của đề tài là khai phá chủ đề của kho văn bản lớn theo tiếp cận
đồ thị trên nền tính toán phân tán Để làm được điều đó, đề tài sẽ áp dụng phương
Trang 13pháp mô hình hóa chủ đề thông qua việc biểu diễn văn bản bằng đồ thị, sử dụng thuật toán để khai phá tập đồ thị con phổ biến trên tập đồ thị biểu diễn văn bản Đồng thời,
đề tài cũng sử dụng mô hình xử lý dữ liệu lớn nhằm song song hóa giải thuật, tăng tốc độ xử lý trên tập dữ liệu với số lượng lớn
Đối tượng nghiên cứu của đề tài bao gồm: nội dung của các bài báo tin tức, cụ thể là
các chủ đề và tập từ khóa tương ứng được trình bày trong bài báo tin tức; các mô hình khai phá chủ đề ẩn dựa trên phương pháp đồ thị hóa tài liệu văn bản; các phương thức
xử lý, phân tích đồ thị biểu diễn văn bản; mô hình xử lý dữ liệu lớn…
Phạm vi nghiên cứu của đề tài là mô hình biểu diễn văn bản bằng đồ thị; mô hình tổ
chức dữ liệu tuần tự; hệ quản trị cơ sở dữ liệu hướng đồ thị; mô hình xử lý dữ liệu lớn MapReduce, Apache Spark và các thư viện hỗ trợ như MLlib, GraphX
1.3 Nội dung và phương pháp nghiên cứu
Đề tài nghiên cứu bao gồm các nội dung sau:
1.3.1 Xây dựng kho văn bản lớn
Mục tiêu: Tổ chức lưu trữ dữ liệu số lượng lớn các bài báo trên một trang tin trực
tuyến theo chủ đề cụ thể, được phân loại sẵn, một cách hợp lý để hỗ trợ tốt việc khai thác, sử dụng ở các nội dung kế tiếp
Đặc điểm: Hệ thống hỗ trợ việc lưu trữ dữ liệu phù hợp với nhu cầu của người dùng,
hỗ trợ truy vấn nhanh chóng Dữ liệu sau khi được tiền xử lý phải được tổ chức một cách hợp lý, phù hợp với yêu cầu về số lượng, cũng như đảm bảo cho việc truy xuất
và xử lý trên hệ thống phân tán
Phương pháp:
✓ Tìm hiểu ưu khuyết điểm của các hệ quản trị cơ sở dữ liệu hoặc hệ thống lưu trữ tập tin phân tán như Neo4j, MongoDB, Hadoop Distributed File System – HDFS, OrientDB Phân tích sự phù hợp trong việc lưu trữ đối với tập dữ liệu bài báo đã thu thập
✓ Tìm hiểu các phương pháp thống kê, rút gọn các từ khóa, loại bỏ stopword và
áp dụng với tập dữ liệu hiện có
✓ Lựa chọn phương án lưu trữ thích hợp và tổ chức lưu trữ tập dữ liệu sau khi tiền xử lý
Trang 14Kết quả dự kiến: Thu được tập dữ liệu bài báo với số lượng lớn, đã được tiền xử lý,
lưu trữ trên nền tảng hỗ trợ cho việc xử lý phân tán, sẵn sàng cho các bước tính toán tiếp theo
1.3.2 Nghiên cứu áp dụng phương pháp biểu diễn văn bản bằng đồ thị
Mục tiêu: Mô hình hóa tập dữ liệu bài báo đã thu thập từ trước theo tiếp cận đồ thị Đặc điểm: Tập bài báo số lượng lớn đã thu được ở bước trước cần phải được biểu
diễn bằng đồ thị, nhằm hỗ trợ việc xử lý rút trích mô hình chủ đề để tìm ra chủ đề ẩn
của bài báo
Phương pháp:
✓ Tìm hiểu và áp dụng phương pháp biểu diễn văn bản bằng đồ thị
✓ Tổ chức lưu trữ các đồ thị đã tính toán được một cách hợp lý nhằm hỗ trợ việc
xử lý, tính toán trên dữ liệu đồ thị
Kết quả dự kiến: Tập dữ liệu bài báo thu thập đã được mô hình hóa theo tiếp cận đồ
thị
1.3.3 Nghiên cứu áp dụng phương pháp tìm đồ thị con phổ biến trên nền tính toán phân tán
Mục tiêu: Áp dụng mô hình xử lý dữ liệu lớn để tăng tốc quá trình tính toán với tập
dữ liệu văn bản lớn được biểu diễn bằng đồ thị, tìm ra tập các đồ thị con phổ biến Đặc điểm: Số lượng bài báo lớn, do đó số lượng đồ thị biểu diễn là rất lớn Vì thế các
xử lý và tính toán trên tập dữ liệu này đòi hỏi phải có phương pháp cụ thể, dựa trên
mô hình tính toán song song phân tán nhằm tận dụng tối đa tài nguyên, giảm bớt thời
gian thực thi chương trình so với khi thực hiện trên máy đơn
Trang 15Mục tiêu: Rút trích được tập đồ thị mang đặc trưng riêng cho từng chủ đề, qua đó xác định được mô hình chủ đề
Đặc điểm: Qua tập đồ thị con phổ biến ứng với từng chủ đề đã được khai phá ở bước
trước, đề tài nhận thấy, không phải đồ thị con nào cũng mang tính chất riêng, không trùng lặp với đồ thị con khác, do đó không thể đặc trưng riêng biệt được cho chủ đề của nó, tránh gây nhầm lẫn với chủ đề khác Vì thế cần tìm ra được phương pháp lọc
ra được các đồ thị con riêng biệt của từng chủ đề, đủ khả năng tạo thành đặc trưng
riêng cho chủ đề đó so với các chủ đề khác
Phương pháp:
✓ Tìm hiểu phương pháp tính khoảng cách giữa hai đồ thị
✓ Áp dụng phương pháp tính khoảng cách để tìm ra tập đồ thị đặc trưng
Kết quả dự kiến: Xây dựng được tập đồ thị đặc trưng cho từng chủ đề, qua đó mô
hình hóa được chủ đề trong tập văn bản
1.4 Cấu trúc luận văn
Nội dung luận văn này được trình bày chia thành 05 chương bao gồm: Chương 1 giới thiệu tổng quan về đề tài, lý do lựa chọn đề tài, mục tiêu, đối tượng và phạm vi nghiên cứu của đề tài, nội dung nghiên cứu đã thực hiện đi kèm theo đó là phương pháp đã
sử dụng tương ứng với từng nội dung; Chương 2 – trình bày cơ sở lý thuyết về các khái niệm, định nghĩa và những mô hình, thuật toán liên quan đến vấn đề nghiên cứu; Chương 3 mô tả chi tiết những nghiên cứu, áp dụng lý thuyết, từ đó phát triển phương pháp mới, đề xuất để giải quyết vấn đề đã đặt ra; Chương 4 trình bày việc hiện thực phương pháp tiếp cận đã đặt ra ở chương 3, cài đặt hệ thống và kết quả ban đầu đạt được; Chương 5 trình bày kết luận, những điều luận văn đã đóng góp và hướng phát triển tiếp theo của đề tài này trong tương lai
Trang 16Chương 2 CƠ SỞ LÝ THUYẾT
Trong Chương 2, luận văn sẽ trình bày chi tiết cơ sở lý thuyết được sử dụng trong đề tài nghiên cứu bao gồm: mô hình hóa chủ đề; mô hình biểu diễn văn bản bằng đồ thị, trong đó mô hình đồ thị đồng hiện (Co-occurrence Graph) được đề tài chọn sử dụng; các thuật toán khai phá đồ thị con phổ biến, cụ thể về thuật toán nổi bật Graph-Based Substructure Pattern Mining (gSpan); cơ sở dữ liệu đồ thị và các hệ quản trị cơ sở dữ liệu MongoDB, Neo4j, OrientDB, so sánh giữa chúng; nền tảng tính toán phân tán, trong đó đề cập chủ yếu đến mô hình xử lý dữ liệu lớn nổi tiếng đang được nhiều người sử dụng là Map-Reduce, hai framework hỗ trợ là Apache Hadoop và Apache Spark; cuối cùng là độ đo khoảng cách giữa hai đồ thị
2.1 Mô hình hóa chủ đề
Chủ đề là một vấn đề đang được nói đến, được thảo luận, được trình bày trong một văn bản hoặc được nghiên cứu Chủ đề thường được xác định trước khi tạo lập văn bản và nó sẽ chi phối quá trình tạo ra văn bản, mà chủ yếu là ảnh hưởng đến việc chọn từ để đưa vào văn bản
Năm 1990, Deerwester cùng cộng sự trong bài báo [8] đã đề xuất mô hình chủ đề, trong đó, mô hình này cho phép kiểm tra và khai thác tập tài liệu văn bản dựa trên việc tìm kiếm và thống kê các từ có liên quan đến chủ đề trong mỗi văn bản, và khám phá ra những chủ đề tiềm ẩn khi được tạo lập trong văn bản đó Một trong những những hướng tiếp cận phổ biến nhất và tiêu chuẩn để mô hình hóa chủ đề của một văn bản là tiếp cận dựa trên “túi từ” Đây là phương pháp phù hợp để áp dụng tính toán tần số xuất hiện của từ, tuy nhiên cấu trúc và ngữ nghĩa của thông tin lại bị bỏ qua không được sử dụng để tính toán
Trang 17Hình 2.1: Mô hình túi từ
(Nguồn: Youtube) Trong nghiên cứu này, luận văn đi theo hướng tiếp cận đồ thị, dựa vào việc biểu diễn một văn bản bằng đồ thị, qua đó áp dụng các thuật toán để khai phá các đồ thị con phổ biến trong tập văn bản đã được đồ thị hóa, để từ đó mô hình hóa được chủ đề của tập văn bản
2.2 Biểu diễn văn bản bằng đồ thị
2.2.2 Tổng quan biểu diễn văn bản bằng đồ thị
Trong một khảo sát có hệ thống của S S Sonawane và P A Kulkarni [17] về văn bản được biểu diễn bằng đồ thị, một cách tổng quan, đỉnh của đồ thị thường được dùng để biểu diễn năm loại sau: thuật ngữ, câu, đoạn văn, văn bản hoặc khái niệm
Trang 18Cạnh của đồ thị biểu diễn mối quan hệ giữa các đỉnh sẽ thay đổi tùy theo những ngữ cảnh khác nhau, dựa theo đỉnh sẽ biểu diễn loại nào mà cạnh sẽ có những loại cơ bản như sau: từ xuất hiện cùng nhau trong một câu hoặc một đoạn văn hoặc một phần hoặc một văn bản, từ phổ biến trong một câu hoặc một đoạn văn hoặc một phần hoặc một văn bản, cụm từ đồng hiện, từ có quan hệ ngữ nghĩa (từ có cùng nghĩa, từ đánh vần giống nhau nhưng khác nghĩa hay những từ có nghĩa trái ngược nhau) Từ đó có được nhiều phương pháp xây dựng đồ thị khác nhau có cùng mục đích biểu diễn tài liệu văn bản như: đồ thị đồng hiện, đồ thị đồng hiện dựa trên nhãn từ loại, đồ thị ngữ nghĩa, đồ thị khái niệm, đồ thị từ khóa theo thứ bậc…
2.2.3 Các loại mô hình đồ thị cơ bản
2.2.3.1 Mô hình đồ thị khái niệm (Conceptual Graphs - CGs)
Mô hình đồ thị khái niệm được John F Sowa trình bày lần đầu tiên vào năm 1976 [18], mô hình này sử dụng mạng ngữ nghĩa để biểu diễn văn bản thành đồ thị Mỗi từ trong văn bản là một khái niệm và được biểu diễn bằng đỉnh hình vuông Đỉnh hình oval thể hiện mối quan hệ giữa các khái niệm Các đỉnh hình vuông được nối với nhau dựa trên mối quan hệ trong mạng ngữ nghĩa và qua trung gian là đỉnh hình oval Trong công trình [12], các đồ thị khái niệm được sử dụng để mô tả mối quan hệ ngữ nghĩa giữa các khái niệm trong hệ thống dạy học Trong bài báo của Pattabhi R K Rao và Sobha Lalitha Devi [15], các tác giả sử dụng đồ thị khái niệm để tạo ra một mạng ngữ nghĩa giữa tất cả các câu trong các bằng sáng chế để cho việc khai thác khái niệm và tóm tắt Ưu điểm của CGs là mô hình hoá văn bản một cách trực quan, chính xác và logic Điểm hạn chế của CGs là khá phức tạp, đòi hỏi phân tích ngữ nghĩa sâu, chuyên biệt và phải phụ thuộc vào lĩnh vực
Ví dụ: Đồ thị khái niệm đối với câu “Elsie the cat is sitting on a mat” sẽ là:
Hình 2.2: Mô hình đồ thị khái niệm
(Nguồn: Wikipedia)
Trang 192.2.3.2 Mô hình đồ thị hình sao
Đỉnh trung tâm của đồ thị hình sao là đỉnh khái quát cấu trúc của văn bản Ngoài đỉnh trung tâm, các đỉnh còn lại biểu diễn từ trong văn bản Đỉnh thuộc phần nào trong văn bản sẽ có cạnh nối từ đỉnh đó đến đỉnh trung tâm Cạnh nối giữa các đỉnh được gán nhãn, thể hiện mối quan hệ giữa các đỉnh Khi chúng ta mô hình hoá một văn bản thì nhãn của cạnh có thể là: “tiêu đề”, “chứa”… Ưu điểm của đồ thị hình sao là nắm bắt được các thông tin cấu trúc của văn bản (phần tiêu đề, phần nội dung), mối quan hệ giữa từ với các phần cấu trúc (đồng hiện của từ trong các phần tiêu đề, nội dung )
Hình 2.3: Mô hình đồ thị hình sao [1]
2.2.3.3 Mô hình đồ thị vô hướng sử dụng tần số xuất hiện
Đồ thị vô hướng sử dụng tần số xuất hiện [19] có đỉnh và cạnh đều được gán nhãn Trong đó, nhãn đỉnh là tần số xuất hiện của từ trong văn bản Cạnh được nối giữa hai đỉnh nếu hai từ xuất hiện chung trong tập hợp (câu hoặc nhóm từ hoặc trang) và có tần số xuất hiện chung lớn hơn ngưỡng cho phép Nhãn cạnh là tần số xuất hiện chung của hai từ trong tập hợp Ưu điểm của mô hình đồ thị vô hướng sử dụng tần số xuất hiện là khai thác được mối quan hệ giữa từ với từ trong cấu trúc văn bản, cũng như tần số xuất hiện của từ và hỗ trợ cho quá trình tìm kiếm thông tin nhanh chóng
Trang 20Hình 2.4: Mô hình đồ thị vô hướng sử dụng tần số xuất hiện
2.2.3.4 Mô hình đồ thị có hướng cạnh không gán nhãn
Mô hình này còn được gọi là mô hình đồ thị đơn giản [16] Mỗi đỉnh biểu diễn một
từ riêng biệt và chỉ xuất hiện một lần trên đồ thị (ngay cả khi từ đó xuất hiện nhiều lần trong văn bản) Nhãn đỉnh là duy nhất và là tên của từ Sau bước tiền xử lý văn bản, nếu từ “a” đứng ngay trước từ “b” sẽ có cạnh nối từ đỉnh “a” đến đỉnh “b” (không
kể các trường hợp phân cách bởi dấu câu) Điểm mạnh của mô hình là lưu trữ được các thông tin cấu trúc như thứ tự xuất hiện, vị trí của từ trong văn bản và làm tăng hiệu quả của bài toán phân lớp cũng như gom cụm văn bản
Hình 2.5: Mô hình đồ thị có hướng cạnh không gán nhãn [16]
Điện thoại di động
0.7
Vi xử lý 0.4
Bộ nhớ 0.5
Màn hình 0.8
0.4 0.6
Trang 212.2.3.5 Mô hình đồ thị có hướng, cạnh không gán nhãn, cạnh là khoảng cách n giữa
hai từ trong văn bản (mô hình khoảng cách n đơn giản)
Trong cách biểu diễn này, người dùng cung cấp tham số n Thay vì chỉ quan tâm từ
“A” trực tiếp ngay trước từ “B”, ta còn chú ý đến n từ đứng trước từ “B” Cạnh được xây dựng giữa hai từ khi giữa chúng có số từ xuất hiện nhiều nhất là (n-1) từ (ngoại trừ trường hợp các từ được phân cách bởi các dấu câu) Ưu điểm của mô hình là tận dụng được mối quan hệ giữa các từ, vùng lân cận của từ trong câu và có thể áp dụng vào bài toán phân lớp văn bản [1]
Hình 2.6: Mô hình đồ thị khoảng cách n đơn giản của câu “AAA BBB CCC DDD”
[16]
2.2.4 Đồ thị đồng hiện (Co-occurrence Graph)
Đồ thị đồng hiện là đồ thị được xây dựng dựa trên sự đồng hiện của các từ hoặc câu trong một văn bản Có nhiều cách để xây dựng đồ thị đồng hiện, trong đó tiêu biểu là cách của S Hassan và đồng sự [9] giới thiệu vào năm 2007 Với mỗi từ trong văn bản
sẽ là một đỉnh của đồ thị và một cạnh vô hướng sẽ được thêm vào giữa hai đỉnh nếu hai từ cùng xuất hiện trong một kích thước khung nhất định
Đoạn văn bản “In an effort to help tackle the stigma surrounding HIV and AIDS, the Queen's grandson, Prince Harry, has been tested for HIV He wants to encourage more peo-ple to come forward to find out if they have the virus and his goal is to raise aware-ness about HIV and AIDS He confessed he had been a bit nervous before having the simple procedure done.” (trích “BBC Learning English”, Oct 7th, 2016)
sẽ được đồ thị hóa thành đồ thị đồng hiện sau đây theo kích thước khung là 2:
Trang 22Hình 2.7: Mô hình đồ thị đồng hiện
Bên cạnh đó, năm 2011, trong bài báo [3], H Balinsky và đồng sự đã đưa ra hướng tiếp cận xây dựng đồ thị đồng hiện với đỉnh là các câu Và các câu này sẽ được nối với nhau tạo thành các cạnh nếu hai câu đó nằm gần nhau trong văn bản hoặc chúng
có cùng ít nhất là một từ khóa chung
Ngoài ra còn có rất nhiều công trình nghiên cứu khác sử dụng đồ thị đồng hiện, trong
đó, có nhiều phương pháp tiếp cận xây dựng cạnh của đồ thị để biểu diễn sự đồng hiện giữa các đỉnh phải kể đến như sử dụng quan hệ cú pháp giữa hai từ [6], sử dụng phương pháp thống kê để xác định tần suất của từ [4], hay sử dụng chiều dài tối thiểu của một câu để làm đơn vị đo cho thông tin đồng hiện của từ thay vì sử dụng toàn bộ đoạn văn làm đơn vị, điều này tránh cho việc mở rộng đồ thị lại làm mất thông tin giữa các từ [21]
Trong khuôn khổ của nghiên cứu này, luận văn sử dụng hướng tiếp cận xây dựng đồ thị biểu diễn văn bản bằng sự đồng hiện của từ trong một kích thước khung nhất định,
mà ở đây sẽ lựa chọn kích thước khung là 2 Điều này sẽ giúp đồ thị thể hiện được quan hệ của mỗi từ đối với từ ngữ đứng ngay cạnh nó Và đồ thị mà đề tài muốn xây dựng sẽ là đồ thị có hướng, với hướng của cạnh sẽ thể hiện được trật tự xuất hiện của
từ trong văn bản Cụ thể, hướng của cạnh sẽ trỏ từ từ ngữ đứng trước đến từ ngữ đứng
Trang 23sau trong văn bản Thông qua việc giữ gìn được trật tự xuất hiện của từ trong văn bản, luận văn hy vọng sẽ giúp cho việc phân biệt văn bản đã được đồ thị hóa theo ý nghĩa được rõ ràng và chính xác hơn
2.3 Mô hình hóa chủ đề văn bản được biểu diễn bằng đồ thị
Qua đồ thị biểu diễn văn bản thu được, bài toán đặt ra là làm sao để áp dụng các giải thuật phân lớp để phân lớp văn bản từ đó tìm ra chủ đề văn bản đã mô hình hóa Năm
2009, nhóm tác giả bài báo [1] đã sử dụng thuật toán gSpan để tìm ra các đồ thị con phổ biến Từ tập các đồ thị con phổ biến của tất cả các chủ đề, nhóm tác giả đã xây dựng vector nhị phân đặc trưng cho từng chủ đề Đồ thị biểu diễn văn bản cần phân lớp lúc này sẽ được chuyển hóa thành vector nhị phân có số chiều bằng với số chiều của tập đồ thị con phổ biến của tất cả các chủ đề Sau đó, nhóm tác giả sử dụng phương pháp so khớp với độ đo Dice để tính khoảng cách giữa vector nhị phân từ đồ thị biểu diễn văn bản với vector nhị phân đặc trưng cho từng chủ đề để tìm được chủ
đề của văn bản
Trong một hướng tiếp cận khác, năm 2011, J Wu và cộng sự [21] đã đề xuất phương pháp cực đại hóa đồ thị con chung để tìm ra các văn bản tương tự nhau được biểu diễn bởi đồ thị trọng số có hướng Hướng tiếp cận này tính toán độ tương đồng của hai đồ thị bằng việc đánh giá sự đóng góp của các đỉnh chung, các cạnh chung cũng như trọng số của chúng
2.4 Khai phá đồ thị con phổ biến
2.4.1 Giới thiệu
Khai phá đồ thị con phổ biến là một phần trong việc khai phá đồ thị mà nó rất thường được sử dụng cho các mục đích phân lớp đồ thị, xây dựng chỉ mục và gom cụm đồ thị Khai phá đồ thị con phổ biến được đề cập đến từ nhiều quan điểm và góc nhìn trong những hướng khác nhau dựa trên những miền kỳ vọng khác nhau Trong những năm gần đây, khi nhiều nhà khoa học nghiên cứu các thuật toán và công cụ để chuyển đổi dữ liệu thành những thông tin hữu ích, khai phá đồ thị con phổ biến trở thành một trong những kỹ thuật chính khi những dữ liệu đó được biểu diễn dưới dạng đồ thị [14] Bài toán nhận dạng đồ thị, đồ thị con phổ biến trong cơ sở dữ liệu đồ thị hoặc trong một đồ thị đơn lớn là một phần của khai phá đồ thị con phổ biến, được sử dụng trong phân lớp, gom cụm đồ thị và xây dựng chỉ mục
Trang 24Cho đồ thị được gán nhãn 𝐺, đại diện bởi bốn tập 𝐺 = (𝑉, 𝐸, 𝐿, 𝑙), trong đó: 𝑉 là tập các đỉnh của đồ thị, 𝐸 ⊆ 𝑉 × 𝑉 là tập các cạnh của đồ thị, 𝐿 là tập các nhãn đỉnh và cạnh, 𝑙: 𝑉 ∪ 𝐸 → 𝐿 là hàm gán nhãn cho đỉnh và cạnh của đồ thị Khi đó, một đẳng cấu giữa hai đồ thị 𝐺 và 𝐺′ là một hàm song ánh 𝑓: 𝑉(𝐺) → 𝑉(𝐺′), sao cho:
𝑔 trong 𝔾𝕊 Khi đó, khai phá đồ thị con phổ biến là tìm tất cả các đồ thị 𝑔, sao cho 𝜎(𝑔, 𝔾𝕊) lớn hơn hoặc bằng một ngưỡng hỗ trợ tối thiểu cho trước [22]
Trong quá trình tìm kiếm, khi kích thước đồ thị con giảm mạnh, kích thước mẫu đồ thị sẽ tăng theo cấp số nhân Điều này có thể gây ra một số vấn đề nghiêm trọng như việc nhận dạng đồ thị con phổ biến có thể tốn nhiều thời gian hơn, gây cản trở tác vụ nhận dạng đồ thị… Lưu ý rằng, việc tìm kiếm đồ thị con phổ biến trong đồ thị trực tiếp dẫn đến bài toán liệt kê đồ thị con trong đồ thị đã cho, đó là một bài toán rất phức tạp
2.4.2 Hướng tiếp cận
Cho đến nay, có khá nhiều các thuật toán được đề xuất cho việc khai phá các đồ thị con phổ biến từ một đồ thị Đồ thị con là một đồ thị thu được từ đồ thị ban đầu bằng cách loại bỏ một số đỉnh và một số cạnh Đồ thị con phổ biến là đồ thị con có số lần xuất hiện trong một đồ thị lớn hơn một ngưỡng cho trước Hầu hết các thuật toán tìm
đồ thị con phổ biến đều phải đối mặt với hai thách thức về tính toán: (1) đồ thị con đẳng cấu: xác định một đồ thị con của một đồ thị xuất hiện trong các đồ thị khác; (2) liệt kê một cách hiệu quả tất cả các đồ thị con phổ biến: vì số lượng các đồ thị con sẽ tăng lên theo kích thước của chính nó và kích thước của đồ thị, do vậy để làm việc được với các đồ thị lớn và có cấu trúc phức tạp cần phải có các thuật toán khai phá mẫu phổ biến hiệu quả Là một trong những bước đầu tiên của khai phá đồ thị con
Trang 25phổ biến, tập các ứng viên đồ thị con được tạo ra một cách hệ thống Có nhiều phương pháp để tạo tập ứng viên này như ghép khôn ngoan, mở rộng đầu mút bên phải, mở rộng và ghép, cây ghép trái và phải, lớp tương đương mở rộng…
Có hai hướng tiếp cận có thể tìm ra đồ thị con phổ biến trong đồ thị hay cơ sở dữ liệu cho trước là: hướng tiếp cận dựa trên Apriori và hướng tiếp cận phát triển mẫu [10] Hướng tiếp cận dựa trên Apriori tương tự việc khai phá tập phổ biến và đệ quy nó Một vài thuật toán khai phá đồ thị con phổ biến dựa trên Apriori là: AGM, FSG, Edge disjoint path-join… AGM được đưa ra bởi Inokuchi và đồng sự, FSG được đưa ra bởi Kuramochi và đồng sự Các thuật toán này đều dựa trên các đồ thị con phổ biến hiện có, rồi “sinh” ra các ứng viên tiếp theo bằng cách thêm cạnh hoặc đỉnh mới Tại thời điểm xuất phát, thuật toán coi đồ thị con chỉ có một đỉnh hoặc một cạnh Điểm khác nhau giữa các thuật toán này là phương thức “sinh” ra các ứng viên mới từ các
đồ thị con phổ biến hiện thời Trong khi AGM sử dụng phương thức tạo ứng viên dựa trên các đỉnh và gia tăng kích thước của đồ thị con bằng cách thêm 1 đỉnh mới FSG lựa chọn chiến lược tạo ứng viên dựa trên các cạnh để gia tăng kích thước của đồ thị con bằng cách thêm mới một cạnh
Hướng tiếp cận phát triển mẫu bao gồm những thuật toán sau: SPIN, Mofa, gSpan, FFSM và Gaston… Các thuật toán này đều tìm các đồ thị con liên thông phổ biến trong đồ thị nhưng khác nhau ở cách sinh ra các đồ thị con ứng viên Trong gSpan, một đồ thị con phổ biến G được sử dụng để sinh ra các đồ thị con ứng viên G′ bằng cách chọn một đỉnh v thuộc G và thêm vào cạnh (v, w), trong đó w thuộc G hoặc không thuộc G Ngược lại, thuật toán Mofa không sinh ra các ứng viên mà thay vào
đó là lưu giữ tất cả các đẳng cấu có thể có của đồ thị con phổ biến hiện thời
2.4.3 Thuật toán Graph-Based Substructure Pattern Mining – gSpan
Thuật toán Graph-Based Substructure Pattern Mining viết tắt là gSpan, được giới thiệu bởi X.Yan và J.Han vào năm 2002 [22] Thuật toán dựa trên tiếp cận phát triển mẫu, sử dụng chiến lược tìm kiếm theo chiều sâu (Depth-first search) để duyệt qua các đồ thị, tìm kiếm các đồ thị con ứng viên và kiểm tra đồ thị con phổ biến Từ khi được công bố, đã có rất nhiều các công trình khoa học sử dụng thuật toán này hay các thuật toán kế thừa để khai phá đồ thị con phổ biến trong tập đồ thị cho trước
Trang 26Ký hiệu DFS: khi duyệt qua đồ thị bằng chiến lược tìm kiếm theo chiều sâu, có thể
xây dựng thành cây tìm kiếm theo chiều sâu (DFS tree) Một đồ thị có thể có một vài cây tìm kiếm theo chiều sâu khác nhau Thuật toán tìm kiếm sẽ duyệt qua các đỉnh theo thứ tự tuyến tính Do đó, thuật toán gSpan sử dụng ký hiệu để gán nhãn cho thứ
tự này dựa trên thời gian tìm kiếm đến đỉnh đó Nếu 𝑖 < 𝑗 nghĩa là đỉnh 𝑣𝑖 được tìm thấy trước đỉnh 𝑣𝑗 Đỉnh 𝑣0 là nút gốc của cây, đỉnh 𝑣𝑛 −1 là đỉnh phải nhất (rightmost vertex), đường thẳng từ đỉnh 𝑣0 đến 𝑣𝑛−1 được gọi là đường phải nhất (rightmost path)
Thứ tự từ điển DFS (DFS Lexicographic Order): thuật toán gSpan đề xuất một
phương pháp sắp xếp các mã tìm kiếm (DFS Code) để xây dựng cây tìm kiếm (DFS Code Tree), từ đó tìm ra được mã tìm kiếm nhỏ nhất Để xác định được đồ thị nào đẳng cấu với nhau, việc cần làm là tìm ra mã tìm kiếm nhỏ nhất của hai đồ thị và so sánh chúng với nhau Nếu hai mã tìm kiếm bằng nhau, thì hai đồ thị đó là hai đồ thị đẳng cấu [22]
Dưới đây là mã giả của thuật toán gSpan
Thuật toán 2.1 Graph-Based Substructure Pattern Mining – gSpan
Đầu vào: tập tất cả các đồ thị cần khai phá đồ thị con phổ biến
Đầu ra: tập đồ thị con phổ biến của tập đồ thị đầu vào
S1 ← tất cả đồ thị 1-cạnh phổ biến trong GS;
sắp xếp S1 theo thứ tự từ điển DFS;
S ← S1
foreach cạnh e ∈ S1 do
khởi tạo s với e, gán s.GS = {g|∀g ∈ GS, e ∈
E(g)}; //(chỉ ghi nhận số chỉ của đồ thị) Subgraph_Mining(GS, S, s);
Trang 27từ điển DFS Tiếp theo, trong bước 2, dòng 11 đến dòng 13, với mỗi đồ thị 1-cạnh, hàm Subgraph_Mining sẽ tạo và kiểm tra các ứng viên từ đồ thị đó, theo chiến lược tìm kiếm theo chiều sâu, hàm sẽ lần lượt kiểm tra tất cả các ứng viên Bước 3, dòng
14, thuật toán sẽ loại bỏ đồ thị 1-cạnh đã được tính toán khỏi tất cả các đồ thị trong tập đồ thị ban đầu Bước 4, dòng 10 và dòng 15, là điều kiện dừng của thuật toán, khi tất cả các đồ thị 1-cạnh đều đã được kiểm tra hoặc là tập đồ thị không còn đủ số lượng
để vượt ngưỡng độ hỗ trợ nhỏ nhất đã cho
Mặc dù không phải là thuật toán có thời gian thực thi nhanh nhất, gSpan vẫn được sử dụng rộng rãi trong nghiên cứu bởi vì ưu điểm trong việc sử dụng tài nguyên của nó Trong suốt quá trình tìm kiếm, thuật toán này sẽ loại bỏ các ứng viên từ các nhánh tìm kiếm không thích hợp của cây mã DFS, để làm giảm một cách rất hiệu quả không gian tìm kiếm, tránh việc bùng nổ số lượng ứng viên, qua đó làm giảm đáng kể thời gian thực thi của chương trình
2.5 Khoảng cách giữa hai đồ thị
2.5.1 Phương pháp tính khoảng cách
Sau khi tìm được tập đồ thị con phổ biến của từng chủ đề, vấn đề tiếp theo là làm sao
để xác định được những đồ thị nào đặc trưng cho một chủ đề riêng biệt mà không gây nhầm lẫn với những chủ đề khác Luận văn đề xuất sử dụng độ đo khoảng cách giữa hai đồ thị của tác giả H Bunke [5] đưa ra vào năm 1997, qua đó tính được độ tương đồng giữa hai đồ thị Sau khi loại bỏ những đồ thị tương đồng nhau, sẽ còn lại tập đồ thị đặc trưng cho từng chủ đề
Trang 28Cho hai đồ thị 𝐺1 và 𝐺2, khoảng cách giữa hai đồ thị 𝐺1 và 𝐺2 ký hiệu là 𝑑(𝐺1, 𝐺2),
sẽ được tính bằng công thức sau:
𝑑(𝐺1, 𝐺2) = 1 − |𝑚𝑐𝑠(𝐺1, 𝐺2)|
max (|𝐺1|, |𝐺2|)Trong đó 𝑚𝑐𝑠(𝐺1, 𝐺2)là đồ thị con chung lớn nhất (maximal common subgraph) của hai đồ thị 𝐺1 và 𝐺2, |𝐺| là kích thước của đồ thị, được tính bằng tổng số lượng cạnh
và đỉnh của đồ thị
2.5.2 Vấn đề tìm đồ thị con chung lớn nhất
Một đồ thị được gọi là đồ thị con chung của của hai đồ thị cho trước nếu nó là đồ thị con đẳng cấu với cả hai đồ thị đó Đồ thị con chung 𝐺 của 𝐺1 và 𝐺2 là lớn nhất nếu không có một đồ thị con chung 𝐺′ nào của 𝐺1 và 𝐺2 có số đỉnh và cạnh lớn hơn so với 𝐺
a) b)
Hình 2.8: Ví dụ về đồ thị con chung
Hình 2.9: Đồ thị con chung lớn nhất
Trong hình 2.8a và 2.8b, để tính khoảng cách giữa hai đồ thị này, cần xác định được
đồ thị con chung lớn nhất Đồ thị trong hình 2.9 là đồ thị con chung lớn nhất vì nó có tổng số cạnh và đỉnh là lớn nhất trong số các đồ thị con chung Kích thước của đồ thị
Trang 29con trong hình 2.9 là 5 Do đó, khoảng cách giữa hai đồ thị trong hình 2.8a và 2.8b
sẽ là:
𝑑(𝐺1, 𝐺2) = 1 − |𝑚𝑐𝑠(𝐺1, 𝐺2)|
max(|𝐺1|, |𝐺2|)= 1 −
5max (9, 9)= 1 −
5
9 ≈ 0,444
Để tìm được đồ thị con chung lớn nhất, đầu tiên phải tìm được tập các đồ thị con chung của hai đồ thị cho trước, lúc này bài toán chuyển thành việc khai phá đồ thị con phổ biến trong tập hai đồ thị, với ngưỡng phổ biến là 100% Trong luận văn này
sẽ sử dụng thuật toán gSpan đã đề cập ở trên để tìm ra tập đồ thị con chung Sau cùng, kích thước của tất cả các đồ thị con chung sẽ được tính toán để tìm ra đồ thị con chung lớn nhất
2.6 Cơ sở dữ liệu đồ thị
Đồ thị là một tập các đối tượng gọi là đỉnh nối với nhau bởi các cạnh Thông thường,
đồ thị được vẽ dưới dạng một tập các điểm (đỉnh, nút) nối với nhau bởi các đoạn thẳng (cạnh) Tùy theo ứng dụng mà một số cạnh có thể có hướng [2], tạo thành hai loại đồ thị là đồ thị vô hướng và đồ thị có hướng
Cơ sở dữ liệu đồ thị mô tả và lưu trữ dữ liệu dưới dạng đồ thị, một cách trực quan và
dễ dàng truy vấn Do đó, cơ sở dữ liệu đồ thị sẽ có những ưu điểm cũng như những khuyết điểm riêng Đối với cơ sở dữ liệu quan hệ, mỗi quan hệ được biểu diễn dưới dạng bảng dữ liệu hai chiều (cột và dòng), mô tả một thực thể Mỗi cột tương ứng với một thuộc tính của thực thể Mỗi dòng chứa các giá trị dữ liệu của một đối tượng cụ thể thuộc thực thể Các phép liên kết bảng trên cơ sở dữ liệu quan hệ dùng để thể hiện mối quan hệ giữa các thực thể thường tốn rất nhiều chi phí, nhất là với lượng dữ liệu lớn và phức tạp Trong khi đó, cơ sở dữ liệu đồ thị cho phép liên kết trực tiếp giữa các thực thể (các đỉnh) với nhau Do đó, nó sẽ giúp truy vấn dữ liệu hiệu quả hơn so với cơ sở dữ liệu quan hệ truyền thống Đồng thời, khả năng trực quan hóa dữ liệu của cơ sở dữ liệu đồ thị so với cơ sở dữ liệu quan hệ cũng tốt hơn rất nhiều Hiện nay,
có rất nhiều hệ quản trị cơ sở dữ liệu đồ thị được tạo ra nhằm mục đích lưu trữ và hỗ trợ truy vấn, xử lý dữ liệu đồ thị, trong đó, phải kể đến những hệ quản trị cơ sở dữ liệu đồ thị nổi bật như ArangoDB, Oracle Spatial and Graph, OrientDB, Neo4j Chúng sử dụng rất đa dạng các loại ngôn ngữ truy vấn để truy vấn dữ liệu như SPARQL, Gremlin, TQL, Cypher…
Trang 30Năm 2010, Google công bố mô hình tính toán Pregel chuyên dùng trong việc xử lý
dữ liệu đồ thị cực lớn [13] Sau đó, đã có rất nhiều thư viện cũng như nền tảng hiện thực mô hình này hỗ trợ việc tính toán trên đồ thị quy mô lớn như Apache Giraph, GraphX, Apache Hama…
2.6.1 Hệ quản trị cơ sở dữ liệu MongoDB
MongoDB là một trong những hệ quản trị cơ sở dữ liệu NoSQL có mã nguồn mở miễn phí được viết bằng C++, cho phép lưu trữ dữ liệu một cách tự nhiên và phù hợp với nhiều loại dữ liệu có hoặc không có cấu trúc MongoDB được phát triển vào tháng
10 năm 2007 bởi 10gen Công khai phát hành lần đầu năm 2009 [24]
Hình 2.10: Hệ quản trị cơ sở dữ liệu MongoDB
(Nguồn: MongoDB) Đặc điểm của MongoDB là:
• Là một hệ quản trị cơ sở dữ liệu hướng tài liệu (document-oriented), nó hỗ trợ nhiều kiểu dữ liệu và hầu hết các ngôn ngữ lập trình hiện tại MongoDB không
sử dụng cấu trúc bảng mà sử dụng việc nhúng và mảng để làm giảm nhu cầu kết (join) giữa các dữ liệu, do đó làm cho khả năng mở rộng trở nên dễ dàng hơn
• Hiệu suất cao (high performance): tốc độ đọc và ghi nhanh, hỗ trợ việc lập chỉ mục cho khóa, tài liệu hay mảng dữ liệu
• Tính sẵn sàng cao (high availability): MongoDB có thể thực hiện xử lý trên nhiều máy chủ và tự động chuyển đổi sang các hệ thống dự phòng khi gặp lỗi,
nó dễ dàng được mở rộng, hỗ trợ tự động phân vùng dữ liệu trên các máy chủ
và việc đọc và viết được phân phối trên các vùng dữ liệu, có thể được cài đặt trên các nền tảng hạ tầng máy chủ khác nhau
Trang 31• Hỗ trợ truy vấn tốt (rich query language): MongoDB sử dụng một ngôn ngữ truy vấn được xây dựng riêng dựa trên cấu trúc JSON để thao tác với cơ sở dữ liệu
Tuy không phải là một hệ quản trị cơ sở dữ liệu đồ thị nhưng MongoDB vẫn được luận văn khảo sát và sắp xếp giới thiệu trong phần này vì nó hỗ trợ rất tốt việc lưu trữ, truy vấn dữ liệu theo cấu trúc định sẵn của người dùng, trong trường hợp này là các cấu trúc lưu trữ đồ thị như ma trận kề lưu thông tin đỉnh và cạnh của đồ thị
2.6.2 Hệ quản trị cơ sở dữ liệu Neo4j
Neo4j là một cơ sở dữ liệu NoSql dạng đồ thị mã nguồn mở xây dựng bằng Java và Scala được Neo technology tài trợ Neo4j bắt đầu được phát triển vào năm 2003 và lần đầu ra mắt vào năm 2007 [26]
Các ưu điểm của Neo4j:
• Là CSDL đồ thị đầu tiên và thông dụng nhất, được sử dụng bởi hàng ngàn doanh nghiệp trong đó có hơn 50 doanh nghiệp lớn trong danh sách Global
2000 (2000 doanh nghiệp lớn nhất thế giới)
• Neo4j có một cộng đồng lớn và sôi động nhất của những người yêu thích CSDL đồ thị, luôn không ngừng góp phần phát triển Neo4j
• Ngôn ngữ Cypher được Neo4j sử dụng gần với ngôn ngữ tự nhiên, thân thiện với người dùng mới Ngoài ra Neo4j cung cấp khả năng đọc, viết nhanh trong khi vẫn bảo vệ tính nhất quán của dữ liệu Khả năng mở rộng cấu trúc và tối
ưu hóa cho tốc độ
• Neo4j có giao diện trực quan, dễ sử dụng với việc tích hợp các ví dụ, hướng dẫn ngay trong phần mềm quản trị Ngoài ra Neo4j còn có các khóa đào tạo online hướng dẫn bằng video từ cơ bản đến nâng cao cùng với các tài liệu tra cứu chi tiết
• Rút ngắn thời gian thiết kế CSDL: Mô hình dữ liệu logic cũng là mô hình dữ liệu mức vật lý Dễ dàng thay đổi cấu trúc, mở rộng mô hình khi công việc đòi hỏi
Trang 32Hình 2.11: Hệ quản trị cơ sở dữ liệu Neo4j
(Nguồn: Neo4j) Cypher là ngôn ngữ truy vấn của Neo4j được viết dựa trên các mối quan hệ của các node với nhau Cypher có đặc điểm dễ đọc và dễ hiểu Cấu trúc của Cypher được mượn từ SQL, các câu truy vấn được xây dựng bởi nhiều mệnh đề, các mệnh đề được nối với nhau và trao đổi kết quả với nhau
Neo4j lưu trữ dữ liệu trong nhiều file Mỗi file lưu trữ dữ liệu riêng biệt cho từng thành phần của CSDL (các node, relationship, label và property được lưu vào những file khác nhau) Cách tổ chức lưu riêng biệt này mục đích là để tách riêng giữa cấu trúc của đồ thị và dữ liệu thuộc tính Tạo điều kiện thuận lợi cho việc duyệt dữ liệu của đồ thị
Tất cả các node do người dùng tạo sẽ được lưu trữ trong file “neostore.nodestore.db” Mỗi node được lưu trữ trong một vùng nhớ cố định, với mỗi vùng nhớ là 15 byte Cách lưu trữ trên cho phép tra cứu nhanh các node trong file lưu trữ Giống với node, các relationship được lưu trữ trong file “store.relationshipstore.db” Tương tự với việc lưu trữ node, các relationship được lưu trữ trong các vùng nhớ cố định, với mỗi vùng nhớ cho một relationship là 34 byte Ngoài byte đầu tiên lưu trữ lá cờ để xác nhận vùng nhớ có đang được sử dụng hay không
Vùng nhớ còn lưu trữ id của node bắt đầu và node kết thúc, id của loại relationship (loại của relationship được lưu trữ trong file “neostore.relationshiptypestore.db”), id của relationship đứng trước và sau nó đối với cả node đầu và cuối Byte cuối cùng là một lá cờ cho phép CSDL nhận biết được relationship này có phải là relationship đầu tiên của chuỗi relationship hay không
Neo4j cho phép cả node và relationship đều có thể chứa các property dưới dạng các cặp key-value cho nên các property được lưu trữ chung và được tham chiếu từ node
Trang 33và relationship Các property được lưu trữ trong file “neostore.propertystore.db”, mỗi vùng nhớ lưu trữ property có kích thước cố định
2.6.3 Hệ quản trị cơ sở dữ liệu OrientDB
OrientDB là một hệ quản trị cơ sở dữ liệu NoSQL mã nguồn mở được viết bằng Java
Nó là một cơ sở dữ liệu đa mô hình, hỗ trợ mô hình đồ thị, mô hình tài liệu, mô hình khóa/giá trị, và các mô hình đối tượng, nhưng các mối quan hệ được quản lý như trong cơ sở dữ liệu đồ thị với các kết nối trực tiếp giữa các bản ghi Nó hỗ trợ chế độ lược đồ giản lược, lược đồ đầy đủ và lược đồ hỗn hợp Nó có một hệ thống phân quyền bảo mật mạnh mẽ dựa trên người dùng và quyền hạn, hỗ trợ truy vấn với Gremlin cùng với SQL mở rộng để duyệt đồ thị OrientDB sử dụng một số cơ chế lập chỉ mục dựa trên B-tree và băm mở rộng, cuối cùng là “chỉ mục băm” Mỗi bản ghi
có khóa đại diện cho biết vị trí của bản ghi bên trong danh sách mảng, các liên kết giữa các bản ghi được lưu trữ hoặc là giá trị duy nhất của vị trí của bản ghi được lưu trữ bên trong tham chiếu hoặc như là cây B của các vị trí bản ghi (còn gọi là ID bản ghi hoặc RID) cho phép duyệt nhanh (với độ phức tạp O(1)) của các mối quan hệ một-nhiều và nhanh chóng bổ sung/loại bỏ các liên kết mới [27]
Hình 2.12: Hệ quản trị cơ sở dữ liệu OrientDB
(Nguồn: OrientDB) OrientDB là cơ sở dữ liệu đồ thị phổ biến thứ ba theo bảng xếp hạng cơ sở dữ liệu đồ thị DB-Engines, tính đến tháng 9 năm 2017 [28]
Sự phát triển của OrientDB vẫn dựa vào một cộng đồng nguồn mở do công ty OrientDB LTD điều hành bởi tác giả ban đầu là Luca Garulli Dự án sử dụng GitHub
để quản lý mã nguồn, đóng góp và các phiên bản, Google Group và Stack Overflow
để cung cấp hỗ trợ miễn phí cho người dùng trên toàn thế giới OrientDB cũng cung
Trang 34cấp khóa học trên Udemy miễn phí cho những ai muốn học những điều cơ bản và bắt đầu với OrientDB
2.6.4 So sánh giữa hệ quản trị cơ sở dữ liệu OrientDB với MongoDB và Neo4j 2.6.4.1 So sánh giữa hệ quản trị cơ sở dữ liệu OrientDB với MongoDB
OrientDB và MongoDB có những tính năng giống nhau nhưng cả hai chứa nhiều thành phần chức năng khác nhau [27] Trong khi MongoDB đơn thuần là cơ sở dữ liệu hướng Tài liệu, OrientDB lại có những thành phần lai giữa Tài liệu-Đồ thị giúp cho mô hình cơ sở dữ liệu hướng Tài liệu có những chức năng đáng chú ý hơn Dưới đây là những điểm khác nhau đáng chú ý nhất giữa chúng
➢ Những mối quan hệ (Relationships)
Hình 2.13: Bộ dữ liệu đơn giản dưới dạng JSON
(Nguồn: OrientDB) Hình trên là một đoạn tài liệu JSON biểu diễn một bộ trong dữ liệu Order đơn giản Trong đó, những thông tin của "customer" được nhúng bên trong một đối tượng Order Chức năng này thường thấy ở những Hệ quản trị cơ sở dữ liệu hướng tài liệu
để tránh việc thắt cổ chai khi thực thi thao tác JOIN trong các hệ quản trị cơ sở dữ liệu quan hệ Với MongoDB, bạn có thể lưu trữ _id của khách hàng liên kết tới Order, nhưng điều này vẫn tốn nhiều tài nguyên giống như thao tác JOIN và không thể linh hoạt khi kích thước cơ sở dữ liệu tăng lên
OrientDB vừa có thể nhúng tài liệu vào đối tượng giống như các cơ sở dữ liệu hướng tài liệu khác, vừa có thể kết nối các tài liệu như là cơ sở dữ liệu quan hệ Điểm khác biệt chính ở đây là OrientDB không sử dụng phép JOIN mà nó thực hiện kết nối trực tiếp, một liên kết siêu nhanh lấy ý tưởng từ cơ sở dữ liệu đồ thị
Trang 35Hình 2.14: Liên kết dữ liệu trong OrientDB
(Nguồn: OrientDB) Hình minh họa bên trên cho thấy làm thế nào các tài liệu gốc đã được phân chia trong
hai tài liệu liên kết với nhau sử dụng của ID của khách hàng # 8:124 để kết nối Order
đến các thông tin khách hàng Liên kết có thể được coi như là con trỏ trong bộ nhớ, nhưng nó được ghi trên đĩa
Tại sao kết nối các tài liệu hay hơn là nhúng chúng? Vì hai lý do: 1 không có trùng lặp dữ liệu khiến cho cơ sở dữ liệu nhỏ hơn và nhẹ hơn, và 2 bởi vì nó nhanh hơn Một cơ sở dữ liệu nhỏ hơn sẽ sử dụng bộ nhớ RAM tốt hơn, do đó cho phép bộ nhớ đệm có tài nguyên nhiều hơn
Khi đọc dữ liệu Order, OrientDB sẽ lắp ráp toàn bộ bằng cách lấy tất cả các kết nối
➢ Cách thu thập kết quả
Cách trong suốt hóa quá trình thu thập kết quả, lần theo các liên kết là một trong những điểm mạnh của OrientDB Thay vì lặp đi lặp lại những truy vấn đến cơ sở dữ liệu hay thực hiện thao tác JOIN, cách thu thập kết quả truy vấn của OrientDB là cho phép các cơ sở dữ liệu để trả về một đồ thị đầy đủ các tài liệu liên kết với nhau, đúng như mong muốn, trong một thao tác đơn
➢ Giao tác (Transactions)
MongoDB không hỗ trợ tính chất ACID của giao tác Thay vào đó, nó hỗ trợ các thao tác nguyên tố (Atomic Operations), vì vậy bất cứ thao tác đối với một tài liệu là
Trang 36nguyên tố Điều này có nghĩa rằng bạn không thể có Tính chất Nguyên tố nếu thao tác trên nhiều tài liệu Trong một số trường hợp, điều này là chấp nhận được, nhưng trong những trường hợp khác điều này sẽ là một vấn đề lớn OrientDB hỗ trợ thao tác nguyên tố cũng như các giao tác ACID, giống như mô hình cơ sở dữ liệu quan hệ OrientDB sử dụng cơ chế nhật ký Write Ahead Logging (WAL) làm cho tất cả những thay đổi mang tính bền vững, ngay cả trong trường hợp có lỗi xảy ra
Thuật giải 2.2 Cơ chế nhật ký Write Ahead Logging (WAL)
MongoDB phiên bản Cộng đồng
Các chức năng cơ bản của một Hệ quản
Trang 37Native HTTP Rest/JSON x x
Dữ liệu có cấu trúc đầy đủ, phi cấu trúc
Khả năng mở rộng đàn hồi không cần
đồ thị Cộng đồng lập trình đa số đã quen thuộc với SQL, làm việc với OrientDB sẽ
dễ dàng hơn
Cùng một truy vấn trong OrientDB SQL so với Ngôn ngữ truy vấn MongoDB:
Trang 38Bảng 2.2: So sánh ngôn ngữ truy vấn trong OrientDB và MongoDB
OrientDB SQL Ngôn ngữ truy vấn MongoDB
UPDATE product SET price = 9.99
WHERE stock.qty > 2
db.product.update(
{ “stock.qty”: { $gt: 2 } }, { $set: { price: 9.99 } }
)
➢ Chỉ mục
MongoDB sử dụng thuật toán B-Tree cho tất cả các chỉ mục OrientDB hỗ trợ 3 thuật toán lập chỉ mục khác nhau để người dùng có thể đạt được hiệu suất tốt nhất dựa trên từng trường hợp cụ thể:
• Chỉ mục bằng SB-Tree, một thuật toán thế hệ mới được thiết kế để quản lý số lượng lớn các đối tượng đồng thời Hơn nữa, nó rất bền vững nhờ vào WAL (Write Ahead Logging) giúp tránh phải xây dựng lại các chỉ mục trong trường hợp bị lỗi
• Chỉ mục băm (hash index), dựa trên phương pháp băm, do đó, nó siêu nhanh đối với thao tác đọc và ghi, nhưng không hỗ trợ các truy vấn theo khoảng
• Lucene, dựa trên dự án Apache Lucene, cung cấp nhanh chóng hai phương thức là chỉ mục Toàn văn (Full-Text indexes) và chỉ mục không gian (Spatial indexes)
2.6.4.2 So sánh giữa hệ quản trị cơ sở dữ liệu OrientDB với Neo4j
Theo định nghĩa của Neo4j, cả OrientDB và Neo4j đều là cơ sở dữ liệu đồ thị thuần OrientDB phát triển các mô hình cơ sở dữ liệu cơ bản bằng cách tạo ra các khái niệm
đa mô hình: một cách linh hoạt hơn để đại diện cho các lĩnh vực phức tạp dựa trên các mô hình đồ thị, nhưng được làm giàu với các tài liệu, đồ vật, khóa/giá trị, không gian và dữ liệu toàn văn Tất cả các mô hình này được quản lý bởi nhân xử lý của OrientDB (Điều này là khác nhau từ các hệ quản trị cơ sở dữ liệu khác mà thêm lớp cho các mô hình bổ sung, dẫn đến hiệu suất giảm.)
OrientDB có thể được sử dụng như một cơ sở dữ liệu đồ thị thuần hoặc như một cơ
sở dữ liệu đa mô hình, tránh sử dụng nhiều loại cơ sở dữ liệu cho các ứng dụng tương
tự [27]
Trang 392.7 Tổng quan về dữ liệu lớn
2.7.1 Khái niệm và lịch sử hình thành phát tri ển
Cho đến nay vẫn chưa có một khái niệm thống nhất, rõ ràng và chặt chẽ về dữ liệu lớn Trong báo cáo này chỉ cố gắng thống kê ra những định nghĩa thường được sử dụng, đi kèm với đó là lịch sử phát triển của khái niệm này
Các nhà khoa học tại NASA là những người đầu tiên sử dụng thuật ngữ "dữ liệu lớn",
nó được đề cập đến trong một bài báo năm 1997, mô tả vấn đề họ đã có bằng trực quan đồ họa máy tính: "chúng tôi đưa ra một thách thức thú vị cho các hệ thống máy tính: những tập dữ liệu nhìn chung đã trở nên rất lớn, đòi hỏi khả năng của bộ nhớ chính, đĩa cứng cục bộ, và thậm chí cả ổ đĩa từ xa Chúng tôi gọi đây là vấn đề của
dữ liệu lớn Khi các bộ dữ liệu không còn chứa đủ trong bộ nhớ chính (trong nhân), hoặc thậm chí khi chúng không còn vừa với đĩa cứng, giải pháp phổ biến nhất là yêu cầu cung cấp nhiều tài nguyên hơn."
Hơn 10 năm sau, các nhà khoa học máy tính nổi tiếng người Mỹ đã phổ biến rộng rãi thuật ngữ và họ cho rằng "tính toán dữ liệu lớn" sẽ "chuyển đổi các hoạt động của các công ty, các nhà nghiên cứu khoa học, các bác sĩ, các hoạt động phòng vệ và tình báo của quốc gia" Thuật ngữ "tính toán dữ liệu lớn" này chưa bao giờ được định nghĩa trong bất cứ bài báo nào
Theo Wikipedia, định nghĩa dữ liệu lớn được phát biểu như sau: "một thuật ngữ bao trùm cho bất kỳ bộ tập hợp dữ liệu nào quá lớn và phức tạp đến nỗi nó trở nên khó
xử lý bằng cách sử dụng các công cụ quản lý dữ liệu trực tiếp hoặc các ứng dụng xử
lý dữ liệu truyền thống."
Biến thể của định nghĩa này được hầu hết các nhà bình luận sử dụng đối với dữ liệu lớn, sự giống nhau giữa nó với định nghĩa năm 1997 của các nhà nghiên cứu của NASA cho thấy sự lỏng lẽo của nó "Lớn" và "truyền thống" là những khái niệm tương đối và mơ hồ
Có thể lấy các thí nghiệm của Máy gia tốc hạt lớn ở Châu Âu làm ví dụ cho dữ liệu lớn Khi các thí nghiệm này được tiến hành, kết quả sẽ được ghi nhận bởi 150 triệu cảm biến với nhiệm vụ truyền tải dữ liệu khoảng 40 triệu lần mỗi giây Kết quả là nếu như máy gia tốc ghi nhận hết kết quả từ mọi cảm biến thì luồng dữ liệu sẽ trở nên vô