tv.naver.com/v/16970750 , DEVIEW2020
양질의 컨텐츠를 제공해주신 네이버 및 발표 연사님들에게 감사드립니다.
개인화 추천시스템의 세 단계


2. Bias Reduction

# [time series] transformer 모델에 넣어줌.
# 방법 1. 랜덤 데이터로 학습
의도 ; 일부 사용자들에게 모듈 순서를 랜덤으로 추천 / 해당 집단에서 구한 CTR 은 POsition Bias 약함.
장점 ; Position Bias가 없는 데이터 / 구현이 편함
단점 ; 데이터 크기가 매우 작음 / 사용자에게 같은 순서로만 추천되어 기호성을 확인하기 어려움
* Position Bias ; 공간적 정보 [ UI 에서 위로 올라가면 올라갈 수록 CTR ratio ↑ ]
# 방법 2. CTR Loss Weight
의도 ; Loss를 CTR로 Weighting 하여 높은 CTR을 갖는 모듈 추천 강화 / Position 이 위로 올라갈수록 CTR이 낮아져서 debias 효과
장점 ; Position Bias 완화
단점 ; CTR이 높은 모듈에 지나치게 편향됨 / Class Imbalance 문제에 취약함.
# 방법 3. CTR Mini-Batch
의도 ; Loss Weighting 를 곱함 CTR에 비례하여 Mini-Batch를 구성
장점 ; Position Bias 완화 / Class Imbalance 문제 완화
단점 ; CTR이 높은 모듈에 지나치게 편향됨.
# 방법 4. Explorative Labeling
의도 ; 많은 사용자들이 한 번도 본적이 없는 모듈이 존재 -> 안 본 모듈을 직접 보여주기 전에는 기호성 파악 불가능 -> Thompson Sampling 기반으로 view가 적은 모듈을 일정 확률로 labeling
장점 ; Exploration 효과 / 기호성 파악
단점 ; 관심 없는 모듈을 추천할 수 있음 / 탐색 시간이 오래 걸리고 중도 이탈 가능
# 기획 VS. 추천

-> 쇼핑모듈을 홍보하고자 상단에 의도적으로 배치한 결과 급격한 감소를 보임.

-> 낯선 쇼핑모듈을 내리니 회복함.
3. Graph Neural Network for Recommendation


# Cold Start Problem & Diversity

-> log 를 그래프화 함.

GNN 의 역할 ; 임베딩 초깃값 뿐만이 연결된 노드의 값들을 선택적으로 잘 활용할 수 있도록 함.
--> "연결"을 학습함.
DNN 과 GNN 의 차이 ; 주어진 데이터 내에서만 학습한것만이 아닌 자신의 주변의 임베딩 객체를 선택적으로 학습할 수 있음. --> Cold start 를 다음과 같은 장점으로 해결해보고자 함.
* cold start = new user , new item etc...



Summary
- GNN 기반 개인화 추천 시스템
- Cold start 문제를 해결 -> CTR과 Diversity
4. Counterfactual Evaluation
* 오프라인 / 온라인 지표에 대한 고민을 담음.
오프라인에서 잘 작용하나 온라인에선 잘 작동하는지에 대해서는 확신이 어려움.
Problem
- 이 모델이 온라인에서 잘 동작할 지 어떻게 알지?
- 만약 온라인에서 잘 하지 못한다면 어떻게 하지?
온라인 - 오프라인 편차
Action 1. 온라인 - 오프라인 테스트의 싱크를 맞춤


Action 2. 온라인에서 직접 좋은 모델을 선택하자
# 추천시스템 3.0 ( A / B / n 모델 서빙 방식)
- n개의 모델을 동시에 서빙
- 다양한 최신 모델 테스트
- 그리고 , 가장 좋은 모델에게 트래픽을 몰아줘서 전체 시스템의 성능도 향상함.
# 온라인 - 오프라인 테스트를 합쳐 보자.


? 온라인 성능을 기반으로 모델 선택 및 hyperparameter 최적화도 할 수 있다면
# 모델러가 적당한 구조의 모델을 작성해서 주면,
시스템은
1. Causality 를 고려한 metric 에 맞게 모델을 튜닝.
2. 시뮬레이션에서 좋은 모델을 온라인에 서빙.
3. 온라인 결과에 맞도록 모델을 다시 튜닝.
4. 더 좋은 모델에게 트래픽을 몰아줘서 시스템 성능을 높임.
과 같은 기능을 수행합니다.