Tamr (Data Tamer ก่อนหน้านี้) ทำการขจัดข้อมูลซ้ำซ้อนในฐานข้อมูล ไร้เดียงสาเบย์และการจัดกลุ่มกราฟเกี่ยวข้อง
ฉันเชื่อว่าอัลกอริทึมส่วนใหญ่จะใช้งานใน SQL ซึ่งค่อนข้างแปลก แต่ผู้เขียนหลักของ whitepaper ของพวกเขาคือ Michael Stonebraker ซึ่งช่วยนำไปสู่การสร้าง PostgreSQL
ตรวจสอบเอกสารไวท์เปเปอร์ที่นี่
แก้ไข: ฉันได้สรุปขั้นตอนที่กระดาษใช้ด้านล่าง คำพูดของฉันบางคำเกือบจะเหมือนกับในกระดาษ
ระบบการขจัดข้อมูลซ้ำซ้อนของ Tamr มีสองขั้นตอนหลักในการจัดการกับแหล่งข้อมูลใหม่: (1) การระบุแอตทริบิวต์และ (2) การรวมเอนทิตี สิ่งเหล่านี้เทียบเท่ากับการลดความซ้ำซ้อนของคอลัมน์และการลดความซ้ำซ้อนของแถว
1) การเปรียบเทียบแหล่งข้อมูลใหม่กับแหล่งข้อมูลที่มีอยู่ขั้นตอนแรกคือการระบุแอตทริบิวต์
แอ็ตทริบิวต์ (คอลัมน์) ของแหล่งที่มาใหม่จะถูกแมปกับแอตทริบิวต์ของแหล่งที่มีอยู่ด้วยอัลกอริทึมสี่:
- เปรียบเทียบชื่อแอ็ตทริบิวต์ด้วยการเปรียบเทียบสตริงฟัซซี
- พิจารณาทั้งคอลัมน์เป็นเอกสารโทเค็นวัดความถี่ทั้งหมด / ความถี่เอกสารผกผัน (TF-IDF) ความเหมือนโคไซน์ที่คล้ายคลึงกันระหว่างคอลัมน์นั้นกับคอลัมน์อื่น ๆ
- ความยาวเชิงอธิบายขั้นต่ำ: เปรียบเทียบสองคอลัมน์ตามขนาดของการแยกและการรวมกับการจับคู่ที่ตรงกัน
- สำหรับคอลัมน์ที่เป็นตัวเลขให้ทำ t-test ระหว่างคอลัมน์ใหม่และคอลัมน์ตัวเลขที่มีอยู่เพื่อดูว่าคอลัมน์นั้นมาจากการแจกแจงแบบเดียวกันหรือไม่
2) การรวมเอนทิตี (การคัดลอกแถว)
เมื่อดำเนินการการระบุคุณสมบัติแล้วเราต้องการขจัดข้อมูลซ้ำซ้อนในแถว (บันทึก)
การจัดหมวดหมู่ด้วยการทำคลัสเตอร์
ระเบียนจะถูกจัดกลุ่มเป็นหมวดหมู่ตามความคล้ายคลึงกันก่อนจากนั้นจึงเรียนรู้กฎการคัดลอกซ้ำในระดับหมวดหมู่ ตัวอย่างที่พวกเขาจัดให้มีการจัดหมวดหมู่สำหรับฐานข้อมูลของสกีรีสอร์ตที่สกีรีสอร์ตตะวันตกควรเป็นหมวดหมู่ที่แตกต่างจากสกีรีสอร์ตตะวันออก การจัดหมวดหมู่จะทำด้วยอัลกอริทึมการจัดกลุ่มด้วย k- หมายถึงให้เป็นตัวอย่าง
คัดลอกซ้ำกับ Bayes ไร้เดียงสา
เมื่อมีการระบุคุณลักษณะและบันทึกได้รับการจัดกลุ่มเป็นหมวดหมู่เราเรียนรู้กฎการขจัดข้อมูลซ้ำซ้อนสำหรับแต่ละหมวดหมู่ตามชุดการฝึกอบรมของการเรียนรู้แบบสองทางและแบบที่ไม่ใช่แบบซ้ำ
กฎการขจัดข้อมูลซ้ำซ้อนมีสองประเภท:
- เกณฑ์สำหรับความคล้ายคลึงกันของแอตทริบิวต์ที่เกี่ยวข้องกับฟังก์ชันระยะทางที่สมเหตุสมผลสำหรับแอตทริบิวต์ (กระดาษไม่ชัดเจนเกี่ยวกับวิธีการเรียนรู้เกณฑ์เหล่านี้)
- การแจกแจงความน่าจะเป็นสำหรับ dupe และ non-dupesในแต่ละแอ็ตทริบิวต์ เช่น
P("Title" values similar | duplicate) ~ 1
และ
Pr("State" values are different | duplicate) ~ 0
สำหรับเร็กคอร์ดแต่ละคู่เราคำนวณความคล้ายคลึงกันของแต่ละแอตทริบิวต์ของพวกเขาด้วยการวัดระยะทางที่เหมาะสม หากแอ็ตทริบิวต์ใด ๆ มีความคล้ายคลึงกันเหนือขีด จำกัด คู่ของเร็กคอร์ดจะถูกป้อนผ่านตัวจําแนก Naive Bayes เพื่อจัดประเภทเป็นแบบ dupe หรือ non-dupe
สมมติฐานของฉันคือว่าสำหรับบันทึกX1 = (a1,b1,c1,d1)
, X2 = (a2,b2,c2,d2)
พวกเขาคำนวณเวกเตอร์คล้ายคลึงกันS = (s_a, s_b, s_c, s_d)
ที่s_i
คล้ายคลึงกันสำหรับแอตทริบิวต์ WRT กับตัวชี้วัดระยะทางที่ถูกต้อง
ฉันถือว่าตัวจําแนก Naive Bayes ของพวกเขามีโครงสร้างนี้:
P(dupe|S) = P(dupe)P(s_a|dupe)(s_b|dupe)(s_c|dupe)P(s_d|dupe) / P(S)
การแก้ไขเอนทิตีด้วยการจัดกลุ่มกราฟ
หลังจากขั้นตอนการจัดหมวดหมู่เรามีชุดย่อยของบันทึกจากหมวดหมู่ที่กำหนดซึ่งเชื่อว่าเป็นรายการซ้ำแบบคู่ เหล่านี้ตอนนี้จำเป็นต้องได้รับการแก้ไขลงไปในหน่วยงานที่แตกต่างกัน สิ่งนี้จะช่วยแก้ปัญหาความสลับซับซ้อน: หากบันทึก t1 เป็นค่าที่สองของ t2 และ t2 เป็นค่าที่สองของ t3 ดังนั้น t1 จะต้องเป็นค่าของ t3 ด้วย นี้คือการพูด T1, T2 และ T3 แทนนิติบุคคลเดียวกัน
โครงสร้างกราฟจะใช้สำหรับขั้นตอนนี้ ภายในหมวดหมู่แต่ละระเบียนที่อาจเป็น dupe นั้นเป็นโหนด โหนดที่สงสัยว่าเป็นแบบคู่กันจะมีขอบอยู่ระหว่างกัน กลุ่มจะถูกค้นพบในกราฟและจากนั้นรวมเข้าด้วยกันตามเกณฑ์ที่เกี่ยวข้องกับวิธีการเชื่อมต่ออย่างมากคลัสเตอร์หนึ่งไปยังอีก ต่อไปนี้เป็นตัวอย่างของคู่คลัสเตอร์ที่อาจรวมหรือไม่รวมเข้าด้วยกันตามการเชื่อมต่อ:
c1 c2
x-x-x-----y-y-y
|\|/| |\|/|
x-x-x-----y-y-y Meets similiarity threshold
|/|\| |/|\|
x-x-x-----y-y-y
x-x-x y-y-y
|\|/| |\|/|
x-x-x-----y-y-y Does not meet similarity threshold
|/|\| |/|\|
x-x-x y-y-y
x y
| |
x-----y Meets similarity threshold
| |
x y
เมื่อขั้นตอนวิธีการยุติแต่ละคลัสเตอร์ควรเป็นตัวแทนของนิติบุคคลที่แตกต่างกันภายในหมวดหมู่ เพื่อเสร็จสิ้นกระบวนการที่คุณลักษณะของกิจการนี้จะต้องได้รับการพิจารณาจากคุณลักษณะของระเบียนที่อยู่ภายใน Nulls จะถูกยกเลิกก่อนจากนั้นจึงใช้วิธีการต่างๆรวมถึงความถี่, ค่าเฉลี่ย, ค่ามัธยฐานและค่ายาวที่สุด
บทความยังได้พัฒนาวิธีการบางอย่างสำหรับการใช้ผู้เชี่ยวชาญโดเมนเพื่อช่วยเมื่ออัลกอริทึมไม่แน่ใจและวิธีการใช้ผู้เชี่ยวชาญหลายคนที่มีระดับความเชี่ยวชาญแตกต่างกัน