본문 바로가기
인공지능/추천 시스템

[paper] GPT4Rec 논문 리뷰

by judy@ 2023. 7. 27.

본 포스팅에서는 최근에 아마존에서 연구한 GPT-2 모델 기반 추천 프레임워크인 GPT4Rec 논문을 리뷰합니다. 생성형 언어 모델을 추천에 직접 도입한 사례로 매우 흥미로운 논문이며, 논문 정보, 리뷰 내용, 논문을 읽고 난 개인적 의견차례로 글을 작성하였습니다.

 

목차

     

    개요

    • 원제: GPT4Rec: A Generative Framework for Personalized Recommendation and User Interests Interpretation
    • 저자: University of Michigan, Ann Arbor, Amazon, United States
    • 제출일: 2023.04.08
    • 논문 링크: https://arxiv.org/abs/2304.03879
    • 코드 공개 여부: X

    내용

    1. Introduction

    • NLP 가 폭발적으로 성장함에 따라 NLP 기반의 추천 모델도 다수 등장
    • 가장 유사한 사례는 양방향 self-attention 구조를 갖는 BERT4Rec인데, 이 마저도 아이템을 단순한 ID로 취급(구분)했고, discriminative modeling을 적용함. 이 때문에 아이템이 업데이트 되어도 추천이 불가하며, 추천 근거(유저의 취향)에 대한 해석이 불가함
    • GPT4Rec은 유저의 취향 해석과 동시에 개인화된 추천을 위한 생성형 프레임워크. GPT4Rec은 먼저 생성형 모델을 통해 가상의 “검색 쿼리(search query)”를 생성한다. 생성형 모델의 입력으로는 유저가 시청한 아이템 항목들이 입력으로 포함됨. 그리고 검색 엔진을 사용하여 생성된 쿼리들로 추천을 위한 아이템을 획득함
    • 이 때, 유저의 취향을 다양한 측면에서 해석하기 위하여 multi-query beam search를 사용함.

    2. Methodology

    먼저 아이템 제목들로 프롬프트 구성하고, 생성모델이 아이템과 유저 임베딩을 학습할 수 있게 함. 그리고 이 생성 모델이 유저의 관심사를 표현하는 여러 개의 쿼리를 생성. 생성된 쿼리는 검색 엔진을 통해 추천 아이템을 획득하는 데 사용. GPT-2 언어 모델과 BM25 검색 엔진 선택하였으나, 더 좋은 다른 엔진을 써도 됨

     

    GPT4Rec 아키텍처

    2.1. Query Generation with the Language Model

    모델과 입출력

    • GPT-2 모델은 117M 파라미터를 가지며, 수많은 언어 말뭉치로 사전 학습됨
    • 모델의 입력 프롬프트는 유저의 히스토리인데, 아이템의 제목을 나열하여 사용 (Wu for each user)
    • 쿼리는 P(.|Wu) 조건부 확률에 기반해 순차적으로 생성함
    • 아래는 프롬프트를 나타냄
    Previously, the customer has bought:
        <ITEM TITLE 1>, <ITEM TITLE 2>, ...
        In the future, the customer wants to buy

     

    multi-query generation

    • 유저 흥미의 다양성과, 추천 결과의 다양성을 높이기 위하여, beam search 을 사용하여 단일이 아닌 멀티 쿼리를 생성함
    • 빔 서치를 사용하면, user interests representation이 다양하고 세분화된 표현을 생성함
    beam search 란?
    - 기본적으로 GPT-2에서는 greedy decoding을 통해 output을 출력함 (Language Models are Unsupervised Multitask Learners, GPT-2 논문 참고)
    - greedy decoding의 경우, 각 탐색의 시점에 가장 높은 확률의 토큰을 선택함. 반면 beam search의 경우, 각 탐색의 시점에 누적 확률의 top-m(사용자가 지정한 beam 개수) 케이스를 유지하면서 최적의 해를 찾음. 최고만 고려하는 것이 아니라 차선책도 고려하기 때문에 표현이 풍부해지고 기계 번역, 음성 인식 분야에서 성능이 잘 나옴

     

    2.2. Item Retrieval with the Search Engine

    BM25 알고리즘 사용

    • GPT4Rec의 두 번째 컴포넌트는 discriminator의 역할을 하는 검색 엔진임
    • 생성된 쿼리를 입력으로 매칭 점수를 계산하여 아이템 인벤토리에서 가장 관련 있는 아이템을 획득함
    • 기본적인 검색 엔진에서 널리 사용되는 BM25 matching score function을 사용.
    BM25란?
    - 주어진 쿼리와 문서의 연관성을 평가하는 랭킹 함수TF-IDF 계열의 검색 알고리즘 중 SOTA로 알려져 있음
    - 문서의 길이나 너무 많이 등장하는 단어(a, the)의 영향을 조절하여 연관성을 계산하여, 문서 간 값을 비교하고 랭킹하는 데에 유용함
    - 수식 from https://en.wikipedia.org/wiki/Okapi_BM25
    BM25

       - D: document, Q: query, IDF: inverse document frequency, f(qi, D): 문서에서 쿼리 토큰의 빈도, |D|: 문서 길이
       - b: 문서 길이에 대한 패널티를 조정하기 위한 파라미터
       - k1: 문서 내 단어 등장 빈도(term frequency)에 대한 가중치를 조절하는 파라미터. k1이 클수록 전체 k1이 높을수록 해당 단어의 빈도에 따라 BM25 점수가 크게 증가하며, 값이 낮을수록 빈도에 민감하지 않고 증가. 1.2~2.0의 값을 사용하는 것이 일반적

     

    멀티 쿼리 결과로 추천 방법

    • 멀티 쿼리의 결과로 K개의 아이템을 추천하기 위해 아래의 랭킹 기반 전략을 제안함
      1. K가 추천할 아이템 수, m이 생성된 쿼리의 수이다.
      2. generation score가 높은 쿼리에 대한 searching result로 top-K/m 개의 아이템을 얻는다
      3. generation score 내림차순으로 쿼리를 정렬한 뒤, 획득한 아이템 K/m 중 앞선 아이템과 겹치지 않는 아이템을 순차적으로 더함.
      4. 3의 과정을 K개의 아이템이 모두 얻어질 때까지 반복함

     

    2.3. Training Strategy

    • 언어 모델과 검색 엔진을 별도록 최적화하는 2 단계 학습 전략
    • T-1 개의 아이템 제목을 프롬프트로, 나머지 하나의 아이템을 정답으로하여 GPT-2 모델을 학습시킴
    • 언어 모델을 학습한 이후에는 BM25 파라미터인 k1, b를 grid-searching 을 통해 찾아냄

     

    3. Experiments

    3.1. Experiment Setup

    Data

    • 400 char 이상인 아이템 제거
    • 유저 인터렉션은 15개까지로 truncated
    • next-item prediction task setup을 따라 0.8:0.1:0.1로 유저 데이터를 나누고 테스트 시퀀스의 마지막 아이템을 예측 타겟으로 함

     

    Evaluation metric

    • Recall@K: next-item prediction의 주요 매트릭이며, top-K 예측 아이템 중 타겟이 있는지를 유저에 대해 평균 낸 것
    • Diversity@K: 한 유저에게 추천된 아이템의 브랜드 또는 카테고리가 얼마나 다양한지. 아이템간 평균 dis-similarity를 측정하며, similarity에는 자카드 유사도 사용

     

    • Coverage@K: 추천한 아이템 목록의 카테고리(또는 브랜드)가 유저 기존 시퀀스의 카테고리를 얼마나 커버하는지 측정하는 지수. 이 지수가 높을수록 유저의 다양한 취향을 이 모델이 커버했음을 알 수 있음

     

    baseline model

    • FM-BPR: CF 방식
    • ContentRec: content-based model로 인더스트리에서 많이 사용. 아이템 제목으로부터 단어 임베딩을 학습하고, mean-pooling을 수행하여 사용자 임베딩을 생성
    • YouTubeDNN: 유저, 아이템 임베딩을 학습하는 DNN 모델. 산업에서 많이 쓰임.
    • BERT4Rec: BERT 기반의 SOTA 모델. title이 아닌 ID 사용

     

    3.2. Quantitative Analysis

    Recall@K 비교표

    • Beauty는 작은 데이터라서 성능 향상이 많이 되었고, 큰 데이터인 Electronic는 덜 됨 (여담: 업스테이지 모델(DIF-SR)에 비해서도 성능 높음)
    • item content information과 modern language modeling이 성능 향상의 키
      • BERT4Rec은 베이스라인 모델 중 가장 높은 성능을 내었는데 ID를 사용하여 item content information을 완전히 학습하지 못함
      • ContentRec은 item content information (bag-of-words)를 사용하였으나, mean-pooling 모델링을 수행하여 높은 성능에 도달하지 못함

     

    multi-query generation의 장점

    • K 커질수록 Q 많을수록 매트릭 증가
    • 특히 K=m 이어서, 쿼리 당 하나의 아이템을 추천할 때 가장 좋은 성능을 얻음

     

    diversity 측면

    • K가 늘어난다고, diversity가 좋아지지는 않음
    • query 수가 늘어나면 diversity는 좋아짐
    • → multi-query generation의 효과
    • coverage, diversity 모두 query 수와 K가 일치할 때 가장 좋은 성능이 나옴. one item per query

     

    ⇒ Quantitative Analysis의 결론

    multi-query로 인해 세 종류의 성능 지표(recall, diversity, coverage)가 모두 향상되었으며, 쿼리 수와 K가 일치할 때 가장 성능이 좋음

     

    3.3. Qualitative Analysis

    • 두 개의 예제를 비교. 체리 피킹일 수 있음
    • 예제의 구성
      • 프롬프트 → gpt2 예측 결과
      • 유저 시퀀스 → 추천 목록
      • 빨간 동그라미가 타겟

     

    첫 번째 예제

    • 뷰티 데이터에 포함된 유저 시퀀스 중 하나
    • 유저는 다양한 카테고리, 브랜드의 아이템을 사용한 경험이 있음 (diverse interests)
    • GPT4Rec은 유저의 히스토리에 대해 semantic information을 학습하여, 봤던 아이템이 아니라도 연관 있는 아이템을 추천함
      • 메이크업 소도구와 파우더 → 메이크업 팔레트

     

    두 번째 예제

    • Electronics 데이터에 포함된 유저 시퀀스 중 하나
    • 로지택, 무선 마우스에 집착 (specific interests)
    • GPT4Rec는 유저의 취향에 맞춰 로지텍의 무선 마우스를 추천해줌

     

    질적 분석의 결론

    • GPT4Rec의 결과 쿼리는 유저의 취향을 해석하려는 목적으로 직접 사용될 수도 있음
    • GPT4Rec은 유저 시퀀스를 통해 유저의 행동을 이해하여, adaptive하게 diversity 수준을 조절함

     

    4. Conclusion

    • 개인화된 추천과 해석 가능한 user interests representation을 동시에 생성하는 생성 프레임워크 GPT4Rec 제안
    • 언어 모델과 아이템 콘텐츠 정보를 활용하여 우수한 성능을 달성하여, item cold-start 문제를 자연스럽게 해결함
    • multi-query beam search를 통해 다양성과 세분성(granularity)을 가진 user interests representation을 생성하여, 추천 결과의 다양성과 관련성을 향상시킴
    • 더 발전된 생성 언어 모델이나, 검색 엔진 등을 유연하게 통합 확장할 수 있음

    주요 내용 및 의견

    주요 내용

    • 유저의 히스토리를 gpt에 넣어 multi-query 생성함 (next item prediction task)
    • 생성된 다중 쿼리와 쿼리와 연관 높은 아이템을 찾아 추천함
    • 추천에 자연어 기반의 생성 모델을 사용하여 성능을 향상 시켰고, user representation의 해석이 직관적이게 됨

     

    의견

    • item retrieval시에 매칭 스코어 함수(BM25)를 사용하는 것은 generative model이 실존하는 데이터를 꺼내지 않을 수도 있기 때문인듯함
    • 생성 모델을 사용하기 때문에 아이템 콜드 스타트 문제가 어느 정도 해소되는 것도 큰 장점인 듯함
    • side information 등을 추가하는 등의 무한 확장이 가능할 듯 (그 부가 정보를 잘 사용하는지는 실험을 통해 empirical하게 검증)
    • bert4rec에 비해 언어적 특성까지 캐치한다는 점에서 기술적으로 매우 향상된 듯함. 오히려 모델은 이미 공개되어 있고 데이터만 준비해서 학습하면 되어서 적용 자체도 어렵지 않을 듯.
    • item retrieval 파트에서 임베딩 → 벡터 기반의 검색과 BM25를 비교하여 더 나은 것을 채택해볼 수 있을 것 같음
    • 전체 코드가 공개되어 있지는 않으나 GPT-2 fine-tuning 모델을 불러와서 데이터 학습하고 bm25 알고리즘도 이미 라이브러리로 잘 만들어져 있어서 금방 적용 가능할 것으로 보임. 성능이 따라준다면 결과를 해석하고 설득하는 데에는 기존 모델에 비해 훨씬 효과적일 것으로 보임 (쿼리 자체가 아이템이라서)
    반응형