나는 영화 추천 엔진에서 일하고 있는데 나는 DB 디자인 문제에 직면 해있다. 내 실제 데이터베이스는 다음과 같습니다영화 추천 엔진 개념 데이터베이스 디자인
MOVIES [ID,TITLE]
KEYWORDS_TABLE [ID,KEY_ID]
- , ID가 MOVIES.id에 대한 외부 키이고 KEY_ID 텍스트 키워드 테이블이 전체 DB하지
의 핵심입니다 만 나는 내 문제에있어 중요한 것을 여기서 보여 주었다. 나는 약 50,000 개의 영화와 약 1,300 만 개의 키워드 상관 관계가 있으며, 기본적으로 내 알고리즘은 주어진 영화에서 동일한 키워드를 가진 모든 사람을 추출한 다음 키워드 상관 관계의 수로 순서를 매기는 것으로 구성됩니다.
예를 들어 내가 '버리다'와 비슷한 영화보고하고 가장 키워드 상관 관계 (4 개 키워드)했기 때문에 그것은 '엿새 동안 여섯 박 반환 알고리즘의 기반이
Island
Airplane crash
Stranded
Pilot
을 더 많은 요소들에 관해서는이 방법이 가장 중요하고 접근하기가 어렵습니다.
기본적으로 현재 내가하는 일은 주어진 영화와 유사한 키워드를 적어도 하나 이상 가지고있는 영화를 모두 얻는 것이고, 잠시 동안 중요하지 않은 다른 요소로 영화를 주문하는 것입니다.
너무 많은 레코드가 없으면 쿼리는 대부분 최대 10-20 초 동안 지속되고 그 중 일부는 5000 개 이상의 영화를 반환합니다. 누군가가 이미 쿼리를 최적화 여기 (감사 마크 바이어스)에 나에게 도움이되지만 너무 이상
SELECT DISTINCT M.title
FROM keywords_table K1
JOIN keywords_table K2
ON K2.key_id = K1.key_id
JOIN movies M
ON K2.id = M.id
WHERE K1.id = 4
그래서 내가 영화의 권고와 함께 그 목록을 만든 경우에는 사전 좋을 것이라고 생각합니다 때문이 충분하지 않습니다 각 영화,하지만 어떻게 테이블을 디자인 할 수 있는지 잘 모르겠다. 무엇이 좋은 생각인지 또는 어떻게이 접근 방식을 취할 것인가?
신경망이 반드시 좋은 것은 아닙니다. 신경망은 불투명합니다. 따라서 모델이 성공적이라면 그 이유를 알 수 없으며, 성공하지 못하면 개선 할 수 없습니다. – isomorphismes