본문 바로가기

[Day38] Bandit for Recommendation 10-1 : MAB 개요 & MAB 알고리즘 기초 Bandit은 강화학습에서 많이 사용되지만 구현방법이 간단하면서 좋은 성능을 보이기 때문에 추천시스템에서도 종종 사용한다. Multi-Armed Bandit : MAB One-Armed Bandit =slot machine 한 번에 한 개의 slot machine의 arm을 당길 수 있고 그에 따른 보상을 받게 된다. one-armed bandit을 여러 개로 늘린 문제가 multi-armed bandit이다. 카지노에 k개의 slot machine을 n번 플레이 할 수 있을 때 어떻게 하면 가장 큰 보상을 받을 수 있을까? 보상을 최대화하기 위해서 arm을 어떤 순서로 어떤 정책(policy)에 의해 당겨야하는지를 학습하는 알고리즘이다. 하지만 슬롯머신이 얼마의 확률로 reward를 주는지 정확히는 알..
[Day38] DeepCTR 9-2 : DIN & BST DIN : Deep Interest Network User behavior feature : 유저가 과거에 행동했던 기록 User behavior feature를 input feature로 사용해서 좀 더 정확한 CTR을 예측한다. Alibaba에서 발표한 모델이다. 등장 배경 더 많은 유저의 정보를 모델에서 사용하고 싶다는 needs에서 출발 DIN가 나오기 전까지는 DeepFM과 같은 딥러닝 기반 모델들은 임베딩 이후 MLP를 통과시키는 패러다임을 따랐었다. sparse feature은 임베딩+concatenate을 걸쳐 full connected layer의 입력으로 사용했었다. 이 방식은 사용자의 다양한 관심사를 반영할 수 없다. 기존에 소비한 아이템의 리스트를 user behavior featu..
[Day38] DeepCTR 9-1 : CTR Prediction with DL & Wide&Deep & DeepFM 딥러닝을 이용한 CTR예측 모델을 알아보자 CTR Prediction with Deep Learning CTR : Click-Through Rate Prediction 유저가 주어진 아이템을 클릭할 확률 광고같은 현실의 CTR데이터를 기존의 선형모델로 예측하는데는 한계가 있다. sparse하고 많은 feature를 가져서 차원이 높으며, feature간의 관계가 비선형적으로 결합되어 있는 데이터여서 문제를 해결하기는 어렵다. 그래서 이런 데이터에 효과적인 딥러닝 모델을 적용했다. Wide & Deep 선형 모델과 비선형 모델이 가진 장점을 결합한 논문(모델)이다. google play store에서 사용자가 검색한 query에 대해서 앱을 추천해주는데 사용된다. 등장 배경 Memorization : 암기..
[Day37] Context-aware Recommendation 8-3 : GBM 다양한 오픈 CTR 데이터에 대해서 GBM 모델이 FM,FFM 계열보다 높은 성능을 보이고 있다. 라이브 서비스시에는 데이터의 특징에 다양한 환경에 따라 바뀌기 쉽게 때문에 데이터의 특성에 관계없이 하이퍼파라미터에 민감하지 않은 robust한 모델을 원한다. 이 때에, FM계열 < 기존의 휴리스틱 모델 < GBM 계열 모델 순으로 성능이 좋았다. Boosting 앙상블 기법의 일종. 앙상블은 한 가지 모델만 사용시에 생기는 편향에 따른 예측 오차를 줄이기 위해서 여러 모델을 한 번 예측하는데 결합해서 사용하는 기법이다. Decision tree로 된 weak learner들을 연속적으로 학습하여 결합하는데, 여기에서 weak learner는 정확도와 복잡도가 비교적 낮은 간단한 분류기 이다. 이전 단계의..
[Algorithm] 백준 BOJ 1541 잃어버린 괄호 python 파이썬 그리디 실버 2 Private 난이도 : ♥♥♥♡♡ 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net import sys formula=sys.stdin.readline().strip() plus_split_formula=formula.split('+') # 일단 +로 먼저 split splitted_formula=[] #완전히 숫자만 저장될 리스트 for f in plus_split_formula: splitted=f.split('-') # +로 나뉜 리스트들을 하나씩 가져와서 -로 나눈다 for ff in splitt..
추천 모델에 따른 데이터 사용 정보 유저 정보 아이템 정보 유저-아이템 상호적용 정보 context-aware O O O contents-based O O X association rule analysis X X O Collaborative Filter X X O Top-N X X O UBCF/IBCF X X O MBCF(SVD, MF,ALS,BPR) X X O ANN X X O AutoRec X X O GNN X X O RNN X X O
[Day37] Context-aware Recommendation 8-2 : FM & FFM Factorization Machines SVM과 MF의 장점을 결합 커널 공간을 사용한 non-linear dataset에 대해서 SVM이 ML 모델중에 가장 사용되는 모델이었다. 그럼에도 CF환경(유저와 아이템에 대한 평점예측)에서는 MF계열의 모델이 더 좋은 성능을 내왔다. 하지만 MF는 또 그런 CF환경에서만 적용이 가능했다. CF환경은 sparse해서 SVM이 좋은 성능을 내지 못했다. $$\hat{y}(x)=w_0+\sum_{i=1}^{n}w_ix_i+\sum_{i=1}^{n}\sum_{j=i+1}^{n}\left x_ix_j, \quad w_0\in\mathbb{R}, w_i\in\mathbb{R}, v_i\in\mathbb{R}^k$$ 앞의 term은 logistic regression과 ..
[Day37] Context-aware Recommendation 8-1 What is Context-aware Recommendation 유저와 아이템 사이의 상호작용말고 다양한 context 정보를 사용하는 모델들을 알아보자 추천 시스템에서 사용하는 정보 유저 관련 정보 유저 ID는 제외한다 ex) 성별, 연령 아이템 관련 정보 아이템 ID는 제외한다 ex) category, 출시년도 유저-아이템 상호작용 정보 ex)유저가 소비한 아이템, 유저가 아이템에 매긴 rating 한계 MF같은 모델은아이템의 특성을 추천 시스템에 반영할 수 없다. 또한, 상호작용 정보가 부족할 경우 cold start문제에 대한 대처가 어렵다. Context-aware Recommendation : CAR : 컨텍스트 기반 추천 시스템 유저와 아이템 상호적용 정보와 맥락적 정보도 같이 사용한다. 맥락(context)적 정보는 유저와 부가정보, 아이템의 부가정도,..