Search
Duplicate

Netflix Artwork Personalization

Created
5/28/2021, 9:49:44 AM
정리자
날짜
2021/06/05
태그
Empty
collaborative filtering의 아쉬운 점 추천 : 기존에 선택된 이미지들만 추천이 된다.
→ 이를 bandit을 통해 해결해보자
Bandit setting의 요소들
Environment : 넷플릭스 홈페이지
Learner(policy) : artwork selector
Action : learner의 선택으로 display한 image
Reward : action을 통해 얻어진 member의 반응(engagement)(여기서는 click or non-click)
Common strategy
- Epsilon greedy
(1- ε) 확률로 Greedy한 Arm을 추천하고 ε 확률로 Random한 Arm을 추천해주는 방식
- Upper Confidence Bound
각 Arm을 선택한 횟수 또는 반응률 등을 Reward로 가정했을 때, 해당 Reward의 Upper Confidence Bound를 계산하여 Uncertainty Weight로 활용하는 알고리즘
- Thompson Sampling
과거에 관측된 데이터를 이용하여 Reward 분포를 추정한 뒤, 해당 분포를 통해 가장 높은 Reward를 줄 Arm을, 높은 확률로 선택해 주는 알고리즘
Q. 톰슨 샘플링에서 베타분포, 베르누이분포가 나오게된 배경과 숫자들의 의미
1) Reward는 arm의 결과에 따라 click or non-click(0,1)의 결과를 갖게 된다
2) 이는 베르누이 시행(확률론에서 임의의 결과가 '성공' 또는 '실패'의 두 가지 중 하나인 실험)이라 보고 Reward가 베르누이 분포를 따른다고 가정합니다.
3) 또한 여기서 베르누이 분포의 parameter인 p(성공일 확률)의 사전분포를 베타분포를 따른다고 가정합니다.
Q. 여기서 p의 사전분포를 베타분포로 지정한 이유는?
A.
1) Conjugate prior
모수는 다르지만, 사전 분포와 사후 분포의 형태를 같게 하는 사전 분포
사전분포가 베타분포을 따르고 가능도 함수가 베르누이 분포를 따를 때 사후분포는 베타분포를 따른다.
이는 사후분포 계산이 쉬워지기 때문에 많이 이용한다고 한다.
2) 베타분포의 특성
베타분포는 두개의 양수 변수로 표현할 수 있는 확률 분포 → 성공횟수와 실패 횟수 두개의 변수로 잡을 수 있음
또한, 베타분포의 확률변수가 0과 1사이에서 정의되기 때문에 p(성공일 확률)을 모델링 하는데 적합하다고 볼 수 있음
Q. 왜 성공 횟수를 α, 실패 횟수를 β라고 할까?
베타 분포가 α값이 크면 1에 가까울 확률이 높아지고 β값이 크면 0에 가까운 확률이 높은 분포이기 때문에 이런 특성을 활용해 각각을 배정했다고 본다.
Contextual Bandit
위에서 얘기한 Epsilon greedy, Upper Confidence Bound, Thompson Sampling은 여러 artwork을 추천해줄 수 있었지만 개인화된 추천인 아니였다.
위의 Bandit 와 Contextual Bandit과 가장 큰 차이점은 Environment가 Context vector를 policy에 넘겨준다는 점이다 여기서 Context vector는 기존의 봐왔던 영화, Demographic정보등이 될 수 있어 개인화된 추천으로 이뤄질 수 있다.
context vs feature의 차이?
feature - Supervised learning에서 정답(label)이 정해져 있을 때
context - 정답이 정해지 있지 않고 사람들의 action에 따라서 달라질 수 있을 때
offline metric :Replay
model assign을 통한 평가를 위해 고안하게된 metric
우선 모델이 해당 artwork을 추천해줬고 거기에 따른 유저의 반응(click) 봐야하기 때문에 model assignment와 logged action이 동일한 sample에서 유저의 click을 확인하는 offline take fraction을 metric으로 사용
강화학습인 만큼 엄청나게 많은 데이터가 필요하다는게 단점
match가 많지 않았던 데이터에 대해서 high variance가 단점
Contextual Bandit challenge point
모듈 수준까지만 하고 있지 모든 item에 대해서는 안하고 있다.
(많은 기업에서는 현실적인 이유로 못쓰고 있음)
그럼에도 MAB를 활용하고자 하는 이유?
강화학습은 유저에게 short-term joy가 아닌 long-term joy를 극대화하는 방향으로 이끌 수 있다(?)
Q. 일반적으로 강화학습에서 State라는 개념이 있는데 여기서는 안보인다
A.
단순 MAB에서는 action에 따라 state가 변하지 않고(유저가 어떤 사람이던지 간에) 단순히 뽑기(추천만 하면 되었다)
Contextual MAB에서는 Action이후 Context라는 state(Demographic정보, 과거 시청이력, 과거 시청 배우 등)가 주어진다.
참고 자료
밑의 자료를 기반으로 글을 작성했습니다.
Contextual Bandits
베타분포에 대한 이해
톰슨 샘플링 예제를 통한 이해
베타분포를 사전확률 분포를 둘 때 베이지안 추청에 관한 이해
NC에서 MAB활용 예제(추천합니다!)
카카오에서 MAB활용 예제
MAB, context Bandit 그리고 기존 강화학습에서의 state의 차이