ที่เก็บนี้มีเว็บแอปพลิเคชันที่รวมเข้ากับระบบแนะนำเพลงซึ่งใช้ประโยชน์จากชุดข้อมูลของไฟล์เสียง 3,415 ไฟล์แต่ละไฟล์ยาวนานสามสิบวินาทีโดยใช้การใช้งาน Hashing ที่ไวต่อท้องถิ่น (LSH) เพื่อกำหนดความคล้ายคลึงกันเป็นจังหวะ
สาขาการดึงข้อมูลเพลงนำเสนอความท้าทายเนื่องจากวิธีการต่าง ๆ สามารถแสดงเสียงได้ทำให้ยากที่จะกำหนดคุณสมบัติที่ควรจัดลำดับความสำคัญในการสืบค้น เพื่อลดความซับซ้อนของปัญหานี้การใช้งานของเรามุ่งเน้นไปที่จังหวะของเพลงเป็นคุณสมบัติการสืบค้นเพียงอย่างเดียว ในขณะที่การวิจัยก่อนหน้านี้ได้สำรวจการสืบค้นเพลงตามจังหวะวิธีการในปัจจุบันได้รับผลกระทบจากความไร้ประสิทธิภาพเนื่องจากพวกเขาจำเป็นต้องสอบถามโครงสร้างข้อมูลทั้งหมดเพื่อให้ตรงกับจังหวะเพลง เพื่อเอาชนะข้อ จำกัด นี้เราเสนอการใช้ประโยชน์จากการแฮชที่ไวต่อท้องถิ่น (LSH) ซึ่งเป็นเทคนิคที่ระบุรายการที่คล้ายกันภายในชุดข้อมูลขนาดใหญ่โดยไม่ต้องใช้การค้นหาอย่างละเอียด
Hashing-sensitive locality (LSH) เป็นเทคนิคที่นำมาใช้กันอย่างแพร่หลายสำหรับการประมาณการค้นหาเพื่อนบ้านที่ใกล้ที่สุด มันระบุรายการที่คล้ายกันภายในชุดข้อมูลขนาดใหญ่ได้อย่างมีประสิทธิภาพโดยการแมปเข้ากับพื้นที่มิติที่ต่ำกว่า อย่างไรก็ตามตามเนื้อผ้า Hashing-sensitive locality (LSH) ใช้วิธีการที่แตกต่างกันเรียกว่า minhash (หรือรูปแบบการแฮชที่มีความอ่อนไหวต่อสถานที่ที่มีความเป็นอิสระขั้นต่ำ) เพื่อประเมินความคล้ายคลึงกันที่ตั้งไว้ Minhash มักใช้ในการขุดข้อมูลและการดึงข้อมูล ในขณะที่ Minhash โดยทั่วไปมีประสิทธิภาพในการประเมินความคล้ายคลึงกันที่ตั้งไว้ แต่ก็มีข้อ จำกัด บางประการที่อาจขัดขวางประสิทธิภาพในการใช้งานเฉพาะ
เพื่อจัดการกับข้อ จำกัด เหล่านี้เราได้เลือกใช้วิธี LSH โดยใช้เทคนิคที่มีประสิทธิภาพอื่นที่เรียกว่าเพื่อนบ้านที่ใกล้ที่สุด (ANN) โดยประมาณ เทคนิคนี้เหมาะอย่างยิ่งสำหรับการค้นหาเพื่อนบ้านที่ใกล้ที่สุดในชุดข้อมูลขนาดใหญ่ ด้วยการใช้ประโยชน์จากเพื่อนบ้านที่ใกล้ที่สุด (ANN) แทน MinHash เรามุ่งมั่นที่จะเพิ่มประสิทธิภาพและประสิทธิภาพของการใช้งาน Hashing (LSH) ในพื้นที่ในโครงการของเรา
เพื่อนบ้านที่ใกล้ที่สุด (ANN) โดยประมาณนำเสนอโซลูชันที่หลากหลายมากขึ้นสำหรับการแฮชที่ไวต่อท้องถิ่น (LSH) เนื่องจากสามารถประมาณเพื่อนบ้านที่ใกล้ที่สุดสำหรับการวัดระยะทางที่หลากหลาย ในทางตรงกันข้าม Minhash ได้รับการออกแบบมาโดยเฉพาะสำหรับความคล้ายคลึงกันของ Jaccard การบังคับใช้ที่กว้างขึ้นนี้ช่วยให้วิธีการของเราสามารถประมาณการที่แม่นยำยิ่งขึ้นของเพื่อนบ้านที่ใกล้ที่สุดเมื่อเทียบกับ MinHash โดยเฉพาะอย่างยิ่งเมื่อต้องรับมือกับชุดข้อมูลมิติสูงที่ต้องใช้การค้นหาที่คล้ายคลึงกันตามตัวชี้วัดระยะทางที่แตกต่างกันเช่นระยะทางยุคลิดหรือความคล้ายคลึงกันของโคไซน์
เกี่ยวกับความซับซ้อนของเวลาทั้งเพื่อนบ้านที่ใกล้ที่สุด (ANN) และวิธี MinHash ในที่สุดก็ใช้ตารางแฮชที่มีการแฮชที่ไวต่อท้องถิ่น (LSH) ส่งผลให้เกิดความซับซ้อนของเวลา O (1) สำหรับการดึงข้อมูลในทั้งสองกรณี อย่างไรก็ตามการมุ่งเน้นของเรานั้นอยู่ที่ประสิทธิภาพของหน่วยความจำมากขึ้นซึ่งวิธีการใกล้เคียงที่ใกล้ที่สุด (ANN) นั้นมีประสิทธิภาพสูงกว่า MinHash แง่มุมนี้มีความสำคัญอย่างยิ่งสำหรับการใช้งานของเราเนื่องจากชุดข้อมูลเสียงที่เราใช้มีขนาดค่อนข้างใหญ่ชั่งน้ำหนักที่ 3.3 GIB
ดังนั้นด้วยการใช้ประโยชน์จากเพื่อนบ้านที่ใกล้ที่สุด (ANN) แทน MinHash เราจะได้รับความแม่นยำที่ดีขึ้นในการประเมินเพื่อนบ้านที่ใกล้ที่สุดในขณะที่ยังคงรักษาเวลาในการดึงข้อมูลที่มีประสิทธิภาพและประสิทธิภาพของหน่วยความจำที่ดีขึ้น
Music Recommendation Based on Rhythmic Similarity Using Locality-Sensitive Hashing (LSH).ipynb มีการใช้งานการใช้ Hashing-sensitive hashing (LSH) ของเราเพื่อฝึกอบรมและประเมินระบบแนะนำเพลงในชุดข้อมูลเสียงapp.py - ซอร์สโค้ดสำหรับเว็บแอปพลิเคชัน (Flask) ที่มาพร้อมกับระบบแนะนำเพลงtemplates - มีรหัสแหล่งที่มาสำหรับหน้าเว็บคือ index.html และ predict.html ซึ่งแสดงผลโดยเว็บแอปพลิเคชัน (Flask)static - มีไอคอนทั้งหมดและองค์ประกอบภาพที่ใช้โดยเว็บแอปพลิเคชัน (Flask)staticfiles - ไดเรกทอรีที่ไฟล์เสียงที่อัปโหลดโดยผู้ใช้บนเว็บแอปพลิเคชัน (Flask) จะถูกเก็บไว้features.pkl ไฟล์วัตถุที่มีคุณสมบัติค่าสัมประสิทธิ์ Cepstral Mel-Frequency (MFCC) ของไฟล์เสียงทั้งหมดที่ใช้สำหรับการฝึกอบรมmusic.ann ไฟล์ Memory-Mapped (MMAP) ที่มีวัตถุ TurbleIndex สำหรับระบบแนะนำเพลงโดยใช้เพื่อนบ้านที่ใกล้ที่สุด (ANN) โดยประมาณ app.py และเข้าถึงลิงก์ที่กำหนดไปยังพอร์ตโฮสต์/predict คุณจะได้รับทั้งคำแนะนำที่ดีที่สุดและแย่ที่สุดสำหรับไฟล์เสียงที่อัปโหลดpied_piper_download.csv จะถูกบันทึกไว้ในไดเรกทอรีปัจจุบันซึ่งจะรวมถึงกลุ่มเสียงที่คล้ายกันที่ระบุจากไฟล์เสียงที่อัปโหลด โครงการนี้มีอยู่ขอบคุณคนพิเศษที่มีส่วนร่วม