Một trong các bài toán phân tích mạng xã hội là layout dữ liệu có kích thước lớn để có thể thể hiện thị được các thành phần quan trọng trong mạng xã hội.. Một số hướng nghiên cứu phổ biế
GIỚI THIỆU ĐỀ TÀI
Lý do chọn đề tài
Mạng xã hội, hay gọi là mạng xã hội ảo (tiếng Anh: Social Network) là dịch vụ nối kết các thành viên cùng sở thích trên Internet lại với nhiều mục đích khác nhau không phân biệt không gian và thời gian Mạng xã hội xuất hiện lần đầu tiên vào năm 1995 với sự ra đời của mạng Classmate có mục đích kết nối các bạn học Sau đó, có khá nhiều mạng xã hội xuất hiện và trở thành một trào lưu mới như Friendster, MySpace, Facebook,…[22], [28] Ngoài việc chia sẻ cảm nghĩ, sở thích,các mạng xã hội còn hướng tới lưu trữ, xử lý dữ liệu hình ảnh, âm thanh, video và nhiều loại dữ liệu khác ngày càng phong phú, đa dạng
Các mạng xã hội đều thu hút một lượng rất lớn người dùng, có thể lên tới hang trăm triệu thành viên Từ đó đặt ra nhu cầu rất lớn về cơ sở hạ tầng mạng, sức mạnh tính toán và dung lượng lưu trữ dữ liệu Ngoài ra, do người sử dụng ở khắp nơi trên thế giới nên mạng xã hội cũng mang tính phân bố rộng khắp để đáp ứng nhu cầu ngày một gia tăng của người dùng
Khi lượng người tham gia mạng xã hội tăng cao, lượng dữ liệu lưu trữ cũng tăng, băng thông, bộ nhớ, đều đòi hỏi nhiều hơn dẫn tới việc quá tải các trung tâm dữ liệu và làm gia tăng độ trễ trong quá trình truyền nhận dữ liệu Điều nghiêm trọng hơn là sẽ làm tăng thời gian đáp ứng của hệ thống khi nhận tương tác từ người dùng
Ngày nay, với tiến bộ vượt bậc của công nghệ lưu trữ, việc chế tạo các bảng mạch nhớ (RAM) và các thiết bị lưu trữ phát triển rất nhanh nhưng giá thành vẫn còn rất cao, và quan trọng hơn là không có khả năng lưu trữ hết toàn bộ người dung trên đó Vì vậy, nhu cầu giảm số lượng lưu trữ mà cụ thể là giảm số lượng bản sao khi phân hoạch mạng xã hội là mục tiêu quan trọng được hướng đến Xu hướng phát triển ngày càng mạnh của mạng xã hội và nhu cầu đặt ra cho việc lưu trữ, truy xuất, xửlý lượng lớn dữ liệu ngày càng cấp thiết Đề tài: “Sử dụng thuật toán meta-heuristic trong phân hoạch mạng xã hội hướng lưu trữ” là cần thiết đểhướng đến việc cung cấp dịch vụ tốt hơn cho cộng đồng, mang lại trải nghiệm tốt hơn cho người dùng; đồng thời cũng tiết kiệm chi phí cho các nhà cung cấp dich vụ mạng xã hội.
Tình hình nghiên cứu trong và ngoài nước
Hiện tại đã có nhiều công trình nghiên cứu liên quan đến việc phân hoạch dữ liệu mạng xã hội Một số hướng nghiên cứu phổ biến như: phân hoạch dữ liệu theo nhận thức xã hội để phân phối việc lưu trữ dữ liệu xã hội (Socially aware data partitioning for distributed storage of social data) [7]; nhân bản (replication) dữ liệu trong mạng xã hội [3]; chiến lược phân vùng cơ sở dữ liệu cho dữ liệu mạng xã hội [8]; nhân rộng các mạng xã hội trực tuyến [4]…
Với hướng nghiên cứu phân hoạch dữ liệu theo nhận thức xã hội [7], tác giả Duc A.Tran dùng giải pháp triển khai thêm nhiều server để đối phó với sự tăng trưởng nhanh chóng của số lượng user và các hoạt động Tác giả nhấn manh tầm quan trọng của việc phân vùng dữ liệu trên các server sao cho hiệu quả và tối đa hóa cân bằng tải giữa chúng Đồng thời bài báo cũng nêu ra một trở ngại trong việc lưu trữ xã hội vì đa số các truy cập mang tính cục bộ Tác giả đã tìm ra cách phân vùng dữ liệu hiệu quả theo mối quan tâm của user (sở thích đọc ghi dữ liệu trên mạng, thường xuyên đọc dữ liệu của ai) Thuật toán mới có hiệu xuất cao và cân bằng phân vùng tốt
Tiếp theo nghiên cứu trên, tác giả Duc A.Tran tiếp tục với hướng nghiên cứu nhân bản dữ liệu trong mạng xã hội [3] vào năm 2013 Tác giả quan tâm tới việc xác định nơi tốt nhất để lưu dữ liệu Nhu cầu nhân bản dữ liệu để đặt ở nhiều server xuất hiện Toàn bộ bài báo chú trọng vào việc nhân bản: khi nào, ở đâu, cách thực hiện
Phương pháp S-CLONE [3] được đề xuất để giải quyết vấn đề
Sự xuất hiện của các trở ngại trong việc thiết kế hệ thống có khối lượng lưu trữ và lưu thông cực lớn dẫn tới việc tốn nhiều chi phí để tái cấu trúc như Facebook, Twitter vẫn thường mắc phải.Với hướng nghiên cứu Scaling Online Social Networks [4], tác giả đề xuất phương pháp SPAR nhằm giảm chi phí khi tái kiến trúc dữ liệu
Việc tái kiến trúc phân vùng dữ liệu không ảnh hưởng tới ứng dụng bên trên
Một hướng nghiên cứu khác, tác giả Oscar Ricardo Moll Thomae [8] cung cấp một số chiến lược thiết kế database nhằm tối ưu hóa chi phí lưu trữ, truy vấn, cập nhật dữ liệu mạng xã hội
Với lượng dữ liệu lớn và các hoạt động phong phú của mạng xã hội, đề tài chỉ tập trung vào một hoạt động đơn lẻ là hoạt động kết bạn giữa các thành viên đã tham gia vào mạng xã hội Nội dung chính của đề tài liên quan đến bài toán phân hoạch đồ thị mạng xã hội, hướng đến giảm số lượng bản sao khi mạng xã hội tăng trưởng nhanh Đề tài không tập trung vào bản chất dữ liệu của người dùng và mặc định xem như dữ liệu của mọi người dùng là như nhau về độ phức tạp và lưu trữ Ngoài ra, xét dưới khía cạnh đồ thị thuần túy thì bài toán phân hoạch đồ thị là rất kinh điển, và thuộc nhóm bài toán NP-Hard.
Mục tiêu của đề tài
Hiểu rõ các giải thuật lưu trữ phân tán đang sử dụng cho mạng xã hội, đề xuất giải pháp tái phân hoạch mạng xã hội và tạo các bản sao dữ liệu người dùng sao cho các dữ liệu liên quan đều nằm trên cùng một phân hoạch và số lượng bản sao của mạng là ít nhất có thể
Xây dựng một chương trình thử nghiệm có thể phân hoạch mạng xã hội giảlập (dựa trên tập dữ liệu thực tế) cho số lượng bản sao ít hơn so với các giải pháp phân tán đang được sử dụng
So sánh và đánh giá kết quả thực nghiệm của giải pháp với giải thuật SPAR.
Nội dung nghiên cứu
Các giải thuật lưu trữ phân tán: Phân hoạch dựa trên địa lý, Phân hoạch ngẫu nhiên, Phân hoạch theo đồ thị, Phân hoạch tối ưu theo khối
Giải thuật tối ưu SPAR do Josep M.Pujol và các đồng sự phát triển Đề xuất giải pháp cải tiến.
Phương pháp nghiên cứu
Nghiên cứu các giải thuật lưu trữ phân tán đã được trình bày trong các tài liệu như: luận văn thạc sĩ, các bài báo khoa học
Nghiên cứu các giải pháp đang thực hiện trên các mạng xã hội phổ biến
Sử dụng tập dữ liệu thực từ internet [40] để giả lập mạng xã hội theo giải thuật SPAR và giải thuật đề xuất
Sử dụng các phần mềm, gói phần mềm, thư viện mã nguồn mở hỗ trợ tốt cho việc phân hoạch đồ thị dùng heuristic(Chaco, Metis ) Cụ thể trong luận văn này tôi sẽ dùng Metis (gpmetis) Những thư viên này có thể giúp ta thực nghiệm các thuật toán đã có trước khi tổng hợp được phương pháp tốt cho phân hoạch đồ thị mạng xã hội Đề xuất sử dụng mô hình quy hoạch nguyên, đưa bài toán về bài toán quy hoạch nguyên thuần túy và lập trình bằng ngôn ngữ C# kết hợp với công cụ lpsolve để giải quyết bài toán
So sánh và đánh giá kết quả thu được từ thực nghiệm của chương trình với kết quả thu được từ phương pháp random, phần mềm gpmetis, giải thuật SPAR.
TỔNG QUAN VỀ MẠNG XÃ HỘI
Mạng phức hợp (Complex network)
Trong những năm gần đây người ta đã bắt đầu nhận thấy được tầm quan trọng của mạng phức hợp (Complex Networks) trong nhiều lĩnh vực trong khoa học cũng như trong đời sống của xã hội hiện đại Việc nghiên cứu về mạng phức hợp cũng được khuyến khích và đã có rất nhiều nhà khoa học, nhà nghiên cứu trên thế giới quan tâm và tìm hiểu về mạng phức hợp
Mạng phức hợp là một tập các hệ thống được tạo bởi các yếu tố đồng nhất hoặc không đồng nhất kết nối với nhau thông qua sự tương tác khác nhau giữa các yếu tố này và được trải ra trên diện rộng Chúng có mặt ở khắp nơi trong tự nhiên và trong xã hội Trong thực tế, có rất nhiều hệ thống trong tự nhiên có thể miêu tả thông qua các mô hình của mạng phức hợp Đó là những hệ thống có cấu trúc gồm các nút (node) gắn với nhau thành một mạng bởi các liên kết (tie) [3], [13], [17], [20], [21] Thí dụ như: mạng Internet là mạng của các router hoặc các domain [18]; mạng World Wide Web (WWW) là mạng của những trang web [14]; một tổ chức là mạng của những thành viên trong tổ chức; nền kinh tế toàn cầu là mạng kinh tế của các nước thành phần, nền kinh tế mỗi nước lại là một mạng các thị trường, mỗi thị trường lại là một mạng tương tác giữa những sản phẩm hàng hóa và người tiêu thụ; mạng của các chất hóa học (liên kết với nhau bởi các phản ứng hóa học); mạng ngôn ngữ (thí dụ như mạng đồng âm khác nghĩa, mạng đồng nghĩa); các mạng lưới điện cao thế (Electrical Power Grid); các chủ đề của một buổi nói chuyện và thậm chí việc vạch kế hoạch cho xử lý một vấn đề toán học nào đó cũng có thể mô hình bằng một mạng
Mạng xã hội
Mạng xã hội là một trường hợp cụ thể của mạng phức hợp Mạng xã hội, hay còn gọi là mạng xã hội ảo (tiếng Anh: social network) là một cấu trúc mang tính xã hội tạo thành từ các nút (tiếng Anh: node) và các liên kết (tiếng Anh: tie), mỗi nút có thể là một cá nhân hay một tổ chức, các liên kết thể hiện mối quan hệ giữa các nút (bạn bè, sự trao đổi thông tin,…) [22]
Trường hợp đơn giản nhất, mạng bao gồm 2 node và một liên kết giữa chúng.[4] Bối cảnh có thể là hai người cùng học cứu tại một trường đại học Ví dụ, A và B có một mối quan hệ bởi vì cả hai cùng học tập tại lớp Cao học khoa Khoa học và ky thuật máy tính, đại học Bách Khoa, ta biểu diễn một liên kết giữa hai nút A và B
Mạng ở Hình 2.1 thể hiện mối quan hệ đối xứng, nghĩa là A biết B và B biết A, mối quan hệ đó có thể là tình bạn, hàng xóm, họ hàng, hoặc chỉ sống trong cùng một phòng Nhưng trong thực tế, có rất nhiều các mối quan hệ đó đều được định hướng như trao đổi tài chính, thích (không thích ), dòng chảy thông tin, hoặc truyền bệnh Ví dụ, A thích B, nhưng B có thể không thích A
Các mạng phức tạp có rất nhiều liên kết Các mạng lưới mô hình nhiều loại mối quan hệ giữa các đối tượng, hoặc có thể có nhiều mối quan hệ khác nhau giữa một số hai nút [34]
Mạng xã hội không nhất thiết trong phạm vi thuộc xã hội Có nhiều minh họa thực tế của mạng xã hội kinh doanh, kỹ thuật, kinh tế, sinh học như những mạng lưới điện, những đồ thị cuộc điện thoại, mạng lưới toàn cầu, mạng đồng tác giả và trích dẫn của các nhà khoa học, [9] thích
Hình 2.1: Mối quan hệ có hướng học cùng lớp
Hình 2.1: Mối quan hệ đối xứng
Biểu diễn mạng xã hội
Để nghiên cứu mạng xã hội ta cần biểu diễn nó theo một cách thức nào đó
Mạng xã hội được biểu diễn bởi 2 cấu trúc phổ biến: đồ thị và ma trận kề Đồ thị là một cách rất hữu ích để trình bày thông tin về mạng xã hội Trong các mạng đơn giản, nó rất dễ dàng để chúng ta nhìn vào biểu đồ và dự đoán mô hình thông tin Mạng lưới phân tích sử dụng một màn hình hiển thị đồ họa bao gồm các điểm đại diện cho các đối tượng hoặc các nút, và các cạnh đại diện cho mối quan hệ hoặc quan hệ Việc biểu diễn đồ họa của đồ thị được gọi là socio-gram Họ sử dụng các màu sắc khác nhau, hình dạng, tên,…để đại diện cho các actor (thực thể trong mạng xã hội như cá nhân, tổ chức) và các mối quan hệ khác nhau [19]
Trong các mạng phức tạp hơn, khi có hàng ngàn thực thể (actor) và nhiều loại khác nhau của các mối quan hệ, đồ thị (socio-gram ) có thể trở nên rất trực quan phức tạp mà rất khó để xem các mẫu Trong tình huống này, chúng ta có thể biểu diễn thông tin về mạng xã hội bằng ma trận Cách tiếp cận này cho phép áp dụng các công cụ toán học và máy tính để tóm tắt và tìm kiếm các mẫu [19] Hình thức phổ biến nhất của ma trận phân tích mạng xã hội là ma trận kề, một ma trận vuông với nhiều hàng và cột, các hàng và cột đại diện cho những thực thể trong mạng Giá trị của phần tử trong ma trận cho biết thông tin về các mối quan hệ giữa mỗi cặp của các thực thể (actor) Ma trận A
= [aij] cấp n biểu diễn cho n thực thể trong mạng xã hội, aij=1 nếu thực thể i và j có một liên kết, ngược lại aij=0 cho biết thực thể i và j không có liên kết [19] Để dễ nghiên cứu và khảo sát các đặc trưng, chúng ta có thể dùng đồ thị không hướng để biểu diễn mô hình mạng xã hội không hướng, trong đó, mỗi node I là một thành viên, và mỗi cạnh từ node i tới node j đại diện một mối quan hệ (bạn bè, người yêu…) của hai thành viên Cụ thể như sau:[16]
G = , là đồ thị không hướng với:
V = {vi}: tập các node hay là tập các người dung E = {eij}: tập các cạnh chỉ mối quan hệ bạn bè giữa các node
Một số khái niệm và độ đo trong mạng xã hội
§Đường đi ngắn nhất (Shortest path) Đường đi giữa hai nút bất kỳ là một trình tự các nút được đi qua không lặp lại để kết nối hai nút lại với nhau Đường đi ngắn nhất giữa hai nút là đường đi sao cho tổng trọng số của các cạnh tạo nên đường đi đó là nhỏ nhất Trong đồ thị không có trọng số đường đi ngắn nhất giữa hai đỉnh chính là đường đi mà kết nối hai đỉnh với số cạnh là ít nhất
Ví dụ: giữa nút 1 và nút 5 có 2 đường đi ngắn nhất mà độ dài đường đi bằng 2 đó là {1, 2, 5} và {1, 3, 5} §Mật độ của mạng (Density network) Để phân biệt mạng xã hội nào mạnh, mạng xã hội nào yếu Trong phân tích mạng xã hội có rất nhiều những thông số khác nhau Một trong những thông số quan trọng đó là density (mật độ mạng) Khi hệ số cố kết của mạng lưới càng lớn, mức độ gắn kết, sự chặt chẽ của các mối quan hệ giữa các tác nhân trong mạng lưới cũng càng lớn, và do đó, sự tương trợ, hỗ trợ,… giữa các tác nhân cũng càng nhiều, càng hiệu quả hơn, sự điều tiết của mạng xã hội đối với hành vi của tác nhân cũng mạnh mẽ hơn và ngược lại §Degree centrality
Degree centrality [11] đề cập đến số kết nối từ một nút đến các nút khác ở trong mạng Một nút có degree centrality cao thì duy trì nhiều mối liên lạc với những nút khác trong mạng Một nút cần có degree centrality cao để có thể truy cập hoặc ảnh hưởng hơn đến những nút khác trong mạng Trong mạng vô hướng, degree là số lượng kết nối (connection) của một nút Degree của một nút có thể bằng 0 nếu không có connection nào từ nút đó tới bất kỳ nút khác trong mạng Hoặc degree có thể bằng n-1 khi có kết nối từ một nút tới tất cả các nút khác ở trong mạng
Trong mạng có hướng, degree của nút (n) bằng tổng bậc trong của đỉnh (ký hiệu là gi(n) và bậc ngoài của đỉnh go(n) tức là g(n)=gi(n)+go(n).Trong đó bậc trong của đỉnh n là số kết nối kết thúc tại n, bậc ngoài của đỉnh là số kết nối xuất phát từ n
Những độ đo này rất quan trọng trong mạng, vì bậc ngoài của đỉnh cho biết khả năng mở rộng kết nối của actor, còn bậc trong của đỉnh cho biết mức độ nổi tiếng của actor
Trong đồ thị có hướng thì bậc trong và bậc ngoài có thể khác nhau
Ví dụ: §Betweenness centrality Điểm yếu của hệ số degree centrality [24] là nó chỉ tính các mối quan hệ trực tiếp của tác nhân mà thôi nên chưa chắc tác nhân có degree centrality cao là người "gần gũi" với mọi thành viên khác trong mạng Tính Betweenness centrality cũng là một trong những tiêu chí quan trọng thể hiện vị thế của tác nhân trong mạng, bởi một tác nhân càng gần gũi với các thành viên trong mạng xã hội bao nhiêu thì tác nhân đó càng dễ có nhiều thông tin, càng có nhiều uy thế và do đó càng dễ gây ảnh hưởng lên toàn bộ mạng xã hội Betweenness centrality đo lường kiểm soát của một nút về sự liên lạc với các nút khác trên mạng § Closeness centrality
Closeness centrality [11] là độ đo mà một đỉnh gần tất cả các đỉnh khác trong mạng nhất Closeness centrality xác định một tác nhân nào đó trong mạng lưới có thể ít gắn kết với các thành viên khác trong mạng xã hội (tức hệ số degree centrality thấp), cũng không "gần gũi" lắm với mọi thành viên khác (tức hệ số Betweenness centrality thấp), nhưng đỉnh đó lại là "cầu nối" (bridge) hay "nhà trung gian" cần thiết trong mọi cuộc trao đổi trong mạng Nếu một tác nhân đóng được vai trò closeness càng lớn trong mạng lưới, tác nhân đó sẽ càng ở vị trí thuận lợi trong việc "kiểm soát" mọi giao dịch, mọi thông tin trong mạng xã hội; tác nhân đó cũng tác động đến mạng lưới một cách dễ dàng bằng cách thanh lọc hoặc truyền thông tin trong mạng theo hướng có lợi cho mình nếu muốn; đồng thời tác nhân đó cũng đứng ở vị trí tốt nhất để thúc đẩy sự phối hợp giữa các thành viên khác trong mạng lưới § Clustering centrality
Trong mạng xã hội, hệ số gom cụm (Clustering centrality) [5] được tìm ra bởi Watts and Strogatz (1998) là một tiêu chuẩn để đo các mức độ gắn kết giữa các tác nhân trong mạng Hệ số gom cụm của một tác nhân được xác định bởi các tác nhân láng giềng có mối liên kết với nhau thành những mạng con nhỏ nhất Nếu một tác nhân chỉ có một láng giềng thì tác nhân láng giềng đó sẽ không tạo thành một mạng con
2.4.2 Độ đo phục vụ quản trị mạng xã hội §Dung lượng lưu trữ
Do các mạng xã hội có kích thước rất lớn, là mạng động và không ngừng gia tăng số lượng thành viên nên không thể chứa toàn bộ dữ liệu của người dùng trên cùng một máy chủ Giải pháp phân hoạch dữ liệu lên nhiều máy chủ khác nhau là bắt buộc để đáp ứng các nhu cầu truy xuất dữ liệu của người dùng trong khoảng thời gian có thể chấp nhận được, tránh sự quá tải dữ liệu, tăng khả năng chịu lỗi của hệ thống §Loại dữ liệu lưu trữ
Dữ liệu trên mạng xã hội rất đa dạng và phong phú, từ các dữ liệu văn bản thuần túy đến các dữ liệu đa phương tiện như hình ảnh, video,… Mỗi loại dữ liệu có kích thước là rất khác nhau cũng như số lượng, tần suất truy xuất là khác nhau nên các mạng xã hội phải có các cách thức tổ chức lưu trữ và hỗ trợ các cơ chế truy xuất, các thao tác truy xuất khác nhau §Các thông số truy xuất o T ả i đọ c (read load): Để hiểu được tải đọc dữ liệu của máy chủ, xét một yêu cầu đọc cho người dùng i Yêu cầu này cần được điều hướng đến máy chủ chính của nó, gọi là máy chủ s, nơi mà sẽ cung cấp dữ liệu cho i [6] Giả sử rằng người dùng i cũng có hứng thú với dữ liệu của người dùng j, một trong những hàng xóm của anh ta Để lấy dữ liệu này, có 2 trường hợp xảy ra:
- Dữ liệu của người dùng j (bản chính hoặc bản sao) được đặt tại máy chủ s: Dữ liệu của j có thể cung cấp bởi máy chủ s, không cần yêu cầu thêm bất cứ truy vấn nào
- Dữ liệu của người dùng j (bản chính hoặc bản sao) không nằm trên máy chủ s:
Dữ liệu của j cần phải được truy xuất từ máy chủ chính của j, cần phải mất một yêu cầu đọc phụ thêm gởi đến máy chủ này
Khối lượng dữ liệu trả về người dùng i là giống nhau trong hai trường hợp, nhưng số lượng yêu cầu đọc cần được xử lý ở phía máy chủ thì khác nhau và đặc biệt, trường hợp xấu nhất là i và j không cùng phân vùng Trong OSN (Online Social Network) khi mà những dữ liệu được yêu cầu có kích thước nhỏ, có them một yêu cầu đọc yêu cầu thêm băng thông và xử lý ở phía máy chủ Bởi vậy, mục tiêu trọng tâm khi phân hoạch mạng xã hội là tối giản hóa tải của máy chủ bởi yêu cầu đọc - gọi là tải đọc
(read load) cho những mối quan hệ xã hội giữa người dùng và tỷ lệ họ tạo ra những yêu cầu đọc o T ả i ghi (write load)
Một yêu cầu ghi khởi xướng bởi một người dùng yêu cầu cập nhật trên bản chính của nó cũng như tất cả các bản sao Chúng tôi đề cập đến số lượng ghi yêu cầu một máy chủ phải xử lý như tải ghi (write load), tải ghi phụ thuộc vào số lượng người dùng của máy chủ lưu trữ dữ liệu (bản chính hoặc bản sao ) và tỷ lệ mà tại đó họ bắt đầu yêu cầu ghi Như vậy, tải ghi phụ thuộc vào việc phân hoạch dữ liệu người dùng và chiến lược bản sao
Mỗi người dùng trên mạng cần có một hoặc nhiều bản sao dữ liệu để đảm bảo tính chịu lỗi và hiệu năng của hệ thống Việc truy xuất dữ liệu của người dùng có thể thông qua dữ liệu ở bản chính hoặc bản sao Vấn đề tối thiểu hóa tải của máy chủ và tối đa hóa cân bằng tải là một trong những mục tiêu quan trọng nhất của bất cứ hệ thống lưu trữ phân tán nào Điều này phụ thuộc vào rất nhiều yếu tố như: khả năng xử lý của máy chủ, băng thông của mạng, vị trí lưu trữ của dữ liệu người dùng,…và chiến lược lưu trữ bản sao Do mạng xã hội là một mạng động (các thành viên mới tham gia mạng tăng nhanh chóng cũng như mối liên kết giữa các thành viên không ngừng gia tăng) nên các máy chủ phải lưu trữ một lượng rất lớn dữ liệu (bản chính và bản sao)
Trong luận văn này tác giả tập trung vào độ đo số lượng bản sao như một mục tiêu chính bên cạnh mục tiêu cân bằng tải.
Chức năng của mạng xã hội
§ Tạo ra một hệ thống trên nền Internet cho phép người dùng giao lưu và chia sẻ thông tin một cách có hiệu quả, vượt ra ngoài những giới hạn về địa lý và thời gian § Xây dựng lên một mẫu định danh trực tuyến nhằm phục vụ những yêu cầu công cộng chung và những giá trị của cộng đồng § Nâng cao vai trò của mỗi công dân trong việc tạo lập quan hệ và tự tổ chức xoay quanh những mối quan tâm chung trong những cộng đồng, thúc đẩy sự liên kết các tổ chức xã hội § Tính năng: Chat, e- ‐mail, phim ảnh, voice chat, chia sẻ file, blog và xã luận.
Ảnh hưởng của mạng xã hội
Mạng xã hội có thể phát triển mạnh mẽ được như hiện nay là do những ưu thế đáng kể mà chúng mang lại so với các cách tiếp cận cộng đồng truyền thống §Về chi phí: Có thể thấy rằng việc tham gia vào một mạng xã hội, dù là đối với một cá nhân hay một tổ chức đều chiếm một chi phí rất thấp, bởi trên thực tế, các mạng xã hội hiện nay hầu hết cho phép đăng ký thành viên và sử dụng miễn phí Khi đã trở thành một thành viên của một mạng xã hội, các tổ chức có thể thu thập được rất nhiều thông tin hữu ích cho sự phát triển của mình Ví dụ như một công ty sau khi tham gia một mạng xã hội nào đó, thông qua mạng xã hội công ty có thể thu thập thông tin về các sở thích của người dùng (các thành viên), xu hướng của những sở thích đó Dựa trên các thông tin này công ty có thể phát hiện ra được những khách hàng tiềm năng, từ đó vạch ra một chiến lược kinh doanh phù hợp giúp doanh thu của công ty tăng trưởng tốt hơn §Về khả năng xây dựng các mối quan hệ tin cậy: Thông qua các các bài viết, đánh giá của các thành viên trong mạng xã hội, một công ty có thể nắm bắt được nhu cầu và thông tin phản hồi của khách hàng về các sản phẩm hay dịch vụ mà họ đã và đang cung cấp.Thông qua mạng xã hội, công ty có thể có những phản hồi tích cực đối với khách hàng, từ đó xây dựng một mối quan hệ "ảo" với khách hàng trong khi có thể mang lại một niềm tin "thực" Đối với cá nhân, nhờ việc đọc được những bài viết phần nào mang tính chất riêng tư, tâm sự của bạn bè, người thân, hay con cái,… họ có thể có được những hiểu biết rõ ràng hơn về bạn bè, người thân và con cái của mình, thấy được vấn đề mà họ đang vướng mắc, từ đó giúp họ giải quyết vấn đề dễ dàng hơn – làm tăng niềm tin trong mối quan hệ § Về khả năng tạo lập các mối quan hệ mới: việc tạo lập các mối quan hệ mới trong mạng xã hội trở nên dễ dàng hơn bao giờ hết Mỗi thành viên trong mạng xã hội có quan hệ bạn bè với một số thành viên khác trong mạng, những người bạn này cũng có những mối quan hệ bạn bè với một số thành viên khác (bạn khác), thong qua người bạn chung này các thành viên bạn bè của họ có thể biết nhau và có thể tạo lập mối quan hệ mới với thao tác đơn giản là gửi đi một lời nhắn đề nghị được kết bạn Sau khi được chấp nhận bởi phía bên kia, việc cần làm để gìn giữ mối quan hệ đó đó là cố gắng cân bằng giữa việc cho đi và nhận lại Việc này ở trên một mạng xã hội (xã hội ảo) tỏ ra đơn giản hơn so với việc duy trì mối quan hệ trong xã hội thực, bởi cho đi và nhận về trong mạng xã hội nhiều khi chỉ nằm ở mức có những bình luận trong những bài viết của bạn bè
Ngoài những ưu điểm ưu điểm mà mạng xã hội mang lại, như mọi vấn đề khác mạng xã hội cũng có mặt trái của nó (tính hai mặt của một vấn đề): §Thông tin cá nhân của người dùng: Khi đã trở thành thành viên của mạng xã hội, một số thông tin cá nhân của người dùng được chia sẻ trên mạng đồng nghĩa với việc người dùng cũng phải đối mặt với nguy cơ bị lợi dụng các thông tin (cá nhân) đăng tải lên đó Thông qua việc khai thác các thông tin cá nhân những kẻ có ý đồ không tốt có thể tìm hiểu nhiều thông tin khác về người dùng đó thông qua những người bạn, đồng nghiệp, cơ quan, tổ chức nơi người dùng làm việc và lợi dụng các thông tin này để làm ảnh hưởng tới lợi ích cá nhân của người dùng đó ngay thời điểm hiện tại cũng như trong tương lai §Cơ chế vận hành và chính sách của các mạng xã hội Mạng xã hội cũng như mọi trang web, phần mềm khác, đều phải giải quyết các vấn đề liên quan tới bảo mật thông tin Thông thường, khi tham gia vào mạng xã hội người dùng chỉ cần khai báo một số thông tin cơ bản (profile), các câu hỏi về bảo mật và chính sách bảo mật tài khoản để bảo vệ tài khoản thường được bỏ qua Thêm vào đó, các trang mạng xã hội còn gặp phải một sốvấn đề riêng ví dụ như tình trạng nhắn tin rác làm phiền những thành viên tham gia, tình trạng sử dụng những công cụ tự viết Vấn đề này xuất hiện khá nhiều trên các phương tiện thông tin đại chúng gần đây, có thể lấy ví dụ về vài sự cố các tài khoản mạng xã hội của những người nổi tiếng bị hacker kiểm soát, những thông tin nhạy cảm được tung ra §Chứng nghiện mạng xã hội: Ngày nay số lượng người thành viên trong mạng xã hội gia tăng đáng kể và đạt số lượng rất lớn, chẳng hạn như Facebook với hơn một tỷ tài khoản, twitter với hơn 500 triệu tài khoản, Zing với hơn 8 triệu tài khoản Việc tham gia một mạng xã hội, kiểm tra các thay đổi thông tin mới nhất từ bạn bè, cập nhật những thay đổi, thông tin cho chính mình nhiều khi làm mất thời gian của người tham gia Tất nhiên điều này còn tùy thuộc vào cách từng người phân phối thời gian của mình cho việc "online" trên các mạng xã hội mà họ tham gia Tuy vậy theo những phân tích gần đây thì có tình trạng khá nhiều người trẻ bị hội chứng "nghiện" khi tham gia mạng xã hội Nếu tình trạng này xảy ra ở diện rộng thì sẽ có rất nhiều hiệu ứng không tốt kèm theo
Nhược điểm của mạng xã hội phần lớn kế thừa từ những nhược điểm vốn có của các dịch vụ trên nền web, nhưng những ưu điểm của dịch vụ này lại mang tính chất đột phá so với các cách thức truyền thông cộng tác truyền thống Như trong một cuốn sách với tựa đề Groundswell của nhà xuất bản Forrester Research ra đời năm 2008, mạng xã hội và tác động của nó đã được mô tả với thuật ngữ "groundswell", tạm hiểu là: "một bước tiến tự nhiên của loài người khi sử dụng các công cụ trên mạng để kết nối, tích lũy kiến thức, lấy những gì họ cần – thông tin, hỗ trợ các ý tưởng, các sản phẩm hay khả năng thương lượng với cộng đồng" Và với những tiềm năng hiện tại mà mạng xã hội mang lại, việc tham gia, nghiên cứu và tận dụng những điểm mạnh mà mạng xã hội mang lại là cần thiết.
Đặc điểm của mạng xã hội
Kích thước lớn: mạng có hàng triệu, nếu không phải nói là hàng tỷ các nút Việc thể hiện các nút bằng đồ hoạ rất khó khăn
Cạnh trọng số: những kết nối giữa các nút thường có trọng số Những trọng số này miêu tả tương tác giữa các nút Ví dụ những trọng số này có thể miêu tả số lượng truy cập email giữa con người,…
Là mạng động: tức là số lượng những nút và liên kết thay đổi theo thời gian
Những đồ thị thuộc tính: Kết hợp với mỗi nút có thể là một tập các thuộc tính hoặc tính năng Ví dụ, tuổi, giới tính, vị trí, chất lượng Các nút có thể thuộc vào những lớp khác nhau như lớp nhà cung cấp, người mua hàng và những cạnh có thể chỉ tồn tại giữa những nút của các lớp khác nhau.
Những thách thức trong mạng xã hội
§ Thách thức trong việc sử dụng nguồn dữ liệu: Các mạng xã hội không phải là nguồn dữ liệu xác định tốt Bởi vì có rất nhiều mạng xã hội, mỗi mạng có những quy tắc, ràng buộc riêng và thu hút những loại người dùng là khác nhau § Thách thức trong việc thu thập số lượng lớn dữ liệu cho việc phân tích Vì mất thời gian lớn cho việc thu thập § Việc lọc tin nhắn và thư rác thực sự là vấn đề khó khăn trong nhiều mạng xã hội § Mạng xã hội thực tế thường là những mạng động Với số lượng nút và liên kết thay đổi theo thời gian.
Vấn đề lưu trữ trong mạng xã hội
Ngày nay, các dịch vụ trên Internet phải xử lí khối lượng dữ liệu rất lớn Hầu hết dữ liệu sẽ được lưu trữ phân tán trên nhiều máy chủ khác nhau Các cơ sở dữ liệu quan hệ đang được triển khai hiện nay giải quyết rất tốt nhiệm vụ lưu trữ dữ liệu nhất định nào đó, nhưng vì tính tập trung đó mà chúng có thể gây ra vấn đề khi mở rộng
Và, người sử dụng thường muốn tìm cách để bớt các thao tác kết nối (join) giữa các bảng, tức là phi chuẩn hóa dữ liệu – việc lưu trữ nhiều bản sao lưu của dữ liệu phá vỡ hoàn toàn thiết kế ban đầu, cả trong cơ sở dữ liệu và ứng dụng Hơn nữa, chúng ta thường xuyên cần tìm đường xung quanh các giao dịch phân tán - nơi rất dễ hình thành nên các nút thắt cổ chai Những hoạt động này thường không được hỗ trợ trực tiếp trong bất cứ cơ sở dữ liệu quan hệ nào Vì vậy, các hệ quản trị cơ sở dữ liệu quan hệ (Relational Database Management System - RDBMS) tỏ ra không còn phù hợp với các dịch vụ như thế này nữa Người ta bắt đầu nghĩ tới việc phát triển các hệ quản trị cơ sở dữ liệu (Database Management System – DBMS) mới – hệ quản trị cơ sở dữ liệu phân tán không quan hệ, phù hợp để quản lí khối lượng dữ liệu phân tán khổng lồ Các DBMS này thường được gọi là NoSQL (nonrelational hay Not only SQL)[12] Các cơ sở dữ liệu dạng NoSQL phổ biến bao gồm: Cassandra, CouchDB, Membase, MongoDB và Redis Một đại diện nổi bật của các NoSQL là Cassandra
2.9.1 Một số giải pháp phân hoạch động mạng xã hội §Cassandra
Cassandra là hệ cơ sở dữ liệu phân tán mã nguồn mở, phân tán hoàn toàn, không tập trung hóa, khả năng mở rộng cao, tính sẵn sàng cao, có khả năng chịu lỗi cực tốt
Cassandra được bắt đầu bởi Facebook, năm 2008 Facebook chuyển nó cho cộng đồng mã nguồn mở và được Apache tiếp tục phát triển đến ngày hôm nay Cassandra được coi là sự kết hợp của Amazon’s Dynamo và Google’s BigTable [30], [37]
Cassandra có khả năng chạy trên nhiều máy nhưng lại hiển thị trước người dùng như một thể thống nhất Cassandra không tập trung hóa nên không có điểm lỗi duy nhất nào Tất cả các nút trong một cluster Cassandra hoạt động như nhau Điều này đôi khi gọi là "máy chủ đối xứng" Bởi vì tất cả chúng đều làm những việc như nhau, và không có một máy chủ đặc biệt điều phối các hoạt động như với mô hình chủ/tớ (client/server) trong MySQL, Bigtable, và những nhiều hệ cơ sở dữ liệu khác
Khả năng mở rộng là một tính năng kiến trúc của một hệ thống cho phép nó có thể tiếp tục phục vụ số yêu cầu lớn hơn với hoạt động ít bị suy giảm Mở rộng theo chiều dọc – chỉ đơn giản thêm khả năng phần cứng và bộ nhớ máy tính hiện tại – là cách dễ nhất để đạt được điều này Mở rộng theo chiều ngang, có nghĩa là thêm nhiều máy chứa tất cả hoặc một phần dữ liệu để không có máy nào phải chịu toàn bộ gánh nặng của yêu cầu phục vụ Nhưng sau đó phần mềm bản thân nó phải có một cơ chế nội bộ để giữ dữ liệu của nó đồng bộ với các nút khác trong cụm (cluster)
Khả năng mở rộng mềm dẻo, đề cập đến một đặc tính đặc biệt của mở rộng theo chiều ngang Nó có nghĩa là cluster của bạn có thể mở rộng quy mô và giảm quy mô xuống một cách liền mạch
Tính sẵn sàng của một hệ thống được đánh giá dựa trên khả năng đáp ứng các yêu cầu của hệ thống đó Nhưng máy tính có thể mắc phải rất nhiều kiểu lỗi, từ lỗi phần cứng đến việc đứt mạng, Và, đa số các máy tính không thể tránh khỏi các loại lỗi này Tất nhiên, có một số máy tính phức tạp có thể tự mình làm giảm thiểu các lỗi này, vì chúng có nhiều phần cứng thay thế, và có khả năng gửi thông báo về các sự kiện lỗi để tự chuyển đổi các thành phần phần cứng của mình Nhưng bất cứ ai có thể vô tình làm hỏng một cáp Ethernet, và nó sẽ cô lập một trung tâm dữ liệu duy nhất Vì vậy, để một hệ thống được đánh giá là có tính sẵn sàng cao, nó thường phải bao gồm nhiều máy tính nối mạng,và phần mềm mà họ đang chạy phải có khả năng điều hành trong một cluster và có một vài cơ chế nhận diện lỗi ở các node thông qua yêu cầu tới các phần khác của hệ thống.Cassandra có tính sẵn sàng cao Bạn có thể thay thế các nút lỗi trong cluster mà không gây ra thời gian chết, và bạn có thể sao chép dữ liệu đến nhiều trung tâm dữ liệu cung cấp cải thiện hiệu năng và giảm thời gian dừng nếu một trung tâm dữ liệu phải đối mặt với một thảm họa như hỏa hoạn hoặc lũ lụt
Tính nhất quán cơ bản có nghĩa là thao tác đọc luôn được trả về giá trị bản ghi mới nhất Hãy xem xét việc hai khách hàng đang cố gắng để đặt cùng một mặt hang vào giỏ hàng của họ trên một trang web thương mại điện tử Nếu tôi đặt mặt hàng cuối cùng trong kho vào giỏ hàng của tôi ngay lập tức sau khi bạn làm việc đó, bạn sẽ nhận có hàng được thêm vào giỏ hàng của bạn, và tôi cần phải được thông báo rằng mặt hàng này đã hết Điều này được đảm bảo để xảy ra khi trạng thái của thao tác ghi là nhất quán giữa tất cả các nút có dữ liệu đó.Tuy nhiên, việc mở rộng quy mô lưu trữ dữ liệu nghĩa là chúng ta phải đánh đổi giữa tính nhất quán, tính sẵn sàng và khả năng chịu lỗi (chúng ta chỉ có thể lựa chọn 2 trong 3 đặc điểm này) Và Cassandra đã ưu tiên tính sẵn sàng hơn là tính nhất quán Vì thế, Cassandra có đặc điểm là "tùy chỉnh tính nhất quán", tức là nó cho phép người dùng điều chỉnh mức độ nhất quán theo yêu cầu, trong sự cân nhắc với mức độ sẵn sàng Mức độ nhất quán là một thiết lập mà client phải chỉ ra trên mỗi thao tác và cho phép bạn quyết định bao nhiêu bản sao trong cluster phải nhận biết thao tác ghi hay đáp ứng lại thao tác đọc để được xem là thành công
Cassandra thường được gọi là cơ sở dữ liệu hướng dòng, và điều này không sai
Nó không có quan hệ, và nó thể hiện cấu trúc dữ liệu của mình trong những bảng băm (hashtable) đa chiều rải rác Rải rác, nghĩa là với một dòng bất kỳ, bạn có thể có một hoặc nhiều cột, nhưng mỗi dòng không cần phải có tất cả các cột giống nhau như trong cơ sở dữ liệu quan hệ Mỗi dòng có một khóa riêng làm cho dữ liệu của nó có thể truy cập được
Cassandra lưu trữ dữ liệu trong bảng băm đa chiều nên bạn có thể không cần phải quyết định trước cấu trúc dữ liệu của mình nên như thế nào, hoặc các bản ghi cần những trường gì,… Điều này rất có lợi nếu bạn vừa mới bắt đầu phát triển ứng dụng, việc thêm vào hoặc loại bỏ các chức năng là khá thường xuyên Tuy nhiên, điều này không có nghĩa là bạn hoàn toàn không phải suy nghĩ gì về cấu trúc dữ liệu Cassandra khiến bạn có suy nghĩ khác đi về nó Thay vì thiết kế một mô hình dữ liệu ban đầu và sau đó thiết kế các truy vấn xung quanh mô hình đó như trong hệ cơ sở dữ liệu quan hệ, bạn có thể tự do nghĩ về các truy vấn trước, và sau đó cung cấp dữ liệu để trả lời những truy vấn đó
Cassandra yêu cầu bạn định nghĩa một container gọi là keyspace chứa các column family (lớp cột – nhóm cột được truy xuất cùng lúc) Keyspace thực chất chỉ là một namespace logic để giữ các column family và thuộc tính cấu hình cụ thể Ngoài ra, các bảng dữ liệu rải rác bạn có thể chỉ cần đưa dữ liệu vào đó, sử dụng cột mình muốn, và không cần phải định nghĩa trước các cột Thay vì mô hình hóa dữ liệu bằng các công cụ mô hình hóa đắt tiền, và viết những câu truy vấn phức tạp, Cassandra cho phép bạn mô hình hóa các truy vấn mình cần, và sau đó cung cấp dữ liệu cho nó
Cassandra được thiết kế nhằm mục đích tận dụng được ưu điểm của các máy đa xử lý/đa lõi, và để chạy trên nhiều máy ở nhiều trung tâm dữ liệu với khối lượng dữ liệu khổng lồ Cassandra có thể hoạt động tốt thậm chí dưới tải công việc cao Thao tác ghi trong Cassandra cũng được thực hiện rất nhanh chóng Khi bạn them nhiều server, bạn có thể duy trì tất cả đặc tính mong muốn của Cassandra mà không phải hy sinh hiệu năng hoạt động §Hadoop
Hadoop là một framework Java hỗ trợ các ứng dụng phân tán dữ liệu Nó cho phép các ứng dụng làm việc với hàng ngàn node và hàng Petabytes dữ liệu Hadoop bắt nguồn từ Google’s MapReduce và Google File System (GFS) Hadoop là một dự án Apache nhận được nhiều sự đóng góp của các công ty lớn như Yahoo, Google, IBM
Yahoo sử dụng Hadoop cho giải pháp lưu trữ các trang web tìm kiếm và sử dụng cho các doanh nghiệp quảng cáo của mình Hadoop đã được đưa vào trong các khóa học về lập trình phân tán trong trường đại học dưới sự hỗ trợ của Google Hadoop được khởi xướng bởi Doug Cutting Với mục tiêu ban đầu được phát triển là nhằm hỗ trợ việc phân phối cho các dự án máy tìm kiếm Nutch Tháng 2 năm 2008, Yahoo đã khởi động sản phẩm ứng dụng Hadoop mà họ khẳng định là lớn nhất trên thế giới Bản đồ Web tìm kiếm của Yahoo là một ứng dụng Hadoop chạy trên hơn 10000 cụm nhân Linux và tạo ra những dữ liệu mà ngày nay được sử dụng trong mọi truy vấn tìm kiếm web của Yahoo Ngày này có nhiều công ty sử dụng Hadoop như là một công cụ để lưu trữ và phân tích dữ liệu trên các khối dữ liệu lớn hàng Petabytes như: Facebook, Twitter, Amazon…
2.9.2 Tính cục bộ địa phương trong lưu trữ dữ liệu
Một số bài toán liên quan đến mạng xã hội
§Bài toán tìm kiếm thông tin trên mạng xã hội
Với khả năng phát triển rất mạnh hiện nay về số lượng thành viên đồng thời cũng đặt ra những bài toán xử lý thông tin trên mạng xã hội Các công nghệ tìm kiếm hiện tại nói chung vẫn chỉ dừng lại ở mức tìm kiếm nội dung trong các bài viết, tin nhắn được đăng tải trên các mạng xã hội Trong khi nhu cầu tìm hiểu và phân tích thông tin còn cao và không chỉ ở khả năng tìm kiếm nội dung thong thường, mà còn ở phương diện thu thập và phân tích các mối quan hệ, các đặc điểm Hiện tại cũng có một số phần mềm cho phép phân tích, xử lý các thông tin dựa trên quan hệ kiểu như trên Tuy nhiên có thể nhận thấy rằng, hầu hết những công cụ đó cần phải có một cơ sở dữ liệu đầu vào để tạo ra đồ thị quan hệ, thông thường là từ một kiểu file cơ sở dữ liệu như CSV, XML,… từ đó mới bắt đầu thực thi các phân tích liên quan tới đồ thị quan hệ đó Việc thu thập các nút, quan hệ giữa các nút hay các thuộc tính khác thường không được định nghĩa mà có thể nhờ một phần mềm khác, hay cũng có thể do người dùng trực tiếp đưa vào Cách thức này hạn chế ở điểm sẽ khó nắm bắt được các thay đổi trên mạng xã hội mang tính chất "thời gian thực" (tiếng Anh: realtime) §Bài toán phân tích trên mạng xã hội
Việc khai thác thông tin từ mạng xã hội phục vụ các mục tiêu kinh doanh, quảng bá,…đang thu hút nhiều người Phân tích mạng xã hội là nghiên cứu các mô hình của sự tương tác giữa các thực thể xã hội Lĩnh vực này đang thu hút sự chú ý rất nhiều của các ngành như xã hội học, sinh học Chúng ta có thể kể một số bài toán đáng quan tâm như:
Bài toán d ự báo link (liên k ế t, m ố i quan h ệ ) trên m ạ ng xã h ộ i
Phần lớn những nghiên cứu trong khai phá mạng xã hội tập trung vào bài toán dự báo link để lấy được những thông tin thú vị trên mạng xã hội như bài toán gán nhãn các nút Tuy nhiên, do mạng xã hội có tính chất động nên những link liên kết có thể thay đổi theo thời gian Ví dụ, liên kết tình bạn liên tục được tạo ra hoặc ngắt kết nối theo thời gian Câu hỏi đặt ra là làm thể nào có thể dự đoán link giữa hai nút trong mạng Quá trình dự đoán có thể sử dụng cấu trúc của mạng, thông tin thuộc tính của những nút khác hoặc dựa trên quan sát những link hiện có trong mạng
Bài toán phân tích ả nh h ưở ng trên m ạ ng xã h ộ i
Vì mạng xã hội được thiết lập chủ yếu trên cơ sở của sự tương tác giữa các thực thể xã hội khác nhau (tiếng Anh: actor, biểu diễn bằng nút) trên mạng Sự tương tác này có thể ảnh hưởng đến hành vi của các actor khác nhau Ví dụ như chúng ta có thể ứng dụng một tiếp thị lan truyền trên mạng xã hội, trong đó tận dụng kết nối giữa các actor trên mạng xã hội để lan truyền thông điệp Một số vấn đề liên quan:
- Làm thế nào để chúng ta xây dựng được mô hình ảnh hưởng trên các actor
- Ai là người có tần ảnh hưởng đến tốc độ lan truyền của những thông điệp trong mạng xã hội.
CƠ SỞ LÝ THUYẾT CHO BÀI TOÁN PHÂN HOẠCH
Bài toán tối ưu hóa tổng quát
Tối ưu hóa là một trong những lĩnh vực kinh điển của toán học có ảnh hưởng đến hầu hết các lĩnh vực khoa học – công nghệ và kinh tế - xã hội Trong thực tế, việc tìm giải pháp tối ưu cho một vấn đề nào đó chiếm một vai trò hết sức quan trọng
Phương án tối ưu là phương án hợp lý nhất, tốt nhất, tiết kiệm chi phí, tài nguyên, nguồn lực mà lại cho kết quả cao [2]
Cho hàm số f: D ⊂Rn → R Bài toán tối ưu tổng quát có dạng: Max (Min) f(x), với x ∈D ⊂Rn Như vậy, cần tìm điểm x = (x1, x2, , xn) ∈D ⊂Rn sao cho hàm mục tiêu f(x) đạt được giá trị lớn nhất đối với bài toán Max – cực đại hoá (giá trị bé nhất đối với bài toán Min– cực tiểu hoá) Điểm x = (x1, x2, , xn) ∈D ⊂Rn được gọi là phương án khả thi (hay phương án chấp nhận được hoặc phương án, nếu nói vắn tắt) của bài toán tối ưu: Max (Min) f(x), với x ∈D ⊂Rn Miền D được gọi là miền ràng buộc Các toạ độ thành phần của điểm x được gọi là các biến quyết định, còn x cũng được gọi là véc tơ quyết định
Xét bài toán cực đại hoá: Max f(x), với x ∈D ⊂Rn Điểm x* = * * * ( , , , ) x x x 1 2 n ∈Rn được gọi là điểm tối ưu (hay phương án tối ưu) toàn cục nếu x* ∈D và f(x*) ≥ f(x), ∀x ∈D Điểm ẋ ∈Rn được gọi là điểm tối ưu (hay phương án tối ưu) địa phương nếu ẋ ∈D và tồn tại một lân cận Nε đủ nhỏ của điểm ẋ sao cho f(ẋ ) ≥ f(x), ∀x
∈Nε ∩ D Đối với bài toán cực tiểu hoá Min f(x), với x ∈D ⊂Rn, điểm x* ∈Rn được gọi là điểm tối ưu (hay phương án tối ưu) toàn cục nếu x* ∈D và f(x*) ≤ f(x), ∀x ∈D Điểm ẋ
∈Rn được gọi là điểm tối ưu (hay phương án tối ưu) địa phương nếu ẋ ∈D và tồn tại một lân cận Nε đủ nhỏ của điểm ẋ sao cho f(ẋ ) ≤ f(x), ∀x ∈Nε ∩ D
Một phát biểu bài toán như vậy đôi khi được gọi là một quy hoạch toán học
(mathematical program) Nhiều bài toán thực tế và lý thuyết có thể được mô hình
3.1.1 Các yếu tố của một bài toán tối ưu hóa
Một bài toán tối ưu hóa có ba yếu tố cơ bản sau: §Trạng thái: mô tả trạng thái của hệ thống cần tối ưu hóa §Mục tiêu: đặc trưng cho tiêu chuẩn hoặc hiệu quả mong muốn (chi phí ít nhất, hiệu suất cao nhất, thời gian ngắn nhất,…) §Ràng buộc: thể hiện các điều kiện kinh tế, kỹ thuật mà hệ thống cần phải thỏa mãn
3.1.2 Phân loại các bài toán tối ưu
Các bài toán tối ưu (các bài toán quy hoạch toán học) được chia ra thành các lớp sau: §Quy hoạch tuyến tính (Linear programming) nghiên cứu các trường hợp khi hàm mục tiêu f là hàm tuyến tính và tập A được mô tả chỉ bằng các đẳng thức và bất đẳng thức tuyến tính (A được gọi là một khúc lồi) §Quy hoạch bậc hai (hay quy hoạch toàn phương) (Quadratic programming) cho phép hàm mục tiêu có các toán hạng bậc hai, trong khi tập A phải mô tả được bằng các đẳng thức và bất đẳng thức tuyến tính (A được gọi là một khúc lồi) §Quy hoạch phi tuyến (Nonlinear programming) nghiên cứu trường hợp tổng quát khi hàm mục tiêu hay các ràng buộc hoặc cả hai chứa các thành phần không tuyến tính §Quy hoạch ngẫu nhiên (Stochastic programming) nghiên cứu các trường hợp khi một số ràng buộc phụ thuộc vào các biến ngẫu nhiên §Quy hoạch động (Dynamic programming) nghiên cứu các trường hợp khi chiến lược tối ưu hóa dựa trên việc chia bài toán thành các bài toán con nhỏ hơn (nguyên lý quy hoạch động) §Tối ưu hóa tổ hợp (Combinatorial optimization) quan tâm đến các bài toán trong đó tập các lời giải khả thi là rời rạc hoặc có thể được rút gọn về một tập rời rạc
3.1.3Phương pháp mô hình hóa toán học
Nhiều vấn đề phát sinh trong thực tế có thể giải quyết được bằng cách áp dụng các phương pháp tối ưu toán học Tuy nhiên, điều quan trọng nhất là từ bài toán thực tế cần xây dựng được mô hình tối ưu thích hợp dựa vào các dạng bài toán tối ưu đã biết
Tiếp theo áp dụng các phương pháp tối ưu toán học và quy trình tính toán thích hợp để tìm ra lời giải cho mô hình đặt ra[2] § Các b ướ c ti ế n hành khi áp d ụ ng ph ươ ng pháp mô hình hóa toán h ọ c: Đầu tiên, phải khảo sát bài toán thực tế và phát hiện các vấn đề cần giải quyết Phát biểu các điều kiện ràng buộc và mục tiêu của bài toán dưới dạng định tính
Lựa chọn các biến quyết định /các ẩn số và xây dựng mô hình định lượng - mô hình toán học Thu thập dữ liệu và lựa chọn phương pháp toán học thích hợp để giải quyết mô hình trên
Trong trường hợp mô hình toán học là mô hình tối ưu, cần lựa chọn phương pháp tối ưu thích hợp để giải mô hình Xác định quy trình giải / thuật toán
Có thể giải mô hình bằng cách tính toán thông thường trên giấy Đối với các mô hình lớn, bao gồm nhiều biến và nhiều điều kiện ràng buộc cần tiến hành lập trình và giải mô hình trên máy tính để tìm ra phương án thỏa mãn mô hình Đánh giá kết quả tính toán
Trong trường hợp phát hiện thấy có kết quả bất thường, cần xem xét nguyên nhân, kiểm tra và chỉnh sửa lại mô hình hoặc dữ liệu đầu vào hoặc quy trình giải/ thuật toán / chương trình máy tính.
Bài toán phân vùng đồ thị (Graph partitioning)
Cho đồ thị G(V,E)và một số nguyên dương p, tìm tất cả tập con V1, V2, , Vp sao cho:
W(i) ≈ W/p, i = 1,2, , p, W(i) và W tương ứng là tổng trọng số của các đỉnh trong Vi và V
Cut size là tổng trọng số các cạnh kết nối giữa các tập con phải nhỏ nhất
Bất kì một tập nào V i với {V i ⊆ V : 1 ≤ i ≤ p}gọi là một p-way partition của G nếu nó thỏa mãn điều kiện (1) Mỗi V i là một phần của partition
Một bisection là một 2-way partition
Một partition thỏa mãn điều kiện (2) gọi là một partition cân bằng (balanced partition)
Hình 3.1: Một đồ thị được chia thành 4 phân vùng Ứng dụng quan trọngcủaphân vùngđồ thịbao gồm các tính toán khoa học (scientific computing), phân vùng giai đoạn khác nhaucủa một mạchthiết kếVLSI, lập kế hoạchcông việctrong các hệ thốngđa xử lý.Gần đây, vấn đề phân vùngđồ thịđã đạt đượctầm quan trọngdoứng dụng của nócho clusteringvà phát hiện cácbè phái(cliques)trong các mạngxã hội, bệnh lývàsinh học
Graph Partitioning được ứng dụng trong phân hoạch mạng xã hội Mục tiêu thông thường của việc phân hoạch là cực tiểu hóa số lượng (và cả khối lượng) liên hệ giữa các phân vùng (min-cut); nhằm giảm chi phí truy vấn (network traffic) tới các phân vùng khác nhau Ta có thể biểu diễn như sau:
Eij là chi phí liên hệ giữa hai partition Pi và Pj, i ≠ j Eij = tổng trọng số của các cạnh nối giữa 2 partition Pi và Pj p là số lượng partition
Tuy nhiên, trong luận văn này tôi không đi sâu vào làm giảm số min-cut Mục tiêu đề tài còn nhằm tối ưu việc lưu trữ Một kỹ thuật mà các mạng xã hội đang dùng là tạo ra một bản sao (replica) của user ở server mà nó có bạn Mục đích cũng nhằm làm giảm network traffic Vậy để tối ưu việc lưu trữ ta cần tối thiểu số replica Ta có thể biểu diễn như sau:
Với: i là user bất kỳ, j là server bất kỳ trong đồ thị đang xét
3.2.2 Phân tích độ phức tạp bài toán phân vùng đồ thị:
Thông thường,vấn đề phân vùngđồ thịthuộccácthể loạicủa các vấn đềNP- hard.Giải pháp cho cácvấn đềthườngcó nguồn gốcsử dụng heuristicsvà các thuật toánxấp xỉ.Tuy nhiên,phân vùngđồ thịthống nhất(uniform graph partitionin)hay vấn đềphân vùngđồ thị cân bằngcó thể đượcchứng minh làNP-completeđể tính gần đúngtrong bất kỳyếu tốhữu hạn.Ngay cả đối vớicác lớpđồ thịđặc biệt nhưtreevà grid,không tồn tại thuật toánxấp xỉ nào hợp lý, trừ khiP= NP Gridlà một trường hợpđặc biệt thú vịvì chúngmô hình hóađồ thịkết quảtừmô hìnhphần tử hữu hạn(Finite Element Model - FEM) Không chỉsố cạnhgiữa các thành phần (component) được xấp xỉ, mà kích thước củacác thành phần cũng được xấp xỉ.Việc này cho thấy không tồn tại một thuật toán nào có thể giải bài toán phân vùng đồ thị trong thời gian đa thức.
Liên hệ giữa Graph Parttitioning và bài toán Phân hoạch mạng xã hội hướng lưu trữ32
Phần này sẽ ánh xạ việc phân vùng đồ thị vào bài toán phân hoạch mạng xã hội; phân tích sự khác nhau giữa đồ thị nói chung và đồ thị mạng xã hội; phân tích sự tăng trưởng của mạng xã hội ảnh hưởng như thế nào tới việc phân vùng đồ thị theo thời gian
3.3.1 Graph Partitioning và đồ thị mạng xã hội
Tương ứng với định nghĩa bài toán phân vùng đồ thị, ta có thể trừu tượng hóa 1 mạng xã hội lưu trữ thông tin như sau:
Cho đồ thị thô G(V, E) và khối dữ liệu lưu trữ thông tin user D Với n là số lượng user trong D Ta có: Đỉnh v i {v i ∈ V, 1 ≤ i ≤ n}tương ứng 1 user trong D
Cạnh e i,j {e i,j ∈E, 1 ≤ i,j ≤ n} tương ứng 1 relationship trong D
Trọng số đỉnh v i = w v (v i )tương ứng mức độ sử dụng của user i trong D (mức độ thường xuyên sử dụng, số lượng người like, số lượng người theo dõi….)
Trọng số cạnh e i,j = w e (e i,j ) tương ứng priority của relationship (following, flower, friend, close friend,…) Ngoài ra, trọng số cạnh còn phụ thuộc vào mức độ thường sử dụng của liên kết
Một partition trong p-way partition tương ứng một server trong thực tế
3.3.2 Các tính chất của đồ thị xã hội (social graph)
Nếu xem một cộng đồng người dùng mạng xã hội như một social graph, ta thấy rằng các user không phân bố đều trên đồ thị mà phân tán ra thành nhiều vùng Mỗi vùng có thể là tập hợp của những user ở cùng một khu vực (thành phố, quốc gia, châu lục…) hoặc là tập hợp fan của những người nổi tiếng Các user trong cùng một vùng có nhiều mối liên hệ với nhau và ít mối liên hệ tới user của phân vùng khác [Hình 3.2].Thỉnh thoảng có một vài user không có bất cứ mối liên hệ nào với các user khác
Hình 3.2 – Sự phân bố của user trong một mạng xã hội
(http://www.fmsasg.com/SocialNetworkAnalysis/)
Từ phân tích trên, ta có thể ánh xạ mỗi user là 1 node trong đồ thị mạng xã hội.Các node phân bố thành từng khối Các node trong mỗi khối sẽ có nhiều cạnh nối với các node khác trong cùng khối Có rất ít cạnh nối giữa các khối [Hình 3.3]
Hình 3.3 - A drawing of a graph in which each person is represented by a dot called nodeand the friendship relationship is represented by a line called edge
(http://en.wikipedia.org/wiki/Social_graph)
Viêc phân vùng mạng xã hội có thể dựa trên sư phân bố của các node trên đồ thị
3.3.3 Tính tăng trưởng của đồ thị mạng xã hội theo thời gian
Do số lượng user cũng như các mối liên hệ trong mạng xã hội có thể tăng lên và biến động liên tục Ví dụ như viêc tăng số lượng user theo thời gian, xuất hiện thêm các mối liên hệ mới giữa các user (add friend, follow, join group, join fan page…) hoặc mất đi một số liên hệ (unfriend, unfollow, block a user hay một người không còn nổi tiếng nữa làm giảm các hoạt động trên mối liên hệ này…) Do đó cấu trúc đồ thị biểu diễn mạng xã hội đó phải liên tục biến đổi Việc cập nhật thêm user, các mối liên hệ mới phát sinh và mất đi cho đồ thị có thể làm mất tính cân bằng giữa các phân vùng (mục tiêu ban đầu của việc phân vùng đồ thị) Ví dụ như:
Số lượng user của một phân vùng có thể lớn hơn số lượng trung bình
Chi phí cho các hoạt động trên các mối liên hệ giữa các phân vùng tăng cao (nhiều cạnh mới phát sinh giữa 2 phân vùng, trọng số các cạnh giữa 2 phân vùng thay đồi…) Điều này dẫn đến yêu cầu phân vùng lại khi xảy ra mất cân bằng Việc xác định đồ thị bị mất cân bằng có thể dựa vào một số tính toán xấp xỉ như sau:
Với:W(i) và W tương ứng là tổng trọng số của các đỉnh trong Vi và V
Eij là chi phí liên hệ giữa hai partition Pi và Pj, i ≠ j Eij = tổng trọng số của các cạnh nối giữa 2 partition Pi và Pj p là số lượng partition
Mục tiêu cuối cùng vẫn là cực tiểu hóa chi phí C Nhưng C min mới không chắc chắn sẽ tốt hơn C !"# cũ trong công thức trên.Phương pháp này có thể không mang hiệu quả cao nhất nhưng có thể chấp nhận được vì rất khó để xác định C !"# mớicó tốt hơnC min cũ tại thời điểm tương ứng hay không
Phân hoạch bằng phương pháp chính xác
Phần này sẽ trình bày một phương pháp phân hoạch đồ thị một cách chính xác: phương pháp lập trình tuyến tính nguyên hay quy hoạch nguyên (Integer linear programming) Các thuật toán của phương pháp này đã được hiện thực trong thư viện nguồn mở FlopC++ Link tham khảo: http://www.coin-or.org/projects/FlopC++.xml https://projects.coin-or.org/FlopC++ Để dễ dàng biểu diễn và hiện thực thuật toán, các đồ thị mẫu sử dụng cho các ví dụ trong phần này là đồ thị vô hướng, trọng số đỉnh bằng 1, trọng số cạnh bằng 1 Ta dễ dàng thêm trọng số vào các điều kiện ràng buộc và hàm mục tiêu Việc này sẽ được bổ sung ở cuối phần 5.1
Hình 3.4 –Đồ thị ban đầu với 4 đỉnh 4 cạnh
Giả sử bài toán quy hoạch được phát biểu như sau: Cho đồ thị G(V, E) như hình 7 có |V| = n= 4 đỉnh, |E| = e= 4 cạnh Hãy phân đồ thị trên thành |P| = k = 2 phân vùng sao cho mỗi phân vùng đều có đỉnh, số lượng đỉnh mỗi phân vùng gần bằng nhau, sai số ±5%;số cạnh nối giữa 2 phân vùng là nhỏ nhất Ứng dụng integer linear programming (ILP), ta có các biến quyết định như sau:
Hàm mục tiêu nhằm cực tiểu số cạnh giữa các partition: min 𝑦 !
Với các ràng buộc như sau:
Mỗi đỉnh chỉ thuộc về 1 phân vùng:
Số đỉnh trong mỗi phân vùng phải gần bằng nhau với sai số ±5%:
Hiệu giữa 2 𝑥 ! ! và 𝑥 !! ! luôn ≤ yjvới j là cạnh nối 2 đỉnh i và i’
Cụ thể hóa các ràng buộc trên, ta có các bất đẳng thức sau: Điều kiện 1:
Kết quả phân hoạch như sau:
Hình 3.5 – Đồ thị sau khi phân vùng Đư a tr ọ ng s ố vào phân ho ạ ch:
Gọi w i lả trọng số đỉnh i, 1 ≤𝑖 ≤|𝑉|
Gọi w j là trọng số cạnh j, 1 ≤𝑗 ≤|𝐸|
Ta có thể đưa trọng số w j vào hàm mục tiêu: min 𝑦 !
∗𝑤 ! Đưa trọng số w i vào ràng buộc số 2:
3.4.2 Hiện thực quy hoạch bằng FlopC++
Biểu diễn đồ thị bằng ma trận kề
4 //Số lượng đỉnh 2 //Số partition 0 1 1 0
Khởi tạo và gán solver vào FlopC++ default model:
MP_model &model = MP_model::getDefaultModel();
MP_model::getDefaultModel().setSolver( new OsiCbcSolverInterface );
Khởi tạo các bộ chứa dữliệu và load thông tin đồ thị:
// Get curent time to compute the duartion later clock_t startTime = clock();
// A utility classto handle loadding data
DataProccessUtility* dataProccess = new DataProccessUtility(); unsigned int numV = dataProccess- ‐>numberOfNodes(); unsigned int numP = dataProccess- ‐>numberOfPartitions();
//Load graph info into set Edge dataProccess- ‐>loadPartitionData(Edge, numV, numP);
Khai báo biến quyết định
Khai báo và gán contraint cho model:
//each vertex only belongs to 1 partition vertexOverPartittion(i) = sum(P(j), x(i, j)) == 1 ; //each partition must contains vertex(s) numOfVertexPerPartition1(P) = sum( V(i), x(i,P) ) >=
(numV*1.0/numP) * (1 - ‐ alpha) ; numOfVertexPerPartition2(P) = sum( V(i), x(i,P) )