ความคล้ายคลึงกันของโคไซน์กับจุดผลิตภัณฑ์เป็นตัวชี้วัดระยะทาง


41

ดูเหมือนความคล้ายคลึงของโคไซน์ของคุณสมบัติสองอย่างนี้เป็นเพียงแค่ผลิตภัณฑ์ดอทของพวกเขาถูกย่อส่วนโดยผลคูณของขนาด โคไซน์ที่คล้ายคลึงกันสร้างระยะทางที่ดีกว่าผลิตภัณฑ์จุดเมื่อใด เช่นเดียวกับ dot product และ cosine คล้ายคลึงกันมีจุดแข็งหรือจุดอ่อนต่างกันในสถานการณ์ที่แตกต่างกันหรือไม่?


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

คำตอบ:


41

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


3
"การวัดระยะทาง" มักใช้ในฐานะตรงกันข้ามกับ "ความคล้ายคลึงกัน" ในวรรณคดี: ระยะทางที่ใหญ่กว่าความคล้ายคลึงที่มีขนาดเล็กกว่า
แฟน

1
@ffriend คุณหมายถึง 'ความแตกต่าง' การวัดมีคำจำกัดความที่แม่นยำ
จดจำ

8

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


ทำไมผลิตภัณฑ์ดอทเพียงอย่างเดียว (เทียบเท่ากับไม่ทำให้ปกติ) ไม่ได้คำนึงถึงข้อมูลและความถี่ของฟีเจอร์ ฉันไม่รู้ว่านี่คือความแตกต่าง
Sean Owen

2
บางทีฉันไม่ชัดเจน ฉันกำลังพูดถึงความหลากหลายของข้อมูล เช่นเรามีเอกสารสองคู่ ภายในเอกสารคู่แต่ละชุดจะเหมือนกัน แต่เอกสารคู่ที่ 1 จะสั้นกว่าคู่ที่ 2 และเราคำนวณความคล้ายคลึงกันภายในแต่ละคู่ ผลิตภัณฑ์ Dot จะผลิตตัวเลขที่แตกต่างกัน แต่ในทั้งสองกรณีคาดว่าจะมีความคล้ายคลึงกันสูงสุด
sobach

5

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

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


4

มีการเปรียบเทียบที่ดีของตัวชี้วัดที่คล้ายคลึงกันทั่วไปด้านผลิตภัณฑ์ที่ใช้เป็นที่นี่

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


"ความคล้ายคลึงกันของโคไซน์ถูกทำให้เป็นมาตรฐานให้อยู่ภายใน [0,1]" มันยังมีผลิตภัณฑ์ดอทในตัวเศษฉันคิดว่าช่วงควรเป็น [-1, 1]?
Kari

2

x,||x||2=x,x=1ϕx,y=cosϕϕ=arccosx,y

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


1

ตามที่คนอื่น ๆ ได้ชี้ให้เห็นสิ่งเหล่านี้ไม่ใช่ "ตัวชี้วัด" ระยะทางเพราะพวกเขาไม่ตรงตามเกณฑ์การวัด พูดแทน "การวัดระยะทาง"

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


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

1
Wikipedia มีประโยชน์มากกว่า ระยะทาง (x, y) ต้องไม่เป็นลบ d (x, y) = 0 เฉพาะเมื่อ x = y; d (x, y) = d (y, x); และตอบสนองความไม่เท่าเทียมกันของสามเหลี่ยม - d (x, z) ≤ d (x, y) + d (y, z)
ahoffer

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