การคาดคะเนหัวข้อโดยใช้การจัดสรร Dirichlet แฝง


17

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


1
คุณหมายถึงอะไรโดย "การทำนายหัวข้อของเอกสารใหม่" คุณต้องการค้นหาว่าเอกสารนี้สร้างจากหัวข้อใดหัวข้อเดียวหรือไม่ คุณต้องการค้นหาส่วนผสมของหัวข้อสำหรับเอกสารหรือไม่? คุณต้องการติดป้ายกำกับแต่ละคำในเอกสารใหม่ตามหัวข้อที่คำนั้นมาหรือไม่
SheldonCooper

คุณต้องการค้นหาว่าเอกสารนี้สร้างจากหัวข้อใดหัวข้อเดียวหรือไม่ คุณต้องการค้นหาหัวข้อต่าง ๆ ของเอกสารหรือไม่ - ฉันต้องการตอบคำถามทั้งสองนี้จริง ๆ แต่คลังข้อมูลของฉันใหญ่มากดังนั้นฉันจึงไม่สามารถฝึกนางแบบของฉันใหม่ทุกครั้งที่มีเอกสารใหม่ มีการตรวจสอบ
Hossein

คำตอบ:


21

ฉันจะลอง 'พับ' นี่หมายถึงการรับเอกสารใหม่หนึ่งฉบับเพิ่มไปยังคลังข้อมูลจากนั้นเรียกใช้การสุ่มตัวอย่างของกิ๊บส์กับคำในเอกสารใหม่นั้นโดยให้การกำหนดหัวข้อของเอกสารเก่าเหมือนกัน โดยปกติแล้วจะมาบรรจบกันอย่างรวดเร็ว (อาจเป็น 5-10-20 ครั้ง) และคุณไม่จำเป็นต้องสุ่มตัวอย่างคลังข้อมูลเก่าของคุณดังนั้นจึงสามารถรันได้อย่างรวดเร็ว ในตอนท้ายคุณจะได้รับมอบหมายหัวข้อสำหรับทุกคำในเอกสารใหม่ สิ่งนี้จะให้การกระจายของหัวข้อในเอกสารนั้น

ในตัวอย่าง Gibbs ของคุณคุณอาจมีบางอย่างที่คล้ายกับรหัสต่อไปนี้:

// This will initialize the matrices of counts, N_tw (topic-word matrix) and N_dt (document-topic matrix)
for doc = 1 to N_Documents
    for token = 1 to N_Tokens_In_Document
       Assign current token to a random topic, updating the count matrices
    end
end

// This will do the Gibbs sampling
for doc = 1 to N_Documents
    for token = 1 to N_Tokens_In_Document
       Compute probability of current token being assigned to each topic
       Sample a topic from this distribution
       Assign the token to the new topic, updating the count matrices
    end
end

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

Start with the N_tw and N_dt matrices from the previous step

// This will update the count matrices for folding-in
for token = 1 to N_Tokens_In_New_Document
   Assign current token to a random topic, updating the count matrices
end

// This will do the folding-in by Gibbs sampling
for token = 1 to N_Tokens_In_New_Document
   Compute probability of current token being assigned to each topic
   Sample a topic from this distribution
   Assign the token to the new topic, updating the count matrices
end

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

ΠJพีWJผม

ขอบคุณสำหรับคำตอบ ฉันอ่านบางสิ่งบางอย่างเกี่ยวกับ แต่ยังสับสนเล็กน้อยเกี่ยวกับ "การพับ" คุณกำลังบอกว่าฉันควรให้การกำหนดหัวข้อของเอกสารเก่าเหมือนกันนั่นหมายความว่าควรคำนวณการกำหนดหัวข้อคำใหม่อีกครั้งหรือไม่ เป็นไปได้ไหมที่คุณจะให้รายละเอียดเพิ่มเติมเกี่ยวกับสิ่งที่ฉันควรทำ หรืออาจอ้างอิงฉันไปที่กระดาษหรือลิงค์ที่สามารถช่วยฉันอธิบายกระบวนการ "การพับ" นี้ได้ ตัวเลือกแรกของฉันคือการทำ "fold in" หากไม่สำเร็จฉันจะใช้วิธีที่สองที่คุณเสนอ (ไม่แน่ใจว่ามันทำงานได้ดีแค่ไหนเมื่อเปรียบเทียบกับพับใน) ขอบคุณ
Hossein

@SheldonCooper: ถ้าฉันเข้าใจคุณถูกต้องแล้วฉันสงสัยว่านี่เป็นวิธีที่จะทำ: สิ่งที่คุณทำคือราวกับว่าคุณวัดประสิทธิภาพของ SVM ในตัวอย่างทดสอบใหม่โดยให้อัลกอริทึมการเพิ่มประสิทธิภาพเพียงไม่กี่ขั้นตอนจาก โซลูชันปัจจุบันรวมถึงตัวอย่างทดสอบแล้วประเมินบนตัวอย่างนี้ ... แต่: ในการเรียนรู้ของเครื่องคุณอาจไม่เคยทดสอบในชุดการฝึกอบรมของคุณ ... และโดยรวมตัวอย่างทดสอบลงในแบบจำลองที่คุณทำอย่างนั้น: test on a ตัวอย่างการฝึกอบรม ...
Fabian Werner

@ FabianWerner ฉันเชื่อว่าวิธีการแก้ปัญหาไม่ได้ปรับปรุงเมทริกซ์คำ - หัวข้อจากการฝึกอบรมเดิม เพียงแค่เรียกใช้ตัวเก็บตัวอย่าง Gibbs อีกครั้งโดยเริ่มจากเมทริกซ์หัวข้อคำที่ผ่านการฝึกอบรมและสร้างเมทริกซ์หัวข้อเอกสารใหม่ คุณรู้วิธีอื่นในการทำสิ่งที่ OP ถาม (เป็นที่ยอมรับกันเมื่อหลายปีก่อน) หรือไม่? ฉันกำลังดูปัญหาเดียวกัน
thecity2

@ thecity2 ถึงแม้ว่าฉันจะมีปัญหากับเจ้าอยู่พักหนึ่งแล้วฉันก็ต้องบอกว่าฉันยังไม่มีวิธีแก้ปัญหา หากคุณพบหนึ่งโปรดแจ้งให้เราทราบ !!!
เฟเบียนเวอร์เนอร์

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