อัลกอริทึมสตรีมข้อมูล“ หารและพิชิต”


12

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

ฉันชื่อไม่กี่:

  • สิ่งที่ชัดเจนเช่นผลรวม, นาที, สูงสุด, นับ, ยอด -K ฯลฯ
  • อัลกอริธึมที่เรียกว่า "แบบร่างภาพ" โดยประมาณสำหรับฮิสโตแกรมการนับรายการที่แตกต่างหรือการคำนวณควอนไทล์

มีคนอื่นอะไรอีกบ้าง?

(ฉันสนใจเพราะฉันเขียนโครงการงานอดิเรกเพื่อตรวจสอบระบบกระจายที่มีประโยชน์ถูกกำหนดโดยตรงโดยประโยชน์ของอัลกอริทึมดังกล่าว)


ฉันคิดว่ามันยากกว่าที่จะนึกถึงอัลกอริทึมการสตรีมใด ๆ ที่ไม่ได้ "หารและพิชิต" / เชื่อมโยง อาจจะมีฟังก์ชั่นแฮชกลิ้งอยู่บ้าง ...
โทมัส Ahle

คำตอบ:


9

Guha และคณะ '03ให้อัลกอริทึมการประมาณสำหรับการทำคลัสเตอร์ k-median ในโมเดลการสตรีม อัลกอริทึมของพวกเขาแบ่งข้อมูลออกเป็นส่วนที่แยกจากกันพบว่ามีศูนย์กลาง O (k) สำหรับแต่ละส่วนที่แยกจากนั้นรวมผลลัพธ์เข้าด้วยกันเพื่อให้ได้ศูนย์ k นี่เป็นประเภทของอัลกอริทึมที่คุณกำลังมองหา


7

εεith(i1)th-level stream และระดับ 0 เป็นสตรีมดั้งเดิม) นี่เป็นพื้นฐานของการแบ่งและพิชิตกลยุทธ์ พร้อมการอัปเดตที่ "ขอบ" ของแผนผังการสอบถามซ้ำ ในโครงสร้างมันคล้ายกับ Guha et al paper ที่กล่าวถึงโดย Lev


6

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

สิ่งนี้ทำให้ฉันนึกถึงทฤษฎีบทโฮโมมอร์ฟิสม์ที่สาม ...


ฉันไม่คิดว่าเอกสาร Ganguly บอกเป็นนัยว่ากลยุทธ์การแบ่งและการพิชิตสามารถทำงานได้สำหรับการสตรีม โมเดลนั้นดูเหมือนจะลดลงเป็นโมเดล Mapreduce / MUD ซึ่งอาจมีการส่งผ่านข้อมูลหลายครั้ง
Suresh Venkat

เมื่ออ่านดูเหมือนว่าฉันจะไม่ใช้หลายผ่านหลังจากทั้งหมด
jkff

4

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

ฉันรู้ว่านี่ไม่ได้ตอบคำถามของคุณโดยตรง แต่ควรทำให้คุณได้สัมผัสกับงานวิจัยที่ทำโดยคนที่ออกจากจุดเริ่มต้นเดียวกัน


4

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

นอกจากนี้ฉันไม่แน่ใจว่าอัลกอริทึมการสตรีมบน k สามารถรวมกันได้ - แต่ฉันอาจผิด


Top-k สามารถรวมกันได้เล็กน้อย: เพื่อรวมสองรายการของรายการ k คุณรวมเข้าด้วยกันและนำรายการสุดท้ายของผลลัพธ์ k :) อย่างไรก็ตามบางทีคุณอาจหมายถึง "อันดับสูงสุดบ่อยที่สุด" แต่ฉันหมายถึงรายการนี้ (ซึ่งก็เป็น ตัวอย่างเช่นปัญหาที่มีประโยชน์สำหรับการคำนวณแบบกระจายของบางสิ่งเช่นกำแพง Facebook)
jkff

3

ขออภัยที่จะต้องทำความเข้าใจกับสิ่งนี้ แต่ฉันคิดว่าคุณอาจต้องการดูงานบางอย่างเกี่ยวกับการตรวจสอบอย่างต่อเนื่องแบบกระจายบนสตรีมซึ่งคุณจะได้รับหลายสตรีมและเป้าหมายคือการตรวจสอบสถิติรวมที่ไซต์ตรวจสอบส่วนกลาง แบบจำลองนั้นเกี่ยวกับแรงจูงใจของคุณ ดูการอ้างอิงในหนังสือของ Muthu กระดาษหนึ่งคือนี้

กระดาษของกังกุลีก็น่าสนใจเช่นกัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.