뉴욕타임스의 추천 엔진 개발의 교훈
원문 : Building the next new york times recommendation engine(2015)
Content Based Filtering
- 첫번째 접근은 키워드 태그를 활용한 추천 엔진의 개발
작동 및 접근 방식
- 사용자별 30일 간의 열독 히스토리와 기사별 태그를 이용해 유사도를 매칭하는 방식 예를 들어, 클린턴이라는 태그가 포함된 기사 10개를 읽으면, 클린턴이라는 태그 기사를 이후에도 추천해주는 방식
장점
- 예전 기사보다는 신규 기사를 추천해주는 데 있어 퍼포먼스가 좋았음
한계
- 때로는 의도하지 않은 결과를 내놓는 경우가 적지 않았음. 등장 빈도가 낮은 희소 키워드에 가중치를 높게 주기 때문에 이러한 희소 태그가 더 큰 위력을 발휘하는 경우가 많았음.
Collaborative Filtering
- CF는 독자들이 읽었던 것의 유사도에 기반해서 기사를 추천해주는 방식
- 예를 들어, A 독자의 선호도가 B 독자의 선호도와 유사하면, A 독자가 읽었던 기사가 B 독자가 관심 있을 것으로 추정하는 모델.
한계
- 이 모델은 신규 기사나 탐색되지 않은 기사를 추천하는데 자주 실패하는 한계가 있음. 즉 특정 독자 그룹에 관련 있는 기사이지만 그 그룹이 한 번도 읽지 않았던 기사에 취약하다는 의미.
- 가설상으로는, CF는 좁은 범위의 관점에서만 열독 패턴을 클러스터링할 수도 있음. 특정 관점만 보여주는 한계라고 볼 수 있음.
Collaborative Topic Modeling
- 2015년 현재 뉴욕타임스가 적용한 추천 엔진 모델
작동 및 접근 방식
- 1) 콘텐츠를 모델링하고, 2) 독자의 열독 신호에 따라 모델을 조정하며 3) 독자의 선호를 모델링하고 4) 선호도와 콘텐츠 사이의 유사도에 따라 추천을 내놓는 방식 기사 자체를 토픽의 조합체로 모델하는데서 출발. 여기서 토픽은 눈에 보이지 않는 테마(정치 or 환경처럼)로 간주.
- 예를 들어, 환경에 대한 기사가 있으면 ‘나무’, ‘보호’의 조합으로 설정하는 방식 현재 뉴욕타임스 추천 알고리즘은 단일 기사를 2가지 토픽의 모음/조합에 따라 보여주고 있음. 예를 들면, ‘Frick Museum Abandons Contested Renovation’은 라벨링을 Politics 50%, Art 50% 형태로.
몇 가지 문제들
- 어떻게 독자들의 선호를 최상의 수준의 관찰할 수 있을까?
- 기사 클릭이 전혀 활성화되지 않는 경우 : 별로 즐기지 않는 기사를 클릭한 경우는? 혹은 흥미로워하는 기사를 놓친 경우는?
현재 직면한 3가지 도전들
- 기사 내 텍스트 기반으로 어떻게 기사를 모델링할 것인가
- 콘텐트 모델링 알고리즘으로 LDA를 적용. LDA는 개별 기사의 토픽 조합을 학습. 이 모델에서 토픽은 어휘(vocabulary)의 유통 형태로 정의됨.
- 특정 문서가 높은 가중치를 지닌 토픽을 포함하고 있을 경우, 기사 안에 포함된 단어는 해당 토픽 하에서 더 높은 가중치를 받게 되는 구조.
- 독자들의 열독 패턴에 기반해서 어떻게 모델을 업데이트할 것인가
- 독자들의 열독 히스토리(reading history)에 기반해서 독자를 어떻게 기술(describe)할 것인가?