ความคล้ายคลึงกันของโคไซน์นั้นเหมือนกับระยะทางแบบยุคลิดแบบยุค l2 หรือไม่?


27

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

ฉันมีแบบจำลองเวกเตอร์สเปซซึ่งมีการวัดระยะทาง (ระยะทางแบบยุคลิด, ความเหมือนโคไซน์) และเทคนิคการทำให้เป็นมาตรฐาน (ไม่มี, l1, l2) เป็นพารามิเตอร์ จากความเข้าใจของฉันผลลัพธ์จากการตั้งค่า [โคไซน์ไม่มี] ควรจะเหมือนกันหรืออย่างน้อยก็คล้ายกับ [euclidean, l2] จริง ๆ แต่ก็ไม่เหมือนกัน

มีโอกาสที่ดีจริง ๆ ที่ระบบยังมีข้อผิดพลาด - หรือฉันมีบางสิ่งบางอย่างผิดปกติเกี่ยวกับเวกเตอร์?

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

การคำนวณระยะทางแบบยุคลิดของพวกเขานั้นเป็นเพียงการวัดแบบตรงไปข้างหน้า แต่ในงานประเภทที่ฉันทำงานความคล้ายคลึงของโคไซน์มักเป็นที่ต้องการในฐานะตัวบ่งชี้ความคล้ายคลึงกันเพราะเวกเตอร์ที่มีความยาวต่างกันเท่านั้น เอกสารที่มีความคล้ายคลึงกันของระยะทาง / โคไซน์น้อยที่สุดถือว่าคล้ายกันมากที่สุด


ทุกอย่างขึ้นอยู่กับ "โมเดลอวกาศเวกเตอร์" ของคุณทำกับระยะทางเหล่านี้ คุณช่วยให้เฉพาะเจาะจงมากขึ้นเกี่ยวกับรุ่นนี้
whuber

ขออภัยบางครั้งก็ยากที่จะออกไปจากหัวของฉันเอง ฉันเพิ่มสเปค
Arne

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

stats.stackexchange.com/a/36158/3277 ความคล้ายคลึงเชิงประเภท sscp aka เชิงมุมใด ๆ สามารถแปลงเป็นระยะทางแบบยุคลิดที่สอดคล้องกันได้
ttnphns

คำตอบ:


31

สำหรับเวกเตอร์ -normalized , เรามีว่าSquaredยุคลิด ระยะทางเป็นสัดส่วนกับระยะโคไซน์ , นั่นคือแม้ว่าคุณจะทำให้ข้อมูลของคุณเป็นปกติและอัลกอริทึมของคุณไม่แปรเปลี่ยนตามระยะทางคุณก็ยังคาดหวังความแตกต่างเนื่องจากกำลังสอง2x,y

||x||2=||y||2=1,
||xy||22=(xy)(xy)=xx2xy+yy=22xy=22cos(x,y)

สิ่งนี้จะมีอิทธิพลต่อการจัดอันดับหรือไม่ หมายความว่าถ้าฉันจัดเรียงจำนวนเวกเตอร์ 'v_i เป็น V' ด้วยระยะทางโคไซน์ของพวกเขากับเวกเตอร์ 'u' ฉันจะได้คำสั่งพิเศษสำหรับพวกเขา การจัดอันดับเวกเตอร์เดียวกันนั้นด้วยระยะทางแบบยุคลิด l_2 ปกติจะสร้างคำสั่งเดียวกันหรือไม่?
Arne

2
iirc เนื่องจากการยกกำลังสองเป็นการแปลงแบบ monotic (สำหรับจำนวนบวก) จึงไม่สามารถเปลี่ยนลำดับของการเรียงตามความยาว
Arne

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

ขอบคุณคุณมีแหล่งข้อมูลอ้างอิงสำหรับการเชื่อมต่อนี้หรือไม่
Arne

1
ฉันเดาว่า 'Linear Alebra I' จะต้องพอเพียงแล้ว;) ขอบคุณอีกครั้งสำหรับข้อมูลเชิงลึก!
Arne

5

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

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