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

Logo BDI For web

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 Big Data Institute (Public Organization), BDI

© Big Data Institute | Privacy Notice