การจัดสรร Dirichlet แฝงเทียบกับกระบวนการ Dirichlet ตามลำดับชั้น


49

Latent Dirichlet Allocation (LDA)และHierarchical Dirichlet Process (HDP)เป็นทั้งกระบวนการสร้างแบบจำลองหัวข้อ ข้อแตกต่างที่สำคัญคือ LDA ต้องการข้อมูลจำเพาะจำนวนหัวข้อและ HDP ไม่ต้องการ เหตุผลที่เป็นเช่นนั้น? และอะไรคือความแตกต่างข้อดีและข้อเสียของวิธีการสร้างแบบจำลองหัวข้อทั้งสอง


HDP ควรได้รับการขับเคลื่อนด้วยข้อมูลเกี่ยวกับจำนวนหัวข้อที่จะเลือกหรือไม่? ในทางปฏิบัติฉันพยายามใช้งาน HDP ของ Blei และมันก็กินหน่วยความจำทั้งหมดจนกว่าฉันจะฆ่ากระบวนการ ฉันมี RAM 16GB และมีเอกสารสั้น ๆ เกิน 100K เพื่อทำการวิเคราะห์
Vladislavs Dovgalecs

คำตอบ:


35

HDP เป็นส่วนขยายของ LDA ออกแบบมาเพื่อจัดการกับกรณีที่จำนวนองค์ประกอบผสม (จำนวน "หัวข้อ" ในแง่การสร้างแบบจำลองเอกสาร) ไม่เป็นที่รู้จักมาก่อน นั่นคือเหตุผลว่าทำไมจึงมีความแตกต่าง

ใช้ LDA สำหรับการสร้างแบบจำลองเอกสารแต่ละคนปฏิบัติต่อ "หัวข้อ" เป็นการกระจายคำในคำศัพท์ที่รู้จักกันดี สำหรับแต่ละเอกสารส่วนผสมของหัวข้อจะถูกดึงมาจากการแจกแจง Dirichlet และแต่ละคำในเอกสารนั้นจะเป็นการดึงอิสระจากการผสมนั้น (นั่นคือการเลือกหัวข้อแล้วใช้เพื่อสร้างคำ)

สำหรับ HDP (นำไปใช้กับการสร้างแบบจำลองเอกสาร) เราใช้กระบวนการ Dirichlet ในการจับความไม่แน่นอนในจำนวนหัวข้อ ดังนั้นการแจกแจงพื้นฐานทั่วไปจะถูกเลือกซึ่งแสดงถึงชุดของหัวข้อที่เป็นไปได้ที่ไม่มีที่สิ้นสุดนับไม่ถ้วนสำหรับคลังข้อมูลและจากนั้นการกระจายที่ จำกัด ของหัวข้อสำหรับแต่ละเอกสารจะถูกสุ่มตัวอย่างจากการกระจายฐานนี้

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


22

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

ข้อควรจำ: LDA แบบลำดับชั้นไม่สามารถอ่านใจของคุณได้ ... มันไม่รู้ว่าคุณตั้งใจจะใช้แบบจำลองหัวข้อสำหรับอะไร เช่นเดียวกับการจัดกลุ่ม k-mean คุณควรเลือก k ที่เหมาะสมที่สุดสำหรับกรณีการใช้งานของคุณ


16

ฉันต้องการชี้ให้เห็นเนื่องจากนี่เป็นหนึ่งในสุดฮิตของ Google สำหรับหัวข้อนี้นั่นคือ Latent Dirichlet Allocation (LDA), Hierarchical Dirichlet Processes (HDP) และการจัดสรร Latir Dirichlet (hLDA) เป็นแบบจำลองที่แตกต่างกันทั้งหมด

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

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

ในทางกลับกัน hLDA เป็นการปรับตัวของ LDA ที่จำลองหัวข้อเป็นส่วนผสมของหัวข้อระดับใหม่ที่แตกต่างจากการแจกแจงของดีริชเลต์และไม่ใช่กระบวนการ มันยังคงปฏิบัติต่อจำนวนหัวข้อเป็นพารามิเตอร์ไฮเปอร์พารามิเตอร์เช่นเป็นอิสระจากข้อมูล ความแตกต่างคือการจัดกลุ่มเป็นลำดับชั้น - เรียนรู้การจัดกลุ่มหัวข้อชุดแรกด้วยตนเองทำให้เกิดความสัมพันธ์ทั่วไปที่เป็นนามธรรมมากขึ้นระหว่างหัวข้อ (และด้วยเหตุนี้คำและเอกสาร) คิดว่ามันเหมือนกับการรวมกลุ่มการแลกเปลี่ยนสแต็คเป็นคณิตศาสตร์วิทยาศาสตร์การเขียนโปรแกรมประวัติศาสตร์ ฯลฯ เมื่อเทียบกับการจัดกลุ่มข้อมูลวิทยาศาสตร์และการตรวจสอบข้ามเป็นสถิตินามธรรมและหัวข้อการเขียนโปรแกรมที่แบ่งปันแนวคิดบางอย่างกับพูดวิศวกรรมซอฟต์แวร์ แต่วิศวกรรมซอฟต์แวร์ การแลกเปลี่ยนเป็นคลัสเตอร์ในระดับที่เป็นรูปธรรมมากขึ้นด้วยการแลกเปลี่ยนวิทยาการคอมพิวเตอร์และความคล้ายคลึงกันระหว่างการแลกเปลี่ยนที่กล่าวถึงทั้งหมดจะไม่ปรากฏมากนักจนกระทั่งกระจุกตัวของเลเยอร์ชั้นบน


0

ฉันมีสถานการณ์ที่ HDP ทำงานได้ดีเมื่อเทียบกับ LDA ฉันมีเอกสารประมาณ 16,000 ฉบับที่เป็นของคลาสต่างๆ ในขณะที่ฉันไม่ทราบจำนวนหัวข้อที่ฉันสามารถรวบรวมได้ในแต่ละชั้นเรียน HDP มีประโยชน์จริง ๆ ในกรณีนี้

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