2012-05-11 1 views
5

Objective-C에 기본 권장 시스템을 작성하려고합니다. 작업의 기본 알고리즘을 찾고 있습니다. 불행하게도 off-the-shelf 시스템은 Objective-C를위한 것으로 보이지 않기 때문에 테이블에서 벗어납니다.기본 추천 엔진 알고리즘

태그가있는 항목의 데이터베이스가 있습니다 ("공포", "액션"등의 태그가있는 영화라고 생각합니다). 각 항목에는 ~ 5 개 정도의 태그가 있습니다. 사용자가 앱을 처음 사용하면 프로필에 일련의 질문에 대한 입력을 기반으로 프로필이 준비되고 일부 태그가 프로필과 연결됩니다.

사용자가 계속해서 시스템을 사용하고 다양한 항목 (증오/좋아/사랑 기준)을 평가할 때 피드백을 기반으로 권장 태그의 가중치를 조정하고 싶습니다. 또한 영화를 다루는 경우 예를 들어 "80 년대"와 같이 프로필이 늘어남에 따라 등급에 몇 가지 다른 속성을 추가하고 싶습니다. 또는 영화 감독의 주제에 충실한 감독 일 수도 있습니다.

비슷한 사용자가 권장 사항을 생성 할 것으로 예상되는 일반적인 (또는 적어도 인기있는) 추천 시스템을 피하기로했습니다. 이것은 항목 데이터베이스와 최소한의 사용자가 시작할 것입니다.

누구나 이런 알고리즘에 대한 좋은 출발점을 추천 할 수 있습니까? 나는 바퀴를 재발견하는 것을 싫어합니다. 거기에는 많은 것들이 있습니까?

+0

나는 이것에 대한 경험이 없다. 그러나 이것은 엔진이나 프레임 워크 없이도 가능할 것이라고 생각한다. 기본 사항으로는 태그를 세는 것 이상, 어쩌면 그 (예를 들어 80 년대)와 같은 물건을 다룬 다음 사용자가 좋아하는 것을 계산하고 일치를 찾거나 각 영화 일치 점수 사용자와 함께 상단의 것을 선택하십시오. – altschuler

+0

지식 기반을 만들고 역방향 연쇄 알고리즘을 사용하는 것이 어떻습니까? 조금 지나치게 길지만 그게 효과가있을 것 같아요. – doNotCheckMyBlog

+1

다른 언어로 선반 제품을 사용하지 않은 경우 objective-c에 집착하는 이유가 있습니까?이 언어를 코드로 작성하거나 기존 구현으로 사용하거나 두 모듈간에 통신하기위한 인터페이스를 구축하십시오. – amit

답변

0

귀하의 필요에 맞는 완벽한 항목 기반 권장 사항을 사용할 수 있습니다. 나중에 태그를 가중치에 통합 할 수는 있지만 지금은 항목 만 고려하는 것이 좋습니다.

좀 더 자세히 알 수 있습니다. http://www.cs.carleton.edu/cs_comps/0607/recommend/recommender/itembased.html 그물에는 구현 방법이 많이 있습니다.

게시물에서 언급 한 내용을 사용자 기반 협업 필터링이라고합니다.

1

Python-recsys : https://github.com/ocelma/python-recsys을 참조하십시오.이 소프트웨어는 SVD 알고리즘을 사용합니다. 기본 알고리즘이지만 충분히 효과적이라고 생각합니다. 필요한 라이브러리는 numpy와 scipy입니다.이 라이브러리는 C로 작성되고 Python으로 래핑됩니다. 나는 컴파일하기가 쉽고 objective-c로 포팅 할 수 있다고 생각한다.