Tóm tắtĐể tìm kiếm giải pháp và phương hướng giải quyết và khắc phục những hạn chếtrong các quá trình xử lý khai thác dữ liệu trên đồ thị, người ta đã đưa ra nhiều phươngpháp để giải quy
Trang 1ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
Trang 2Tóm tắt
Để tìm kiếm giải pháp và phương hướng giải quyết và khắc phục những hạn chếtrong các quá trình xử lý khai thác dữ liệu trên đồ thị, người ta đã đưa ra nhiều phươngpháp để giải quyết bài toán, nó tập trung vào hướng nghiên cứu giải quyết vấn đề về đẳngcấu đồ thị, đẳng cấu đồ thị con và tìm sự tương đồng của đồ thị, nhưng còn nhiều hạn chế
về thời gian tìm kiếm và lưu trữ dữ liệu cho phù hợp
Với những lý do nêu trên, đồ án này tập trung nghiên cứu cài đặt lại nhữngphương pháp, giải thuật đã được nghiên cứu trước đó để có sự tiếp cận rõ hơn về khaithác dữ liệu đồ thị, tạo tiền đề để nghiên cứu sau này
Trang 3MỤC LỤC
Chương 1 GIỚI THIỆU ĐỀ TÀI 4
1.1 Bối cảnh 4
1.2 Mục tiêu và phạm vi 5
Chương 2 TỔNG QUAN VỀ KHAI THÁC DỮ LIỆU ĐỒ THỊ 6
2.1 Cơ sở lý thuyết 6
2.1.1 Đẳng cấu đồ thị 6
2.1.2 Đẳng cấu đồ thị con 7
2.2 Tiếp cận các phương pháp kiểm tra đẳng cấu 7
2.2.1 Giải thuật Ullman (1976) – [Ull76] 7
2.2.2 Giải thuật Messmer (1995) 9
2.2.3 Độ tương tự đồ thị 14
2.3 So sánh giải thuật của Ullman và Messmer 15
Chương 3 TỔNG QUAN VỀ KHAI THÁC DỮ LIỆU ĐỒ THỊ 17
3.1 Giải pháp 17
3.2 Cài đặt thử nghiệm 18
3.2.1 Giải thuật Ullman 18
3.2.2 Giải thuật Messmer 22
Chương 4 TỔNG KẾT 25
TÀI LIỆU THAM KHẢO 26
Trang 4thuật có hiệu quả để giải quyết những bài toán này là Khai thác dữ liệu đồ thị (Graph Mining) đây là một kỹ thuật mới, được dùng để phát hiện tri thức và đặc biệt thích hợp
với dữ liệu có cấu trúc, vì có thể sử dụng đồ thị để mô tả.
Dữ liệu có cấu trúc thường phát sinh những mối quan hệ sự tương đồng về thánhphần, cấu trúc Mỗi tập dữ liệu có một số sự tương đồng với tập dữ liệu khác Để thểhiện, quản lý, nhận diện các mỗi quan hệ giữa các tập dữ liệu người ta thường biểu diển
dữ liệu dưới dạng đồ thị (có hướng hoặc vô hướng), từ cấu trúc của đồ thị ta có thể tìmđược sự giống nhau về cấu trúc, thành phần của các tập dữ liệu Nhưng với một lượng dữ
Trang 5liệu thông tin khổng lồ ngày nay việc biểu diễn dữ liệu bằng đồ thị, thì bài toán xử lý đồthị gặp nhiều khó khăn, vì đồ thị quá lớn những xử lý trên đồ thị gặp vấn đề về thời gian,
mà thường các bài toán tìm đẳng cấu đồ thị và đẳng cấu đồ thị con rơi vào trường hợp độphức tạp dạng không đẳng thức Những phương pháp tìm đẳng cấu đồ thị và đẳng cấu đồthị con trước đây không phù hợp với các bài toán cần giải quyết hiện nay về lĩnh vực khaithác dữ liệu đồ thị
Vì việc tiếp cận và thực hiện chuyên đề trong khoảng thời gian ngắn, nên chuyên
đề này tập trung nghiên cứu, phân tích ưu nhược điểm, phân tích đặc điểm những hướngnghiên cứu trước đó và cài đặt lại những phương pháp, giải thuật đó để có sự tiếp cận rõhơn về bài toán tìm đẳng cấu đồ thị và đẳng cấu đồ thị con trong lĩnh vực khai thác dữliệu đồ thị, tạo tiền đề để nghiên cứu sau này
Trang 6Chương 2
TỔNG QUAN VỀ KHAI THÁC DỮ LIỆU ĐỒ THỊ
2.1 Cơ sở lý thuyết
Hai đồ thị có chứa cùng số đỉnh, và các đỉnh có liên kết với nhau theo một cách
nào đó giống nhau thi được gọi là đẳng cấu.
Định nghĩa toán học, hai đồ thị G1 = (V1, E1) và G2 = (V2, G2) đẳng cấu với nhau,
kí hiệu: G1 G2, nếu ở đó có một song ánh φ : V1 -> V2 Như vậy, với mỗi cặp đỉnh
vi, vj € V1, holds (vi, vj) € E1 nếu và chỉ nếu (φ (vi), φ (vj)) € E2
φ (1) = can, φ (2) = cat, φ (3) = car, φ (4) = ear
Trang 72.1.2 Đẳng cấu đồ thị con
Một đồ thị G’ là một đồ thị con của một đồ thị G cho trước nếu số đỉnh và số cạnhcủa G’ thỏa tập con của số đỉnh và số cạnh của G
Một đồ thị G1 = (V1, E1) là đẳng cấu với một đồ thị con của một đồ thị G2 = (E2,
V2) nếu ở đó tồn tại đồ thị con của G2, ta gọi là G2 ’, như vậy G1 G2
Hình 2.2 đẳng cấu đồ thị con
2.2 Tiếp cận các phương pháp kiểm tra đẳng cấu
2.2.1 Giải thuật Ullman (1976) – [Ull76]
Ullman ([Ull76] Ullman 1976) là người đầu tiên và được đánh cao về cách tiếpcận so khớp đồ thị mẫu chính xác của giải thuật đẳng cấu đồ thị con Giải thuật này ápdụng cho đồ thị đơn có hướng hoặc vô hướng Giả sử chúng ta muốn tìm sự phù hợp giữa
đồ thị mẫu P và đồ thị dữ liệu G (hình 2.3)
Hình 2.3 một ví dụ về đồ thị mẫu P và đồ thị dữ liệu G
Trang 8Giải thuật Ullman đơn giản là ta đi tìm tất cả các trường hợp có thể ánh xạ các
đỉnh của P đến các đỉnh trong G theo phương pháp tìm kiếm theo chiều sâu trên cây Mỗi
node ở bậc i của cây tìm kiếm ánh xạ đỉnh V pi trong P đến một đỉnh trong G (hình 2.4).
Hình 2.4 một cây tìm kiếm cho giải thuật Ullman, ánh xạ từ đồ thị mẫu P đến đồ
thị dữ liệu G Đường tô đen trình bày sự so khớp của P trong G.
Mỗi nhánh từ gốc đến node lá trong cây tìm kiếm trình bày một ánh xạ các đỉnh
trong P đến các đỉnh trong G Bất kỳ ánh xạ nào mà duy trì tính kề trong P và trong G ( các đỉnh kề nhau trong P ánh xạ với các đỉnh kề nhau trong G) thể hiện một đằng cấu từ
P đến một đồ thị con của G Nếu không tồn tại bất cứ nhánh nào thỏa điều kiện trên thì
không tôn tại đẳng cấu Vì không gian tìm kiếm tỉ lệ với kích thước đồ thị nhập vào tăng
theo hàm mũ, Ullman đề xuất các bước tinh lọc, cắt tỉa không gian tìm kiếm ở các cây
con, loại ra những nhánh không thể ánh xạ, để thu hẹp không gian tìm kiếm.
Các tiêu chuẩn để có thể thu hẹp không gian tìm kiếm:
- Bậc của đỉnh: nếu bậc của đỉnh Vertex V pi (số cạnh có nối với đỉnh V pi) lớnhơn bậc của đỉnh V Gj thì V Pi không thể ánh xạ đến VGj Ví dụ, V p1 không thểánh xạ với V G4, vì degree(V P1)=2 và degree(V G4)=1
- Ánh xạ một một của các đỉnh: khi ta đã ánh xạ đỉnh V Pi đến V Gj, thì ta khôngthể ánh xạ đến V Pi bất kì đỉnh nào khác trong G và cũng không thể ánh xạ bất
kì đỉnh nào khác trong P đến V Gj.
- Kiểm tra sự liên thuộc: Trong khi đang đi xuống theo chiều sâu của cây, vì bất
kì đỉnh nào có khả năng ánh xạ theo tiêu chuẩn 1 và 2 thì sẽ dẫn đến việc ánh
Trang 9xạ bị thừa và không trùng khớp Ta có thể bỏ các nhánh ánh xạ nếu nó không
thỏa điều kiên liên thuộc giữa P và G Cho ví dụ, giả sử ta đã ánh xạ V P1 đến V
G1, và ta tiếp tục ánh xạ từ đỉnh V p2 đến V G3 Ta không cấn quan tâm đến sự đixuống của nhánh như thế nào, vì ánh xạ V p2 đến V G3 không phù hợp tính liênthuộc vì V P1 và V P2 là hai đỉnh kế nhau trong P, nhưng V G1 và V G3 không kế
nhau trong G Vì vấy ta loại bỏ trường hợp ánh xạ từ V P2 đến V G3
Khi ta duyệt trong cây tìm kiếm nếu trương hợp nào không thỏa một trong batiêu chuẩn trên thì ta bỏ tất cả nhánh con liên quan tới nó
Tuy ý tưởng của giải thuật cảu Ullman là duyệt trên không gian tìm kiếm là một
cây tìm kiếm được dựng từ đồ thị dữ liệu, nhưng thực chất là ta duyệt trên một cây gián
tiếp chứ không dựng cây, bởi vì việc dụng cây như thế chi phí là n! ( n là số đỉnh của đồthị mẫu) Trong quá trình duyệt cây tại mỗi node mà nó không thỏa một trong ba tiêuchuẩn được Ullman đề xuất ở trên thì ta loại tất cả các nhánh con của node đó, thu gọnkhông gian tìm kiếm,ta có thể dừng một cách an toàn không cần phải mở rộng các node
con sau đó và tránh được trường hợp quay lui, tiết kiệm được rất nhiều thời gian.
Đối với trường hợp kiểm tra sự đẳng cấu giữa hai đồ thị mà chúng ít tương đồng
với nhau thì việc cắt tỉa thu gọn được không gian tìm kiếm rất hiệu quả (không phải đi xuống quá sâu trong không gian tìm kiếm).
Với đồ thị mẫu mà có số đỉnh nhỏ thì dù đồ thị dữ liệu rất lớn thì việc tìm đằngcấu cũng rất nhanh Tranh lãng phí của việc dựng cây
Tuy nhiên giải thuât Ullman vấn gặp một vấn đề lớn là chi phí thực hiện trườnghợp xấu nhất dạng hàm mũ!
Trường hợp hai đồ thị có độ tương đồng cao thì khả năng đi xuống sâu trong
không gian tìm kiếm là rất lớn.
2.2.2 Giải thuật Messmer (1995)
Trang 10Messmer đề xuất một phương pháp giải quyết vấn đề tìm đẳng cấu đồ thị con từ
một đồ thị nhập trực tiếp với một đồ thị bất kỳ trong bộ dữ liệu đồ thị Phương pháp này
tập trung nhiều vào bước tiền xử lý tập dữ liệu đồ thị cái dùng để tạo ra cây quyết định
Sau khi đã tạo được cây quyết định từ tập dữ liệu đồ thị thì ở bước tìm đẳng cấu, đồ thị
nhập sẽ được phân lớp bởi cây quyết định với toàn bộ tập dữ liệu đồ thị nếu ở đó tồn tại
đẳng cấu đồ thị con tại một node Nếu bỏ qua thời gian cần cho bước tiền xử lý, thì tính
toán độ phức tạp của giải thuật Messmer chỉ bình phương với số đỉnh của đồ thị nhập
Hơn thế nữa, nó không phụ thuộc vào số lượng tập dữ liệu đồ thị và số cạnh của bất kì đồ
thị nào trong tập dữ liệu Tuy nhiên cây quyết định được khởi tạo ở bước tiền xử lý chi
phí ở dạng hàm mũ với số đỉnh của của tập dữ liệu đồ thị
Trong nghiên cứu của Messmer ta có một số định nghĩa và kí hiệu được sử dụng
xuyên suốt quá trình của giải thuật
Rõ ràng, ma trận M thì không phải là ma trận kề duy nhất biển diễn cho đồ thị G.
Nếu M là biễu diển của G, thì bất kỳ hoán vị nào của M cũng đều là biễu diễn của G.
Trang 11M’ = P.M.PT (1)
Trong đó P T là kí hiệu ma trận chuyển vị của P, thì M ’ cũng là một ma trận kề của
G Nếu pịj = 1thì đỉnh thứ j trong M sẽ trở thành đỉnh thứ i trong M ’
Ví dụ: cho đồ thị g 1 như sau
Ta có 6 ma trận kề biểu diễn cho ma trận g 1 như sau:
Để xây dựng cây quyết định trước tiên ta phải tìm tất cả các trường hợp hoán vị
của ma trận kề biểu diễn cho đồ thị theo phương pháp ánh xạ của công thức (1)
Cây quyết định được xây dựng theo các thành phần dòng cột của mỗi ma trận kề
M p € A(G) (A(G) là tập các ma trận kề biểu diển cho đồ thị) Đỉnh của cây quyết định là
một node gốc đơn Những node con trực tiếp của node gốc tạo nên cấp đầu tiên của cây
quyết định Với n node con đầu tiên sẽ phân lớp tập dữ liệu đồ thị thành n lớp, với m là
cấp của mỗi node trong cây quyết định thì giá trị để phân lớp đồ thị là các thành phần của
dòng m cột n trong ma trận kề Nếu tại mỗi node của cây mà các thành phần dòng cột của
các ma trận kề giống nhau thi chúng được gom chung thành một nhóm, đảm bảo theo cây
phân cấp từ trên xuống của cây quyết định (hình 2.5)
Trang 12Hình 2.5 cây quyết định cho phân lớp của các ma trận kề A F của đồ thị g 1
Một yêu cầu quan trọng của cây quyết định là sự phân lớp tại mỗi cấp phải được
tính một cách dễ dàng Bên cạnh đó, nêu một ma trận M P thì được phân lớp theo thành
phần dòng cột thứ k ak, những nhánh con co cùng phân lớp từ ak , với aki = ak thì cúng
phải được tính một cách dễ dàng Thật vậy, ta thấy các thành phần dòng cột thứ k có
chính xác 2k-1 yếu tố mij từ dòng thứ k cột thứ k trong ma trận kề và mỗi thành phần đó
được dùng như một chỉ mục Để tìm một thành phần trong ak ta có thể thực hiện trong
2k+1 bước Vì vậy để tìm một node con trong cây quyết định tại node cấp k ta tôn
O(2k-1) = O(k) bước Cho ví dụ, ta xem xét node thứ 3 cây quyết định trong hình 3, có ba
nhánh hướng lần lượt từ node 3 đến node 5, 6, và 7, các ma trận kề đều phù hợp tại các
node 5, 6, 7 đều có chưa thành phần dòng cột giống nhau thỏa với ak tại node thứ 3, vì thế
chúng mới được phân chung một lớp tại node 3
Đây là cách dựng cây quyết định từ một đồ thị đơn Nếu ta có một vài đồ thị trong
tập dữ liệu đồ thị thì cách đơn giản nhất ta cũng có thể tạo một cây quyết định cho mỗi đồ
thị Tuy nhiên ta vẫn có thể biểu diễn một vài đồ thị chung trong một cây quyết định
Trang 13Cách tạo cây quyết định cho một vài đồ thị cũng rất đơn giản, giống với cách tạo
cho một đồ thị nếu ta vẫn có được tập ma trận kề biểu diễn cho tất cả các đồ thị có trong
tập dữ liệu (hình 2.6)
Hình 2.6 cây quyết định cho đồ thị g1 trong hình 3 và đồ thị g2.
Tìm đẳng cấu đồ thị con từ cây quyết định
Cũng từ trên ý tưởng của Ullman, Messmer xây dựng không gian tìm kiếm bằng
cây quyết định và phương pháp tìm đẳng cấu đồ thị con cũng đơn giản là ta duyệt theo
nhánh của cây, quá trình đi xuống node con khi đồ thị nhập thỏa điều kiện tại mỗi node
cha, tức là phải thỏa các thành phần dòng cột ak.Ta cũng ánh xạ ma trận kề của đồ thị
nhập thành một tập các thành phần dòng cột cái để chúng ta dùng kiểm tra giá trị phân
lớp tại mỗi node của cây quyết định Đồ thị nhập sẽ được phân lớp bởi cây quyết định với
toàn bộ tập dữ liệu đồ thị nếu ở đó tồn tại đẳng cấu đồ thị con tại một node, các đồ thị có cùng
phân lớp với đồ thị nhập thuộc các nhánh hướng trực tiếp từ node mà ở đó tồn tại đẳng cấu đồ thị
con
Trang 14 Ưu điểm
Như ta đã thấy phép duyệt trên cây quyết định là tối hơn hơn phép duyệt trên cây
tìm kiếm của Ullman là rất nhiều Phép duyệt trên cây quyết định chỉ đi theo một hướng
duy nhất, không đổi hướng, quay lui Và đồ thị nhập đẳng cấu đồ thị con với đồ thị trong
dữ liệu tại một node trên một nhanh đi duy nhất, nếu không tôn tại node nay thì sẽ không
có đẳng cấu
Theo Messmer đã phân tích thì độ phức tạp của bước duyệt cây tìm đẳng cấu đồ
thị con khoảng O(M2) – M là số đỉnh lớn nhất của một tập dữ liêu đồ thị
Và việc tìm được đẳng cấu đồ thị con của đồ thị nhập với tập dữ liệu đồ thị nó
đồng thời xác định đồ thị đó thuộc phân nhóm nào của các đồ thị trong dữ liệu Điều này
rất có lợi cho chúng ta trong những bài toán tìm sự tương đồng, phân lớp độ tương tự,
khai thác được những đặc điểm giống của các đồ thị, như áp dụng trong lĩnh vực phân
tích mạng xã hội…
Như ta đã nói ở đầu bài toán tạm thời bỏ qua việc tiền xử lý xây dựng cây quyết
định từ tập đồ thị Việc tìm tất cả các trường hợp hoán vị của ma trận kề biểu diển cho
một đồ thị n đỉnh là n! Xây dựng cây quyết định chi phí tốn ở dạng hàm mũ với số đỉnh
của đổ thị Và nó thật sự có vấn đề đối với giải thuật này nếu đồ thị với số lượng đỉnh
lớn
2.2.3 Độ tương tự đồ thị
Việc tìm đẳng cấu đồ thị và đẳng cấu đồ thị con là một vấn đề phức tạp gặp nhiều
khó khăn, nhưng bên cạnh đó thì bài toán tìm đằng cấu của hai đồ thị con còn nhiều khó
khăn hơn thế nhiều Mà việc tìm được đẳng cấu của hai đồ thị con có nhiều ứng dụng
quan trọng, điển hình là trong việc tính độ tương tự giữa hai đồ thị từ việc xác định được
các đồ thị con đẳng cấu
Giải quyết bài toán tính độ tương tự giữa các đồ thị, hiện nay có nhiều hướng tập
trung vào giải quyết bài toán tìm đồ thị con đầy đủ (clique) Xác định được các clique tối
đại của đồ thị ta có thể nhận biết được độ tương tự giữa các đồ thị, vì các clique tối đại nó
mang cái đặc trưng nhất của chính đồ thị đó, và thay vì ta phải tính độ tương tự giữa các
Trang 15đồ thị thì ta chuyển sang tính độ tương tự của các clique tối đại Phương pháp này dựa
trên việc xác định tính tương tự dựa vào điểm đặc trưng nhất của nó, nếu điểm đặc trưng
đó càng giống nhau thì nó càng giống nhau
Clique (đồ thị con đầy đủ) : cho đồ thị G gồm có tập đỉnh V và tập cạnh E Đồ
thị G được gọi là đồ thị đầy đủ khi với một cặp đỉnh bất kỳ đều có một cạnh nối giữa
chúng
Một cách tiếp cận về việc tìm đồ thị con đầy đủ là dựa trên ý tưởng của giải thuật
Ullman,ta tìm được các đồ thị đầy đủ từ không gian tìm kiếm xây dựng bằng cây tìm
kiếm từ các đỉnh của đồ thị Quá trình tìm đồ thị đầy đủ là quá trình duyệt cây tìm kiểm
theo chiều sâu, tại mỗi đỉnh của cây chứa các đỉnh thuộc tập đỉnh của đồ thị, ta phải kiểm
tra các đỉnh đó có tạo được đồ thị con đầy đủ hay không từ ma trận kề biểu diển của đồ
thị Đồ thị con đẩy đủ tối đại của đồ thị là những đồ thị con mà tại một node của cây các
đỉnh có thể lập thành một đồ thị đầy đủ và số đỉnh của node là lớn nhất Theo tính chất
các đồ thị con của clique cũng phải là clique, ta có thể thu gọn không gian tìm kiếm, tức
là tại một node là không thể thành lập được một đồ thị đầy đủ thì ta loại bỏ tất cả các cây
con của nó Việc tìm đồ thị con đầy đủ theo phương pháp này cũng gặp phải những
khuyết điểm cơ bản của giải thuật Ullman, độ phức tạp dạng hàm mũ
Daniel Baum có đề xuất phương pháp tìm tất cả clique tối đại trong bài báo:
“Finding all maximal cliques of a family of induced subgraph”[3].
2.3.So sánh giải thuật của Ullman và Messmer
Từ ưu khuyết điểm của hai giải thuật ta thấy tùy vào trường hợp cụ thể ta có thể sử
dụng phương pháp nào cho phù hợp Tính về tổng thời gian chạy giải thuât của Ullman
và Messmer trong cùng một lúc thì giải thuật của Ullman sẽ tốt hơn, chạy nhanh hơn, vì
trường hợp xấu nhất của Ullman mới rơi vào độ phức tạp ở dạng hàm mũ, trong khi đó ở
bước tiền xử lý khởi tạo cây quyết định của Messmer đã rơi vào độ phức tạp ở dạng hàm
mũ và bước đến bước duyệt cây quyết định mất O(M2)
Giải thuật của Ullman còn thích hợp mới một số bài toán cụ thể mà ta có thể dựa
vào đặc trưng của bài toán mà có thể thu gọn được không gian tìm kiếm một cách tốt