Thuật toán CONGA

Một phần của tài liệu Phát hiện cộng đồng sử dụng thuật toán GONGA và khai phá quan điểm cộng đồng trên mạng xã hội (Trang 26 - 54)

Những năm gần đây, có thể nhận thấy sự phát triển của các thuật toán để chia nhóm đồ thị mạng xã hội, nhằm xác định cấu trúc của cộng đồng mạng. Phần lớn trong số này chỉ tìm thấy các cộng đồng tách rời nhau, nhưng trong nhiều mạng trong thế giới thực, các cộng đồng thường có sự giao thoa với nhau. Thuật toán CONGA là thuật toán hướng đến việc phát hiện ra chồng chéo trong các mạng, bằng cách mở rộng thuật toán nổi tiếng Girvan-Newman dựa trên các biện pháp tính toán độ trung gian. [13] Cũng giống như các thuật toán học ban đầu, chúng ta thực hiện phân nhóm phân vùng mạng xã hội vào một số lượng cụm nào đó, nhưng cho phép các nhóm này chồng chéo lên nhau. Để làm được điều này, cần có một cách tách (sao chép) một đỉnh để cho phép nó tồn tại ở nhiều nhóm khác nhau. Tức là với một đỉnh v cần chia ra thành d(v) bản sao. Chúng tôi cần quyết định xem một đỉnh khi nào được chia, và chia như thế nào. Cũng giống như Girven-Newman, chúng ta chũng chỉ xem xét mạng với các cạnh vô hướng, không có trọng số.

Trong các thuật toán Girven-Newman, hoạt động cơ bản là loại bỏ từng cạnh. CONGA giới thiệu một phương pháp thứ hai: chia tách một đỉnh. Trong mỗi bước phân chia, một đỉnh v luôn luôn được chia thành hai đỉnh v1 và v2, đồng thời với đó, cạnh nối liền v với một đỉnh khác sẽđược chuyển hướng sang v1 hoặc v2. Như vậy, v1

hay v2 đều có ít nhất một cạnh nối đến nó trước phép phân tách. Bằng cách chia liên tục như vậy, cuối cùng một đỉnh v sẽ được chia thành d(v) đỉnh. Các đỉnh được phân chia từng bước trong quá trình phân nhóm. Phương pháp tách nhị phân hoàn thoàn phù hợp với tư tưởng thuật toán Girven-Newman, vì cũng giống như việc loại bỏ cạnh, việc chia tách một đỉnh cũng có thể phân tách cụm ra thành hai. Điểm mấu chốt nhất của thuật toán CONGA là cách đưa ra khái niệm vềđộ trung gian. Điều này quyết định

khi nào một đỉnh sẽ được phân chia, và những cạnh nào sẽ thuộc phần nào của đỉnh sau khi chia tách.

Nhưđã đề cập ở trên, một đỉnh v sẽđược phân chia thành v1 và v2 và hai đỉnh này sẽ thuộc hai cụm khác nhau. Chúng ta có thể xác minh điều này bằng cách đếm số con đường ngắn nhất đi qua hai đỉnh mà cần qua giữa v1 và v2 (hay nói cách khác là qua điểm v ban đầu). Nếu có nhiều đường đi ngắn nhất qua (v1, v2) hơn trên bất kì cạnh thực tế nào thì đỉnh v là đỉnh nên được chia. Khi đó, chúng tôi sẽ thêm một cạnh mới “tưởng tượng” vào giữa v1 và v2. Nếu u là một người hàng xóm của v1 và w là một người hàng xóm của v2, khi đó tất cả các con đường ngắn nhất qua v dọc theo các cạnh {u, v}, {v, w} sẽ cùng phải đi qua {u, v1}, {v1, v2}, {v2, w}. Từđó ta có thể tính được số đường đi ngắn nhất mà đi qua cạnh v1v2 này. Có tổng cộng 2d(v)-1 cách phân chia v ra làm đôi, trong đó d(v) là bậc của v trong đồ thị. Phép phân đôi nào dẫn đến độ trung gian lớn nhất là phép phân chia được lựa chọn. Từđó, ta tính toán được độ trung gian của phép phân chia cho tất cả các đỉnh. Với mỗi đỉnh có độ trung gian của phép phân chia lớn hơn giá trị lớn nhất trong các độđo trung gian của cạnh, ta thực hiện chia đỉnh đó làm đôi, sử dụng phép phân chia tối ưu nhất của nó.

Phương pháp này không bao giờ phân một đỉnh thành hai đỉnh con mà trong đó một trong hai đỉnh con chỉ có duy nhất một đỉnh kề. Điều này là do độ trung gian của cạnh {v1, v2} cũng bằng độ trung gian của {u,v1} như trong hình 2.2. Trong trường hợp này thì việc loại bỏ cạnh {u,v} sẽ thích hợp hơn là việc phân tách đỉnh v. Chính vì vậy, các đỉnh có bậc nhỏ hơn 4 trong đồ thị không bao giờ bị chia nhỏ và tổng quát lại chỉ có 2d(v)-1–d(v)-1 cách phân chia một đỉnh thành hai phần trong một đồ thị.

Hình 2.2: Ví dụ trường hợp không phân tách đỉnh v trong đồ thị

Trong phương pháp này, nhóm tác giảđịnh nghĩa của độ trung gian của một đỉnh v trong đồ thị là tổng số đường đi ngắn nhất giữa các cặp đỉnh của đồ thị mà đi qua v. Ta có thể dễ tính được độ trung gian của đỉnh CB(v) từ các độ đo trung gian của cạnh

) (e

∑ Γ ∈ − − = ) ( ) 1 ( ) ( 2 1 ) ( v e B B v C e n C Trong đó Γ(v)là tập các cạnh có v là đỉnh cuối và n là số đỉnh của đồ thị chứa v. Ta có thể thấy từ định nghĩa, độ trung gian của các đỉnh luôn lớn hơn độ trung gian phép phân chia của các đỉnh. Vì vậy tác giả sử dụng độ trung gian của các đỉnh là cận trên của độ trung gian phép phân chia, nếu độ trung gian của các đỉnh mà nhỏ hơn giá trị lớn nhất độ trung gian của các cạnh, đỉnh đó coi như không được phân chia.

Hình 2.3: Ví dụ về phép phân chia một đỉnh trong đồ thị

Để tính toán độ trung gian phép phân chia của đỉnh v, ta sử dụng một độđo khác là độ trung gian theo cặp của v theo (u,w). Giả sử u, w là 2 đỉnh kề bất kỳ của v, độ trung gian theo cặp của v theo (u,w) chính là số đường đi ngắn nhất của bất kỳ cặp đỉnh trong đồ thị mà đi qua (u,v) và (v,w).

Người ta biểu diễn các độ đo trung gian theo cặp của đỉnh v bậc k bằng một k- clique, trong đó mỗi đỉnh được gán nhãn một hàng xóm của v và mỗi cạnh (u,w) được gán 1 số bằng độ đo trung gian theo cặp của v theo (u,w).Từ đó ta có thể tìm được phép phân chia tốt nhất của đỉnh v theo cách như sau:

− Chọn cạnh (u,w) có giá trị nhỏ nhất

− Nhập u và w vào thành 1 đỉnh uw duy nhất

− Với mỗi đỉnh x trong clique ta thay cạnh (u,x) điểm b1 và cạnh (w,x) điểm b2 bằng cạnh (uw,x) điểm b1+b2

Sau k -2 phép lặp, 2 đỉnh còn lại sẽ là phép phân chia tối ưu nhất cho đỉnh v với độ trung gian phép phân chia chính là điểm số của cạnh tạo bởi 2 đỉnh đó.

Ta có hình 2.3 là miêu tả cho quá trình tìm phép phân chia tối ưu của trường hợp xét trong hình 4, trong đó phép phân chia tối ưu nhất là (abc) và (ade)

Hình 2.4: Tìm phép phân chia tối ưu

Các độ trung gian theo cặp của một đỉnh được tính toán hoàn toàn theo định nghĩa của nó. Như vậy, tổng quát lại, thuật toán CONGA chia làm các bước như sau:

Đánh giá thuật toán:

1. Ưu điểm: Giải quyết được vấn đề chồng chéo cộng đồng bằng cách đặt ra phép phân chia đỉnh, ngoài ra nội dung thuật toán tương đối dễ hiểu và xác 1. Tính độ trung gian của tất cả các cạnh trong đồ thị CB

Repeat {

2. Tính độ trung gian các đỉnh trong đồ thị dựa vào độ trung gian các cạnh: ∑ Γ ∈ − − = ) ( ) 1 ( ) ( 2 1 ) ( v e B B v C e n C 3. V = { vi / CB(vi) > max CB(ej) } 4. If V {

4.1. Tính độ trung gian theo cặp của các đỉnh trong danh sách; 4.2. Xác định phép phân chia tối ưu nhất cho các đỉnh đó; }

5. Thực hiện loại bỏ cạnh hoặc phân chia đỉnh để chia đồ thị thành cách thành phân

6. Tính lại độ trung gian của các cạnh trong tất cả các thành phần vừa được chia ra

định được phép phân chia tối ưu nhất trong các trường hợp, một điều mà thuật toán Girvan-Newman nguyên thủy không làm được.

2. Nhược điểm: Thời gian tính toán, với độ phức tạp tính toán ( 3)

m

O với m là số cạnh.

2.2. Đánh giá quan đim s dng hc máy Bayes

2.1.1. Hc máy Bayes

[1] Mô hình xác suất là một mô hình thường xuyên được sử dụng để đặc trưng cho mô hình Web về các phương diện lý thuyết, thực nghiệm và triển khai. Lý thuyết và mô hình xác suất cho phép gắn kết chặt chẽ giữa mô hình miền ứng dụng với các sự kiện, từ đó cho phép chỉ dẫn chỉ dẫn đến sự kiện từ dữ các dữ liệu nhận được thông qua quan sát. Ví dụ với mệnh đề khẳng định e “dự báo đến năm 2013 sẽ có hơn 600

triệu người sử dụng điện thoại để tham gia vào các mạng xã hội”. Khẳng định e được gọi là “xác định tốt” là đúng hay sai dựa trên những con số thống kê về lượng người sử dụng điện thoại để tham gia mạng xã hội trong đến năm 2013.

Cách thông dụng nhất thường được sử dụng để đưa ra khẳng định trên là trích dẫn gián tiếp tới kết quả nghiên cứu do các tổ chức, cá nhân có uy tín công bố. Hoặc một cách khác nữa để dẫn đến khẳng định e, chẳng hạn như thông qua số liệu thống kê từ một số máy tìm kiếm điển hình. Xác suất P(e) có thể được xem như một giá trị số phản ánh mức độ đúng/sai của sự kiện e trong thế giới thực, được tính theo các thông tin hiện có. Giá trị này được coi như “độ tin tưởng”, thường được gọi là mô tả Bayes (the Bayesian interpretation) của xác suất P(e) về sự kiện e. Để chính xác hơn, sử dụng xác suất có điều kiện đối với sự kiện e được ký hiệu là P(e|), mô tả tổng quát về độ tin tưởng, trong đó là tri thức nền mà dựa trên đó cho phép ta tin cậy về sự kiện e. Trong nhiều trường hợp, bỏ qua biểu diễn nền (chỉ viết P(e)) với một quan niệm ngầm định rằng điều kiện nền luôn luôn được coi là đã có.

Mô hình tần số là một mô hình cổ điển liên quan tới việc xác định xác suất P(e) xuất hiện sự kiện e, trong đó xác suất xuất hiện biến cố e là tần số thực nhiệm thành công quan sát được trên một số hữu hạn các phép thử nghiệm được lặp đi lặp lại. Theo mô hình này, để xác định độ tin cậy của khẳng định “dự báo đến năm 2013 sẽ có hơn

600 triệu người sử dụng điện thoại để tham gia vào các mạng xã hội”, cần tiến hành lặp đi lặp lại các thử nghiệm đếm toàn bộ số lượng người sử dụng điện thoại để tham gia mạng xã hội trong năm 2013. Kết quả là xác suất P(e) được tính bằng tỷ số giữa số lượt thử nghiệm có giá trị vượt quá 600 triệu trên tổng số lượt đếm thử nghiệm.

Mô tả Bayes theo mô hình xác suất P(e| ) là tổng quát hóa của mô hình tần số nói trên. Mô tả Bayes rất hữu dụng do nó cho phép đưa ra các khẳng định “về số lượng

người hiện tại đang sử dụng điện thoại tham gia mạng xã hội” mà không cần thi hành lặp đi lặp lại các thử nghiệm đếm toàn bộ số người sử dụng nhưđã làm trong mô hình tần số. Lý luận trên đây chứng tỏ rằng, độ tin tưởng có thểđược trình diễn bằng các số thực và được thay đổi theo tỷ lệđể chuNn hóa vào đoạn [0,1]. Đồng thời, độ tin tưởng bắt buộc phải tuân theo các quy tắc xác suất, mà nói riêng là phải tuân theo định lý Bayes. Có quy tắc biến đổi co dãn xác suất như xác suất có điều kiện hay luật của xác

suất tổng vẫn còn nguyên giá trị ngữ nghĩa như trong lý thuyết xác suất.

Tiếp nhận Bayes cho phép coi xác suất trên đây như là một thực thể động theo nghĩa nó được cập nhật/biến đổi khi có thêm dữ liệu mới xuất hiện. Điều đó cho phép thay đổi độ tin tưởng của con người khi có thêm dữ liệu mới quan sát được. Cơ sở của lý luận này xuất phát từ nhận định cho rằng khi có thêm dữ liệu từ miền ứng dụng thì tri thức về miền ứng dụng cũng sẽđược cải tiến. Người ta thường thay chỉ dẫn P(e|) bằng chỉ dẫn P(e|D), trong đó D là một tập dữ liệu đã quan sát được. Khi đó, định lý Bayes đưa ra mối liên hệ giữa xác suất P(e|D) và xác suất P(D|e) như sau:

P(e|D) = |

(2.2.1.1)

Trong công thức (2.2.1.1), đại lượng P(D|e) phản ảnh độ tương tự ra sao của dữ liệu nhận được, khi đã cho e vào một mô hình gắn kết e với dữ liệu.

2.1.2. Phân lp quan đim s dng Bayes

[1] Thuật toán phân lớp Bayes là một trong những thuật toán phân lớp điển hình nhất trong học máy và khai phá dữ liệu. Đây cũng là một trong những thuật toán được sử dụng rộng rãi nhất trong phân lớp văn bản. Trong học máy Bayes thường được coi như thuật toán học máy chuNn (baseline) để so sánh với các thuật toán khác. Phân lớp Naïve Bayes thừa nhận một giả thiết mạnh là các đặc trưng độc lập lẫn nhau. Thêm vào đó, bộ phân lớp xác suất lựa chọn một vài dạng giả định cho phân phối của mỗi đặc trưng trong một lớp.

Ý tưởng chính của thuật toán là tính xác suất hậu nghiệm của sự kiện c xuất hiện khi sự kiện x đã có trong không gian ngữ cảnh τ thông qua tổng hợp các xác suất tiên nghiệm của sự kiện c xuất hiện khi sự kiện x đã có trong tất cả các điều kiện riêng T thuộc không gian τ:

|, = ∑ τ|, | (2.2.2.1)

Trong trường hợp phân lớp văn bản, xét biểu diễn văn bản thông qua tập các từ khóa có trong văn bản đó. Gọi V là tập tất cả các từ vựng. Giả sử có N lớp tài liệu là c1, c2,…, cn. Mỗi lớp ci có xác suất p(ci) và ngưỡng CtgTshi; Gọi p(c|Doc) là xác suất để tài liệu Doc thuộc lớp c hay “xác suất để sự kiện c xuất hiện khi đã có sự kiện Doc”.

Cho một lớp c và một tài liệu Doc, nếu xác suất p(c|Doc) tính được lớn hơn hoặc bằng giá trị ngưỡng CtgTshc của lớp c thì kết luận tài liệu Doc thuộc vào lớp c. Tài liệu Doc được biểu diễn như một vector có kích thước là số từ khóa trong tài liệu. Mỗi thành phần chứa một từ trong tài liệu. Thuật toán được thực hiện trên từng tâp từ vựng V, vector biểu diễn tài liệu Doc và các tài liệu có sẵn trong lớp, tính toán p(c|Doc) và quyết đinh tài liệu Doc sẽ thuộc lớp nào. Xác suất p(c|Doc) được tính theo công thức sau: p(c|Doc) = ∗ ∏ ∈%| ) ( |!"#) ∑(&)*(&) ∗ ∏ ' ∈ %('|) '|!"# (2.2.2.2) Với: p(+,|) = -., |/|. ∑(&)*+ | (2.2.2.3) Trong đó:

• |V| : số lượng các từ khóa có trong từ vựng V.

• Fj : từ khóa thứ j trong từ vựng V.

• TF(Fj | Doc) : tần suất của từ Fj trong tài liệu Doc (bao gồm cả từđồng nghĩa).

• TF(Fj | C) : tần suất của từ Fj trong lớp c (số lần Fj xuất hiện trong tất cả các tài liệu thuộc lớp c).

• p(Fj | c) : xác suất có điều kiện để từ Fj xuất hiện trong tài liệu của lớp c.

Công thức TF(Fi | c) được tính theo ước lượng xác suất Laplace. Sở dĩ có số 1 trên tử số của công thức này để tránh trường hợp tần suất từ Fi trong lớp c bằng 0 khi Fi không xuất hiện trong lớp c.

Để giảm sự phức tạp và thời gian tính toán, để ý rằng, không phải tài liệu Doc đã cho đều chứa tất cả các từ trong tập từ vựng V. Do đó, TF(Fi|Doc) = 0 khi từ Fi thuộc

V nhưng không thuộc tài liệu Doc, nên ta có 0+,|1|2 = 1 . Vậy công thức (2.2.2.2) được viết lại như sau:

p(c|Doc) = () ∗ ∏ ∈!"#0 | 1 0 ,!"#1

∑(&)*(&) ∗ ∏ ' ∈!"#(' | ) ',!"# (2.2.2.4)

Như vậy, trong quá trình phân lớp không dựa vào toàn bộ tập từ vựng mà chỉ dựa vào các từ khóa xuất hiện trong tài liệu Doc.

Xét với bài toán hiện tại khóa luận đang giải quyết là bài toán phân lớp nhị phân, ta chỉ xem xét với hai lớp:

• Positive: Những quan điểm đồng tình với sự kiện, hiện tượng được đưa ra

• Negative: Những quan điểm không đồng tình với sự kiện, hiện tượng được đưa ra

Học máy phân lớp Naïve Bayes được hoạt động theo các bước chính như sau:

Một phần của tài liệu Phát hiện cộng đồng sử dụng thuật toán GONGA và khai phá quan điểm cộng đồng trên mạng xã hội (Trang 26 - 54)

Tải bản đầy đủ (PDF)

(54 trang)