5. Nội dung nghiên cứu
2.2.2. Phương pháp sử dụng
Luận văn sử dụng các thư viện thuật toán đồ thị hỗ trợ cho bài toán dự đoán liên kết của Neo4j và hai thuật toán là đếm số tam giác và hệ số phân cụm cục bộ trong nhóm các thuật toán phát hiện cộng đồng để nâng cao khả
năng dự đoán liên kết.
Hiện tại, thư viện thuật toán đồ thị Neo4j bao gồm 6 thuật toán dự đoán liên kết: thuật toán Adamic Adar, hàng xóm chung, Kết nối ưu tiên, Phân bổ tài nguyên, Cùng cộng đồng, Tổng số lân cận.
Thư viện thuật toán chứa hàm để tính toán độ gần nhau giữa hai nút. Điểm số được tính toán sau đó có thể được sử dụng để dự đoán các mối quan hệ mới giữa chúng. Kết quả trả về giá trị 0 cho biết hai nút không gần nhau, trong khi giá trị cao hơn cho biết các nút gần nhau hơn.
Adamic Adar
Cú pháp:
RETURN gds.alpha.linkprediction.adamicAdar(nut1: Nút, nut2: Nút, { relationshipQuery:Xâu,
direction:Xâu })
Trong đó:
Bảng 2.1: Các thông số cú pháp thư viện thuật toán Adamic Adar
Tên Kiểu Mặc đinh Kiểu
Optional Mô tả
nut1 Nút null Không Nút
nut2 Nút null Không Nút khác
relationship
Query Xâu null Có
Kiểu quan hệ được sử dụng để tính toán độ giống nhau giữa nut1 và nut2 direction Xâu both (outgoing, i ncoming) Có
Hướng quan hệ được sử dụng để tính toán độ giống nhau
giữa nut1và nut2
Hàng xóm chung.
Cú pháp:
RETURN gds.alpha.linkprediction.commonNeighbors(nut1: Nút, nut2: Nút,{
relationshipQuery: Xâu, direction:Xâu
})
Trong đó:
Bảng 2.2: Các thông số cú pháp thư viện thuật toán hàng xóm chung
Tên Kiểu Mặc đinh Kiểu
Optional Mô tả
nut1 Nút null Không Nút nut2 Nút null Không Nút khác relationship
Query Xâu null Có
Kiểu quan hệ được sử dụng để tính toán độ giống nhau giữa nut1và nut2
direction Xâu
both (outgoing, i
ncoming)
Có Hướng quan hệ được sử dụng để tính toán độ giống nhau giữa nut1và nut2
Kết nối ưu tiên.
Cú pháp:
RETURN gds.alpha.linkprediction.preferentialAttachment(nut1:Nút, nut2:Nút, {
relationshipQuery:Xâu, direction:Xâu
})
Trong đó:
Bảng 2.3: Các thông số cú pháp thư viện thuật toán đính kèm thích hợp
Tên Kiểu Mặc đinh Kiểu
Optional Mô tả
nut1 Nút null Không Nút
nut2 Nút null Không Nút khác
Query toán độ giống nhau giữa nut1và nut2 direction Xâu both (outgoing, i ncoming) Có
Hướng quan hệ được sử dụng để tính toán độ giống nhau giữa nut1và nut2
Phân bổ tài nguyên.
Cú pháp:
RETURN gds.alpha.linkprediction.resourceAllocation(nut1:Nút, nut2:Nút, { relationshipQuery:Xâu,
direction:Xâu })
Trong đó:
Bảng 2.4: Các thông số cú pháp thư viện thuật toán phân bổ tài nguyên
Tên Kiểu Mặc đinh Kiểu
Optional Mô tả
nut1 Nút null Không Nút
nut2 Nút null Không Nút khác
relationship
Query Xâu null Có
Kiểu quan hệ được sử dụng để tính toán độ giống nhau giữa nut1và nut2 direction Xâu
both (outgoing, i ncoming)
Có
Hướng quan hệ được sử dụng để tính toán độ giống nhau giữa nut1và nut2
Cùng cộng đồng.
Cú pháp:
RETURN gds.alpha.linkprediction.sameCommunity(nut1:Nút, nut2:Nút, communityProperty:Xâu)
Trong đó:
Bảng 2.5: Các thông số cú pháp thư viện thuật toán cùng cộng đồng
Tên Kiểu Mặc đinh Kiểu
Optional Mô tả
nut2 Nút null Không Nút khác communityP
roperty Xâu community Có
Thuộc tính chứa cộng đồng mà các nút thuộc về.
Tổng số lân cận.
Cú pháp:
RETURN gds.alpha.linkprediction.totalNeighbors(nut1:Nút, nut2:Nút, { relationshipQuery: Xâu,
direction: Xâu })
Trong đó:
Bảng 2.6: Các thông số cú pháp thư viện thuật toán tổng số lân cận
Tên Kiểu Mặc đinh Kiểu
Optional Mô tả
nut1 Nút null Không Nút
nut2 Nút null Không Nút khác relationship
Query Xâu null Có
Kiểu quan hệ được sử dụng để tính toán độ giống nhau giữa nut1và nut2
direction Xâu
both (outgoing, i
ncoming)
Có Hướng quan hệ được sử dụng để tính toán độ giống nhau giữa nut1và nut2
Hai thuật toán đếm số tam giác và hệ số phân cụm cục bộ trong nhóm các thuật toán phát hiện cộng đồng là hai thuật toán thay vì dự đoán trên cặp nút thì chúng dự đoán trên từng nút.
Đếm số tam giác.
Thuật toán đếm tam giác đếm số lượng tam giác cho mỗi nút trong biểu đồ. Tam giác là một tập hợp ba nút trong đó mỗi nút có mối quan hệ với hai nút còn lại. Đếm tam giác đã trở nên phổ biến trong phân tích mạng xã hội, nơi nó được sử dụng để phát hiện các cộng đồng và đo lường mức độ gắn kết
của các cộng đồng đó. Nó cũng có thể được sử dụng để xác định độ ổn định của đồ thị và thường được sử dụng như một phần của việc tính toán các chỉ số mạng, chẳng hạn như hệ số phân cụm. Thuật toán đếm tam giác cũng được sử dụng để tính hệ số phân cụm cục bộ. Cú pháp: CALL gds.triangleCount.write( graphName: Xâu, configuration: Map ) YIELD globalTriangleCount: Số nguyên, nodeCount: Số nguyên, nodePropertiesWritten: Số nguyên, createMillis: Số nguyên, computeMillis: Số nguyên, postProcessingMillis: Số nguyên, writeMillis: Số nguyên, configuration: Map Trong đó:
Bảng 2.7: Các thông số cú pháp thuật toán đếm số tam giác
Tên Kiểu Mặc đinh Kiểu
Optional Mô tả
graphName Xâu n/a Không Tên của một đồ thị được lưu trữ trong danh mục.
configuration Map {} Có Cấu hình cho các thuật toán cụ thể và/hoặc lọc đồ thị.
Bảng 2.8: Cấu hình chung để thực thi thuật toán trên đồ thị đã đặt tên. Tên Kiểu Mặc đinh Kiểu Optional Mô tả nodeLabels Danh sách chuỗi ['*'] Có Lọc biểu đồ đã đặt tên bằng cách sử dụng các nhãn nút đã cho. relationshipTypes Danh sách chuỗi ['*'] Có Lọc biểu đồ đã đặt tên bằng cách sử dụng các kiểu quan hệ đã cho.
concurrency Số nguyên 4 Có Số luồng đồng thời được sử dụng để chạy thuật toán.
mutateProperty Xâu n/a Không
Thuộc tính nút trong biểu đồ GDS mà số lượng tam giác được viết.
Bảng 2.9: Kết quả
Tên Kiểu Mô tả
globalTriangleCount Số nguyên Tổng số tam giác trong biểu đồ. nodeCount Số nguyên Số nút trong biểu đồ.
nodePropertiesWritten Số nguyên Số thuộc tính được ghi vào Neo4j. createMillis Số nguyên Mili giây để tạo biểu đồ.
computeMillis Số nguyên Mili giây để chạy thuật toán.
postProcessingMillis Số nguyên Mili giây để tính toán các số liệu toàn cầu.
writeMillis Số nguyên Mili giây để ghi kết quả trở lại Neo4j.
configuration Map Cấu hình được sử dụng để chạy thuật toán.
Hệ số phân cụm cục bộ.
Thuật toán hệ số phân cụm cục bộ tính toán hệ số phân cụm cục bộ cho mỗi nút trong biểu đồ. Hệ số phân cụm cục bộ Cn của nút n mô tả khả năng các lân cận của n cũng được kết nối. Để tính Cn, chúng ta sử dụng số tam giác mà một nút là một phần của Tn , và bậc của nút dn . Công thức để tính toán hệ
số phân cụm cục bộ như sau: 2 1 n n n n T C d d (5)
Trong công thức trên, số lượng tam giác được yêu cầu để tính hệ số phân cụm cục bộ. Để làm điều này, thuật toán đếm số tam giác được sử dụng.
Cú pháp: CALL gds.localClusteringCoefficient.write( graphName: String, configuration: Map ) YIELD averageClusteringCoefficient: Double, nodeCount: Integer, nodePropertiesWritten: Integer, createMillis: Integer, computeMillis: Integer, postProcessingMillis: Integer, writeMillis: Integer, configuration: Map Trong đó:
Bảng 2.10: Các thông số cú pháp thuật toán hệ số phân cụm cục bộ
Tên Kiểu Mặc đinh Kiểu
Optional Mô tả
graphName Xâu n/a Không Tên của một đồ thị được lưu trữ trong danh mục.
configuration Map {} Có Cấu hình cho các thuật toán cụ thể và/hoặc lọc đồ thị.
Bảng 2.11: Cấu hình chung để thực thi thuật toán trên đồ thị đã đặt tên
Tên Kiểu Mặc đinh
Kiểu
Optional Mô tả
sách chuỗi cách sử dụng các nhãn nút đã cho. relationshipTypes Danh sách chuỗi ['*'] Có Lọc biểu đồ đã đặt tên bằng cách sử dụng các kiểu quan hệ đã cho. concurrency Số nguyên 4 Có
Số luồng đồng thời được sử dụng để chạy thuật toán. Cũng cung cấp giá trị mặc định cho 'writeConcurrency'. writeConcurrency Số nguyên Giá trị của 'concurre ncy' Có
Số luồng đồng thời được sử dụng để ghi kết quả vào Neo4j.
writeProperty Xâu n/a Không
Thuộc tính nút trong cơ sở dữ liệu Neo4j mà hệ số phân cụm cục bộ được ghi vào.
Bảng 2.12: Cấu hình cụ thể của thuật toán
Tên Kiểu Mặc đinh Kiểu
Optional Mô tả
triangleCountProp
erty Xâu n/a Có
Thuộc tính nút chứa số lượng tam giác được tính trước..
Bảng 2.13: Kết quả
Tên Kiểu Mô tả
averageClusteringCoefficient Số nguyên Hệ số phân cụm trung bình. nodeCount Số nguyên Số nút trong biểu đồ.
nodePropertiesWritten Số nguyên Số thuộc tính được ghi vào Neo4j. createMillis Số nguyên Mili giây để tạo biểu đồ.
computeMillis Số nguyên Mili giây để chạy thuật toán.
postProcessingMillis Số nguyên Mili giây để tính toán các số liệu toàn cầu.
writeMillis Số nguyên Mili giây để ghi kết quả trở lại Neo4j. configuration Map Cấu hình được sử dụng để chạy thuật