# 추천 시스템 # 스터디 # Session - based # CNN ​ 3 D Convolutional Networks for Session - based Recommendation with Content Features 이 논문 은 Recommender System 관련 paper 에서 꽤 나 인지도 가 있 었 던 논문 이 라고 합니다 . RecSys 등 의 영향 력 있 는 추천 미디어 에 게제 된 논문 이 기 도 하 며 , 아이디어 자체 가 굉장히 재미있 어서 주목 받 았 습니다 . 보통 추천 시스템 에 적용 되 는 알고리즘 은 feature 관점 에서 cross - feature 를 찾아내 거나 , implicit feedback 을 활용 하 는 방법 에 포커스 가 맞춰 지 곤 하 는데 , 여기 서 는 아주 다른 관점 에서 추천 알고리즘 의 feature 를 풀어냅니다 . ​ 하지만 결론 적 으로 는 , 유행 하 는 알고리즘 을 흥미 롭 게 짜깁 기 한 형태 가 되 어 버렸 어 죠 . 그래서 학문 적 인 읽을거리 로써 는 아주 흥미 롭 고 가치 도 있 는 논문 이 지만 , 실제 추천 상황 에 적용 하 기 에 는 다소 어렵 지 않 을까 생각 된다고 말씀 들 을 하 시 네요 . ​ https : / / yamalab . tistory . com / 114 [ Recommender System ] - 3 D CNN for Session - based Recommendation 번역 & 리뷰 업무 차 해외 출장 을 갔 던 도중 , 운 이 좋 게 도 < 3 D Convolutional Networks for Session - based Recommendation with Content Features > 논문 의 저자 를 만날 기회 가 있 었 다 . 그래서 급하 게 질문 거리 를 만들 기 위해 논 . . yamalab . tistory . com ​ Abstract 기존 의 실제 추천 환경 에서 는 user profile , activities log 등 Implicit 레벨 에서 의 데이터 에서 접근 했 기 때문 에 , 모델 자체 가 아주 높 은 성능 까지 이끌 어 내지 는 못하 였 다 . 이 는 , 더 정확히 는 session 데이터 ( 클릭 데이터 , 클릭 된 아이템 의 description ) 를 의미 한다 . 기존 의 전통 적 인 추천 의 접근 법 은 , user - item interaction 에 기반 한다 . 이런 상황 에서 는 아주 정확 한 성능 을 기대 하 기 힘들 다 . 그래서 이 논문 에서 는 session click 과 content feature , 그리고 아이템 의 category 를 결합 한 새로운 추천 방법 을 제시 한다 . 이러 한 모델 을 만들 기 위해 데이터 가 nature 한 특성 을 가질 수 있 도록 , 3 d - CNN 을 이용 하 여 character - level 로 인코딩 된 input data 를 활용 하 고자 한다 . 3 d 구조 는 데이터 의 시공간 적 패턴 을 표현 할 수 있 는 가장 자연 스러운 방법 이 다 . ( tSNE 방식 이 최근 에 는 잘 나와서 이 를 대체 할 수 있 을 것 이 라고 생각 도 됩니다 . ) 그리고 모든 피처 를 character - level 네트워크 방식 으로 raw 데이터 처리 과정 을 거치 게 되 면 , feature engineering effort 를 감소 하 는 효과 도 있 다 . 이 모델 의 연구 결과 는 add - to - cart 행동 을 예측 하 는 데 사용 되 었 으며 , 이 는 next click 보다 훨씬 예측 하 기 어려운 것 이 다 . 이 방식 은 SOTA 인 RNN 기반 prediction 보다 더 높 은 성능 을 보여준다 . ( 사실 이 결과 는 믿 을 만 한 것 이 못 된다 . 잘 알려진 데이터 셋 에 동일 한 metric 을 적용 한 것 이 아닌 , 본인 들 의 데이터 를 적용 한 것 이 기 때문 . 대부분 의 연구 는 이런 식 의 사기 를 치 긴 하 지만 . )​​ Introduction ​ 기존 의 추천 시스템 에서 개인 화 된 결과 를 제공 하 기 위해서 는 , 유저 의 행동 기반 히스토리 를 기반 으로 profile 을 추출 하 였 다 . 혹은 explicit rating 이나 view log , comment 등 의 데이터 를 활용 하 여 이 를 실제 와 근사 하 게 프로파일링 하 는 개념 에 가까웠 다 . 예 를 들 면 , 주어진 유저 에 CF 를 적용 하 여 latent factor 를 뽑아내 고 , Factorized 된 Matrix 에서 similar profile 을 찾아내 는 추천 방식 이 다 . 또 다른 방법 으로 는 Content based 방법 이 있 다 . 이 방법 들 의 공통점 은 user profile 정보 를 신뢰 하 며 활용 한다는 것 인데 , 이 user profile 이 라는 것 이 실제 와 는 괴리 감 이 있 을 것 이 다 . ( 이 부분 은 리뷰 어도 공감 되 는 포인트 라고 함 , user profile 을 만드 는 것 에 대한 제대로 된 검증 을 본 적 이 없 는 것 같 고 함 . 여기 서 우리 가 검증 을 잘 하 면 좀 더 좋 은 포인트 가 나올 수 있 을 것 같 음 ) ​ 그래서 온라인 상 에서 제대로 된 profile 을 만들 기 위해서 유저 간 의 구분 가능 한 session 을 통해서 식별 해야 한다는 것 이 저자 의 요지 이 다 . 대부분 의 웹 사이트 는 사용 자 인증 을 건너뛴 채 로 유저 가 활동 하 게 내버려 둔다 . 물론 쿠키 나 지문 인증 서비스 등 을 이용 하 여 이 를 캐치 할 수 있 지만 , 이 를 실제로 잘 활용 하 기 에 는 여러 제약 이 따른다 . 브라우저 쿠키 는 크 게 믿 을 만 하 지 못하 고 , 지문 인증 은 개인 정보 문제 가 발생 한다 . 게다가 이런 정보 를 잘 캐치 해도 , profile 이 제대로 된 정보 적 역할 을 하 려면 유저 의 많 은 활동 을 요구 한다 . 대부분 의 유저 가 중소 커머스 웹 사이트 에서 충성 도 가 낮 은 것 을 고려 하 면 , 이것 은 꽤 나 큰 문제 이 다 . ​ 그래서 제대로 된 user profile 을 얻 어 낼 수 없 다는 결론 에 도달 한다면 , 일반 적 인 해결 법 은 session 정보 를 활용 하 여 추천 모델링 에 응용 하 는 것 이 다 . 세션 데이터 는 두 가지 중요 한 특징 을 가지 고 있 는데 , 첫째 로 session click 은 sequential 한 데이터 라는 것 이 다 . 이 는 유저 의 의도 를 담 고 있 는 가장 자연 스러운 정보 이 다 . 그리고 두 번 째 로 , 클릭 된 아이템 은 이름 이나 카테고리 와 같 은 metadata 와 연결 되 어 있 다는 것 이 다 . 이 정보 들 은 유저 가 가지 고 있 는 추가 적 인 취향 정보 들 을 담 고 있 다 . user profile 정보 의 부재 가 일어나 는 상황 이 라면 , 이 두 가지 특징 을 잘 활용 해서 데이터 로부터 더 많 은 정보 들 을 추출 해 내 야 한다 . ​ 그래서 저자 가 주장 하 는 session - based recommendation 방법 은 다음 과 같 은 특성 으로 전개 된다 . ​ 1 . 이 방법 은 click stream session 데이터 로부터 sequential 한 모델링 을 해야 한다 . 이전 에 아마존 의 추천 알고리즘 으로 널리 알려져 있 던 item - to - item kNN 의 경우 , item 간 의 순서 를 고려 하 지 않 은 co - occurences 방법 이 었 다 . 그리고 last click 에 기반 한 다른 모델링 의 경우 , 이전 의 click 정보 들 을 모두 무시 하 게 된다 . 연구 의 결과 에 따르 면 , 가장 최근 의 정보 와 sequential 한 정보 , 그리고 모든 past history 를 고려 하 는 것 이 가장 좋 다고 한다 . ​ 2 . 이 방법 은 item id 와 메타데이터 를 표현 하 는 가장 간단 한 결합 방법 을 제시 한다 . 일반 적 으로 하나 의 아이템 은 다른 타입 의 여러 피처 들 과 연결 되 어 있 다 . 예 를 들 면 ‘ 112321 ’ 이 라는 아이템 id 가 text 정보 , text description , 그리고 hierarchy category 정보 를 가지 고 있 는 것 처럼 말 이 다 . 현존 하 는 대부분 의 방법 은 이러 한 피처 들 의 독립성 을 가정 한다 . 그 경우 , 피처 엔지니어링 에 쏟 아야 하 는 시간 이 기하급수 적 으로 늘어난다 . 그래서 조금 더 실용 적 이 고 자동 화 된 방법 을 제안 하 고자 하 는 것 이 다 . ​ 이 방법 이 갖 는 장점 은 다음 과 같 다 . 우선 item id , textual information 에 one - hot encoding 을 적용 한 기존 연구 와 다르 게 , character - level encoding 은 훨씬 사용 하 기 좋 고 정확 한 input 을 전달 해 준다 . 그리고 embedding layer 도 별도 로 필요 하 지 않 다 . 당연 하 게 도 이 에 따라 parameter 개수 도 급감 하 게 된다 . sparse 한 one - hot encoding 의 경우 파라미터 가 많 기 때문 이 다 . ​​ 다음 으로 prediction 과 결과 의 평가 에 대한 것 을 언급 하 고 있 다 . ​ session based 추천 을 평가 하 기 위한 방법 은 유저 의 next 액션 을 top prediction list 로 잘 예측 하 는 것 이 다 . 그러나 next 액션 을 잘 평가 하 는 것 은 뉴스 와 같 은 미디어 페이지 에 는 적합 한 방식 이 지만 , e - commerce 에서 는 다소 부족 한 방법 이 다 . 게다가 일반 적 인 상황 에서 는 next action prediction 보다 , purchase prediction 이 훨씬 어렵 다 . ( 아마도 CTR 보다 CR 예측 이 더 어렵 다는 이야기 인가 ? )​ 그래서 3 D CNN 을 이 모든 상황 을 해결 해 줄 방법 으로 제시 하 고 있 는데 , 한 세션 안 에서 의 수집 가능 한 모든 유저 의 클릭 을 input 으로 활용 하 여 short list of items 를 추천 해 준다고 한다 . ​