Taking too long? Close loading screen.

สถาบันข้อมูลขนาดใหญ่ (องค์การมหาชน)

Graph Analysis: การวิเคราะห์เชิงกราฟเบื้องต้นและตัวอย่างการประยุกต์ใช้

Nov 2, 2021

การวิเคราะห์เชิงกราฟ (Graph Analysis / Network Analysis) เป็นเทคนิคการวิเคราะห์ข้อมูลเพื่ออธิบายความสัมพันธ์เชิงลึกระหว่างข้อมูลสองสิ่งที่ถูกเชื่อมโยงกันเป็นเครือข่าย เราสามารถเชื่อมโยงข้อมูลความสัมพันธ์ระหว่างบุคคล สินค้า หรือสถานที่ โดยใช้หลักการของทฤษฎีกราฟ (Graph Theory) เพื่อทำให้เกิดมุมมองการวิเคราะห์ข้อมูลในมิติใหม่ เช่น การหารูปแบบข้อมูลที่เกิดซ้ำด้วยกันบ่อย ๆ การจัดกลุ่มข้อมูลในมิติของความสัมพันธ์ การเปรียบเทียบความสำคัญของข้อมูล และการค้นหาเส้นทางและระยะทางระหว่างข้อมูลในเครือข่าย เป็นต้น

ทำไมการวิเคราะห์เชิงกราฟถึงสำคัญ?

ในปัจจุบัน การวิเคราะห์เชิงกราฟได้ถูกประยุกต์ใช้ในหลายอุตสาหกรรม โดย Gartner (บริษัทวิจัยและผู้ให้คำปรึกษาด้านเทคโนโลยีสารสนเทศชั้นนำของโลก) ได้เลือกให้การวิเคราะห์เชิงกราฟเป็นหนึ่งในเทรนการวิเคราะห์ข้อมูลในปีล่าสุด (2564) และยังพยากรณ์ต่อไปว่า ภายใน 5 ปีข้างหน้า 80% ของการพัฒนานวัตกรรมใหม่ขององค์กรจะประยุกต์ใช้การวิเคราะห์เชิงกราฟ ซึ่งเพิ่มจาก 10% ในปีล่าสุด (อ่านเพิ่มเติมได้ ที่นี่)

ส่วนประกอบของกราฟ

กราฟในทฤษฎีกราฟมีส่วนประกอบที่สำคัญ 2 ส่วน ได้แก่

1 จุดยอด (Node) เป็นตัวแทนของจุดข้อมูลหนึ่งจุดที่เราต้องการติดตามในเครือข่าย ซึ่งในกรณีของรูปที่ 1 จุดยอด คือ คนที่อยู่ในกราฟความสัมพันธ์ ได้แก่ สมหญิง สมชาย สมปอง และสมหมาย

2 เส้นเชื่อม (Edges) เป็นเส้นที่เชื่อมต่อระหว่างจุดยอด ใช้กำหนดความหมาย และทิศทางของความสัมพันธ์ ระหว่าง 2 จุดยอด จากรูปที่ 1 เส้นเชื่อมบ่งบอกว่า สมชายและสมปองรู้จักทุกคนในกราฟความสัมพันธ์ ส่วนทิศทางของความสัมพันธ์นั้นเป็นแบบกราฟไม่ระบุทิศทาง สุดท้ายนี้ เมื่อวิเคราะห์จากเส้นเชื่อมอาจคาดเดาได้ว่า สมหญิงและสมหมายมีความสัมพันธ์หรือมีความสนใจที่ใกล้เคียงกัน เพราะสมหญิงและสมหมายต่างก็รู้จักสมชายและสมปอง

รูปที่ 1 กราฟความสัมพันธ์ระหว่าง สมหญิง สมชาย สมปอง และสมหมาย โดยเส้นเชื่อมบ่งบอกว่า คนไหนรู้จักกับใครบ้าง

ตัวอย่างการประยุกต์ใช้งานของการวิเคราะห์เชิงกราฟ

1 การเก็บข้อมูลแบบกราฟ

ปกติแล้ว เราจะคุ้นเคยกับการเก็บข้อมูลในรูปแบบของตารางข้อมูล (Relational Database) ซึ่งมีการกำหนดตัวแปรของข้อมูลที่เราสนใจไว้แล้ว ทุกครั้งเมื่อเราต้องการหาความสัมพันธ์ของข้อมูล เราต้องทำการเชื่อมความสัมพันธ์ระหว่างตารางข้อมูลที่ถูกจัดเก็บอยู่ในหลายตาราง จากรูปที่ 2 หากเราต้องการรู้ว่า พนักงานแต่ละคนอยู่แผนกไหน เราต้องทำการเชื่อมตารางรายชื่อพนักงาน (ซ้ายสุด) และตารางรายชื่อแผนก (ขวาสุด) เข้าด้วยกัน ซึ่งหากคำถามที่เราสนใจส่วนใหญ่ มีแต่การหาความสัมพันธ์ที่จำเป็นต้องเชื่อมโยงกันหลายตารางข้อมูลแล้ว การหาคำตอบด้วยวิธีนี้อาจจะไม่มีประสิทธิภาพมากนัก

รูปที่ 2 การค้นหาความสัมพันธ์เมื่อข้อมูลถูกเก็บแบบตารางข้อมูล (Relational Database)
ที่มาจาก neo4j

ในทางกลับกัน สำหรับการเก็บข้อมูลแบบกราฟข้อมูล (Graph Database) เราจะทำการบันทึกข้อมูลใหม่เป็นตัวข้อมูลนั้นเลยและกำหนดความสัมพันธ์ระหว่างข้อมูลใหม่กับข้อมูลที่มีอยู่ก่อนหน้า จากรูปที่ 3 Alice ถูกจัดเก็บเป็นหนึ่งข้อมูลในกราฟข้อมูล (Node) โดยมีความหมายกำกับว่าเป็นบุคคล (Label) และมีความสัมพันธ์แบบระบุทิศทาง (Relationships) กับข้อมูลแผนกที่มีอยู่ก่อนหน้าแล้ว ซึ่งหากเราต้องการรู้ว่า พนักงานแต่ละคนอยู่แผนกไหน เราก็ทำการหาค้นหาชื่อพนักงานดังกล่าวและดูว่า บุคคลดังกล่าวขึ้นตรงกับ (Belongs to) แผนกไหนบ้าง

รูปที่ 3 การค้นหาความสัมพันธ์เมื่อข้อมูลถูกเก็บแบบกราฟข้อมูล (Graph Database)

ทั้งนี้การจัดเก็บข้อมูลเข้าไปในระบบฐานข้อมูลยังมีอีกหลายประเภท ซึ่งผู้อ่านสามารถเข้าไปอ่านเพิ่มเติมได้จากบทความ หลักการเลือกใช้ Database 6 ประเภท

2 การพัฒนาระบบแนะนำ (Recommender System)

การวิเคราะห์เชิงกราฟสามารถประยุกต์ใช้ในระบบแนะนำสินค้าได้ โดยพัฒนามาจากความสัมพันธ์ของรายละเอียดของสินค้าแต่ละชิ้น แล้วทำการเชื่อมโยงหาสินค้าที่ใกล้กัน จากรูปที่ 4 เป็นตัวอย่างการแนะนำภาพยนตร์ โดยผู้ชมคนดังกล่าวเคยดูเรื่อง Cast Away, Back to the Future และ The Green Mile ส่วนใหญ่เป็นภาพยนตร์ประเภท adventure ถูกนำแสดงโดย Tom Hanks และถูกกำกับโดย Robert Zemeckis ซึ่งจากการวิเคราะห์เชิงกราฟ ระบบแนะนำจะทำการเลือกภาพยนตร์ที่มีคุณสมบัติใกล้เคียงกับเรื่องที่ผู้ชมเคยชมไปก่อนหน้าจำนวน 3 เรื่อง ได้แก่ Interstellar, Forrest Gump และ Raiders of the Lost Ark

รูปที่ 4 การใช้ความรู้จากการวิเคราะห์เชิงกราฟในการแนะนำภาพยนตร์ที่ผู้ชมสนใจ โดยใช้ประวัติการชมในอดีต ที่มาจาก RippleNet

อีกหนึ่งตัวอย่างคือเว็บไซต์เครือข่ายมืออาชีพบนอินเทอร์เน็ต Linkedin ได้ทำการเก็บข้อมูลในรูปแบบของกราฟข้อมูล เพื่อแนะนำเพื่อนที่อยู่ในเว็บไซต์ผ่านการเชื่อมโยงความสัมพันธ์ จากรูปที่ 5 สมมุติว่าผู้ใช้ (You) มีข้อมูลในเว็บไซต์และได้เพิ่มข้อมูลสถานที่ทำงานว่า ทำงานอยู่บริษัท Linkedin ทางระบบจะทำการแนะนำผู้ใช้คนอื่น ๆ ที่ทำงานอยู่บริษัท Linkedin เช่นกัน โดยจากตัวอย่างระบบได้แนะนำ Ashley, Brad และ Udi

รูปที่ 5 ระบบแนะนำบุคคลที่อาจรู้จักของบริษัท Linkedin

3 การช่วยค้นหาแหล่งที่มาของความสัมพันธ์

สำหรับกลุ่มธุรกิจการเงิน หนึ่งในอาชญากรรมที่เกิดขึ้นคือ การฟอกเงิน (Money Laundering) ซึ่งเป็นการกระทำด้วยวิธีใด ๆ เพื่อปกปิดหรืออำพรางลักษณะที่แท้จริง แหล่งที่ตั้ง การได้มา การโอนหรือการจำหน่าย การได้สิทธิใด ๆ ของทรัพย์สินที่เกี่ยวกับการกระทำความผิดให้ดูเสมือนว่าเป็นทรัพย์สินที่ได้มาโดยชอบด้วยกฎหมาย ยกตัวอย่างเช่น นักการเมืองได้รับเงินจากการติดสินบนจำนวนร้อยล้านบาท นักการเมืองคนดังกล่าวอาจจะเลือกโยกย้ายเงินดังกล่าวผ่านบัญชีของคนรู้จักหรือธุรกิจของตนเอง เพื่อทำให้เงินที่นักการเมืองคนดังกล่าวได้รับภายหลังนั้น ดูเหมือนว่าเป็นเงินที่มาจากธุรกรรมที่ถูกกฎหมาย ทำให้ไม่ถูกตรวจสอบจากตำรวจ

ในกรณีนี้ เราสามารถประยุกต์ใช้การวิเคราะห์เชิงกราฟมาตรวจจับการฟอกเงิน ด้วยการเชื่อมโยงเส้นทางธุรกรรมทางการเงินทั้งหมดที่เกี่ยวข้องกับนักการเมืองคนดังกล่าว หรือจากตัวอย่างในรูปที่ 6 Cecille ได้ทำการฟอกเงิน ด้วยการจายธุรกรรมทางการเงินผ่าน Joan David Mark Paul และ Silva

รูปที่ 6 ตัวอย่างการโยกย้ายเงินหลายบัญชีสำหรับการฟอกเงิน ที่มาจาก linkurio.us

สำหรับกลุ่มสาธารณะสุข การวิเคราะห์เชิงกราฟสามารถนำมาช่วยติดตามเส้นทางการแพร่กระจายและค้นหาสาเหตุของการเกิดโรคระบาด ผ่านการดูความเชื่อมโยงของข้อมูลระหว่าง บุคคลที่ติดเชื้อ และสถานที่ต่าง ๆ ที่ผู้ได้รับเชื้อไปมา เพื่อทำการวิเคราะห์ถึงบุคคลที่อาจมีความเสี่ยงที่ได้รับเชื้อเพิ่มเติม จากรูปที่ 7 เป็นกราฟความสัมพันธ์ระหว่างบุคคลที่ได้รับเชื้อโควิดและสถานที่ต่าง ๆ ที่บุคคลที่ได้รับเชื้อไปมา ในประเทศสิงคโปร์ เช่น เคสที่ 670 ชายชาวออสเตรเลีย ได้ไปร้าน Hero’s และไป Singapore Cricket Club โดยมีการติดต่อกับผู้หญิงเกาหลีที่ติดเชื้อเคสที่ 714 ทำให้สถานที่ดังกล่าวเป็นสถานที่เสี่ยง และทางสาธารณะสุขสามารถติดตามบุคคลที่ได้ไปสถานที่เหล่านี้ เพื่อทำการตรวจหาเชื้อและกักตัวในลำดับถัดไป ซึ่งจากการใช้ประโยชน์จากการวิเคราะห์เชิงกราฟก็เป็นส่วนหนึ่งที่ทำให้ประเทศสิงคโปร์สามารถลดการแพร่ระบาดของโควิดได้อย่างมีประสิทธิภาพ

รูปที่ 7 รูปการณ์เชื่อมโยงของผู้ติดเชื้อโควิดในประเทศสิงคโปร์เชื่อมโยงกับสถานที่ต่าง ๆ ที่บุคคลเหล่านี้ได้ไปมา
ที่มาจาก covid19 SG

จบไปแล้วนะครับสำหรับการวิเคราะห์เชิงกราฟเบื้องต้นและตัวอย่างการประยุกต์ใช้ หวังว่าบทความนี้จะช่วยให้ผู้อ่านเห็นภาพถึงประโยชน์และเป็นไอเดียสำหรับการนำเทคนิคดังกล่าวไปทำการวิเคราะห์ เพื่อให้ได้ insight จากข้อมูลในมิติที่แตกต่างออกไปจากเดิมนะครับ

เนื้อหาโดย ธนกร ทำอิ่นแก้ว
ตรวจทานและปรับปรุงโดย ดร. นนทวิทย์ ชีวเรืองโรจน์

Thanakorn Thaminkaew

Data Scientist at Government Big Data institute (GBDi)

Nontawit Cheewaruangroj, PhD

Project Manager and Senior Data Scientist at Big Data Institute (Public Organization), BDI