Tôi đang cố gắng xây dựng một hàm băm nhạy cảm cục bộ cosin để tôi có thể tìm thấy các cặp vật phẩm tương tự mà không cần phải so sánh mọi cặp có thể. Về cơ bản, tôi có nó hoạt động, nhưng hầu hết các cặp trong dữ liệu của tôi dường như có độ tương tự cosin trong phạm vi -0.2 đến +0.2, vì vậy tôi đang cố gắng xử lý nó một cách hoàn hảo và chọn những thứ có độ tương tự cosine 0.1 trở lên.
Tôi đã đọc Bộ dữ liệu khai thác lớn Chương 3. Bài này nói về việc tăng độ chính xác của việc lựa chọn cặp ứng cử viên bằng cách khuếch đại một gia đình nhạy cảm địa phương. Tôi nghĩ rằng tôi chỉ hiểu về giải thích toán học, nhưng tôi đang cố gắng để xem cách tôi thực hiện điều này một cách thực tế.
Những gì tôi có cho đến nay là như sau
- Tôi đã nói 1000 phim mỗi phim có xếp hạng từ một số lựa chọn của người dùng 1M. Mỗi bộ phim được thể hiện bằng một vectơ điểm số người dùng thưa thớt (số hàng = ID người dùng, giá trị = điểm của người dùng)
- Tôi xây dựng N vectơ ngẫu nhiên. Độ dài vectơ phù hợp với độ dài của vectơ phim (tức là số lượng người dùng). Các giá trị vectơ là +1 hoặc -1. Tôi thực sự mã hóa các vectơ này dưới dạng nhị phân để tiết kiệm không gian, với +1 được ánh xạ thành 1 và -1 ánh xạ thành 0
- Tôi xây dựng các vectơ phác thảo cho mỗi phim bằng cách lấy sản phẩm chấm của phim và mỗi N vectơ ngẫu nhiên (hay đúng hơn, nếu tôi tạo ma trận R bằng cách đặt N vectơ ngẫu nhiên theo chiều ngang và xếp chúng lên nhau rồi phác họa đối với phim m là R * m), sau đó lấy dấu của từng phần tử trong vectơ kết quả, vì vậy tôi kết thúc bằng một vectơ phác thảo cho mỗi phim + 1 và -1, một lần nữa tôi mã hóa thành nhị phân. Mỗi vectơ có độ dài N bit.
- Tiếp theo tôi tìm các bản phác thảo tương tự bằng cách làm như sau
- Tôi chia vector phác thảo thành các dải b bit r
- Mỗi dải bit r là một số. Tôi kết hợp số đó với số ban nhạc và thêm phim vào nhóm băm dưới số đó. Mỗi bộ phim có thể được thêm vào nhiều hơn một nhóm.
- Sau đó tôi nhìn vào từng thùng. Bất kỳ bộ phim nào trong cùng một nhóm là các cặp ứng cử viên.
So sánh điều này với 3.6.3 mmds, bước AND của tôi là khi tôi xem xét các dải của bit r - một cặp phim vượt qua bước AND nếu các bit r có cùng giá trị. Bước OR của tôi xảy ra trong các nhóm: phim là các cặp ứng cử viên nếu cả hai đều nằm trong bất kỳ nhóm nào.
Cuốn sách gợi ý tôi có thể "khuếch đại" kết quả của mình bằng cách thêm nhiều bước AND và OR, nhưng tôi không biết làm thế nào để thực hiện điều này một cách thực tế vì giải thích về quy trình xây dựng cho các lớp tiếp theo là về việc kiểm tra sự bình đẳng theo cặp chứ không phải là kiểm tra sự bình đẳng theo cặp chứ không phải là sắp tới với số xô.
Bất cứ ai có thể giúp tôi hiểu làm thế nào để làm điều này?