본문 바로가기

빅데이터 데이터마이닝

[데이터마이닝] 추천시스템 3.0:딥러닝 후기시대에서바이어스, 그래프, 그리고 인과관계의중요성

deview.kr/2020/sessions/356

 

추천시스템 3.0: 딥러닝 후기시대에서 바이어스, 그래프, 그리고 인과관계의 중요성

발표자 : 김경민, 곽하녹, 박영진, 김민규

deview.kr

추천시스템은 기존 딥러닝 (ex>CNN, RNN)을 사용하여 성능을 크게 올릴 수 있었지만 딥러닝의 한계로 추천시스템의 또한 한계가 분명히 존재했습니다. 이 세션에서는 기존 추천시스템을 버전 2.0으로 정의하고, next step의 추천시스템에서 어떤 기술들이 중요한지 LINE Wallet 추천시스템 사례중심으로 얘기합니다. 첫번째로 LINE Wallet tab의 UI추천을 사례로 bias reduction을 얘기합니다. UI추천은 big data를 활용할 수 있는 환경을 갖추고 있지만 데이터속 bias때문에 통계적 기법의 딥러닝은 문제를 갖고 있습니다. bias reduction을 통해 CTR을 2.5배까지 올리게 되었습니다. 두번째로 LINE Wallet tab의 아이템추천을 사례로 그래프활용을 얘기합니다. 그래프뉴럴네트워크를 활용하여 cold start 문제를 완화시키고 기존딥러닝이 어려움을 겪었던 추천의 다양성과 CTR향상 두마리 토끼를 잡는 법을 공유합니다. 마지막으로 causality와 완전자동화 추천시스템을 얘기합니다. causality를 통해 오프라인테스트에서 온라인테스트를 최적화하는 방법을 소개하고, AutoML을 사용해서 시스템 관리비용을 줄여나가는 계획을 공유합니다.

2.0은 딥러닝의 사용

3.0은 빅데이터에 대한 해석력이 커졌다. 데이터속의 진실을 이해하는 시기. 

추천시스템을 3단계로 나누는 시도는 이번이 처음

데이터속에 있는 상관관계를 인과관계로 바꿔서 오프라인속의 CRT을 최적화한다.

일본과 대만 태국에서 서비스중.

 

transformer : time series데이터에서 굉장히 많이 사용되고 있다. 최고의 서능을 기록하고 있다. 

별다른 이유없이 첫번째 모듈을 클릭한다....

 

CTR : 클릭률.  

과거에 가장 인기가 많았던 쿠폰을 추천했다. 지금은 추천으로! 

딥러닝 기반 추천 시스템.. 대규모 사용자 로그를 효과적으로 사용가능 쿠폰의 이미지 text와 같은 multimeida이미지..

유저의 embedding벡터.. 쿠폰의 embedding벡터.. 계산해서  두 임베딩 벡터를 내적해서 cosine similariy.를 구해서 CTR을 계산한다. 

새로운 개체 새로운 쿠폰.. 개체에 대한 정보가 추분히 제공되지 않기때문에 객체에 대한 embedding벡터가 잘 학습되지않는다. 

 

임베딩 벡터를 바로 prediction값으로 사용하는것이 아니라. 그래프 노드의 초기 값으로 두었다.

기존 딥러닝 기법은 각 객체의 임베딩 기법을 주어진 객체 내에서만 학습했다면

GNN은 임베딩 벡터의 전파과정을 통해서 자신과 연결된 다른 객체들의 데이터를 선택적으로 활용할 수 있게 학습된다. 

따라서 cold user의 경우에는 유저에 대한 데이터 로그가 부족해서. 임베딩 벡터의 초기값이 잘 학습되지 않더라도 그 유저와 연관된 유저들 친구, 관심사가 같은 유저들의 임베딩 벡터를 통해서 해당 유저의 임베딩 벡터를 학습 할 수 있다. 

real world에서는 사용자와 쿠폰 사이의 interation그래프가 매일 바뀐다는것을 볼 수 있다. 새로운 사용자가 매일 등장하고 새로운 쿠폰도 매일 등장한다. 

비슷하게 특정 쿠폰들은 사용기간이 만료되어서 사라지기도 하고.. 어떤 유저들은 시스템에서 탈퇴하기도 한다. 또한 사용자와 쿠폰 사이에 있는 선호도도 바뀐다. 기존의 딥러닝 구조는 변화에 따라서 매일 추천 시스템의 모델 파라미터를 재학습 해야했고.. 재학습하더라도 어느정도 로그가 쌓이기 전까지는 신규 쿠폰.. 신규 사용자에 대해서 임베딩 벡터가 잘 학습되지 않는 cold start문제를 많이 겪음.

하지만 GNN을 사용하게 되면 새로운 그래프를 input으로 바로 넣어주기만 해도 그 연결을 바탕으로 모든 유저들과 쿠폰에 대한 임베딩 벡터를 학습할 수 있기 때문에 cold start문제를 보다 잘 해결할 수 있었습니다.

실제로 잘 작동하는가?

Line 서비스에서 온라인 테스트 결과를 공유.

비그래프모델은 대부분 과거에 인기도가 높았던 쿠폰만 추천했음

그래프 모델은 상대적으로 인기도가 낮은 쿠폰도 잘 추천했음.

다양성에 관련된 지표도 분석해 보았음.

Novelty : 얼마나 새로운 쿠폰들이 추천되었는지.

Negative Average Pouplarity : 인기있는 쿠폰들이 얼마나 "적게" 추천되었는지.

Diversity : 추천된 쿠폰들이 얼마나 다양하게 나가고 있는지.

3가지 지표 모두에서 긍정적인 결과 얻을 수 있었음.

CTR도 오히려 올라갔다. 

Cold User에 대해서는 상대적인 상승 지표가 더 좋게 나왔다.

추천시스템은 다른 머신러닝 과 다른 것이 있다. 바로 "label"에 관한 것.

사용자가 click을 했느냐, 안했느냐를 보고 labeling을 하기 때문에 예를 들면 이미지 분류에서 강아지 고양이 분류할때 어떤 상황에서도 온라인 오프라인이든 정확히 분류해야해서 상관 없는데 

추천시스템은 context에 따라서 결과가 바뀌어야한다. 이를 좀더 잘 표현하기 위해서 온라인 지표를 오프라인에서 잘 얻을 수 없는 문제를 해결하기 위해서 오프라인에서 어떤 지표를 택해서 최적화하자라는 방식보다는 좀더 온라인 지표의 성능에 영향을 미치는 요소를 분석해서 그것을 이용해서 튜닝하고 온라인에서 서빙하는 형태 

이것을 Counterfactual Evaluation이라고 한다.