추천 시스템은 유저 정보와 문맥 정보(contextual information)이 주워졌을 때 database에서 관련있는 item들을 찾고, 클릭이나 구매와 같은 특정 목표에 따라 순위를 매기는 search ranking system으로 간주될 수 있다
search ranking system에서는 Memorization과 Generalization을 모두 달성하는 것이 Challenge이다
Memorization
Generalization
Google Play Store의 app-recommendation실험을 했지만 일반적인 추천에도 사용할 수 있다
기존 모델의 한계
Query(어떤 기기, 언제 접속 했는지, 어떤 앱을 원하고 있는지 etc..) 앱을 접속할 때 발생
조회 후 랭키화하여 10개의 상품을 추천
10개의 추천에 대해 유저의 action이 발생
Query, Items, User Action이 새로운 학습을 위한 데이터가 됨(Logs)
이를 Learner를 통해 학습하여 Model의 성능이 점점 좋아지게 된다
백만 개 이상의 앱이 있기 때문에, 서빙 지연 시간 요구 사항 (일반적으로 O(10) 밀리초) 내에서 모든 쿼리에 대해 모든 앱을 완전하게 점수화하는 것은 비실용적
따라서 쿼리를 수신하면 검색 시스템은 다양한 신호를 사용하여 쿼리와 가장 일치하는 항목의 짧은 목록을 반환
후보 풀을 줄인 후, 랭킹 시스템은 모든 항목을 점수별로 순위를 매긴다. 이 논문에서는 Wide & Deep 프레임워크를 사용한 랭킹 모델에 초점을 맞춘다
y = wT x + b (Linear Model)
x → Raw input features & cross-product feature
One of the most important transformations is the cross-product transformation
선형대수의 cross-product와는 다른 개념
사용자 = [남성, 20대]
영화 = [액션, 브래드 피트]
Cross Product = [남성 x 액션, 남성 x 브래드 피트, 20대 x 액션, 20대 x 브래드 피트]
기본적인 feed forward neural network
faetures를 embedding과 뉴럴넷에 학습
joint training은 여러개의 모델을 결합하는 앙상블과 달리, output의 gradient를 wide와 deep모델에 동시에 back propagation하여 학습
Wide
Deep
최종적으로 얻을 결과 값은