1. Trang chủ
  2. » Luận Văn - Báo Cáo

Luận văn thạc sĩ Khoa học máy tính: Nghiên cứu hiệu năng giải thuật Personalized pagerank

54 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

Trang 1

ĐẠI HỌC QUỐC GIA TP HCM

TRƯỜNG ĐẠI HỌC BÁCH KHOA

-NGUYỄN TUẤN MINH

NGHIÊN CỨU HIỆU NĂNG GIẢI THUẬT PERSONALIZED PAGERANK

Chuyên ngành: Khoa học Máy tính Mã số: 8.48.01.01

LUẬN VĂN THẠC SĨ

TP HỒ CHÍ MINH, tháng 7 năm 2022

Trang 2

CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠI:

TRƯỜNG ĐẠI HỌC BÁCH KHOA –ĐHQG -HCM

Cán bộ hướng dẫn khoa học: PGS TS Thoại Nam

Cán bộ chấm nhận xét 1: TS Lê Thanh Vân

Cán bộ chấm nhận xét 2: PGS TS.Nguyễn Văn Sinh

Luận văn thạc sĩ được bảo vệ tại Trường Đại học Bách Khoa, ĐHQG Tp HCM ngày 26 tháng 07 năm 2022

Thành phần Hội đồng đánh giá luận văn thạc sĩ gồm:

1 PGS.TS Trần Văn Hoài ……… - Chủ tịch Hội đồng 2 TS Trần Tuấn Anh……… - Thư ký

3 TS Lê Thanh Vân……… - Phản biện 1 4 PGS.TS Nguyễn Văn Sinh………… - Phản biện 2

5 TS Dương Ngọc Hiếu……… - Ủy viên

Xác nhận của Chủ tịch Hội đồng đánh giá LV và Trưởng Khoa quản lý chuyên ngành sau khi luận văn đã được sửa chữa (nếu có)

KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH

Trang 3

ĐẠI HỌC QUỐC GIA TP.HCM

TRƯỜNG ĐẠI HỌC BÁCH KHOA CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập - Tự do - Hạnh phúc

NHIỆM VỤ LUẬN VĂN THẠC SĨ

Họ tên học viên : Nguyễn Tuấn Minh MSHV: 1970125

Ngày, tháng, năm sinh : 12/07/1996 Nơi sinh : Hồ Chí Minh Chuyên ngành : Khoa Học Máy Tính Mã số : 8480101

I TÊN ĐỀ TÀI :Nghiên cứu hiệu năng giải thuật Personalized PageRank /Studying Performance of Personalized PageRank Algorithm

II NHIỆM VỤ VÀ NỘI DUNG : Thực hiện nghiên cứu và đánh giá giải thuật

Personalized PageRank trên đồ thị có hướng

III NGÀY GIAO NHIỆM VỤ : 06/09/2021

IV NGÀY HOÀN THÀNH NHIỆM VỤ : 06/06/2022 V CÁN BỘ HƯỚNG DẪN :PGS.TS THOẠI NAM

Trang 4

LỜI CẢM ƠN

Tôi xin trân trọng gửi lời biết ơn chân thành đến thầy PGS.TS Thoại Nam, người đã trực tiếp hướng dẫn tận tình, chỉ bảo tôi trong quá trình thực hiện đề tài Đồng thời, thầy cũng là người luôn cho tôi những lời khuyên vô cùng quý giá về cả kiến thức chuyên môn cũng như định hướng phát triển sự nghiệp Tôi xin cảm ơn thầy về những kiến thức mà thầy đã truyền đạt Tôi cũng xin chân thành cảm ơn tất cả quý Thầy, Cô trong Khoa đã tận tình giúp đỡ để tôi hoàn thành đề tài Tôi xin cảm ơn về tất cả sự giúp đỡ của anh, chị và các bạn học viên cùng học chung với tôi và đã giúp tôi hoàn thành đề tài luận văn Thạc sĩ này, và góp ý cho tôi trong quá trình thực hiện luận văn

Hồ Chí Minh, ngày 26 tháng 07 năm 2022 Nguyễn Tuấn Minh

Trang 5

TÓM TẮT LUẬN VĂN

Trong thập kỉ qua PageRank đã nổi lên như một thước đo hiệu quả về danh tiếng cho cả biểu đồ web và mạng xã hội Tìm khoảng cách giữa nhiều thực thể bằng cách sử dụng các thước đo khoảng cách, độ tương tự là một trong những hoạt động cốt lõi của khai thác dữ liệu và khám phá kiến thức Tương tự như vậy, việc tìm kiếm sự gần gũi giữa nhiều nút trong đồ thị cũng là một vấn đề quan trọng trong khai thác dữ liệu đồ thị Personalized PageRank (PPR) là một trong những giải thuật tính toán cho thước đo mức độ gần nhau của các nút được nghiên cứu kỹ lưỡng nhất để khai thác dữ liệu biểu đồ và cũng đã được nhiều ứng dụng áp dụng.

Personalized PageRank là một biến thể của PageRank, là một cách đo lường tầm quan trọng của các trang web liên kết Ý tưởng cốt lõi của PageRank là giới thiệu mô hình các bước đi ngẫu nhiên Giống như PageRank ban đầu, PPR cũng được xác định bằng cách sử dụng mô hình bước đi ngẫu nhiên Tuy nhiên, PPR giả định rằng một người đi du lịch quay trở lại vô hạn (nhảy) đến “các nút hạt nhân”, là một tập hợp các nút cụ thể, thay vì tất cả các nút Một nút có điểm PPR cao có thể được coi là một nút gần với các hạt nhân Nó tạo ra điểm số liên quan giữa các nút như các thước đo khoảng cách, độ tương tự truyền thống, tức là khoảng cách đường đi ngắn nhất và lưu lượng tối đa PPR có thể phản ánh các đặc điểm cấu trúc tổng thể của đồ thị.

Do những giá trị của nó, PPR đã được áp dụng cho một loạt các ứng dụng như truy xuất thông tin, đề xuất nhận biết ngữ cảnh, phân tích mạng xã hội, ngôn ngữ học tính toán, xử lý hình ảnh, phát hiện dị thường và sinh học Việc sử dụng giải thuật PPR sẽ được áp dụng rộng rãi hơn cho nhiều bài toán khác Qua đó trong phần đề tài này thực hiện nghiên cứu sử dụng Personalized PageRank trong Apache Spark để đánh giá, phân tích bài toán về đồ thị Sự lan truyền, ảnh hưởng giữa các nút trong đồ thị có hướng

Trang 6

ABSTRACT

Over the past decade PageRank has emerged as an effective measure of reputation for both web graphs and social networks Finding distance between multiple entities using distance measures, similarity is one of the core operations of data mining and knowledge discovery Likewise, finding the closeness between multiple nodes in a graph is also an important problem in graph data mining Personalized PageRank (PPR) is one of the most well-studied computational algorithms for the measure of node proximity for graph data mining and has also been adopted by many applications

Personalized PageRank is a variation of PageRank, which is a measure of the importance of linking sites The core idea of PageRank is to introduce the random walk model Like the original PageRank, the PPR is also determined using a random walk model However, PPR assumes that a person travels back infinitely (jumps) to "nuclear nodes", which are a specific set of nodes, instead of all nodes A node with a high PPR score can be considered a node close to the nuclei It generates a correlation score between nodes as traditional distance measures, similarity i.e shortest path distance and maximum traffic PPR can reflect the overall structural features of the graph

Because of its merits, PPR has been applied to a wide range of applications such as information retrieval, context-aware recommendation, social network analysis, computational linguistics, image processing, detection anomalies and biology The use of PPR algorithm will be more widely applied to many other problems Thereby in this topic, we conduct research on using Personalized PageRank in Apache Spark to evaluate and analyze graph problems The propagation, influence between nodes in a directed graph.

Trang 7

LỜI CAM ĐOAN

Tôi cam đoan rằng, các công việc trình bày trong luận văn này là do chính tôi thực hiện và chưa có phần nội dung nào của luận văn này được nộp để lấy một bằng cấp ở trường này hoặc trường khác Nếu không đúng như đã nêu trên, tôi xin hoàn toàn chịu trách nhiệm về đề tài của mình

Người cam đoan

Nguyễn Tuấn Minh

Trang 8

LỜI CAM ĐOAN v

CHƯƠNG 1: GIỚI THIỆU 1

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 3

2.1 Giải thuật PageRank 3

2.2 Giải thuật Personalized PageRank 5

2.3 Giải thuật Personalized PageRank trong Spark 6

2.4 Thực hiện cho bài toán thực tiễn 7

CHƯƠNG 3: BÀI TOÁN PHÂN TÍCH ẢNH HƯỞNG TRÊN ĐỒ THỊ 8

3.1 Giới thiệu phân tích bài toán và giải thuật Personalized PageRank 8

3.2 Bài toán phân tích ảnh hưởng trên đồ thị 9

3.3 Giải pháp 1 11

3.4 Giải pháp 2 13

CHƯƠNG 4: TRIỂN KHAI VÀ ĐÁNH GIÁ 16

4.1 Môi trường thực nghiệm sử dụng Spark 16

4.2 Bộ dữ liệu thực hiện 16

4.4 Kịch bản đánh giá 17

4.4.1 Kịch bản 1: Thực hiện tính toán trên một nút nguồn 17

4.4.2 Kịch bản 2: Thực hiện đo trên một tập nút nguồn 26

4.4.3 Kịch bản 3: Thực hiện lựa chọn hai tập nút nguồn con khác nhau (ba nút nguồn VSR (xanh) và hai nút nguồn VSR(đỏ)) 27

Trang 9

4.4.4 Kịch bản 4: Đánh giá thời gian thực hiện giai đoạn 1 28

4.4.5 Kịch bản 5: Thực hiện đánh giá trên tổ hợp trên ba nút nguồn VSR(xanh) và hai nút nguồn VSR(đỏ) 30

4.4.6 Kịch bản 6: Thực hiện đánh giá thay đổi tốc độ ở tập nút nguồn VSR(đỏ) 37

4.4.7 Phân tích sự thay đổi về VInterfering theo từng bước lan truyền 39

CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG MỞ RỘNG 41

TÀI LIỆU THAM KHẢO 43

PHẦN LÝ LỊCH TRÍCH NGANG 45

Trang 10

CHƯƠNG 1: GIỚI THIỆU

Cùng với sự phát triển và tốc độ nhanh của công nghệ thông tin, các bài toán về đồ thị đã trở thành các lĩnh vực quan trọng và cần thiết cho nhiều lĩnh vực khoa học và ứng dụng Trong những thập kỷ gần đây, người ta đã quan tâm nhiều hơn tới đồ thị và các ứng dụng của nó Các bài toán liên quan đến đồ thị được mở rộng áp dụng cho nhiều vấn đề trong cuộc sống Bài toán về đồ thị như sự lan truyền dịch bệnh trong môi trường tự nhiên, các sự gợi ý liên quan trong mạng xã hội, quy hoạch các từ đồng nghĩa về các loại thuốc trong sinh học,… Xử lý các bài toán về đồ thị giữa các đỉnh với nhau, giữa các cạnh với nhau thì yếu tố thời gian là yếu tố không thể bỏ qua cho quá trình thực hiện bài toán nào Thời gian thực thi cho các bài toán khác nhau, đồ thị có kích thước từ nhỏ đến lớn cũng ảnh hưởng đến thời gian phân tích cho vấn đề

Giải thuật PPR có hiệu quả cho các bài toán liên quan đến đồ thị Sử dụng giải thuật hợp lý giúp giảm thời gian tính toán Personalized PageRank giúp phân tích được vấn đề nhanh chóng hơn, tiết kiệm thời gian hơn

Trong các bài toán về đồ thị thì sau đây chúng ta sẽ thực hiện phân tích các bài toán cho Luận văn: đánh giá tác động của một nút từ nút nguồn khác; tác động từ các nút nguồn đó nếu thay đổi tốc độ thì có ảnh hưởng thế nào đến nút mình muốn đánh giá? Bài toán theo suy nghĩ ban đầu, nếu chúng ta chạy thực hiện tính toán các nút theo mỗi lần yêu cầu, thay đổi số phần tử nguồn, tốc độ thì sẽ làm tốn rất nhiều thời gian thực hiện Mỗi lần thay đổi sẽ phải tính toán, phân tích lại sẽ gây tốn thời gian nhiều lần

Qua phân tích cho bài toán thì ta thấy giải thuật PPR phù hợp để thực hiện tính toán, giải quyết các vấn đề cho các bài toán trên Personalized PageRank chủ yếu đánh giá tác động vào một nút trong đồ thị Giải thuật PPR sẽ giúp ta đánh giá về giá trị các nút từ các nút nguồn khác nhau Xem xét sự tác động của nút nguồn đến các nút khác Thay đổi chi phí thực hiện trong quá trình tính toán Để giảm bớt thời gian thực hiện thì qua đó Luận văn có đề xuất ra ý kiến để hỗ trợ tính toán được nhanh hơn

Trang 11

Qua các phần nghiên cứu đánh giá thực hiện trong Luận văn thì cho thấy Giải pháp 1 và Giải pháp 2 giải quyết được cho bài toán đánh giá ảnh hưởng của các tập nút nguồn trong đồ thị có hướng với hai nhóm màu xanh và màu đỏ linh động Giải pháp giảm chi phí tính toán khi sử dụng giải thuật Personalized PageRank

Luận văn gồm 5 chương:

Chương 1: Giới thiệu

Chương này sẽ giới thiệu về các bài toán liên quan đến đồ thị Bài toán phân tích, đánh giá về các nút trong Luận văn Các nhân tố ảnh hưởng hướng đến quá trình phân tích và xử lý vấn đề Bài toán liên quan đến thay đổi các nút, tác động từ các nút nguồn đến nút đánh giá Nêu lên cách thức sử dụng giải thuật phù hợp để giải quyết vấn đề cho các bài toán và kết quả sau khi áp dụng giải thuật Đề xuất hướng thực hiện để giảm thời gian thực thi cho nhiều lần tính toán

Chương 2: Cơ sở lý thuyết

Ở phần này trình bày về các giải thuật liên quan để giải bài toán Nêu lên các công cụ hỗ trợ sử dụng cho thực hiện Luận Văn

Chương 3: Bài toán phân tích ảnh hưởng trên đồ thị

Chương này trình bày về bài toán sử dụng trên đồ thị và các bài toán con áp dụng cho việc sử dụng giải thuật Nêu lên các bài toán phân tích ảnh hưởng trên đồ thị có hướng Định nghĩa cho các bài toán và vấn đề quan tâm cần giải quyết Đưa ra các giải pháp để thực hiện đánh giá bài toán trên

Chương 4: Triển khai và đánh giá

Chương này sẽ nêu lên các kịch bản để thực hiện đánh giá trên các giải pháp cho bài toán trên đồ thị Sử dụng các bộ dữ liệu thực tế để tiến hành đo đạc

Chương 5: Kết luận và hướng mở rộng

Tổng kết lại các kết quả thực hiện, các đóng góp xử lý vấn đề và hướng mở rộng để phát triển cho đề tài và các chủ đề có thể áp dụng giải thuật để phát triển

Trang 12

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT

2.1 Giải thuật PageRank

PageRank là thuật toán phân tích các liên kết được dùng trong Google Search để xếp hạng các trang web PageRank là thước đo duy nhất mà Google cung cấp cho Webmaster để đánh giá mức độ phổ biến của trang PageRank sẽ ảnh hưởng tới thứ hạng trên trang kết quả tìm kiếm Thường thì trang có PageRank càng cao thì vị trí của nó trên trang kết quả tìm kiếm càng được ưu tiên.

• Thuật toán này chỉ định giá trị nhất định cho mỗi thành phần của một tập hợp các văn bản liên kết với nhau

• Mục đích để đo tầm quan trọng tương đối của các liên kết trong tập hợp đó • Áp dụng cho bất kỳ tập hợp văn bản nào có trích dẫn đối ứng và liên kết cụ thể

Hình 1: Hình ảnh phần trăm của giải thuật Pagerank

Thuật toán PageRank đối với một hệ thống liên kết đơn giản, sẽ được hiển thị bằng tỷ lệ phần trăm (%) Trang C có giá trị PageRank cao hơn so với trang E, mặc dù có ít liên kết (links) đến trang C; một link duy nhất dẫn tới C từ một trang quan trọng và chính vì thế mà C có giá trị cao Nếu như một người lướt web bắt đầu từ một trang bất kỳ thì có 85% xác suất chọn một link ngẫu nhiên trên trang mà họ đang xem và 15% họ sẽ chọn chuyển

Trang 13

sang một trang web bất kỳ từ toàn bộ hệ thống các liên kết Người dùng sẽ truy cập vào trang E với xác suất 8.1% (Xác suất 15% truy cập tới một trang bất kỳ tương ứng với yếu tố damping là 85%) Nếu không có yếu tố damping, người dùng cuối cùng cũng sẽ kết thúc quá trình lướt web tại trang A, B, hoặc C, và các trang khác sẽ có PageRank bằng 0 Nếu như tính cả yếu tố damping, trang A vẫn liến kết đến tất cả các trang trong hệ thống, mặc dù chỉ có 1 link trỏ đi.[1]

Gọi G là một đồ thị các trang web Đặt G=(V, E) với V=(1,2,…n) là tập n đỉnh của đồ thị (mỗi đỉnh là một trang Web cần tính hạng trang) còn E là tập các cạnh, E = {số siêu liên kết từ trang i tới trang j} Chúng ta giả thiết rằng đồ thị trang Web là liên thông, nghĩa là từ một trang bất kì có thể có đường liên kết tới một trang Web khác trong đồ thị đó

Cho một đồ thị trang Web G như trên Với mỗi trang Web i, ký hiệu di là số liên kết đi ra từ trang Web thứ i

Khi đó hạng trang rj của trang Web j được định nghĩa như sau:

𝑟𝑗 = ∑𝑟𝑖𝑑𝑖

Việc chia cho di cho thấy rằng những trang có liên kết tới trang i sẽ phân phối hạng của chúng cho các trang Web mà chúng liên kết tới Các phương trình này được viết lại dưới dạng ma trận trong đó:

r = [r1, r2,…,rn] là vector PageRank, với ri là hạng của trang Web i trong đồ thị trang Web

P là ma trận chuyển n x n với giá trị các phần tử được xác định:

𝑎𝑖𝑗 = {1

𝑑𝑗 𝑛ế𝑢 𝑙𝑖ê𝑛 𝑘ế𝑡 𝑡ừ 𝑖 đế𝑛 𝑗0 𝑛𝑔ượ𝑐 𝑙ạ𝑖

Từ đó công thức PageRank được viết lại: r = rP

Phương trình trên cho thấy vector PageRank r chính là vector riêng của ma trận chuyển P tương ứng với giá trị riêng λ = 1 Trong đại số tuyến tính có một số phương pháp

Trang 14

tính vector riêng của ma trận, tuy nhiên do kích thước quá lớn của ma trận đang xét, khi thi hành đã sử dụng phương pháp lặp để tính toán vector PageRank.

Phương pháp: cách thức đơn giản nhất để tính vector riêng của một ma trận có thể được thực hiện thông qua việc lặp phép nhân một vector bất kỳ với ma trận đã cho đến khi nào vector đó hội tụ Đầu tiên, chúng ta sẽ gán cho vector PageRank một giá trị khởi tạo bất kỳ Sau đó, ta thực hiện phép nhân vector này với ma trận đã cho một cách liên tục cho tới khi nó đạt tới điều kiện hội tụ thì dừng lại.

Vector thu được chính là vector PageRank cần tính.Quy trình tính toán được diễn tả như sau:

1 s vector bất kì 2 r sP

3 nếu || rs || < ɛ thì kết thúc (ɛ là số dương rất bé, được gọi là sai số lặp) r là vector PageRank

Giá trị hội tụ của ma trận đối với vòng lặp tùy thuộc vào “khoảng cách” của hai giá trị riêng có giá trị lớn nhất (nói cách khác là hiệu của hai giá trị riêng lớn nhất)

2.2 Giải thuật Personalized PageRank

Personalized PageRank (PPR) mô hình hóa mức độ liên quan của các nút trong mạng theo quan điểm của một nút nhất định Giải thuật có các ứng dụng trong tìm kiếm xung quanh có sự liên quan, giới thiệu bạn bè, phát hiện cộng đồng bạn bè, giới thiệu video và các ứng dụng khác Vì PPR tốn kém để tính toán tại thời điểm truy vấn, một số đề xuất tính toán trước nó cho từng người dùng và lưu trữ nó

Các bài toán về đồ thị ở khắp mọi nơi Personalized PageRank có một nhiệm vụ đặc biệt quan trọng để hỗ trợ tìm kiếm và khám phá trong các bộ dữ liệu PPR tính toán khoảng cách giữa các nút truy vấn và các nút khác trong đồ thị Điều này được sử dụng, trong số những người khác để khám phá thực thể, mở rộng truy vấn và đề xuất sản phẩm Cơ sở dữ liệu đồ thị được sử dụng để lưu trữ đồ thị tri thức.

Trang 15

6

Hình 2: Đồ thị liên kết giữa các trang web

Thật không may việc tính toán chính xác PPR rất tốn kém về mặt thực hiện Trong khi các giải pháp khác nhau đã được đề xuất để tính toán các giá trị PPR với độ chính xác cao Nhiều bài báo cũng đã phân tích trên PPR để xử lý về mặt tính toán, khai khác cơ sở dữ

liệu Một phương pháp được nêu ra để xử lý đó là: “Particle filtering” [2]

Một mặt khác nếu sử dụng giải thuật PPR với số lượng cả tỷ biểu đồ, cả tỷ cạnh trên Internet thì có thể sức mạnh xử lý song song của các GPU hỗ trợ việc tính toán Các thuật toán PPR có thể mở rộng hơn do hiện tại chủ yếu được mô tả là các giải pháp CPU đơn luồng có khả năng chống song song hóa Hơn nữa, chúng thường liên quan đến cấu trúc dữ liệu phức tạp không có khả năng thích ứng hiệu quả trên GPU [3].

2.3 Giải thuật Personalized PageRanktrong Spark

Personalized PageRank là một biến thể của PageRank cung cấp xếp hạng liên quan đến đỉnh “nguồn” được chỉ định trong biểu đồ Về mặt khái niệm, một người khi đột nhiên quyết định ghé thăm một đỉnh khác, sẽ luôn hạ cánh trên đỉnh nguồn được chỉ định Trong

Trang 16

7

thư viện GraphX của Apache Spark, khái niệm này về một trình lướt web tưởng tượng được thực hiện bằng cách thực thi PageRank tối thiểu chỉ trên đỉnh nguồn được chỉ định; PageRanks của tất cả các đỉnh khác được phép giảm xuống 0

Việc triển khai GraphX của PPR bị hạn chế theo một số cách so với việc triển khai trên các hệ thống khác Đầu tiên, chỉ một đỉnh nguồn có thể được chỉ định Nếu việc chỉ định một nhóm đỉnh được cho phép, thì điều này sẽ cho phép, ví dụ, tìm ra người quan trọng nhất đối với một nhóm người, chẳng hạn như cựu sinh viên Harvard năm 1992 Thứ hai, trọng số cho mỗi đỉnh nguồn không thể được chỉ định; trong triển khai GraphX, nó được mã hóa cứng thành 1,0, có nghĩa là xếp hạng trang tối thiểu cho một đỉnh là một trong hai điểm cực trị: 0 cho các đỉnh khác với đỉnh nguồn hoặc 1.0 * resetProb cho đỉnh nguồn Đây không phải là một hạn chế lớn ngay bây giờ, khi GraphX chỉ cho phép chỉ định một đỉnh nguồn duy nhất, nhưng khi GraphX tăng khả năng trong tương lai để chỉ định nhiều đỉnh nguồn, thì việc có thể chỉ định trọng số độc lập cho mỗi đỉnh nguồn sẽ cho phép người ta có thể khái niệm chỉ định một số loại mối quan hệ hoặc tầm quan trọng đối với phần còn lại của các đỉnh trong tập hợp các đỉnh nguồn.[4]

2.4 Thực hiện cho bài toán thực tiễn

Bài toán có quy mô từ nhỏ đến lớn, tùy theo từng đồ thị, phạm vi mà hình thành mức độ đánh giá cho bài toán khác nhau Bài toán được thực hiện trên máy tính cá nhân để thuận tiện cho người đánh giá ở mức nhỏ và trung bình Nếu mức độ các đỉnh và các cạnh nhỏ ở mức vài nghìn, vài chục nghìn, trăm nghìn thì thực hiện máy tính các nhân cũng sẽ khá nhanh và khá thuận tiện Thiết lập môi trường nhanh chóng, đo đạc giá trị các nút và cũng như phân tích được các ảnh hưởng, tác động đến nút muốn đánh giá Thực hiện thay đổi các giá trị ban đầu làm phải thay đổi số lần chạy tính toán, tổ hợp khác nhau, lần lặp khác nhau sẽ gây ra tốn nhiều thời gian thực hiện Tiết kiệm thời gian thực hiện cũng sẽ giảm đi chi phí thực hiện cho toàn bài toán về đánh giá thực hiện như mong muốn

Trang 17

Đồ thị có hướng là một cặp có thứ tự G = (V, E) trong đó:

V là một tập hợp có các phần tử được gọi là đỉnh (vertices), nút (nodes), hoặc điểm (points); E là một tập hợp các cạnh được nối giữa 2 nút, được gọi là mũi tên (arrows), cạnh có hướng (directed edges),

Hình 3: Hình mẫu về đồ thị có hướng

Bài toán đang thực hiện có phân tích các tác động giữa các nút trong đồ thị có hướng Ảnh hưởng giá trị của các trong đồ thị theo tính lan truyền dần trôi xa ra hơn Khi mình xác định được nút gốc để thực hiện thì qua các lần lan truyền sẽ gây ảnh hưởng đến các nút con của nút gốc (nút được mũi tên chỉ đến) Khi quá trình thực hiện thì sẽ tạo thành một mạng lưới ảnh hưởng giữa các nút với nhau Nút gốc đó ảnh hưởng đến các nút còn lại thông qua các

Trang 18

9

liên kết (qua các cạnh) trên đồ thị G Bắt đầu lan truyền từ nút gốc đến các nút khác nên nút nào gần nhất với nút gốc sẽ bị ảnh hưởng lớn hơn các nút còn lại Như ở đồ thị hình 3 ở trên thì nếu lấy nút 0 là nút gốc thì nút 2, nút 4, nút 5 sẽ bị ảnh hưởng lớn hơn so với nút 3 qua lần đầu lan truyền Qua các lần ảnh hưởng thì giá trị của từng nút sẽ bị thay đổi, có thể sẽ tăng lên qua từng lần tích lũy, cũng có thể giảm xuống để phân chia đến các nút con khác trong quá trình thực hiện phân tích

Giải thuật Personalized PageRank (PPR) phù hợp cho việc đánh giá ảnh hưởng của một nút (gốc) PPR chú ý tác động vào nút chỉ định, sẽ ghi nhận giá trị cho các nút (gốc) là 1, còn các nút còn lại là 0 Sau đó thực hiện giải thuật để bắt đầu lan truyền mở rộng đi các nút khác trong đồ thị Qua các lần chạy giải thuật thì lượng nút bị ảnh hưởng sẽ gia tăng lớn hơn trong đồ thị từ nút gốc ban đầu

Trong đồ thị sẽ có nhiều mối liên kết giữa các nút với nhau, nếu có tập hợp số mốt số nút gốc ban đầu thì sẽ ảnh hưởng thế nào? Như ở một nút gốc thì sẽ gây ảnh hưởng đến các nút con của nó, nhiều nút gốc cũng sẽ làm ảnh hưởng đến tập hợp các nút con mở rộng nhanh hơn Nhiều nút gốc ban đầu, qua các lần lan truyền thì quy mô lan truyền sẽ nhiều hơn nhiều Tập nhiều nút sẽ bị ảnh hưởng với nhau qua các lần mở rộng lan truyền Ngoài phân tích trên một nút thì giải thuật PPR cũng có phân tích trên tập nhiều nút (gốc) ban đầu Personalized PageRank thực hiện song song cho tập hợp nhiều nút gốc cho quá trình lan truyền Nên PPR vẫn có thể giải quyết được cho bài toán này

3.2 Bài toán phân tích ảnh hưởng trên đồ thị

Bài toán thực hiện chính sẽ đánh giá ảnh hưởng của nhiều nút (gốc) đến các nút khác trong đồ thị Như mô tả trên thì qua các lần thực hiện, các nút con sẽ bị thay đổi giá trị do các nút gốc gây ra, sẽ ảnh hưởng đến tình hình lan tỏa, phân bố các nút ở các lần lặp khác nhau

 Dữ liệu đầu vào cho bài toán:

Đồ thị G = (V, E);

Tập hợp các nút gốc VR(xanh) và VR(đỏ):

𝑽𝑹(𝒙𝒂𝒏𝒉) ⊂ 𝑽, 𝑽𝑹(đỏ) ⊂ 𝑽 và 𝑽𝑹(𝒙𝒂𝒏𝒉) ∩ 𝑽𝑹(đỏ) = {}

Trang 19

- VX: tập nút thuộc G chịu ảnh hưởng từ VSR(xanh) lớn hơn từ VSR(đỏ) (sai lệch lớn hơn 𝜀);

- : tập nút thuộc G chịu ảnh hưởng từ VSR(đỏ) lớn hơn từ VSR(xanh) (sai lệch lớn hơn 𝜀);

- VInterfering là tập các nút thuộc G chịu ảnh ảnh hưởng từ VSR(xanh) và VSR(đỏ) gần như nhau (sai lệch nhỏ hơn 𝜀)

Nhu cầu phân tích:

Với các nhu cầu phân tích về các ảnh hưởng từ nút gốc đến các nút khác trong đồ thị G, được thực hiện trong nhiều kịch bản khác nhau để có cái nhìn đánh giá về sự lan truyền qua các lần chạy giải thuật

Để đánh giá qua các lần chạy, thì mỗi kịch bản sẽ được người dùng chọn các tập hợp VSR(xanh) và VSR(đỏ) khác nhau để phân tích, đánh giá

Giải thuật PPR được chọn để đánh giá ảnh hưởng từ một tập nút gốc đến từng nút thuộc G nhưng vẫn có một số vấn đề cần giải quyết:

 Tập hợp các nút chịu ảnh hưởng VInterfering sẽ thay đổi từng bước ra sao theo thời gian? Chi phí thay đổi thế nào?

 Tốc độ gây ảnh hưởng của nhóm nút gốc VSR(xanh) và VSR(đỏ) có thể khác nhau;  Giảm chi phí tính toán khi sử dụng PPR;

 Thời gian tính toán giải thuật PPR có đủ nhỏ để đáp ứng yêu cầu phân tích trực tiếp người sử dụng?

Trang 20

11

3.3 Giải pháp 1

Giải pháp tính toán, phân tính ảnh hưởng từ nút gốc đến các nút khác trong đồ thị Giải pháp đánh giá lặp Trong giải pháp này sử dụng giải thuật Personalized PageRank để đánh giá sự lan truyền các nút trong đồ thị PPR được hiện thực trong Spark để hỗ trợ người dùng quá trình phân tích Giải pháp này lựa chọn các tập nút gốc thực hiện qua PPR nhiều lần để đánh giá các nút trong đồ thị

Sơ đồ thực hiện giải pháp 1:

Hình 4: Sơ đồ thực hiện giải pháp 1 Trong sơ đồ thực hiện cho giải pháp gồm 6 bước:

Bước (1): Dữ liệu đầu vào cho giải pháp này là đồ thị G = (V, E) là đồ thị có hướng Trong

đồ thị chỉ rõ hướng lan truyền từ nút này đến nút khác

Bước (2): Thực hiện lựa chọn hai tập nút gốc xanh và đỏ ban đầu gồm VR(xanh) và VR(đỏ) Lựa chọn các tập nút gốc để chuẩn bị có quá trình phân tích thích hợp Hai tập nút gốc nên thõa mản điều kiện để thuận lợi cho quá trình phân tích Không được sự trùng nút ở hai tập nút này Ở mỗi tập nút nên có các nút riêng của mình để không bị nhầm lẫn cho sự lựa chọn phân tích

Bước (3): Sau khi lựa chọn được hai tập nút gốc ở bước trên thì đến bước này, ta lựa chọn

lại nút để tiến hành đánh giá gồm VSR(xanh) và VSR(đỏ) Chọn ra các nút từ hai tập trên

Trang 21

12

làm dữ liệu đầu vào cho việc chạy giải thuật Bước này chọn nút cho phù hợp để chuẩn bị cho chạy giải thuật đánh giá trình lan truyền từ các nút lựa chọn này đến các nút con khác Bước này quyết định sẽ đánh giá các tập nút nào lan truyền đi đến khác nút con khác

Bước (4): Bước này thực hiện chạy giải thuật PPR trong Spark để đưa ra các dữ liệu cho

việc phân tích Ở bước này, từ các tập nút gốc được lựa chọn ra để phân tích, sẽ chạy riêng giải thuật PPR cho các tập nút màu xanh VSR(xanh) để xem qua các lần lặp thì ảnh hưởng nó mở rộng như thế nào Tương tự cũng thực hiện cho tập nút gốc màu đỏ VSR(đỏ) Các tập nút gốc sẽ làm tham số đầu vào cho giải thuật Thực hiện ở bước này, ta có thể điều chỉnh số lần lặp để quan sát qua từng lần lặp thì lượng lan truyền đó đi như thế nào Giá trị của các nút con liên quan có tăng lên do chịu ảnh hưởng từ các tập nút gốc Chạy giải thuật PPR thì cũng có thể điều chỉnh các thông số phù hợp cho tính toán Khi chạy giải thuật thì ta cũng xem được thời gian thực hiện giải thuật cho từng bước, từng lần lặp của các nút khác nhau Dữ liệu sau khi chạy giải thuật cần được đánh giá, phân tích để đưa ra các kết quả cho phù hợp

Bước (5): Từ các dữ liệu xuất sau khi chạy giải thuật để tiến hành phân tính, đánh giá bài

toán Phân tích các nhu cần thực hiện trên các dữ liệu đạt được Đánh giá về thời gian thực hiện cho từng tập dữ liệu Thời gian lan truyền của các nút gốc đến nút con liên quan Phân tích sự biến đổi của các nút con từ nút màu xanh thành nút đỏ và ngược lại Xem sự ảnh hưởng từ các nút gốc đến nút con nào lớn hơn Khai thác các thông tin có được để đưa ra các kết luận ở bước sau

Bước (6): Tổng hợp các kết quả phân tích, đánh giá để hiển thị cho người dùng Ở bước

này sẽ biết được các thông tin sau khi phân tích ở bước 5 Để nắm rõ hơn các sự ảnh hưởng lan truyền trong đồ thị đang hiện thực Bước này nếu kết quả chưa được như mong muốn hoặc muốn phải tích thêm thì phải thực hiện hiện lại từ bước 3 Lựa chọn các nút gốc cho phù hợp thực hiện lại giải thuật Quá trình này lặp đi, lặp lại để có nhiều kết quả mong muốn

Trang 22

13

Đánh giá khi thực hiện theo giải pháp này:

Ưu điểm: Số lượng nút ban đầu lớn, lựa chọn nhiều nút để thực hiện

Nhược điểm: Mỗi lần thay đổi tập nút gốc phải chạy lại tập dữ liệu, gây tốn thời gian thực

hiện

3.4 Giải pháp 2

Giải pháp này cũng đánh giá sự lan truyền của các nút trong đồ thị Giải pháp đánh giá bằng các tập tin Để thực hiện ở giải pháp này sẽ có hai giai đoạn cho các phần hiện thực Giải pháp này sẽ tiết kiệm hơn thời gian để có được kết quả phân tích, đánh giá trên các đồ thị Giải pháp này sử dụng giải thuật PPR trên Spark để phân tích quá trình lan truyền của các nút

Sơ đồ thực hiện cho giải pháp 2:

Hình 5: Sơ đồ thực hiện giải pháp 2 Giải pháp này gồm hai gian đoạn hiện thực

Giai đoạn 1: Gồm các bước (1), bước (2), bước (3):

Bước (1) và (2) ở giải pháp này giống với giải pháp 1 Ở phần này lựa chọn đồ thị để phân

tích Lựa chọn các tập nút gốc VR(xanh) và VR(đỏ) ban đầu cố định Hai tập nút gốc sẽ chuẩn bị đưa vào giải thuật PPR để phân tích

Trang 23

14

Bước (3): Ở bước này có khác với giải pháp 1, ở giải pháp 1 sẽ chạy giải thuật PPR cho

các nút được lựa chọn VSR(xanh) và VSR(đỏ) để đánh giá trên các nút đó Đánh giá lan truyền, ảnh hưởng từ các nút gốc đó đến các nút khác để có được các kết quả ở các bước tiếp theo Ở giải pháp 2 thì bước 3 sẽ tiến hành chạy giải thuật PPR cho tất cả các nút VR(xanh) và VR(đỏ) ban đầu Hai tập nút này sẽ làm tham số đầu vào cho giải thuật PPR tương tự ở giải pháp 1, có thể điều chỉnh các thông số tương tự

Bên cạnh đó giải pháp 1 thì có thể chạy tổ hợp cùng lúc một tập nút xanh hoặc một tập nút đỏ Còn ở giải pháp này phải chạy PPR cho từng nút trong hai tập nút đó Sau khi chạy xong tất cả các nút thì sẽ xuất ra tập tin chứa các dữ liệu sau khi chạy của từng nút trong hai tập nút gốc Các tập tin này chứa các xếp hạng, sự lan truyền của các nút gốc đến các nút khác qua từng lần lặp Thực hiện lặp từng bước để có chi tiết hơn về sự lan truyền của nút đó Qua bước này thì ta sẽ có các dữ liệu chi tiết của từng nút gốc Các tập tin này sẽ phục vụ cho các quá trình phân tích tiếp theo để xuất được kết quả mong muốn

Ở giai đoạn này thì có thể thực hiện trước để có các tập tin cho việc phân tích phía sau Quá trình này không cần phải thực hiện lại nếu có thay đổi gì ở phần lựa chọn các nút đánh giá ở phía sau

Giai đoạn 2: Gồm các bước (4), bước (5), bước (6):

Bước (4): Bước này của giải pháp 2 thì có ngược lại so với giải pháp 1 Ở bước 4 của giải

pháp 1 thì sẽ tiến hành chạy giải thuật PPR cho các tập nút gốc được lựa chọn, còn ở giải pháp này thì sẽ là lựa chọn các tập tin của các nút muốn đem phân tích VSR(xanh) và VSR(đỏ) Ở bước 3 sau khi chạy xong giải thuật thì sẽ xuất ra các tập tin của tất cả các nút gốc Ta lấy ra các tập tin này chứa các dữ liệu các nút muốn phân tích này

Bước (5): Sau khi có các tập tin chứa dữ liệu của các nút đem đi phân tích Ta sẽ tổng hợp

lại các nút của mỗi tập hợp VSR(xanh) và VSR(đỏ) để phân tích đánh giá Mỗi nút sẽ có ảnh hưởng đến các nút con khác biệt Nếu phân tích ảnh hưởng của các tập nút gốc ban đầu VSR(xanh) hoặc VSR(đỏ) gom nhiều nút con nhỏ, thì phải tổng hợp lại giá trị ảnh hưởng của các nút đó đến các nút con bằng cách tính trung bình lại Do khi thực hiện chạy PPR ở từng

Trang 24

15

nút, thì giá trị nút gốc sẽ luôn là 1 và các nút con là 0, nên giá trị các nút gốc ban đầu sẽ bằng nhau Sau đó ta sẽ có được tập hợp các nút gốc ảnh hưởng đến từng nút con liên quan như thế nào qua từng lần lặp của hai tập VSR(xanh) và VSR(đỏ)

Tiếp tục ta cũng sẽ tiến hành phân tích, đánh giá tương tự như giải pháp 1 để có các kết quả về sự lan truyền, ảnh hưởng của các nút trong đồ thị

Bước (6): Tổng hợp các thông tin phân tích được ở bước 5 để xuất ra kết quả Ở bước này,

nếu muốn thay đổi tập nút gốc lựa chọn VSR(xanh) và VSR(đỏ) mới để muốn có kết quả khác thì ta sẽ lặp lại từ bước 4 Lựa chọn các tập tin của các nút muốn phân tích để tổng hợp và đánh giá lại

Ở giai đoạn này chỉ thực hiện lựa chọn các tập tin của các nút mong muốn và tiến hành phân tích Sẽ tiết kiệm hơn được thời gian chạy lại giải thuật cho mỗi lần thay đổi nút gốc Không cần phải điều chỉnh là phải chạy đo lại cho từng tập nút gốc nữa

Đánh giá khi thực hiện theo giải pháp này:

Ưu điểm: Chỉ thực hiện một lần đo, không cần chạy lại khi thay đổi số nút gốc lựa chọn

phân tích

Nhược điểm: Tốn nhiều dung lượng lưu trữ cho tất cả kết quả của các nút

Trang 25

16

CHƯƠNG 4: TRIỂN KHAI VÀ ĐÁNH GIÁ

4.1 Môi trường thực nghiệm sử dụng Spark

Bài toán thực hiện cho Luận văn được đo trên máy tính cá nhân Xu hướng đang thực hiện là có thể thao tác đo đạc ở môi trường doanh nghiệp Có thể thực hiện với bộ dữ liệu nhỏ và vừa một các nhanh chóng để xem kết quả của quá trình tính toán Spark được cấu hình đơn luồng, thực hiện trên một máy tính Apache Spark có hỗ trợ hiện thực giải thuật PPR Sử dụng Spark để thực hiện tính toán, đánh giá cho việc phân tích ảnh hưởng của trong đồ thị là thích hợp

Thực hiện chạy các lệnh Spark với phiên bản 3.3.0 trên command line Giải thuật PPR được hiện thực trong các hàm của Spark:[5]

staticPersonalizedPageRank(long src, int numIter, double resetProb)

staticParallelPersonalizedPageRank(long[] sources, int numIter, double resetProb)

Các thông số đầu vào cho các hàm trên:

+ src: nút gốc ban đầu thực hiện chạy giải thuật

+ sources: tập nút gốc ban đầu thực hiện chạy giải thuật + numIter: số lần lặp cho tính toán

+ resetProb: giá trị reset thay đổi đồ thị

Trang 26

2 Kịch bản 2: Thực hiện đo một tập nút nguồn (VSR(xanh) hoặc VSR(đỏ))

3 Kịch bản 3: Thực hiện lựa chọn hai tập nút nguồn con khác nhau (ba nút nguồn VSR(xanh) và hai nút nguồn VSR(đỏ)) để so sánh tập ảnh hưởng của hai tập nút nguồn xanh và đỏ khác nhau đối với những nút còn lại

3 Kịch bản 6: Thực hiện đánh giá thay đổi tốc độ ở tập nút nguồn VSR(đỏ)

4.4.1 Kịch bản 1: Thực hiện tính toán trên một nút nguồn

Bộ dữ liệu 1:

Chúng ta sẽ thực hiện trên bộ dữ liệu 1 Chọn năm nút nguồn ngẫu nhiên để thực hiện làm nút nguồn bắt đầu để chạy giải thuật Điều chỉnh các thông số khi gọi hàm hiện thực cho giải thuật PPR Thực hiện điều chỉnh số lần lặp tương thích mình mong muốn để tiến hành đo các giá trị nút cần được đo đạc

Trong phần hiện thực của luận văn thì lấy năm nút để thực hiện là 46, 55, 11, 23, 38

để chạy giải thuật và phân tích ở bộ dữ liệu Phần dưới đây mô tả các phần lan truyền ở nút

46 và 55

Trang 27

18

Hình 4: Hình ảnh nút gốc 46 từ tập dữ liệu 1

Hình 5: Hình ảnh nút nguồn 46 tới các nút con

Ngày đăng: 31/07/2024, 09:46

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN