일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- TFX
- llm
- HTTP
- 언어모델
- 메타버스
- 클라우드자격증
- MSCS
- 중국플랫폼
- 머신러닝 파이프라인
- AWS
- aws자격증
- chatGPT
- 네트워크
- nlp
- MAB
- BERT이해
- RecSys
- 자연어처리
- 머신러닝
- COFIBA
- 플랫폼
- 미국석사
- transformer
- MLOps
- Collaborative Filtering Bandit
- BANDiT
- docker
- 추천시스템
- 클라우드
- BERT
- Today
- Total
Julie의 Tech 블로그
MAB기반 추천시스템 : Collaborative Filtering Bandits - (3) 본문
이전 글에서는 COFIBA모델의 pseudo code와 각 구간별 로직에 대해 설명을 담았었다.
이번 글에서는 해당 모델이 세 개 테스트 데이터 셋에서 어떤 성과를 내었으며, 어떤 결론을 내릴 수 있는지 다룰 것이다.
수식 편집기 한계로, 글에서 기울임체로 작성하는 변수는 각각 아래와 같이 이해하면 된다.
1) 야후 뉴스 추천 데이터셋
- 2주간 야후 내 'Today Module' 섹션에 유입된 3000만 트래픽 기록 중 random하게 셀렉
- 뉴스 추천과 방문자가 모두 random하게 꾸려짐
- 유저 벡터 > it (136개 feature dimension), 뉴스 컨텐츠 > Cit, 클릭 여부 > at
2) Telefonica 광고 데이터셋
- Telefonica에서 운영하는 웹사이트 내 광고 클릭 이력
- 유저 벡터 > it , 광고 컨텐츠 > Cit, 클릭 여부 > at
3) Avazu 광고 데이터셋
- 모바일 광고 클릭 여부 예측
- 유저 벡터 > it , 광고 컨텐츠 > Cit, 클릭 여부 > at
해당 데이터셋에 대해 타 알고리즘들과의 성과를 비교하였는데,
알고리즘들은 대체로 UCB알고리즘이었다.
- LINUCB-ONE : UCB1 알고리즘
- DYNUCB : dynamic UCB 알고리즘
- LINUCB-IND : UCB1 알고리즘
- CLUB : 실시간 bandit 기반 클러스터링 알고리즘
- LINUCB-V : UCB1알고리즘
Yahoo 데이터셋의 특징은 데모의 범위가 굉장히 넓다는 것이다. 보통 인기가 많은 뉴스들은 대부분의 연령대가 선호하는 뉴스이다. 예를 들어 유명 연예인의 소식이라든지, 주요 사회 이슈 등은 연령을 가리지 않고 모두가 한번 쯤 클릭할 수 있다. 따라서 유저 클러스터링을 하는 의미가 없을 수 있다.
LINUCB-ONE과 LINUCB-V가 모든 사람들에게 동일한 뉴스를 서빙하는 알고리즘인데, 이 두 가지가 성능이 뛰어나게 나왔던 이유가 바로 데이터셋 특성을 말해준다.
LINUCB-IND는 반면 어떠한 클러스터링도 전혀 하지 않기 때문에, 가장 나쁜 성과를 보여주고 있다.
COFIBA는 다른 알고리즘들 중에서 가장 좋은 성과를 보여주고 있다.
Telefonica 데이터셋은 Yahoo 데이터셋과는 조금 달리, 사람들이 다양하고, 커뮤니티가 형성된 유저 특성을 지니고 있다. 이에 따라 collaborative effect가 발생가능한 데이터라고 유추해볼 수 있는데, 아니나다를까 COFIBA 모델이 가장 좋은 성능을 보이고 있다.
초기에는 cold-start문제가 있음에도 불구하고 COFIBA가 좋은 성능을 보이고 있다.
Avazu 데이터셋도 마찬가지로 좋은 성능을 보여주고 있다.
이처럼 COFIBA는 cold-start문제에서도 우수한 성능을 보여줄 수 있다는 점이 확인되었다.
하지만 COFIBA는 실제로 구현하기가 조금 어려우며, 다른 알고리즘들에 비해 속도가 조금 뒤처진다는 단점이 있다.
그럼에도 불구하고, collaborative effects를 발휘할 수 있다는 점에서 이 단점들을 전부 커버할 수 있다.
이제 논문의 결론을 요약하자면, COFIBA는 collaborative filtering bandit 알고리즘이다.
이 알고리즘은 유저와 아이템 풀의 지속적인 변화와, 유저의 다이나믹한 선호를 반영하지 못하는 전통 CF알고리즘과,
유사한 선호를 가진 유저와 유사 아이템에 대한 정보를 활용하지 못하는 Contextual Bandit알고리즘을
각각의 장점을 섞어 성능을 개선하기 위해 collaborative filtering bandit을 도입한 것이다.
Contextual Bandit 은 exploitation vs exploration 결정을 'Upper Confidence Bandit' 즉 UCB알고리즘으로 수행한다는 점과,
보상에 대한 정의가 Bandit문제에서 정의하는 것과 동일하게 구현이 되었다.
CF는 아이템에 따른 유사한 행동을 보이는 유저를 클러스터링하고, 유사한 유저 그룹을 도출하는 아이템 역시 클러스터링한다는 점에서 볼 수 있다.
또한 Matrix기반으로 유저의 행동을 연산하여 예측한다는 점에서 CF 특성이 녹아있다고 볼 수 있다.
COFIBA는 클러스터링을 서로 연결된 노드들로 구성한 graph 형태로 인코딩하였는데, 이 덕에 cold-start문제를 해결할 수 있게 되었다고 한다.
새로운 유저가 인입되더라도 기존 유저에 연결하여 기존 유저의 정보(information)를 전파(propagate)하는 형태로 해결한다.
논문은 추후 이 알고리즘을 다른 bandit 알고리즘들과도 결합해보아서 개선해보고 싶다는 의견을 남기며 끝을 맺었다.
'Tech > RecSys' 카테고리의 다른 글
Neural Collaborative Filtering, NCF - 코드리뷰, python3.x 버전 (0) | 2021.07.05 |
---|---|
MAB기반 추천시스템 : Stochastic Bandits, CFB (0) | 2021.07.04 |
MAB기반 추천시스템 : Collaborative Filtering Bandits - (2) (0) | 2021.07.04 |
MAB기반 추천시스템 : Collaborative Filtering Bandits - (1) (0) | 2021.07.04 |
MAB 문제란? - Multi-Armed Bandit (2) (0) | 2021.06.18 |