Bên cạnh đó đồ thị là một cấu trúc dữ liệu tổng quát, có thể sử dụng để mô hình hóa c ác đối tượng dữ liệu phức tap đó và triển trai về khai phá tìm mẫu xuất hiện tối đa trong một đồ thị
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP HCM
ĐỒ ÁN CƠ SỞ
Tìm hiểu về Graph Mining và xây dựng thuật toán
Khai phá dữ liệu đồ thị cơ bản
Ngành: Công Nghệ Thông Tin
Chuyên ngành: Công Nghệ Phần Mềm
Giảng viên hướng dẫn : Lê Thị Ngọc Thảo Sinh viên thực hiện :
MSSV:
TP Hồ Chí Minh, 2018
Trang 2MỞ ĐẦU
Hiện nay, các chương trình khai phá dữ liệu đang phải đối diện vơi vấn đề số lượng n gày càng gia tăng các đối tượng phức tạp
Bên cạnh đó đồ thị là một cấu trúc dữ liệu tổng quát, có thể sử dụng để mô hình hóa c
ác đối tượng dữ liệu phức tap đó và triển trai về khai phá tìm mẫu xuất hiện tối đa
trong một đồ thị cha
Việc khai phá dữ liệu đồ thị thường xuyên nhằm xác định Tất cả các đồ thị con trong một tập dữ liệu đồ thị với ngưỡng cho trước
Khó khăn trong việc khai phá gồm 2 vấn đề: Liệt kê tất cả đồ thị con trong
CSDL đồ thị, và tính toán hàm hỗ trợ của các đồ thị con này trong
CSLD Nếu 1 đồ thị có hình dáng tương đồng với đồ thị cha tương
đương thì đươc gọi là Đẳng Cấu và hàm hỗ trợ giúp kiểm tra 2 đồ thị có đẳng cấu hay không cũng là một bài toán được đặt ra
Tuynhiên vấn đề này cũng được giải quyết qua các đặt nhãn cho các cạnh, đỉnh có th
ể sử dụng nhãn này để hạn chế các đỉnh có thể tạo thành các cặp trong quá trình kiểm tra sự đẳng cấu của đồ thị con Tuy
nhiên nếu CLDL đồ thị chưa được gán nhãn hoặc chỉ số ít các nhãn thì độ phức tạp của bài t oán cũng được giảm đi đáng kể, và cả kích thước của tập dữ liệu
Khai phá đồ thị con thường xuyên là một phương pháp khai phá dữ liệu hiệu quả Tuy nhiên, các ứng dụng thực tiễn hiện nay với các tập dữ liệu vừa có cấu trúc phức tạp lại vừa c
ó kích thước rất lớn đã dẫn đến việc tìm tập tất cả các đồ thị con thường xuyên cũng là rất lớ
n
Hơn hết, có một số đồ thị thường xuyên lại có độ hỗ trợ bằng với đồ thị thường xuyê
n
cha của nó Vì thế, việc tìm tập tất cả các đồ thị con thường xuyên đóng có hiệu quả trong c
ác ứng dụng thực tiễn hơn Tuy lúc cần có thể tìm các đồ thị con thường xuyên nhanh hơn nhưng nếu số lượng đồ thị đầu vào lớn và số lượng đồ thị con thường xuyên là lớn thì việc li
ệt kê hết không thể hiệu quả bằng chỉ liệt kê các đồ thị con thường xuyên đóng
Với một cách nhìn khác với các thuật toán của MaxAFP, APGM và các công trình ng hiên cứu liên
quan khác chúng tôi đã giảm được thời gian tính toán trong việc khai phá đồ thị con và thuật toán của chúng tôi hiệu quả hơn nữa khi áp dụng vào khai phá đồ thị con thường xuyên đón
g
Trang 3TÓM TẮT Khai phá các mẫu thường xuyên là bài toán quan trọng có nhiều khả năng ứng dụng vào thực tiễn
Các ứng dụng trong thực tiễn rất đa dạng và phong phú nên phương pháp khai phá tập mục thường xuyên bị giới hạn bởi cấu trúc dữ liệu dạng tập hợp không phản á
nh được hết bản chất của dữ liệu chẳng hạn như cấu trúc thành phần hóa học của các viên thuốc tân dược, cấu trúc gen tế bào, cấu trúc protein động vật và nhiều cấu trúc khác Các cấu trúc dữ liệu này hầu hết đều
có thể biểu diễn dưới một dạng dữ liệu có cấu trúc đã biết như đồ thị, cây hoặc lattice
Do vậy, các nghiên cứu về khai phá đồ thị con thường xuyên có ý nghĩa rất lớn đặc biệt hữu ích trong lĩnh
vực y tế
MỤC TIÊU Giới thiệu về thuật toán MaxAFP để khai phá dữ liệu các mẫu xuất hiện với tần số lập lại nhiều tối đa,
trong cơ chế xác nhập thì có 2 loại + Exact Matching (Xác nhập đồ thị chính xác)
+ Inexact Matching (Xác nhập đồ thị không chính xác)
Trong Bài tìm hiểu này em
xin dùng cơ chế Inexact Matching để dùng làm hàm hỗ trợ giúp tìm ra các đồ thị con với tần
số lập lại nhiều lần nhất trên một đồ thị đơn(Single Graph)
Inexact Matching sử dụng một hàm để đo được sự tương đồng giữa hai đồ thị(đồ thị con tập con, đồ thị cha-đầu vào) với hàm Fsim,
Kế tiếp, chúng ta sẽ mở rộng thêm về Chiến lược để xác định được các mẫu xuất hiệ
n với các ngưỡng cho phép khác nhau, với các nhãn cũng như các mô hình, cấu trúc của mẫu tìm được
Cuối cùng thì ta làm 1 ví dụ nhỏ để thấy được các mẫu được tìm thấy với Thuật toán kha
i phá mẫu xuất hiện với tần số nhiều nhất ban đầu(MaxAFP)
Từ khóa : Khai phá dữ liệu, Xác nhập đồ thị đơn
không chính xác, Đồ thị con xuất hiện tần số cao nhất, Khai phá dữ liệu với đồ thị con,
Nội dung của bài BÁO CÁO và CÁC VẤN ĐỀ CẦN GIẢI QUYẾT:
Trang 41 Tìm hiểu về các phương pháp khai phá dữ liệu đồ thị đơn với xác nhập không tương đồng(Inexact Matching)
2 Tìm hiểu các thuật toán phát hiện đồ thị con thường xuyên trong CSDL đồ thị
3 Cài đặt thử nghiệm thuật toán , MaxAFP phát hiện các đồ thị con thừờng xuyên trong CSDL đồ thị với lượng đỉnh DEMO
4 Quản lý thời gian thực hiện thuật toán với mức lượng đỉnh tăng dần
Phương pháp nghiên cứu
+Nghiên cứu về khai phá dữ liệu đồ thị với trọng tâm là phát hiện các đồ thị con thường xu yên trong CSDL đồ thị
+ Tìm hiểu các nguồn thông tin từ các sách,bài báo,tạp chí, Internet ,liên
quan đến khai phá dữ liệu đồ thị
Cấu trúc luận văn chia làm 4 Chương Chương 1:
“ Tổng quan về khai phá dữ liệu đồ thị ” trình bày tổng quan các hướng nghiên cứu hiện na
y về khai phá dữ liệu đồ thị
Chương 2: “ Phát hiện các cấu trúc con thường xuyên
” trình bày cơ sở lý thuyết đồ thị, cách tiếp cận dựa trên Apriori, MaxAFP, cách tiếp cận d
ựa trên sự phát triển mẫu
Chương 3: “ Các thuật toán phát hiện đồ thị con thường xuyên
” trình bày một số thuật toán phát hiện đồ thị con thường xuyên
theo chiến lược tìm kiếm theo chiều rộng và chiều sâu
Chương 4:
“ Thiết kế hệ thống thử nghiệm ” trình bày kết quả cài đặt của thuật toán trong chương 3
CHƯƠNG 1: TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU ĐỒ THỊ
Trang 51.1.TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU ĐỒ THỊ:
Khai phá dữ liệu đồ thị là một trong số các lĩnh vực quan trọng trong
khai phá dữ liệu Hầu hết nguồn dữ liệu hiện nay có thể biểu diễn được dưới dạng cấu trúc
dữ liệu đồ thị, chẳng hạn như: dữ liệu từ mạng Internet, mạng xã hội, cấu trúc protein, hợp c hất hóa học,
Do đó, khai phá dữ liệu đồ thị nhằm tìm kiếm các thông
tin hữu ích trong một lượng lớn dữ liệu là vấn đề đang được các nhà nghiên cứu và các tổ c hức CNTT quan tâm
1.1.1 Định nghĩa dữ liệu lớn:
Hiện nay, thuật ngữ “Dữ liệu lớn” (Big data) đang thu hút sự quan
tâm cũng như đặt ra những thách thức mới với các nhà nghiên cứu, các nhà cung cấp dịch v
ụ công nghệ thông tin và các tổ chức,
doanh nghiệp Dữ liệu lớn được xem như sự ra đời tất yếu của quá trình bùng nổ thông tin Trong nhiều năm qua, các doanh nghiệp thường đưa ra các quyết định kinh
doanh dựa trên dữ liệu giao dịch được lưu trữ trong cơ sở dữ liệu quan hệ
Ngoài ra những dữ liệu quan trọng lại thường ở dạng tiềm năng, phi truyền thống,
phi cấu trúc lại có thể được khai thác một cách hữu ích, giảm chi phí cả về lưu trữ và tính to
án
Khi dữ liệu lớn được được khai thác và phân tích, kết hợp với dữ liệu doanh nghiệp truyền t hống thì các doanh nghiệp sẽ có cái nhìn toàn diện và sâu sắc hơn về tình hình kinh
doanh của họ, dẫn tới nâng cao năng suất và vị thế cạnh tranh
Do đó, ngày càng có nhiều công
ty tìm kiếm để có được các dữ liệu phi truyền thống nhưng rất có giá trị trong
công việc kinh doanh này
Có thể định nghĩa một cách chung nhất thì “Dữ liệu lớn” là một tập hợp của các tập dữ liệu l
ớn và/hoặc phức tạp mà những phương pháp hiện tại của CNTT chưa thể phân tích và xử lý tốt được chúng
CHƯƠNG 2: PHÁT HIỆN CÁC CẤU TRÚC CON THỜNG XUYÊN
Trang 62.1 CƠ SỞ LÝ THUYẾT ĐỒ THỊ
ƯChúng ta biểu diễn tập đỉnh của đồ thị g bằng V(g) và tập cạnh bằng E(g) Một hàm nhãn
L ánh xạ một đỉnh hoặc một cạnh tới một nhãn Một đồ thị glà một đồ thị con của đồ thị g
’ khác nếu tồn tại một đồ thị con đẳng cấu từ g tới g ’
2.1.1 Định nghĩa 2.1 (Graph):
Chomột nhãn node bằng chữ cái (alphabet) LV và một nhãn cạnh bằng chữ cái LE đồ thị g (có hướng) được định nghĩa bằng bộ gồm 4 thành phần g=(V , E, µ, ν), trong), trong đó:
• V biểu diễn một tập hữu hạn các node
• E V×V⊆V×V biểu diễn một tập các cạnh
• µ:V→LV biểu diễn một hàm ghi nhãn node
• ν), trong:E→LE biểu diễn một hàm ghi nhãn cạnh
Tập V có thể được coi là một tập các định danh nút và thường được chọn bằng V = {1, , |
V |}
Trong khi V xác định các nút, tập các cạnh E thể hiện cấu trúc của đồ thị
Đó là một nút u V∈ V được kết nối với một nút v V∈ V bằng một cạnh= (u, v) nếu (u, v) E.∈ V Hàm ghi nhãn có thể được sử dụng để tích hợp thông
tin về các node và các cạnh vào trong các đồ thị bằng cách gán các thuộc tính từ LV và LE t
ới các node và các cạnh tương ứng
Đồ thị được định nghĩa ở trên bao gồm một số trường hợp đặc biệt
Để định nghĩa đồ thị vô hướng, cho một thể hiện yêu cầu u,v E cho mỗi cạnh u,v E sao cho ν), trong(u, v) = ν), trong(v, u)
Trong trường hợp đồ thị không thuộc tính, bảng chữ cái nhãn được xác định bởi LV LE
2.1.2 Định nghĩa 2.2 (Subgraph):
Cho g1=(V1,E1,µ1,ν), trong1) và g2=(V2,E2,µ2,ν), trong2) là các đồ thị,
đồ thị g1 là một đồ thị con của g2 ,
ký hiệu g1 g2⊆V×V nếu
• V1 V2.⊆V×V
• E1=E2∩(V1×V1)
• µ1(u) = µ2(u) cho tất cả u V1.∈ V
• ν), trong1(u, v)=ν), trong2(u, v) cho tất cả (u, v) E1.∈ V
Ngược lại, đồ thị g2 được gọi là một đồ thị con của g1 đôi
khi điều kiện thứ hai của định nghĩa này được thay thế bằng E1 E2 2.1.3.⊆V×V
Định nghĩa 2.3 (Graph Isomorphism): Cho
g1=(V1,E1,µ1,ν), trong1) và g2=(V2,E2,µ2,ν), trong2) là các đồ thị
Một đồ thị đẳng cấu giữa g1 và g2 là một hàm song ánh
f:V1→V2 thỏa mãn:
• µ1(u)=µ2(f (u)) cho tất cả các node u V1.∈ V
Trang 7• Cho mỗi cạnh e1=(u, v) E1,∈ V tồn tại một cạnh e2=(f (u), f (v)) E2 sao cho ∈ V
ν), trong1(e1)=ν), trong2(e2)
• Cho mỗi cạnh e2=(u, v) E2,∈ V tồn tại một cạnh e1=(f-1 (u), f-1 (v)) E1 sao cho ∈ V ν), trong1(e1)=ν), trong2(e2)
Hai đồ thị g1 và g2 đƣợc gọi là đẳng cấu nếu tồn tại một đồ thị đẳng cấu giữa chúng
Trang 8CHƯƠNG 3: TÌM HIỂU VỀ THUẬT TOÁN KHAI PHÁ DỮ LIỆU VỚI TẬP XUẤT
HIỆN TỐI ĐA TRÊN ĐỒ THỊ ĐƠN 3.1: Mẫu xuất hiện tối đa (Maximal Frequent Patterns)
Năm
2004, thế giới có sự chú ý lớn với vấn đề về đồ khai phá thị đơn tối đa(Mining Maxi mal Subgraphs), bước ngoặc này giúp ta giảm bớt được số lượng đỉnh đươc tìm thấy khi dùng thuật toán thuật toán SPIN
Sau đó, một bước ngoặc mới được đưa
ra với chiến lược đánh dấu nhãn các mẫu , các đỉnh của chúng được đánh dấu bởi nhã
n của chính chúng đinh
danh Thuật toán này giúp ta xóa những đỉnh cho đến khi chúng xuất hiện và đẳng cấ
u trong một đồ thi đơn ban đầu,
sau đó thuật toán tiếp tục thêm những đường (quan hệ, cạnh) và thay đổi tập hợp con,
và dùng đẳng cấu để so sánh những đồ thì con cùng mức
Những thuật toán khác biệt bây giờ cho phép ta tìm thấy các mẫu xuất hiện với tần số tối đa trong một đồ thị con như là, FP-GraphMiner và wgMiner
3.2: KHai phá đồ thị trên 1 đồ thị đơn (Single Graph)
SUBDUE là một thuật toán cho phép chúng ta có thể khai phá dữ liệu tìm kiếm các mẫu xuất hiện với tần số xuất hiện tối đa Sau đó vài năm, vào năm
2004 Kuramochi và Kaypris đã đề xuất thuật toán Hsigram, Vsgram và GREW cũng với mụ
c đích là khai phá dữ liêu trên một đồ thị con
Cuối cùng, ta cần phải quan tâm đến một đề xuất thuật toán với mục đích như trên, Hellal
và Romdhane nó là phần quan trọng tham chiếu đến tất cả thuật toán trong bài báo này Đôi
lúc nó có thể giải quyết được vấn đề đẳng cấu của đồ thị, sự khác biệt của tất cả thuật toán
đó đều là dùng xác nhập không tương đồng (Inexact Matching) Nó là không cần thiêt để
giải quyết vấn đề đẳng cấu đồ thị của chúng ta
3.3: Khai phá đồ thị dùng Inexact Matching
Một vài thuật toán đề xuất trước đây có dùng Inexact matching nhưng nó không cho phép chúng ta có thể cấu trúc khác nhau về những đỉnh xuất hiện trong các mẫu tìm thấy
Năm 2011, Một thuật toán được đề xuất là APGM Đề xuất của tác giả là dùng một ma trận
con nó được định nghĩa với các gán các nhãn đã mất Khi đó họ định nghĩa 2 đồ thị với xấp
xĩ đẳng cấu nếu chúng có tương đồng.Những sự đo lường về chất lượng của sản phẩm, bên dưới ngưỡng cho phép
Trang 9Sau đó, năm 2012, một thuật toán được đề xuất bởi Acosta là VEAM dựa trên nền tảng của
thuật toán APGM, nó cho ta gáng nhãn từ các đỉnh, cạnh trên các đồ thị con Cả 2 thuật toán trên đều yêu cầu xác nhập đồ thị với chung các tập dữ liệu con
3.4: Hàm tương đồng
Chúng ta yêu cầu một hàm để so sánh cấu trúc khác biệt từ các đỉnh, cạnh giữa các
đồ thị
Trước khi tìm hiểu tiếp, chúng ta cần làm rõ, để tính được sự tương đồng giữa các đồ thị
chúng ta có rất nhiều các để đo lường, như là: Cost-Based, Structure-Based, Feature-Based.
Với Cost-Based và Structure-Base thuộc về các danh mục, vì thế nó không phù hợp với thuật toán chúng ta sẽ sử dụng dưới đây (Inexact Matching)
Vì vậy chúng ta sẽ sử dụng Cost-Based để tiếp cận mục đích của thuật toán chúng ta
Mục đích chúng ta sẽ chỉnh sửa lại các khoảng cách(sự khác biệt) như nền tảng cho thuật toán tì sự tương đồng (Similarity Function Distance)
Với đồ thị G1 và G2 là 2 đồ thị mà ta cần so sánh để tính xem độ tương đồng của 2 đồ thị Chúng ta sẽ có 2 phần tham số khá quan trọng để đến được kết quả cuối cùng
Eedit cho biết rằng sự tương đồ các đỉnh tính bởi các cạnh G1 và G Vedit cho biết rằng sự tương đồng tính được bởi các đỉnh G1 và G2.
Fsim là kết quả cuối cùng dựa trên các phép tính toán của Vedit và Eedit
3.5: Chiến lược xác nhập đồ thị không tương đồng
Một trong những mấu chốt của thuật toán là nó có thể tìm tất cả mẫu không tương
đồng với số lần xuất hiên theo cách tương đồng (Exact Matching).
Trang 10Vì vậy thuật toán Fsim của chúng ta miêu tả phía trê sẽ nhận vào 1 ngưỡng tương
đồng(Similarity threshold) so sánh với kết quả tìm được (Fsim), Và khi ngưỡng cho phép
thấp hơn hoặc bằng với hàm tương đồng thì có đầu ra của chúng ta chính là các đồ thị con với ngưỡng cho phép, và đồ thị con này chứa những tập hợp con như phần miêu tả về đồ thị tương đồng
Và đặc biệt hơn là ta có thể mở rộng về các mẫu xuất hiện với lượt tiếp cận, chúng ta sẽ thêm những đỉnh mới từ các mẫu từ đồ thị con và tìm thấy các mẫu của đồ thị con thống kê được, nó khả thi cho việc mở rộng mẫu Và chiến lược chúng ta dùng có thể cho phép sự khác biệt ở mỗi loại mà ta sẽ giới thiệu phần tiếp theo
3.5.1: Cấu trúc khác nhau từ nhãn
Một bảng chỉ rõ sự suy diễn giữa các nhãn có thể đươc cung cấp Trong cách này chúng ta cho phép các mẫu có thể lớn lên đồng nghĩa là việc nó cot hêm những đỉnh bởi sự thống kê của các tập trong đồ thị mới tìm được
Trong cách này ta có thể tìm thấy các mẫu trong những nhãn mà chúng ta dùng Exact Matching mà không thể tìm ra được.
3.5.2: Cấu trúc khác từ những đỉnh
Chúng ta cho phép sự cấu trúc khác nhau với các đỉnh, nghĩa là nó là một mẫu có thể
ít hoặc nhiều hơn mẫu ban đầu Có 2 cách chúng ta cần lưu ý:
Cách 1: Nếu mẫu tìm thấy(A) không thể chứa trong mẫu tìm thấy khác (b) chúng ta sẽ giữ
lại và thêm những đỉnh đã mất
Cách 2: Các mẫu có nhiều đỉnh hơn mẫu chúng ta tìm thấy thì chúng ta sẽ tìm và thay thế 1
cạnh giữa 1 mẫu của P và 1 đỉnh xác nhập v.
Điều này là có thể vì ban đầu ta yêu cầu quan hệ giữa các đỉnh(cạnh)
Ý tưởng mới: Chúng ta sẽ định nghiã những mẫu xuất hiện rằng có thể nhiều đỉnh hơn mẫu
ban đầu
3.5.3: Cấu trúc khác từ những cạnh
Cuối cùng để sắp xếp được những mẫu xuất hiện với cấu trúc khác từ cạnh, chúng ta
cho phép 1 đỉnh mới tiếp cận xác nhập v, kết nối đến những sựxuất hiện tương đồng từ mẫu
ta tìm thấy Trong lựa chọn này ta có thuật toán gAPPROX.