Secure Management of User Location Data to Improve User Experience

Jay Khemaphiratana
botnoi-classroom
Published in
3 min readDec 12, 2020

(เขียนโดยทีมงานบอทน้อย)

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

ข้อดีของการมีข้อมูลสถานที่ คือสามารถนำข้อมูลมาวิเคราะห์เพื่อพัฒนาประสบการณ์การใช้งานบนแพลตฟอร์มได้ (user experience)

สามารถเพิ่มบริการใหม่ๆ เช่น:

• ตรวจข่าวสารท้องถิ่น
• เดินทางไปทำงานด้วยเส้นทางที่ไม่แออัด
• หาและจองที่นั่งกับร้านอาหาร
• ส่งสถานที่ในแชทกับเพื่อนๆ
• ค้นหาข้อมูลใกล้ตัว
• ช็อปคูปองกับร้านต่างๆ

เป้าหมายคือ ‘Bring the local closer to you’ แปลว่า นำท้องถิ่นให้ใกล้ขึ้นกับตัวคุณนั่นเอง

แต่ข้อแม้คือ การเก็บข้อมูลเหล่านี้อย่างปลอดภัยเป็นพันธกิจระดับสูงขององค์กร เรามาดูกันว่า LINE มีมาตรการการรักษาความปลอดภัยอย่างไรบ้าง เพื่อทำความเข้าใจกับโครงสร้างพื้นฐานของการรักษาข้อมูลส่วนตัว

ขณะนี้ LINE มี 3 มาตรการหลักที่ใช้ร่วมกันเพื่อเก็บข้อมูลอย่างปลอดภัย

Governance Security — การเก็บและจัดการข้อมูลอย่างปลอดภัย

LINE ต้องมีสภาพแวดล้อมการจัดการข้อมูลที่เข้มแข็ง โดยหลักๆมี 3 ช่องทาง:

User Agreement: ข้อตกลงการใช้งานของผู้ใช้ ให้ยินยอมกับการเก็บข้อมูลส่วนตัวเพื่อมาพัฒนาแพลตฟอร์ม และสามารถแก้ไขตัวเลือกเก็บข้อมูลได้ทุกเมื่อ เช่นการลบข้อมูลของตัวเอง

Platform Environment: LINE มีหน้าที่ในการสร้างสภาพแวดล้อมบนแพลตฟอร์ม ที่สามารถเชื่อมต่อแอพอื่นๆกับข้อมูลส่วนตัวได้อย่างปลอดภัย และเก็บข้อมูลในที่ปลอดภัย โดยใช้ authentication หลายรูปแบบเพื่อดึงข้อมูลมาใช้ และถอดข้อมูลสถานที่ออกจากบัญชีที่มีข้อมูลส่วนตัวนอกเหนือจากที่ต้องการ ข้อมูลต้องผ่านขบวนการ mapping ที่ไม่ระบุตัวตนกับข้อมูล

Operations / Policy: การเข้าสู่ข้อมูลที่เก็บไว้ ต้องผ่านขั้นตอนการอนุมัติที่เคร่งครัด และการใช้งานข้อมูลในการพัฒนา ต้องผ่านการคัดเลือก use case กับ intent ถึงจะสามารถ implement ได้

Data Analysis — การวิเคราะห์ข้อมูลและทำความเข้าใจกับการใช้งาน

การวิเคราะห์ข้อมูลคือการสรุปข้อมูลสถานที่จำนวนมาก (location data) เพื่อเอามาทำความเข้าใจกับโปรไฟล์การใช้งานของผู้ใช้ (user profiling) และมาเสนอว่าโปรไฟล์ต่างๆมีความต้องการอะไรบ้าง (case study)

ข้อมูลที่ใช้ได้มาจากสามแหล่ง: ผู้ใช้ เวลาการใช้งาน และ ข้อมูลสถานที่

ข้อมูลผู้ใช้จะมาจากที่อยู่ IP และ GPS ของมือถือ และเราสามารถสร้างข้อมูลระยะเวลาจากข้อมูลสองแบบนี้ รวมกับข้อมูลแผนที่ท้องถิ่น

สามารถสร้างโปรไฟล์จากข้อมูลสถานที่

ข้อมูลการใช้งานในเดือนเดียวมีผู้ใช้อยู่เฉลี่ย 41 ล้านคน และเราสามารถแบ่งแยกจุดประสงค์การใช้งานได้ เช่นสถานที่การทำงาน ที่พักอาศัย เส้นการเดินทาง ฯลฯ แล้วนำไปสร้างโปรไฟล์การใช้งานโดยรวม

เรามาดูตัวอย่างขบวนการดีกว่า

ถ้าเรามีข้อมูลสถานที่ของผู้ใช้งานสองบัญชี เราสามารถทราบสายรถไฟที่เดินทาง และจุดประสงค์การเดินทางได้ไหม?

รูปร่างคล้ายกันมาก!

ถ้ารูปร่างของสถานที่การใช้งานในระยะเวลานึงของผู้ใช้งานคล้ายกับรูปร่างของสายรถไฟบนแผนที่ (shaping) อัลกอริทิมจะสามารถเดาได้ว่าน่าจะใช้สายรถไฟนี้!

เราสามารถใช้หลักการนี้กับสายอื่นได้ด้วย!

ในท้องถิ่นนึง มีผู้ใช้งานทำอะไรกันอยู่ทุกวัน?

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

ตอนกลางวัน ผู้ใช้งานส่วนใหญ่จะรวมตัวกันรอบสถานีรถไฟโตเกียว

แต่ตอนกลางคืน ผู้ใช้งานจะกระจายกันในวงรอบสถานีในระยะ 20 กม.

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

Delivery Search — สรุปข้อมูลใช้งานมาพัฒนาการใช้งาน และเสริมบริการในสถานที่ต่างๆอย่างถูกต้อง

ก่อนที่เราจะสามารถเพิ่มบริการให้ผู้ใช้ เราจำเป็นต้องเลือกผู้ใช้ที่เหมาะสมกับการรับบริการต่างๆ โดยทาง LINE ได้สร้าง API ที่สามารถค้นหาและเลือกผู้ใช้ตามที่ต้องการ

ข้อมูลการใช้งานเฉพาะตนจะถูกเก็บเป็นจุดพิกัดบนแผนที่และที่อยู่ IP การใช้งานข้อมูลในรูปแบบนี้จะใช้ลำบาก จึงต้องใช้ machine learning มาช่วย

เมื่อเราสรุปยอดการใช้งานในตำแหน่งที่คล้ายกันแล้ว เราจะได้ข้อมูลในรูปแบบ geohash มา จะเหมือนรูปร่างบนแผนที่ ที่มีข้อมูลเช่นชื่อ จุดประสงค์ เวลาการใช้งานหลัก และตำแหน่งใกล้เคียง

geohash

ข้อมูล geohash สามารถใช้ได้กับข้อมูลการใช้งาน เพื่อเลือกผู้ใช้ที่เหมาะสมกับการรับบริการในระยะเวลาที่ต้องการ

geohash ไม่ได้จำกัดรูปร่าง!

นอกจากนี้ ยังมีข้อมูล geofence ที่กำหนดพิกัดการใช้งานในแต่ละสถานที่ เช่นเวลาของการเข้าออกใน geohash

การเข้าออกจะเรียกเป็น event

เมื่อเราได้ทำความเข้าใจกับข้อมูลสถานที่แล้ว เรามาดู use case กันดีกว่า

แจ้งเตือนอุบัติเหตุร้ายแรง

ในกรณีที่มีข่าวภัยอันตรายร้ายแรง เช่นพายุหรือแผ่นดินไหว เราควรทำอย่างไรดีเพื่อให้ทุกคนในสังกัดบริเวนได้รับรู้อย่างรวดเร็ว?

เกิดอะไรขึ้น!!!!

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

อัลกอริทิมดังนี้ จะใช้ string matching กับ parallel index เพื่อค้นหาทุกคนอย่างรวดเร็วที่สุด เพาะในกรณีฉุกเฉินจริงๆจะมีเวลาจำกัด

นำ geohash มาแปลงเป็น string และทำการค้นหา

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

โฆษณาตามสถานที่ท้องถิ่น

ตั้งแต่สถานการณ์ COVID-19 ได้เริ่มต้นในเดือนพฤษภาคม การใช้งานของข้อมูลสถานที่ได้ลดลงอย่างยิ่ง เพราะข้อมูลสถานที่นับว่าใช้งานได้ถึง 15–20% ของการโฆษณาทั้งหมด

การเจาะจงโฆษณากับสถานที่มีสองขั้นตอน:

สร้าง POI (Point of Interest) จากข้อมูล geohash และพิกัดบนแผนที่ และทำความเข้าใจกับรูปแบบการใช้งานรายวันในแต่ละบริเวน เจ้าของธุรกิจหรือที่ดินในพิกัดนั้นสามารถเปลี่ยนแปลงข้อมูล POI ตามที่ต้องการ

2. สร้าง Geodemographic ขึ้นมาที่จะสรุปผลของนิสัยการใช้งาน เพราะคนที่อยู่ในบริเวนเดียวกัน จะมีพฤติกรรมที่คล้ายๆกัน และสามารถใช้ในการเจาะจงโฆษณาอย่างเหมาะสม

LINE จะผูกผู้ใช้กับข้อมูลเหล่านี้ เพื่อมาเสริมบริการเช่นส่วนลด คูปอง โฆษณาสินค้า ฯลฯ และอำนวยความสะดวกให้กับทั้งทางร้านและทางลูกค้า

POI ที่นึงจะมี content ที่เป็นเอกลักษณ์ ไม่เหมือนใคร และ LINE เป็นแพลทฟอร์มที่ส่งต่อข้อมูลนี้ให้กับกลุ่มเป้าหมายผู้ใช้งาน

สรุป…

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

--

--

Jay Khemaphiratana
botnoi-classroom

Data Scientist at BOTNOI Group. Programming enthusiast.