ฉันกำลังพยายามสร้างแฮชที่ละเอียดอ่อนในพื้นที่เพื่อให้ฉันสามารถหาคู่ของผู้สมัครที่คล้ายกันได้โดยไม่ต้องเปรียบเทียบทุกคู่ที่เป็นไปได้ ฉันใช้มันทำงานได้ แต่คู่ของข้อมูลของฉันดูเหมือนจะมีความเหมือนโคไซน์ในช่วง -0.2 ถึง +0.2 ดังนั้นฉันจึงพยายามที่จะทำให้มันค่อนข้างละเอียดและเลือกสิ่งที่มีความคล้ายคลึงโคไซน์ 0.1 ขึ้นไป
ฉันได้อ่าน Mining ชุดข้อมูลขนาดใหญ่แล้วบทที่ 3 นี้พูดถึงการเพิ่มความแม่นยำของการเลือกคู่ผู้สมัครโดยขยายครอบครัวที่มีความสำคัญต่อท้องถิ่น ฉันคิดว่าฉันเพิ่งจะเข้าใจคำอธิบายทางคณิตศาสตร์ แต่ฉันพยายามดิ้นรนเพื่อดูว่าฉันใช้งานจริงได้อย่างไร
สิ่งที่ฉันมีอยู่มีดังต่อไปนี้
- ฉันบอกว่าภาพยนตร์ 1,000 เรื่องแต่ละเรื่องมีเรตติ้งจากผู้ใช้บางคนที่เลือก 1M ภาพยนตร์แต่ละเรื่องจะแสดงด้วยเวกเตอร์กระจัดกระจายของคะแนนผู้ใช้ (หมายเลขแถว = ID ผู้ใช้ค่า = คะแนนของผู้ใช้)
- ฉันสร้างเวกเตอร์สุ่ม N ความยาวของเวกเตอร์ตรงกับความยาวของเวกเตอร์ภาพยนตร์ (เช่นจำนวนผู้ใช้) ค่าเวกเตอร์คือ +1 หรือ -1 ฉันเข้ารหัสเวกเตอร์เหล่านี้เป็นเลขฐานสองเพื่อประหยัดพื้นที่โดยมี +1 แมปกับ 1 และ -1 แมปกับ 0
- ฉันสร้างเวกเตอร์แบบร่างสำหรับภาพยนตร์แต่ละเรื่องโดยการหาจุดผลิตภัณฑ์ของภาพยนตร์และเวกเตอร์แบบสุ่ม N แต่ละตัว (หรือถ้าฉันสร้างเมทริกซ์ R โดยการวางเวกเตอร์แบบสุ่ม N ตัวในแนวนอนและวางไว้ด้านบนของร่าง สำหรับภาพยนตร์ m คือ R * m) จากนั้นนำสัญลักษณ์ของแต่ละองค์ประกอบในเวกเตอร์ผลลัพธ์ดังนั้นฉันจึงลงท้ายด้วยเวกเตอร์สเก็ตช์สำหรับภาพยนตร์แต่ละเรื่องที่ +1 และ 1 วินาทีซึ่งฉันเข้ารหัสเป็นเลขฐานสองอีกครั้ง แต่ละเวกเตอร์คือความยาว N บิต
- ต่อไปฉันค้นหาภาพร่างที่คล้ายกันโดยทำดังต่อไปนี้
- ฉันแบ่งเวกเตอร์ร่างเป็นวง b ของ r บิต
- แต่ละวงของบิต r เป็นจำนวน ฉันรวมหมายเลขนั้นกับหมายเลขวงดนตรีและเพิ่มภาพยนตร์ลงในที่ฝากข้อมูลแฮชภายใต้หมายเลขนั้น ภาพยนตร์แต่ละเรื่องสามารถเพิ่มไปยังถังมากกว่าหนึ่งถัง
- ฉันดูแต่ละถัง ภาพยนตร์ใด ๆ ที่อยู่ในที่เก็บข้อมูลเดียวกันคือคู่ของผู้สมัคร
เมื่อเปรียบเทียบกับ 3.6.3 ของ mmds ขั้นตอน AND ของฉันคือเมื่อฉันดูแถบ r บิต - ภาพยนตร์หนึ่งคู่ผ่านไปยังขั้นตอน AND หาก r บิตมีค่าเท่ากัน ขั้นตอน OR หรือของฉันเกิดขึ้นในที่เก็บข้อมูล: ภาพยนตร์เป็นคู่ที่มีตัวเลือกหากพวกเขาอยู่ในที่เก็บข้อมูลใด ๆ
หนังสือแนะนำว่าฉันสามารถ "ขยาย" ผลลัพธ์ของฉันโดยเพิ่มขั้นตอนมากขึ้นและและหรือ แต่ฉันสูญเสียสำหรับวิธีการทำจริงในขณะที่คำอธิบายของกระบวนการก่อสร้างสำหรับชั้นต่อไปคือในการตรวจสอบความเท่าเทียมกันแบบคู่มากกว่า มากับตัวเลขถัง
ใครช่วยให้ฉันเข้าใจวิธีการทำเช่นนี้?