728x90
728x90
728x90

TL;DR

  • LLM에 프롬프트 엔지니어링으로 추천 엔진(ranker)을 얻을 수 있다.
  • sequential prompting에 비해 recency-focused나 in-context learning 을 사용해 프롬프트를 구성하면, NDCG를 높일 수 있었다.
  • candidate generations에 bootstrapping 기법을 사용해, candidate의 위치 편향성을 완화할 수 있었다.
  • 사용자 행동 내역의 개수를 적게 넣으면, top-1 상품의 인기도가 줄어드는 것을 확인할 수 있었다.
  • instruction 튜닝 모델의 NDCG가 더 높았다.
  • 모델 파라미터 개수가 큰 모델의 NDCG가 더 높았다.

제목: Large Language Models are Zero-Shot Rankers for Recommender Systems

초록(Abstract)

최근 대규모 언어 모델(LLM)(예: GPT-4)은 추천 작업에 접근할 수 있는 잠재력을 포함하여 인상적인 범용 작업 해결 능력을 보여주었습니다. 이러한 연구의 연장선상에서 본 연구는 추천 시스템의 랭킹 모델 역할을 하는 LLM의 역량을 조사하는 것을 목표로 합니다. 실증 연구를 수행하기 위해 먼저 순차적 상호작용 이력을 조건으로, 후보 생성 모델에 의해 검색된 상품을 후보로 간주하여 추천 문제를 조건부 랭킹 작업으로 공식화합니다. 그리고 순차적 상호작용 이력, 후보 상품, 랭킹 명령어를 포함하여 프롬프트 템플릿을 신중하게 설계하여 LLM으로 랭킹 과제를 해결하는 특정 프롬프트 접근 방식을 채택합니다. 추천 시스템에 널리 사용되는 두 가지 데이터 세트에 대한 광범위한 실험을 수행하여 추천 시스템에서 LLM을 사용하기 위한 몇 가지 주요 결과를 도출했습니다. LLM이 여러 후보 생성기가 검색한 후보에 대해 기존 추천 모델과 동등하거나 더 나은 제로샷 랭킹 능력을 가지고 있음을 보여줍니다. 또한 LLM이 과거 상호작용의 순서를 인식하는 데 어려움을 겪고 위치 편향과 같은 편향의 영향을 받을 수 있지만, 특별히 설계된 프롬프트 및 부트스트랩 전략을 통해 이러한 문제를 완화할 수 있음을 입증했습니다. 이 연구를 재현하는 코드는 https://github.com/RUCAIBox/LLMRank 에서 확인할 수 있습니다.

1 .개요(Introduction)

추천 시스템 관련 문헌에 따르면, 대부분의 기존 모델은 특정 도메인 또는 작업 시나리오의 사용자 행동 데이터로 학습되며[25, 13, 14], 두 가지 주요 문제를 가지고 있습니다. 첫째, 기존 모델은 주로 클릭한 상품 시퀀스와 같은 과거 상호작용 행동에서 사용자 선호도를 포착하기 때문에[14, 19, 39, 17] 실제 사용자 선호도를 명시적으로 이해하기 어렵고, 복잡한 사용자 관심사(예: 자연어로 표현된 사용자 의도)를 모델링하는 데 표현력이 제한적입니다. 둘째, 이러한 모델은 본질적으로 "좁은 전문가"로서 배경 지식이나 상식적인 지식에 의존하는 복잡한 추천 작업을 해결하는 데 있어 보다 포괄적인 지식이 부족합니다[11].

추천 성능과 상호작용을 개선하기 위해 추천 시스템에서 사전 학습된 언어 모델(PLM)을 사용하려는 노력이 증가하고 있습니다[10, 18, 31]. 이러한 모델은 자연어로 사용자 선호도를 명시적으로 포착하거나[10] 텍스트 코퍼스로부터 풍부한 세계 지식을 전송하는 것을 목표로 합니다[18, 16]. 이러한 효과에도 불구하고 작업별 데이터에 대한 추천 모델을 철저하게 미세 조정해야 하므로 다양한 추천 작업을 해결하기에는 역량이 떨어집니다[18]. 최근에는 대규모 언어 모델(LLM)이 상식적 추론, 지식 활용, 작업 일반화에서 우수한 역량을 보여줌으로써[37] 제로샷 작업 해결사 역할을 할 수 있는 큰 잠재력을 보여주었습니다[32, 27]. 실제로 추천 과제를 해결하기 위해 LLM을 사용하는 몇 가지 예비적 시도가 있습니다[9, 29, 30, 5, 21, 34]. 이러한 연구들은 주로 LLM으로 유능한 추천자를 구축할 수 있는 가능성을 논의하는 데 초점을 맞추고 있으며, 예비 실험을 바탕으로 유망한 결과를 보고하고 있습니다. 반면, 본 논문에서는 이러한 능력을 보다 상세하고 심층적으로 분석하고, LLM이 과거 상호작용 데이터를 통해 학습하는 방법과 같은 능력 보유 요인을 이해하는 데 초점을 맞추고자 합니다.

본 논문에서는 보다 상세한 실증 연구를 통해 추천 모델 역할을 하는 LLM의 역량을 살펴보고자 합니다. 일반적으로 추천 시스템은 다단계 후보 생성(연관성이 높은 상품 검색)과 랭킹(연관성이 높은 상품에 높은 순위 부여) 절차로 구성된 파이프라인 아키텍처[4]로 개발됩니다. 논문에서 다룰 작업은 주로 추천 시스템의 랭킹 단계에 초점을 맞추고 있는데, 이는 대규모 후보 세트에서 LLM을 실행하는 데 비용이 더 많이 들기 때문입니다. 또한, 랭킹 성능은 검색된 상위 순위 후보 상품에 민감하게 반응하기 때문에 LLM의 추천 능력의 미묘한 차이를 조사하는 데 더 적합합니다.

이 연구를 수행하기 위해 먼저 LLM의 추천 프로세스를 조건부 랭킹 작업으로 공식화합니다. 순차적인 과거 상호작용을 '조건'으로 포함하는 프롬프트가 주어지면, LLM은 후보 상품과 과거 상호작용한 상품 간의 관계에 대한 LLM의 내재적 지식에 따라 일련의 '후보'(예: 후보 생성 모델에 의해 검색된 상품)의 순위를 매기도록 지시받습니다. 그런 다음, 각각 '조건'과 '후보'에 대한 특정 구성을 설계하여 랭커로서 LLM의 경험적 성능을 체계적으로 연구하기 위해 통제된 실험을 수행합니다. 전반적으로 다음과 같은 주요 질문에 답하고자 합니다:

  • LLM이 순차적인 상호작용이 있는 프롬프트에서 기본 사용자 선호도를 포착할 수 있는가?
  • LLM이 내재적 지식을 활용하여 다양한 실제 전략으로 검색된 후보의 순위를 매길 수 있는가?

저희는 추천 시스템에 널리 사용되는 두 가지 공개 데이터 세트를 대상으로 실증 실험을 진행했습니다. 실험을 통해 추천 시스템을 위한 강력한 랭킹 모델로 LLM을 개발하는 방법에 대한 몇 가지 주요 결과를 도출했습니다. 이 실증 연구의 주요 결과를 요약하면 다음과 같습니다:

  • LLM은 개인화된 랭킹을 위해 과거 행동을 활용할 수 있지만, 주어진 순차적 상호작용 이력의 순서를 인식하는 데는 어려움을 겪습니다.
  • 최근 중심 프롬프트(recency-focused prompting) 및 문맥 학습(in-context learning)과 같이 특별히 설계된 프롬프트를 사용하면 LLM이 순차적인 과거 상호 작용의 순서를 인식하도록 트리거하여 랭킹 성능을 개선할 수 있습니다.
  • LLM은 기존의 제로 샷 추천 방법보다 성능이 뛰어나며, 특히 서로 다른 실제 전략을 사용하는 여러 후보 생성 모델에서 검색된 후보에 대해 유망한 제로 샷 순위 지정 능력을 보여줍니다.
  • LLM은 순위를 매기는 동안 포지션 편향과 인기 편향이 발생하는데, 이는 프롬프트 또는 부트스트랩 전략을 통해 완화될 수 있습니다.

2. 랭커로서 LLM을 고려한 일반 프레임워크(General Framework for LLMs as Rankers)

LLM의 추천 능력을 조사하기 위해 먼저 추천 프로세스를 조건부 랭킹 작업으로 공식화합니다. 그런 다음 추천 작업을 해결하기 위해 LLM을 적용하는 일반적인 프레임워크를 설명합니다.

2.1 문제 공식화(Problem Formulation)

한 사용자의 과거 상호작용 H = {i_1, i_2, . . . , i_n}(상호작용 시간 순서대로)를 조건으로 주어졌을 때, 관심 있는 상품이 더 높은 순위에 오를 수 있도록 후보 상품 C = {i_j}, j=1, 2, …, m의 순위를 매기는 것이 과제입니다. 실제로 후보 상품은 일반적으로 전체 상품 집합 I(m << |I|)에서 후보 생성 모델에 의해 검색됩니다[4]. 또한, 각 상품 i는 [18]에 따라 설명 텍스트 t_i와 연관되어 있다고 가정합니다.

2.2 자연어 명령을 사용해 LLM으로 순위 매기기(Ranking with LLMs Using Natural Language Instructions)

우리는 명령 추종 패러다임(instruction-following paradigm)에서 위에서 언급한 과제를 해결하기 위해 LLM을 랭킹 모델로 사용합니다[32]. 구체적으로, 먼저 각 사용자에 대해 순차적인 상호작용 이력 H(조건)와 검색된 후보 상품 C(후보)를 각각 포함하는 두 개의 자연어 패턴을 구성합니다. 그런 다음 이러한 패턴을 최종 명령어로 자연어 템플릿 T에 채웁니다. 이러한 방식으로 LLM은 명령어를 이해하고 명령어가 제시하는 대로 순위 결과를 출력합니다. LLM에 의한 랭킹 접근 방식의 전체 프레임워크는 그림 1에 나와 있습니다. 다음은 접근 방식의 세부적인 명령어 설계에 대해 설명합니다.

그림 1: 제안된 LLM 기반 제로샷 개인화 랭킹 방법 개요

순차적 과거 상호작용. LLM이 과거 사용자 행동에서 사용자 선호도를 파악할 수 있는지 알아보기 위해, 순차적 과거 상호작용 H를 LLM의 입력으로 명령에 포함시킵니다. LLM이 과거 상호작용의 순차적 특성을 인식할 수 있도록 하기 위해 세 가지 방법으로 명령을 구성할 것을 제안합니다:

  • 순차적 프롬프트: 과거 상호작용을 시간 순서대로 정렬합니다. 이 방법은 이전 연구에서도 사용되었습니다[5]. 예를 들어, "나는 과거에 다음과 같은 영화를 순서대로 시청했습니다: '0. 멀티플리시티', '1. 쥬라기 공원', . . .".
  • 최근 중심 프롬프트: 순차적인 상호작용 기록에 더해 가장 최근의 상호작용을 강조하는 문장을 추가할 수 있습니다. 예를 들어, '나는 과거에 다음과 같은 영화를 순서대로 시청했습니다: '0. 멀티플리시티', '1. 쥬라기 공원', .... 가장 최근에 본 영화는 죽은 대통령입니다. . . .".
  • 상황 내 학습(In-Context Learning): ICL은 LLM이 다양한 작업을 풀기 위한 대표적인 프롬프트 방식[37]으로, 프롬프트에 데모 예시(작업 설명과 함께 제공 가능)를 포함하고 LLM이 특정 작업을 풀도록 지시합니다. 개인화된 추천 작업의 경우, 사용자마다 선호도가 다르기 때문에 단순히 다른 사용자의 예시를 소개하는 것은 노이즈가 발생할 수 있습니다. 저희 설정에 ICL을 적용하여 입력 상호작용 시퀀스 자체를 보강하여 데모 예시를 소개합니다. 세부적으로는 입력 인터랙션 시퀀스의 접두사와 그에 해당하는 후속 시퀀스를 예로 들어 설명합니다. 예를 들어, '내가 과거에 다음 영화를 순서대로 본 적이 있다면: '0. 멀티플리시티', '1. 쥬라기 공원', ... 순으로 본 적이 있다면, 죽은 대통령을 추천해야 하고, 이제 내가 죽은 대통령을 봤으니 ..."와 같은 식입니다.

검색된 후보 상품. 일반적으로 순위를 매길 후보 상품은 여러 후보 생성 모델에 의해 먼저 검색됩니다[4]. LLM으로 이러한 후보 상품의 순위를 매기기 위해 후보 상품 |C|를 순차적으로 정렬하기도 합니다. 예를 들어, "이제 다음에 볼 수 있는 후보 영화는 20개입니다: '0. 시스터 액트', '1. 선셋 블러바드', . . .". 전통적인 후보 생성 방식[4]에 따라 후보 상품에 대한 특정 순서가 정해져 있지 않다는 점에 유의하세요. 서로 다른 후보 생성 모델에서 검색된 결과에 대해 합집합을 얻고 후보 상품에 무작위로 위치를 할당합니다. 논문에서 다룰 작업에서는 상대적으로 작은 후보 풀을 고려하고 순위를 매기기 위해 20개의 후보 상품(즉, m = 20)을 유지합니다.

표 1: 전처리 후 데이터 집합의 통계입니다. "Avg. |H|"는 과거 사용자 행동의 평균 길이를 나타냅니다. "Avg. |t_i|"는 상품의 설명 텍스트에 포함된 토큰의 평균 개수를 나타냅니다.

LLM은 프롬프트의 예시 순서에 민감하다는 것이 밝혀졌습니다 [38, 22]. 이에 따라 프롬프트에서 후보 상품의 순서를 다르게 생성하여 LLM의 순위 결과가 후보의 배열 순서, 즉 위치 편향에 영향을 받는지 여부와 부트스트래핑을 통해 위치 편향을 완화하는 방법을 추가로 검토할 수 있습니다.

대규모 언어 모델로 순위 매기기. 기존 연구에 따르면 LLM은 자연어 명령어를 따라 제로 샷 또는 소수 샷 환경에서 다양한 작업을 해결할 수 있습니다 [32, 37]. LLM을 랭킹 모델로 사용하기 위해 최종적으로 위에서 언급한 패턴을 명령 템플릿 T에 통합합니다. 명령 템플릿의 예는 다음과 같이 주어질 수 있습니다: "[순차적인 과거 상호작용을 포함하는 패턴 H] [검색된 후보 상품을 포함하는 패턴 C] 나의 시청 이력에 따라 다음에 가장 보고 싶은 가능성을 측정하여 이 영화들의 순위를 매겨주세요. 주어진 후보 영화에 반드시 순위를 매겨야 합니다. 주어진 후보 목록에 없는 영화는 생성할 수 없습니다.".

LLM의 출력 파싱하기. 명령어를 LLM에 입력하면 추천을 위한 LLM의 순위 결과를 얻을 수 있습니다. LLM의 출력은 여전히 자연어 텍스트로 되어 있으며, 휴리스틱 텍스트 매칭 방법으로 출력을 파싱하고 지정된 상품 세트에 대한 추천 결과를 기반으로 합니다. 구체적으로, 영화 제목과 같이 상품의 텍스트가 짧고 변별력이 있는 경우에는 LLM 출력과 후보 상품의 텍스트 간에 KMP[20]와 같은 효율적인 하위 문자열 매칭 알고리즘을 직접 수행할 수 있습니다. 또는 각 후보 상품에 인덱스를 할당하고 LLM에 직접 순위가 매겨진 인덱스를 출력하도록 지시할 수 있습니다. 프롬프트에 후보 상품이 포함되어 있음에도 불구하고 LLM이 후보 세트에서 벗어난 상품을 생성하는 경향이 있다는 사실을 발견했습니다. 반면, 이 오류의 비율은 GPT-3.5의 경우 약 3%로 매우 적습니다. 이 경우 LLM에 이 오류를 상기시키거나 단순히 잘못된 추천으로 처리할 수 있습니다.

3. 실증 연구(Empirical Studies)

우리는 순차적 기록 상호작용 H, 후보 C, 템플릿 T를 포함한 다양한 구성의 효과를 조사하고, 두 가지 연구 질문에 답하는 데 초점을 맞추고자 한다: (a) LLM이 사용자 순차적 기록 상호작용 H가 있는 프롬프트에서 사용자 선호도를 포착할 수 있는가? (b) LLM이 내재적 지식을 활용하여 다양한 실제 전략으로 검색된 후보 C의 순위를 매길 수 있는가?

데이터 세트. 실험은 추천 시스템에 널리 사용되는 두 가지 공개 데이터 세트, 즉 (1) 사용자 평점이 상호작용으로 간주되는 영화 평점 데이터 세트 MovieLens-1M [12](줄여서 ML-1M)과 (2) 리뷰가 상호작용으로 간주되는 Amazon 리뷰 데이터 세트 [23]의 게임 카테고리 1개에 대해 수행됩니다. 상호작용이 5개 미만인 사용자와 상품을 필터링합니다. 그런 다음 각 사용자의 상호작용을 타임스탬프별로 정렬하고 가장 오래된 상호작용부터 정렬하여 해당 과거 상호작용 시퀀스를 구성합니다. 영화/제품 제목은 상품의 설명 텍스트로 사용됩니다.

평가 구성. 기존 연구[19, 18, 17]에 따라 평가 시에는 리브 원 아웃(leave-one-out) 전략을 적용합니다. 각 과거 상호작용 시퀀스에 대해 마지막 상품이 기준값 상품으로 사용됩니다. 주어진 m개의 후보에 대한 순위 결과를 평가하기 위해 널리 사용되는 메트릭인 NDCG@N을 채택합니다(여기서 N ≤ m).

구현 세부 사항. 이 작업의 재현을 용이하게 하기 위해 널리 사용되는 오픈 소스 추천 라이브러리 RECBOLE [36, 35, 33]을 사용하여 실험을 수행합니다. 순차적인 과거 사용자 행동의 경우, 기본적으로 가장 최근 50개의 상호작용을 사용합니다. LLM 기반 방법의 경우, 각 데이터 세트에 대한 과거 행동과 함께 200명의 사용자를 무작위로 샘플링합니다. SASRec[19]과 같은 기존 기준 방법(baseline)의 경우, 지정되지 않는 한 훈련 데이터 세트의 모든 상호 작용에 대해 훈련되며, 평가된 LLM은 OpenAI의 API gpt-3.5-turbo1을 호출하여 액세스합니다. LLM 호출의 하이퍼파라미터 온도(temperature)는 0.2로 설정됩니다. 보고된 모든 결과는 무작위성의 영향을 줄이기 위해 최소 3회 반복 실행의 평균입니다.

그림 2: LLM이 과거 사용자 행동을 활용하는지 여부와 LLM이 상호작용 기록의 순서를 인지하는지 여부를 분석합니다.

3.1 LLM이 순차적인 과거 사용자 행동과 관련된 프롬프트를 이해할 수 있나요?(Can LLMs Understand Prompts that Involve equential Historical User Behaviors?)

기존 문헌에서 과거 사용자 행동은 주로 특수하게 설계된 추천 모델에 의해 그래프[13] 또는 시퀀스[14]로 모델링됩니다. 반면, 본 연구에서는 과거 사용자 행동을 프롬프트로 인코딩하여 추천을 위해 특별히 훈련되지 않은 대규모 언어 모델에 입력합니다. 이 부분에서는 먼저 LLM이 이러한 과거 사용자 행동을 활용하여 정확한 추천을 할 수 있는지 여부를 조사합니다. 다양한 H 구성을 설계하여 (1) LLM이 과거 행동이 있는 프롬프트를 이해하고 그에 따라 순위를 매길 수 있는지, (2) 순차적 특성이 사용자 선호도를 이해하는 데 인식되고 활용되는지, (3) LLM이 장기적인 사용자 이력을 더 잘 활용할 수 있는지 등을 살펴보고자 합니다.

이 섹션의 실험은 주로 과거 사용자 행동의 효과에 초점을 맞추기 때문에, LLM의 랭킹 성능을 평가하기 위해 후보 집합을 구성하는 데 간단한 전략을 사용합니다. 구체적으로, 각 실측 데이터 상품에 대해 전체 상품 세트 I에서 m - 1 개의 상품을 네거티브 인스턴스로 무작위로 검색합니다(여기서 m = 20). 그런 다음 프롬프트를 구성하기 전에 이러한 후보 상품을 무작위로 섞습니다.

LLM은 과거 행동이 있는 프롬프트에 해당하는 개인화된 추천을 제공할 수 있습니다. 이 섹션에서는 LLM이 과거 사용자 행동이 있는 프롬프트를 이해하고 개인화된 추천을 제공할 수 있는지 여부를 살펴봅니다. 사용자의 과거 행동이 순차적으로 기록된 프롬프트가 주어지면, 하나의 실측 데이터 상품과 무작위로 샘플링된 부정 상품 19개를 포함하여 20개의 상품으로 구성된 후보 세트의 순위를 매기는 작업을 수행합니다. 과거 행동을 분석하여 관심 있는 상품에 더 높은 순위를 매겨야 합니다. 세 가지 LLM 기반 방법의 순위 결과를 비교합니다. (a) 2.2절에서 설명한 대로 LLM으로 순위를 매기는 방법. 과거 사용자 행동은 '순차적 프롬프트' 전략을 사용하여 프롬프트에 인코딩됩니다. (b) 기록 없음: 과거 사용자 행동이 지침에서 제거되고, (c) 가짜 기록: 원래 과거 행동의 모든 상품을 무작위로 샘플링된 가짜 과거 행동으로 대체합니다.

그림 2(a)를 보면, 과거 행동이 없거나 가짜 과거 행동이 있는 변종보다 우리의 변종이 더 나은 성능을 보이는 것을 알 수 있습니다. 이 결과는 LLM이 과거 사용자 행동이 포함된 프롬프트를 효과적으로 활용하여 개인화된 추천을 제공할 수 있는 반면, 관련 없는 과거 행동은 LLM의 순위 성능을 저해할 수 있음을 시사합니다.

LLM은 주어진 과거 사용자 행동의 순서를 인식하는 데 어려움을 겪습니다. 그림 2(b)에서는 사용자 과거 행동의 순차적 특성을 인식하는 LLM의 능력을 자세히 살펴봅니다. 접미사(랜덤 순서)가 붙은 변형은 과거 사용자 행동을 무작위로 섞어 모델에 입력하는 것을 의미합니다(당사 또는 SASRec). SASRec과 SASRec(무작위 순서)을 비교하면, 순차적인 과거 상호작용의 순서가 상품 순위에 매우 중요하다는 것을 알 수 있습니다. 그러나 우리와 우리의 (무작위 순서)의 성능은 매우 유사하며, 이는 LLM이 주어진 과거 사용자 행동의 순서에 민감하지 않다는 것을 나타냅니다.

표 2: 무작위로 검색된 후보에 대한 다양한 제로 샷 추천 모델의 성능 비교. 실측 데이터 상품은 후보 세트에 포함되도록 보장됩니다. 'full'는 대상 데이터 세트에 대해 학습된 추천 모델을 나타내고, 'zero-shot'은 대상 데이터 세트에 대해 학습되지는 않았지만 사전 학습될 수 있는 추천 모델을 나타냅니다. 세 가지 제로 샷 프롬프트 전략은 gpt-3.5-turbo를 기반으로 합니다. 제로샷 추천 방법 중 가장 우수한 성능을 굵은 글씨로 강조했습니다. N@K는 NDCG@K를 나타냅니다.

또한, 그림 2(c)에서는 프롬프트를 구성하는 데 사용되는 최신 사용자 행동 기록(|H|)의 수를 5개에서 50개까지 다양하게 설정했습니다. 그 결과, 과거 사용자 행동의 수를 늘린다고 해서 랭킹 성능이 향상되지 않으며, 심지어 랭킹 성능에 부정적인 영향을 미치는 것으로 나타났습니다. 이러한 현상은 LLM이 순서를 이해하기 어렵지만 모든 과거 행동을 동일하게 고려하기 때문에 발생하는 것으로 추측됩니다. 따라서 과거 사용자 행동이 너무 많으면(예: |H| = 50) LLM이 과부하가 걸려 성능이 저하될 수 있습니다. 반대로 상대적으로 작은 |H|를 사용하면 LLM이 가장 최근에 상호 작용한 상품에 집중할 수 있으므로 추천 성능이 향상됩니다. 위의 결과는 첫 번째 핵심 관찰로 요약할 수 있습니다:

관찰결과 1. LLM은 개인화된 순위를 위해 과거 행동을 활용할 수 있지만, 주어진 순차적 상호작용 기록의 순서를 인식하는 데 어려움을 겪습니다.

LLM이 상호작용 순서를 인식하도록 트리거하기. 위의 관찰 결과를 바탕으로 우리는 순차적 프롬프트 전략으로는 LLM이 상호작용 이력의 순서를 인식하기 어렵다는 것을 발견했습니다. 따라서 우리는 LLM의 순서 인식 능력을 이끌어내기 위한 두 가지 대안적인 프롬프트 전략을 제안합니다. 핵심 아이디어는 최근에 상호작용한 상품을 강조하는 것입니다. 제안된 최근성 중심 프롬프트와 문맥 내 학습 전략에 대한 자세한 설명은 섹션 2.2에 나와 있습니다.

표 2에서 최근 강제 프롬프트와 컨텍스트 내 학습 모두 LLM의 순위 지정 성능을 향상시킬 수 있음을 알 수 있습니다. 최신성 중심 프롬프트는 top-1 정확도를 더 잘 산출하는 반면, 인컨텍스트 학습은 과거 행동이 더 긴 데이터 세트에서 더 나은 성능을 발휘합니다. 위의 결과는 다음과 같은 주요 관찰 결과로 요약할 수 있습니다:

관찰결과 2. 최근성 중심 프롬프트 및 컨텍스트 내 학습과 같이 특별히 설계된 프롬프트를 사용하면 LLM이 과거 사용자 행동의 순서를 인식하도록 트리거하여 랭킹 성과를 개선할 수 있습니다.

3.2 제로 샷 설정에서 LLM이 후보 상품의 순위를 얼마나 잘 매길 수 있나요?(How Well Can LLMs Rank Candidate Items in a Zero-Shot Setting?)

이 섹션에서는 LLM이 후보의 순위를 얼마나 잘 매길 수 있는지 자세히 살펴봅니다. 먼저 벤치마킹 실험을 통해 기존 추천 모델, 기존 제로샷 추천 방법, 제안한 LLM 기반 방법 등 무작위 후보에 대한 다양한 방법 간의 순위 지정 성능을 비교합니다. 다음으로, 다양한 전략에 의해 검색된 하드 네거티브가 있는 후보에 대해 LLM 기반 방법을 평가하여 LLM의 순위가 무엇에 따라 달라지는지 자세히 살펴봅니다. 그런 다음, 보다 실용적이고 어려운 설정을 시뮬레이션하기 위해 여러 후보 생성 모델에 의해 검색된 후보에 대한 다양한 방법의 순위 성능을 비교하는 또 다른 벤치마크를 제시합니다.

그림 3: 다양한 전략으로 검색된 하드 네거티브에 대해 NDCG@10(%)으로 측정한 순위 성과

LLM은 유망한 제로 샷 랭킹 능력을 가지고 있습니다. 표 2에서는 LLM 기반 방법과 기존 방법의 순위 결정 능력을 비교하기 위한 실험을 수행합니다. 섹션 3.1의 설정과 동일하게 |C| = 20으로 설정하고 후보 상품(지상 진실 상품 제외)을 무작위로 검색합니다. 훈련 세트에 대해 학습된 세 가지 기존 추천 모델, 즉 Pop(상품 인기도에 따른 추천), BPRMF [25], SASRec [19]을 포함합니다. 또한 BM25 [26](후보 간의 텍스트 유사성과 과거 상호작용에 따라 순위 지정), UniSRec [18], VQ-Rec [16] 등 대상 데이터 세트에서 학습되지 않은 세 가지 제로 샷 추천 방법도 평가합니다. UniSRec과 VQ-Rec의 경우, 공개적으로 사용 가능한 사전 학습된 모델을 사용합니다. ZESRec [7]은 사전 훈련된 모델이 공개되지 않았고, UniSRec은 이 모델의 개선된 버전으로 볼 수 있기 때문에 포함하지 않았습니다[18]. LLM 기반 방법의 경우, 섹션 2.2에 설명된 대로 서로 다른 프롬프트 전략을 사용하는 세 가지 변형을 시퀀셜이라는 이름으로 포함합니다.

표 2를 보면 LLM 기반 방식이 기존 제로샷 추천 방식보다 큰 폭으로 성능이 뛰어나며, 제로샷 랭킹에 대한 가능성을 보여주고 있음을 알 수 있습니다. ML-1M 데이터셋에서는 단순히 제목의 유사도만으로 영화 간의 유사도를 측정하기 어렵기 때문에 제로샷 추천을 수행하기 어렵다는 점을 강조하고 싶습니다. LLM 기반 모델은 내재적 세계 지식을 사용하여 영화 간의 유사성을 측정하고 추천할 수 있기 때문에 ML-1M에서 여전히 유망한 제로샷 랭킹 성능을 달성할 수 있음을 알 수 있습니다. 그러나 제로샷 추천 방법과 기존 방법 사이에는 여전히 격차가 존재하며, 이는 상호작용 데이터로부터 학습할 수 있는 LLM 기반 추천 방법을 개발하는 것이 중요하다는 것을 나타냅니다[34].

LLM은 상품 인기도, 텍스트 기능 및 사용자 행동에 따라 후보의 순위를 매깁니다. LLM이 주어진 후보의 순위를 매기는 방법을 더 자세히 조사하기 위해, 다양한 후보 생성 방법으로 검색된 후보에 대한 LLM의 순위 성능을 평가합니다. 이러한 후보들은 실사 상품에 대한 하드 네거티브로 볼 수 있으며, 특정 상품 범주에 대한 LLM의 순위 지정 능력을 측정하는 데 사용할 수 있습니다. (1) BM25 [26] 및 BERT [6]와 같은 콘텐츠 기반 방법은 과거에 상호 작용한 상품과 후보 간의 텍스트 특징 유사성을 기반으로 후보를 검색하고, (2) Pop(상품 인기도에 따라 추천), BPRMF [25], GRU4Rec [14], SASRec [19]를 포함한 상호작용 기반 방법은 사용자-상품 상호 작용에 대해 학습된 기존 추천 모델을 사용하여 상품을 검색합니다. 후보가 주어지면 LLM 기반 모델(Ours)과 대표적인 콘텐츠 기반(BM25) 및 상호 작용 기반(Pop 및 SASRec) 방법의 순위 성능을 비교합니다.

표 3: 여러 후보 생성 모델에 의해 검색된 후보에 대한 다양한 제로 샷 추천 모델의 성능 비교. 실측 데이터 상품이 후보 세트에 포함되는 것은 보장되지 않습니다. 'full'는 대상 데이터 세트에 대해 학습된 추천 모델을 의미하며, 'zero-shot'은 대상 데이터 세트에 대해 학습되지는 않았지만 사전 학습될 수 있는 추천 모델을 의미합니다. 모든 추천 방법 중 가장 우수한 성능을 굵은 글씨로 강조했습니다. N@K는 NDCG@K를 나타냅니다.

그림 3에서 LLM 기반 방법의 순위 성능은 후보 세트와 데이터 세트에 따라 달라지는 것을 볼 수 있습니다. (1) ML-1M의 경우, 인기 상품(예: Pop 및 BPRMF)이 포함된 후보 세트에서는 LLM 기반 방식이 높은 순위를 차지하지 못하며, 이는 LLM 기반 방식이 ML-1M 데이터 세트에서 상품의 인기도에 따라 추천 상품이 크게 좌우된다는 것을 나타냅니다. (2) 게임에서는 인기 후보와 텍스트 유사 후보 모두에서 비슷한 순위 성능을 보이는 것을 관찰할 수 있으며, 이는 상품 인기도와 텍스트 특징이 LLM의 순위에 유사하게 기여한다는 것을 보여줍니다. (3) 두 데이터 세트 모두에서, 상호작용 기반 후보 생성 방법에 의해 검색된 하드 네거티브의 영향을 받지만, SASRec과 같이 순전히 상호작용에 기반한 순위 모델만큼 심각하지는 않습니다. 위의 결과는 LLM 기반 방법이 순위를 매길 때 일부 단일 측면만 고려하는 것이 아니라 상품 인기도, 텍스트 기능, 심지어 사용자 행동까지 활용한다는 것을 보여줍니다. 데이터 세트에 따라 순위 성능에 영향을 미치는 이 세 가지 측면의 가중치도 달라질 수 있습니다.

LLM은 여러 후보 생성 모델에서 검색된 후보의 순위를 효과적으로 매길 수 있습니다. 실제 2단계(two-stage) 추천 시스템[4]의 경우, 순위를 매길 상품은 일반적으로 여러 후보 생성 모델에 의해 검색됩니다. 따라서 저희도 보다 실제적인 환경에서 벤치마킹 실험을 진행했습니다. 일반적인 콘텐츠 기반 및 인터랙션 기반 방법을 포괄하는 7가지 후보 생성 모델, 즉 Random, BM25, BERT, Pop, BPRMF, GRU4Rec, SASRec을 사용하여 상품을 검색합니다. 각 후보 생성 모델에서 검색된 상위 3개의 우수 상품은 총 21개의 상품이 포함된 후보 집합으로 병합됩니다. 보다 실용적인 설정으로, 3.1절에서 설명한 설정처럼 각 후보 세트에 실측 상품을 보완하지는 않습니다. 3.1절의 실험에서 영감을 얻은 저희의 경우, 최근성 중심의 프롬프트 전략을 사용하여 |H| = 5개의 순차적인 과거 상호작용을 프롬프트로 인코딩하여 적절한 랭킹 성능을 구현합니다.

표 3을 보면, LLM 기반 순위 모델(Ours)이 대부분의 지표(8개 중 6개)에서 비교 대상 추천 모델에 비해 가장 우수한 성능을 보이며, 심지어 대상 데이터세트에 대해 학습된 기존 추천 모델인 SASRec을 능가하는 것을 확인할 수 있습니다. 이 결과는 여러 후보 생성 모델에 의해 검색된 후보에 대한 LLM의 강력한 제로샷 랭킹 능력을 보여줍니다. 이러한 현상에 대해 우리는 LLM이 내재적 세계 지식을 활용하여 인기도, 텍스트 특징, 사용자 행동 등을 종합적으로 고려하여 후보의 순위를 매길 수 있다고 가정합니다. 이에 비해 기존 모델(좁은 의미의 전문가)은 복잡한 환경에서 상품의 순위를 매기는 능력이 부족할 수 있습니다. 위의 결과는 다음과 같이 요약할 수 있습니다:

관찰결과 3. LLM은 특히 다양한 실제 전략을 가진 여러 후보 생성 모델에 의해 검색된 후보에 대해 제로 샷 랭킹 능력을 가지고 있습니다.

그림 4: 다양한 크기의 후보 집합에 대한 LLM 기반 모델(Ours)과 기존 추천 모델(SASRec)의 순위 성능 비교.

LLM은 후보 집합이 클 경우 후보의 순위를 제대로 매길 수 없습니다. 언어 모델로 긴 시퀀스의 의미를 효과적으로 모델링하는 것은 기술적으로 어려운 과제였습니다[8]. 따라서 우리는 LLM이 순위를 매기기 위해 대규모 후보 집합을 처리할 수 있는지 조사하고자 합니다. 후보 |C|의 수를 5개에서 50개까지 다양하게 설정하고 그림 4에서 랭킹 성능을 보고합니다. LLM과 기존 추천 모델(예: SASRec) 간의 격차가 |C|가 증가할수록 커지는 것을 볼 수 있으며, 이는 많은 후보 상품 집합의 순위를 매길 때 LLM이 어려움에 직면할 수 있음을 나타냅니다.

3.3 LLM이 순위를 매길 때 편향성이 있나요?(Do LLMs suffer from biases while ranking?)

기존 추천 시스템의 편향과 디베이싱(debiasing) 방법은 널리 연구되어 왔습니다[2]. 제안된 LLM 기반 제로 샷 추천 모델의 경우에도 LLM의 순위에 영향을 미치는 특정 편향이 있을 수 있습니다. 이 섹션에서는 LLM 기반 추천 모델이 겪을 수 있는 두 가지 편향, 즉 위치 편향과 인기 편향에 대해 설명합니다. 또한 이러한 편향을 완화하는 방법에 대해서도 논의합니다.

후보 순서는 LLM의 순위 결과에 영향을 미칩니다. 기존의 랭킹 방식에서는 검색된 후보의 순서가 랭킹 결과에 영향을 미치지 않는 것이 일반적입니다. 그러나 2.2절에서 설명한 LLM 기반 접근 방식에서는 후보 상품이 순차적으로 배열되고 프롬프트에 LLM의 입력으로 인코딩됩니다. LLM은 일반적으로 자연어 처리 작업의 프롬프트에서 예제 순서에 민감하다는 것이 밝혀졌습니다 [38, 22]. 이에 따라 후보의 순서가 LLM의 랭킹 성능에 영향을 미치는지 실험을 진행했습니다. 3.1절에서 사용한 것과 동일한 후보 세트에 대해 LLM의 성능을 평가합니다. 유일한 차이점은 프롬프트에서 이러한 후보의 순서를 목적에 따라 제어한다는 것입니다. 즉, 프롬프트를 구성하는 동안 지상 진실 상품이 특정 위치에 나타나도록 합니다. 실측값 상품의 위치를 {0, 5, 10, 15, 19}로 변경하여 순위 결과를 그림 5(a)에 제시합니다. 실측값 상품이 다른 위치에 표시될 때 순위 성능이 달라지는 것을 볼 수 있습니다. 특히, 실측값 상품이 마지막 몇 개의 위치에 나타날 때 순위 성능이 크게 떨어집니다. 이 결과는 기존 추천 모델은 일반적으로 영향을 받지 않는 반면, LLM 기반 랭커의 경우 후보의 순서, 즉 위치 편향에 따라 LLM의 랭킹 성능이 영향을 받는다는 것을 나타냅니다.

그림 5: LLM 순위의 편향성 및 디베이싱 방법. (a) 프롬프트에서 후보자의 위치가 순위 결과에 영향을 미칩니다. (b) LLM은 인기 있는 아이템을 추천하는 경향이 있습니다. (c) 부트스트래핑은 위치 편향을 완화합니다. (d) 과거 상호작용에 초점을 맞추면 인기 편향이 줄어듭니다.

부트스트래핑을 통한 위치 편향성 완화. 그림 5(a)에서 볼 수 있듯이, LLM은 프롬프트의 뒷부분에 위치한 후보 상품의 순위를 낮게 매기는 경향이 있음을 알 수 있습니다. 후보 상품이 각 위치에 무작위로 할당되므로 위치 편향을 완화하기 위한 간단한 전략은 순위 프로세스를 부트스트랩하는 것입니다. 각 라운드마다 후보 상품을 무작위로 섞어 한 후보 상품이 다른 위치에 나타나 순위를 매길 수 있도록 후보 집합을 B회 반복하여 순위를 매길 수 있습니다.

순위를 매긴 후 더 높은 순위에 있는 상품에 더 높은 점수를 부여하고, 순위 점수를 합산하여 최종 순위를 도출합니다. 그림 5(c)에서 3.1절의 설정에 따라 부트스트랩 전략을 적용합니다. 각 후보 세트는 3번씩 순위를 매깁니다. 부트스트래핑이 두 데이터 세트 모두에서 랭킹 성능을 향상시킨다는 것을 알 수 있습니다.

후보의 인기도는 LLM의 순위 결과에 영향을 미칩니다. 인기 있는 상품의 경우 관련 텍스트가 LLM의 사전 학습 코퍼스에 자주 나타날 수도 있습니다. 예를 들어 베스트셀러 도서가 웹에서 널리 논의될 수 있습니다. 따라서 우리는 후보의 인기도에 따라 순위 결과가 영향을 받는지 살펴보고자 합니다. 하지만 사전 학습 코퍼스로는 상품 텍스트의 인기도를 직접 측정하기 어렵습니다. 따라서 하나의 추천 데이터셋에서 상품 빈도로 텍스트 인기도를 간접적으로 측정하여 반영할 수 있다는 가설을 세웠습니다. 그림 5(b)는 순위가 매겨진 상품 목록의 각 위치에 대한 상품 인기도 점수(훈련 세트에서 정규화된 상품의 출현 빈도로 측정)를 보여줍니다. 인기 있는 아이템이 더 높은 위치에 랭크되는 경향이 있음을 알 수 있습니다. 기존 추천 모델과 마찬가지로 LLM도 인기 편향이 발생하여 더 인기 있는 상품을 추천하는 것을 선호합니다.

LLM이 과거 상호작용에 초점을 맞추도록 하면 인기 편향을 줄이는 데 도움이 됩니다. 그림 5(b)를 보면 LLM이 인기 있는 상품의 순위를 더 높게 매기는 경향이 있음을 알 수 있습니다. 섹션 3.2의 관찰 결과에서 알 수 있듯이, 그 이유는 LLM이 과거 상호작용을 잘 활용하지 못하고 주로 상품 인기도에 따라 추천을 해야 하기 때문일 수 있습니다. 그림 2(c)의 실험을 통해, 사용된 과거 상호작용의 수가 적을 때 LLM이 과거 상호작용을 더 잘 활용할 수 있다는 것을 알 수 있습니다. 따라서, LLM이 사용자 이력에 더 집중할 때 인기도 편향이 줄어들 수 있는지 알아보기 위해 이력 상호작용의 수를 변화시켰습니다. 그림 5(d)에서 가장 높은 순위를 차지한 상품의 인기도 점수(정규화된 상품 빈도로 측정)를 비교해 보았습니다. 과거 상호작용 횟수가 감소함에 따라 인기도 점수도 감소하는 것을 확인할 수 있습니다. 이는 LLM이 과거 상호작용에 집중하도록 강제할 때 인기도 편향의 영향을 줄일 수 있음을 시사합니다. 위의 실험을 통해 다음과 같은 결론을 내릴 수 있습니다:

관찰결과 4. LLM은 순위를 매기는 동안 포지션 편향과 인기 편향을 겪게 되는데, 이는 특별히 고안된 프롬프트 또는 부트스트랩 전략을 통해 완화할 수 있습니다.

3.4 LLM은 어떻게 추천 능력을 얻나요?(How Do LLMs Gain Recommendation Abilities?)

이 섹션에서는 어떤 요인이나 기법이 LLM의 랭킹 능력에 기여하는지 살펴봅니다. 특히 명령 튜닝과 모델 스케일링이라는 두 가지 요인이 LLM의 랭킹 능력에 미치는 영향을 주로 살펴보는데, 이 두 가지 기법이 LLM의 능력에 핵심적인 역할을 하는 것으로 나타났기 때문입니다[37, 1, 32]. 앞으로는 이 두 가지 기법이 LLM의 추천 성능을 어떻게 향상시키는지에 대해 좀 더 집중적으로 연구하고자 합니다.

명령어 튜닝은 LLM의 순위 결정 능력을 향상시킵니다. 기존 연구에 따르면 명령어 튜닝은 보이지 않는 작업에 대한 LLM의 일반화 능력을 크게 향상시키는 것으로 나타났습니다 [27, 32]. 여기서는 LLM을 사용하여 과거 상호작용에 따라 상품의 순위를 매기는 능력이 명령어 튜닝을 통해 향상될 수 있는지 알아보고자 합니다. 3.1절의 실험 설정에 따라 제안한 LLM 기반 랭킹 방법의 기본 LLM을 gpt-3.5-turbo에서 (1) LLaMA [28]와 같이 명령어 튜닝을 하지 않은 LLM과 (2) Vicuna [3], text-davinci-0032와 같이 명령에 대한 미세 튜닝을 한 LLM으로 교체한 후 이들에 랭킹 작업을 수행하도록 인스트럭션을 내립니다. 그림 6에서 Vicuna-7/13B와 LLaMA-7/13B를 비교하면 명령어 튜닝을 거친 LLM이 명령어 튜닝을 거치지 않은 LLM보다 성능이 뛰어나다는 것을 알 수 있습니다. 이 결과는 명령어 튜닝이 추천 작업을 위해 특별히 설계된 명령어가 아니더라도 LLM의 순위 지정 능력을 향상시킨다는 것을 보여줍니다.

그림 6: 다양한 LLM을 사용한 랭킹 성능 비교

모델 스케일링은 LLM의 랭킹 성능을 향상시킵니다. 스케일링 법칙에서 알 수 있듯이, 모델 크기와 훈련 데이터의 양이 증가함에 따라 다양한 다운스트림 작업에서 LLM의 성능은 일반적으로 향상됩니다 [24, 15, 28]. 3.1절의 실험 설정에 따라 기본 LLM을 다양한 크기(7B, 13B, 35B, 65B)의 LLaMA로 대체하여 제로 샷 추천 작업에 대한 모델 스케일링의 효과를 조사합니다. 그림 6을 보면 모델 크기가 커질수록 LLM의 랭킹 성능이 향상되는 것을 알 수 있습니다(즉, LLaMA-65B > LLaMA-35B > LLaMA-13B 순). 또한 100B보다 큰 LLM이 더 우수한 랭킹을 산출한다는 것을 알 수 있습니다.

text-davinci-003과 gpt-3.5-turbo를 다른 작은 LLM과 비교하면 알 수 있습니다. 위의 결과는 제로 샷 추천 작업도 스케일링 법칙, 즉 모델 스케일링이 LLM의 랭킹 성능을 향상시킨다는 것을 나타냅니다.

4. 결론(Conclusion)

본 연구에서는 추천 시스템의 랭킹 모델 역할을 하는 LLM의 성능에 대해 살펴보았습니다. 구체적으로, 추천 작업을 조건부 랭킹 작업으로 공식화하여 순차적인 과거 상호작용을 조건으로, 후보 생성 모델에서 검색된 상품을 후보로 간주했습니다. LLM으로 순위를 매기기 위해 후보뿐만 아니라 과거 상호작용을 포함하는 자연어 프롬프트를 추가로 구성했습니다. 그런 다음 LLM이 순차적 행동의 순서를 인식할 수 있도록 특별히 고안된 몇 가지 프롬프트 전략을 제안합니다. 또한 LLM 기반 랭킹 모델이 겪을 수 있는 위치 편향 문제를 완화하기 위한 간단한 부트스트랩 전략도 소개합니다. 광범위한 경험적 연구에 따르면 LLM은 제로 샷 랭킹에 유망한 능력을 가지고 있습니다. 또한 몇 가지 주요 연구 결과를 바탕으로 (1) 순차적인 과거 상호작용의 순서를 더 잘 인식하고, (2) 더 많은 과거 상호작용과 후보를 더 잘 활용하며, (3) 위치 편향과 인기 편향을 완화하는 등 LLM의 랭킹 능력을 더욱 향상시킬 수 있는 몇 가지 유망한 방향을 조명하고자 합니다. 향후 작업에서는 제로 샷 랭커로 LLM을 배포할 때 위에서 언급한 주요 과제를 해결하기 위한 기술적 접근 방식을 개발하는 것을 고려하고 있습니다. 또한 효과적인 개인화 추천을 위해 다운스트림 사용자 행동에 따라 효율적으로 조정할 수 있는 LLM 기반 추천 모델을 개발하고자 합니다.

참고문헌(References)

[1] Tom Brown, Benjamin Mann, Nick Ryder, Melanie Subbiah, Jared D Kaplan, Prafulla Dhariwal, Arvind Neelakantan, Pranav Shyam, Girish Sastry, Amanda Askell, et al. Language models are few-shot learners. NeurIPS, 33:1877–1901, 2020.
[2] Jiawei Chen, Hande Dong, Xiang Wang, Fuli Feng, Meng Wang, and Xiangnan He. Bias and debias in recommender system: A survey and future directions. CoRR, abs/2010.03240, 2020.
[3] Wei-Lin Chiang, Zhuohan Li, Zi Lin, Ying Sheng, Zhanghao Wu, Hao Zhang, Lianmin Zheng, Siyuan Zhuang, Yonghao Zhuang, Joseph E. Gonzalez, Ion Stoica, and Eric P. Xing. Vicuna: An open-source chatbot impressing gpt-4 with 90%* chatgpt quality, March 2023.
[4] Paul Covington, Jay Adams, and Emre Sargin. Deep neural networks for youtube recommendations. In RecSys, pages 191–198, 2016.
[5] Sunhao Dai, Ninglu Shao, Haiyuan Zhao, Weijie Yu, Zihua Si, Chen Xu, Zhongxiang Sun, Xiao Zhang, and Jun Xu. Uncovering chatgpt’s capabilities in recommender systems. arXiv preprint arXiv:2305.02182, 2023.
[6] Jacob Devlin, Ming-Wei Chang, Kenton Lee, and Kristina Toutanova. Bert: Pre-training of deep bidirectional transformers for language understanding. In NAACL, 2019.
[7] Hao Ding, Yifei Ma, Anoop Deoras, Yuyang Wang, and Hao Wang. Zero-shot recommender systems. arXiv:2105.08318, 2021.
[8] Zican Dong, Tianyi Tang, Lunyi Li, and Wayne Xin Zhao. A survey on long text modeling with transformers. arXiv preprint arXiv:2302.14502, 2023.
[9] Yunfan Gao, Tao Sheng, Youlin Xiang, Yun Xiong, Haofen Wang, and Jiawei Zhang. Chat-rec: Towards interactive and explainable llms-augmented recommender system. arXiv preprint arXiv:2303.14524, 2023.
[10] Shijie Geng, Shuchang Liu, Zuohui Fu, Yingqiang Ge, and Yongfeng Zhang. Recommendation as language processing (RLP): A unified pretrain, personalized prompt & predict paradigm (P5). In RecSys, 2022.
[11] Qingyu Guo, Fuzhen Zhuang, Chuan Qin, Hengshu Zhu, Xing Xie, Hui Xiong, and Qing He. A survey on knowledge graph-based recommender systems. TKDE, 34(8):3549–3568, 2020.
[12] F Maxwell Harper and Joseph A Konstan. The movielens datasets: History and context. TIIS, 5(4):1–19, 2015.
[13] Xiangnan He, Kuan Deng, Xiang Wang, Yan Li, Yong-Dong Zhang, and Meng Wang. Lightgcn: Simplifying and powering graph convolution network for recommendation. In SIGIR, 2020.
[14] Balázs Hidasi, Alexandros Karatzoglou, Linas Baltrunas, and Domonkos Tikk. Session-based recommendations with recurrent neural networks. In ICLR, 2016.
[15] Jordan Hoffmann, Sebastian Borgeaud, Arthur Mensch, Elena Buchatskaya, Trevor Cai, Eliza Rutherford, Diego de Las Casas, Lisa Anne Hendricks, Johannes Welbl, Aidan Clark, et al. Training compute-optimal large language models. arXiv preprint arXiv:2203.15556, 2022.
[16] Yupeng Hou, Zhankui He, Julian McAuley, and Wayne Xin Zhao. Learning vector-quantized item
representation for transferable sequential recommenders. In WWW, 2023.
[17] Yupeng Hou, Binbin Hu, Zhiqiang Zhang, and Wayne Xin Zhao. Core: Simple and effective session-based recommendation within consistent representation space. In SIGIR, 2022.
[18] Yupeng Hou, Shanlei Mu, Wayne Xin Zhao, Yaliang Li, Bolin Ding, and Ji-Rong Wen. Towards universal sequence representation learning for recommender systems. In KDD, 2022.
[19] Wang-Cheng Kang and Julian McAuley. Self-attentive sequential recommendation. In ICDM, 2018.
[20] Donald E Knuth, James H Morris, Jr, and Vaughan R Pratt. Fast pattern matching in strings. SIAM journal on computing, 6(2):323–350, 1977.
[21] Guo Lin and Yongfeng Zhang. Sparks of artificial general recommender (agr): Early experiments with chatgpt. arXiv preprint arXiv:2305.04518, 2023.
[22] Yao Lu, Max Bartolo, Alastair Moore, Sebastian Riedel, and Pontus Stenetorp. Fantastically ordered prompts and where to find them: Overcoming few-shot prompt order sensitivity. In ACL, 2022.12
[23] Jianmo Ni, Jiacheng Li, and Julian McAuley. Justifying recommendations using distantly-labeled reviews and fine-grained aspects. In EMNLP, pages 188–197, 2019.
[24] Jack W Rae, Sebastian Borgeaud, Trevor Cai, Katie Millican, Jordan Hoffmann, Francis Song, John Aslanides, Sarah Henderson, Roman Ring, Susannah Young, et al. Scaling language models: Methods, analysis & insights from training gopher. arXiv preprint arXiv:2112.11446, 2021.
[25] Steffen Rendle, Christoph Freudenthaler, Zeno Gantner, and Lars Schmidt-Thieme. BPR: bayesian personalized ranking from implicit feedback. In UAI, 2009.
[26] Stephen E. Robertson and Hugo Zaragoza. The probabilistic relevance framework: BM25 and beyond. Found. Trends Inf. Retr., 3(4):333–389, 2009.
[27] Victor Sanh, Albert Webson, Colin Raffel, Stephen H. Bach, Lintang Sutawika, Zaid Alyafeai, Antoine Chaffin, Arnaud Stiegler, Arun Raja, Manan Dey, M Saiful Bari, Canwen Xu, Urmish Thakker,
Shanya Sharma Sharma, Eliza Szczechla, Taewoon Kim, Gunjan Chhablani, Nihal V. Nayak, Debajyoti
Datta, Jonathan Chang, Mike Tian-Jian Jiang, Han Wang, Matteo Manica, Sheng Shen, Zheng Xin Yong, Harshit Pandey, Rachel Bawden, Thomas Wang, Trishala Neeraj, Jos Rozen, Abheesht Sharma, Andrea Santilli, Thibault Févry, Jason Alan Fries, Ryan Teehan, Teven Le Scao, Stella Biderman, Leo Gao, Thomas Wolf, and Alexander M. Rush. Multitask prompted training enables zero-shot task generalization. In ICLR, 2022.
[28] Hugo Touvron, Thibaut Lavril, Gautier Izacard, Xavier Martinet, Marie-Anne Lachaux, Timothée Lacroix, Baptiste Rozière, Naman Goyal, Eric Hambro, Faisal Azhar, et al. Llama: Open and efficient foundation language models. arXiv preprint arXiv:2302.13971, 2023.
[29] Lei Wang and Ee-Peng Lim. Zero-shot next-item recommendation using large pretrained language models. arXiv preprint arXiv:2304.03153, 2023.
[30] Wenjie Wang, Xinyu Lin, Fuli Feng, Xiangnan He, and Tat-Seng Chua. Generative recommendation: Towards next-generation recommender paradigm. arXiv preprint arXiv:2304.03516, 2023.
[31] Xiaolei Wang, Kun Zhou, Ji-Rong Wen, and Wayne Xin Zhao. Towards unified conversational recommender systems via knowledge-enhanced prompt learning. In KDD, 2022.
[32] Jason Wei, Maarten Bosma, Vincent Y. Zhao, Kelvin Guu, Adams Wei Yu, Brian Lester, Nan Du, Andrew M. Dai, and Quoc V. Le. Finetuned language models are zero-shot learners. In ICLR, 2022.
[33] Lanling Xu, Zhen Tian, Gaowei Zhang, Junjie Zhang, Lei Wang, Bowen Zheng, Yifan Li, Jiakai Tang, Zeyu Zhang, Yupeng Hou, Xingyu Pan, Wayne Xin Zhao, Xu Chen, and Ji-Rong Wen. Towards a more user-friendly and easy-to-use benchmark library for recommender systems. In SIGIR, 2023.
[34] Junjie Zhang, Ruobing Xie, Yupeng Hou, Wayne Xin Zhao, Leyu Lin, and Ji-Rong Wen. Recommendation as instruction following: A large language model empowered recommendation approach. arXiv preprint arXiv:2305.07001, 2023.
[35] Wayne Xin Zhao, Yupeng Hou, Xingyu Pan, Chen Yang, Zeyu Zhang, Zihan Lin, Jingsen Zhang, Shuqing Bian, Jiakai Tang, Wenqi Sun, Yushuo Chen, Lanling Xu, Gaowei Zhang, Zhen Tian, Changxin Tian, Shanlei Mu, Xinyan Fan, Xu Chen, and Ji-Rong Wen. Recbole 2.0: Towards a more up-to-date recommendation library. In CIKM, 2022.
[36] Wayne Xin Zhao, Shanlei Mu, Yupeng Hou, Zihan Lin, Yushuo Chen, Xingyu Pan, Kaiyuan Li, Yujie Lu, Hui Wang, Changxin Tian, Yingqian Min, Zhichao Feng, Xinyan Fan, Xu Chen, Pengfei Wang, Wendi Ji, Yaliang Li, Xiaoling Wang, and Ji-Rong Wen. Recbole: Towards a unified, comprehensive and efficient framework for recommendation algorithms. In CIKM, 2021.
[37] Wayne Xin Zhao, Kun Zhou, Junyi Li, Tianyi Tang, Xiaolei Wang, Yupeng Hou, Yingqian Min, Beichen Zhang, Junjie Zhang, Zican Dong, Yifan Du, Chen Yang, Yushuo Chen, Zhipeng Chen, Jinhao Jiang, Ruiyang Ren, Yifan Li, Xinyu Tang, Zikang Liu, Peiyu Liu, Jian-Yun Nie, and Ji-Rong Wen. A survey of large language models. arXiv preprint arXiv:2303.18223, 2023.
[38] Zihao Zhao, Eric Wallace, Shi Feng, Dan Klein, and Sameer Singh. Calibrate before use: Improving few-shot performance of language models. In ICML, 2021.
[39] Kun Zhou, Hui Wang, Wayne Xin Zhao, Yutao Zhu, Sirui Wang, Fuzheng Zhang, Zhongyuan Wang, and Ji-Rong Wen. S3-rec: Self-supervised learning for sequential recommendation with mutual information maximization. In CIKM, 2020.

A. ML-1M Dataset을 사용한 예제

A.1 Sequential Prompting

  • Input:

I’ve watched the following movies in the past in order:
[’0. The Matrix’, ’1. Terminator2: Judgment Day’, ’2. Roger & Me’, ’3. Fargo’, ’4. The Blair Witch Project’]

Now there are 20 candidate movies that I can watch next:
[’0. Nixon’, ’1. X-Men’, ’2. Best Men’, “3. Carlito’s Way”, ’4. Star Trek IV: The Voyage Home’, ’5. The Five Senses’, ’6. Mephisto’, ’7. Meatballs 4’, ’8. The Stupids’, ’9. Thunderball’, ’10. Body Parts’, ’11. Grumpier Old Men’, ’12. The Wedding Singer’, ’13. Ronin’, ’14. Apple, The (Sib)’, ’15. Tampopo’, ’16. The Goodbye Girl’, ’17. Force of Evil’, ’18. The Edge’, ’19. Klute’]

Please rank these 20 movies by measuring the possibilities that I would like to watch next most, according to my watching history. Please think step by step.

Please show me your ranking results with order numbers. Split your output with line break. You MUST rank the given candidate movies. You can not generate movies that are not in the given candidate list.

  • Output:
  1. X-Men
  2. Carlito’s Way
  3. Ronin
  4. The Edge
  5. Nixon
  6. Grumpier Old Men
  7. The Wedding Singer
  8. Thunderball
  9. Body Parts
  10. Star Trek IV: The Voyage Home
  11. Tampopo
  12. Klute
  13. The Goodbye Girl
  14. Force of Evil
  15. Best Men
  16. The Five Senses
  17. Mephisto
  18. Meatballs 4
  19. The Stupids
  20. Apple, The (Sib)
  • Result: 정답은 “X-Men”, Ranking이 0로 나옴(0부터 시작한다 했을 때)

A.2 Recency-focused Prompting

  • Input:

I’ve watched the following movies in the past in order:
[’0. Eyes Wide Shut’, ’1. Fight Club’, “2. The General’s Daughter”, ’3. Gone in 60 Seconds’, ’4. Gladiator’]

Now there are 20 candidate movies that I can watch next:
[’0. For Whom the Bell Tolls’, ’1. Encino Man’, ’2. The Pope of Greenwich Village’, ’3. I Married A Strange Person’, ’4. Daylight’, ’5. Rain’, ’6. Children of a Lesser God’, “7. She’s the One”, ’8. For the Moment’, ’9. Once Upon a Time in America’, ’10. The Truth About Cats & Dogs’, “11. A Hard Day’s Night”, ’12. Jakob the Liar’, ’13. Angel Heart’, ’14. Galaxy Quest’, ’15. The Abominable Snowman’, ’16. Bait’, ’17. Warriors of Virtue’, ’18. Three to Tango’, ’19. Heaven & Earth’]

Please rank these 20 movies by measuring the possibilities that I would like to watch next most, according to my watching history. Please think step by step.

Note that my most recently watched movie is Gladiator. Please show me your ranking results with order numbers. Split your output with line break. You MUST rank the given candidate movies. You can not generate movies that are not in the given candidate list.

  • Output:
  1. Once Upon a Time in America
  2. Angel Heart
  3. The Truth About Cats & Dogs
  4. Galaxy Quest
  5. Jakob the Liar
  6. A Hard Day’s Night
  7. The Pope of Greenwich Village
  8. Rain
  9. For Whom the Bell Tolls
  10. Three to Tango
  11. She’s the One
  12. Bait
  13. I Married A Strange Person
  14. Children of a Lesser God
  15. Warriors of Virtue
  16. Heaven & Earth
  17. Encino Man
  18. Daylight
  19. The Abominable Snowman
  20. For the Moment

Result: 정답은 “Jakob the Liar”, Ranking이 4로 나옴(0부터 시작한다 했을 때)

A.3 In-context learning

  • Input:

I’ve watched the following movies in the past in order:
[’0. Mirror, The (Zerkalo)’, ’1.The 39 Steps’, ’2. Sanjuro’, ’3. Trouble in Paradise’]

Then if I ask you to recommend a new movie to me according to my watching history, you should recommend Shampoo and now that I’ve just watched Shampoo, there are 20 candidate movies that I can watch next:
[’0. Manon of the Spring (Manon des sources)’, ’1. Air Bud’, ’2. Citizen Kane’, ’3. Grand Hotel’, ’4. A Very Brady Sequel’, ’5. 42 Up’, ’6. Message to Love: The Isle of Wight Festival’, ’7. Screamers’, ’8. The
Believers’, ’9. Hamlet’, ’10. Cliffhanger’, ’11. Three Wishes’, ’12. Nekromantik’, ’13. Dangerous Minds’, ’14. The Prophecy’, ’15. Howling II: Your Sister Is a Werewolf ’, ’16. World of Apu, The (Apur Sansar)’, ’17. The Breakfast Club’, ’18. Hoop Dreams’, ’19. Eddie’]

Please rank these 20 movies by measuring the possibilities that I would like to watch next most, according to my watching history. Please think step by step.

Please show me your ranking results with order numbers. Split your output with line break. You MUST rank the given candidate movies. You can not generate movies that are not in the given candidate list.

  • Output:
  1. Manon of the Spring (Manon des sources)
  2. Citizen Kane
  3. Grand Hotel
  4. Hamlet
  5. The Breakfast Club
  6. Hoop Dreams
  7. Eddie
  8. Three Wishes
  9. The Prophecy
  10. Dangerous Minds
  11. World of Apu, The (Apur Sansar)
  12. Cliffhanger
  13. A Very Brady Sequel
  14. Screamers
  15. Howling II: Your Sister Is a Werewolf
  16. Nekromantik
  17. 42 Up
  18. Message to Love: The Isle of Wight Festival
  19. Air Bud
  20. The Believers
  • Result: 정답은 “World of Apu, The (Apur Sansar)”, Ranking이 10로 나옴(0부터 시작한다 했을 때)

B. Games을 사용한 예제

B.1 Sequential Prompting

  • Input:

I’ve purchased the following products in the past in order:
[’0. Sony PlayStation 3 Blu-ray Disc Remote’, ’1. PlayStation 3 160GB System with Ratchet & Clank Future: A Crack in Time and SingStar Dance Party Pack - Family Bundle’, ’2. PS3 320GB Uncharted 3 Bundle’, ’3. FIFA Soccer 10 - Playstation 3’]

Now there are 20 candidate products that I can consider to purchase next:
[’0. Wii 9 in 1 Sports Kit’, ’1. Donkey Kong’, ’2. Midnight Club’, ’3. Midnight Club’, ’4. SRS: Street Racing Syndicate - PlayStation 2’, ’5. Ultimate Action Triple Pack - PlayStation 3’, ’6. Thrustmaster TMX Force Feedback racing wheel for Xbox One and WINDOWS’, ’7. Pikmin 2 (Nintendo Selects) - Nintendo Wii’, ’8. Rock Candy Blueberry Boom’, ’9. Finding Nemo - Gamecube’, ’10. SteelSeries Siberia 200 Gaming Headset - Alchemy Gold (formerly Siberia v2)’, ’11. Konnet Xbox 360 / Slim Power Pyramid RCS series Charger, Charging and Storage Dock for FOUR Game Controllers - Black’, ’12. Megadream Xbox One Wireless Keyboard, Mini 2.4Ghz Qwerty Text Message Chatpad Keypad for Microsoft Xbox One and Xbox One Slim Controller - Not Compatible with Xbox One Elite and X Controller’, ’13. Theme Hospital - PlayStation’, ’14. Spongebob Hero Pants The Game 2015 - Xbox 360’, ’15. Megaman & Bass’, ’16. BW® 5 Pair/10 Pcs Replacement Silicone Analog Controller Joystick Thumb Stick Grips Cap Cover For PS3 / PS4 / Xbox 360 / Xbox One / Wii Game Controllers (green)’, ’17. Skylanders Giants Battlepack #1 - Chop Chop - Dragonfire Cannon - Shroomboom’, ’18. Rune Factory: Tides of Destiny - Playstation 3’, ’19. Donkey Kong Land III’]

Please rank these 20 products by measuring the possibilities that I would like to purchase next most, according to the given purchasing records. Please think step by step.

Please only output the order numbers after ranking. Split these order numbers with line break.

  • Output:
  1. 1
  2. 5
  3. 6
  4. 10
  5. 11
  6. 12
  7. 16
  8. 17
  9. 18
  10. 2
  11. 0
  12. 7
  13. 8
  14. 9
  15. 13
  16. 14
  17. 15
  18. 3
  19. 4
  20. 19
  • Result: 정답은 “Midnight Club”, Ranking이 9로 나옴(0부터 시작한다 했을 때)

B.2 Recency-focused Prompting

  • Input:

I’ve purchased the following products in the past in order:
[’0. PowerA DualShock 4 Charging Station for PlayStation 4’, ’1. Far Cry 4 - PlayStation 4’, ’2. WWE 2K17 - PlayStation 4’, ’3. Dragon Quest Builders - PlayStation 4’]

Now there are 20 candidate products that I can consider to purchase next:
[’0. Ready to Rumble Boxing: Round 2’, ’1. Insten USB Charger Charging Cable Replacement For Nintendo NEW 3DS XL / NEW 2DS XL / 3DS XL / 3DS / 2DS / DSi / DSi XL / DSi LL’, “2. Cabela’s African Adventures - Xbox 360”, ’3. Blood Bowl - Xbox 360’, ’4. Skullcandy SLYR Gaming Headset, White (SMSLFY-205 )’, ’5. HORI 3DS Protector and Pouch Set (Mario Kart 7 version)’, ’6. Grand Theft Auto V - PlayStation 4’, “7. Yoshi’s New Island Full Game Download Code - Nintendo 3DS eShop”, ’8. Gauntlet’, ’9. Solitaire & Mahjong - Nintendo Wii’, ’10. Happy Feet 2 - Playstation 3’, ’11. Little Italy - Hidden Object Games [Download]’, ’12. Jillian Michaels Fitness Adventure - Xbox 360’, ’13. Dream Day Wedding: Viva Las Vegas - PC’, ’14. NBA Inside Drive 2003’, ’15. The Sims 2 - Sony PSP’, ’16. Xenogears - PlayStation’, ’17. Combat’, ’18. Crash Bandicoot: The Wrath of Cortex - Gamecube’, ’19. Sonic Mega Collection’]

Please rank these 20 products by measuring the possibilities that I would like to purchase next most, according to the given purchasing records. Please think step by step.

Note that my most recently purchased product is Dragon Quest Builders - PlayStation 4. Please only output the order numbers after ranking. Split these order numbers with line break.

  • Output:
  1. 6
  2. 0
  3. 4
  4. 2
  5. 7
  6. 18
  7. 16
  8. 3
  9. 1
  10. 8
  11. 19
  12. 13
  13. 12
  14. 11
  15. 10
  16. 5
  17. 9
  18. 15
  19. 14
  20. 17
  • Result: 정답은 “Grand Theft Auto V - PlayStation 4”, Ranking이 0로 나옴(0부터 시작한다 했을 때)

B.3 In-context Learning

  • Input:

I’ve purchased the following products in the past in order:
[’0. Scooby-Doo Unmasked - PlayStation 2’, ’1. Scooby-Doo: Mystery Mayhem’, ’2. Thrillville: Off the Rails’, ’3. Pac Man World 2 - PlayStation 2’]

Then if I ask you to recommend a new product to me according to the given purchasing history, you should recommend Charlie and the Chocolate Factory - PlayStation 2 and now that I’ve just purchased Charlie and the Chocolate Factory - PlayStation 2, there are 20 candidate products that I can consider to purchase next:
[’0. Controller Gear Controller Stand v1.0 - Officially Licensed - Black - Xbox One’, ’1. NHL 08 - PlayStation 2’, ’2. Hyperdimension Neptunia Victory - Playstation 3’, ’3. DOOM [Online Game Code]’, ’4. Sega Dreamcast Controller’, ’5. Mayflash F300 Arcade Fight Stick Joystick for PS4 PS3 XBOX ONE XBOX 360 PC Switch NeoGeo mini’, ’6. Fallout New Vegas Ultimate Edition’, ’7. Star Wars Galactic Battlegrounds: Clone
Campaigns (Expansion Pack)’, ’8. Hatsune Miku: Project DIVA X - PlayStation 4’, ’9. GameMaster Sony PS Vita Anti-Bacterial Screen Protector’, ’10. NBA 2K9’, ’11. Dragon Ball Xenoverse - Xbox One’, ’12. Enhanced Thumb Grips Quad Pack BRAND NEW for Playstation Vita’, ’13. Dead Rising 3: Apocalypse Edition’, ’14. Hitman 2 Silent Assassin - Xbox’, ’15. Dracula Resurrection - PC’, ’16. Jekyll and Hyde - PC’, ’17. Thief - Playstation 3’, ’18. MyLifeUNIT Hand Grip Handle Stand for Nintendo New 3DS XL LL’, ’19. Sony PSP-1001K PlayStation Portable (PSP) System (Black)’]

Please rank these 20 products by measuring the possibilities that I would like to purchase next most, according to the given purchasing records. Please think step by step.

Please only output the order numbers after ranking. Split these order numbers with line break.

  • Output:
  1. 1
  2. 6
  3. 13
  4. 7
  5. 11
  6. 3
  7. 14
  8. 17
  9. 0
  10. 2
  11. 8
  12. 10
  13. 18
  14. 5
  15. 9
  16. 15
  17. 16
  18. 4
  19. 12
  20. 19
  • Result: 정답은 “NHL 08 - PlayStation 2”, Ranking이 0로 나옴(0부터 시작한다 했을 때)
728x90
728x90

NRS(Newspaper Recommender Systems)에서의 challenge
-timeliness, 뉴스의 short duration, recency, popularity, trends and 실시간 다량 새 뉴스 유입
-long-term/short-term user preference의 급격하거나 점진적인 변화
-user의 news소비에는 일련의 sequence가 있다.
-false news and propaganda 문제가 최근 uprising challenge

NRS에서의 Recsys평가
-accuracy기반의 평가는 filter bubble문제를 야기함
-exposure to different viewpoint, perceived system effectiveness 등을 위해 beyond-accuracy metric 필요

NRS에서의 기본 challenge에서 더 나아간 new challenges
-content quality
-effects of recommendations on user behavior.

 

NEWS domain의 특징:
Average consumption time(한 뉴스당 필요한 reading 시간, 대개 article길이마다 다르겠지만 짧은편)
Life-span of news items(짧다, 몇분, 몇시간, 며칠 수준, release와 user review사이 시간차가 짧음)
Catelog size of news items(매우 크다, catalog 변화 속도 자체도 빠름, 시간당 수천개 기사가 쏟아지니)

 

참고자료:

https://arxiv.org/abs/2009.04964

 

A survey on news recommender system -- Dealing with timeliness, dynamic user interest and content quality, and effects of recomm

Nowadays, more and more news readers tend to read news online where they have access to millions of news articles from multiple sources. In order to help users to find the right and relevant content, news recommender systems (NRS) are developed to relieve

arxiv.org

 

 

728x90
728x90

NAVER의 추천 시스템과 연관된 내용들을 특별한 분류없이 마구잡이로 정리해보자.

Termiology를 정리할 수도 있겠고

부족한 이론을 채울 수도 있겠고

단순 정보를 정리할 수도 있겠다.

해당 기업의 블로그와 개발자 컨퍼런스 블로그 등을 참고하여 작성

 

POI:Point Of Interest, a specific point location that someone may find useful or interesting.

 

CONOMI:네이버 플레이스의 POI Management 기술과 AI를 활용하여 사용자가 좋은 리뷰를 편리하게 작성할 수 있도록 하고, 이를 기반으로 다양한 식당과 음식을 찾도록 도와주는 프로그램

 

UGC:User-generated content, 사용자가 제작한 콘텐츠

 

RIYO:Rank It YOurself, 사용자가 선택하는 옵션 단계에 따라 가중치를 가감하여 급상승 검색어를 재정렬하는 기능

 

AiRS:AI Recommender System, 공기(AIR)와 같이 항상 이용자 곁에서 유용한 콘텐츠를 추천한다는 뜻으로 붙임, 

블로그에는 CF(Collaborative Filtering, 활동내역->클러스터링->클러스터링 내 유저들의 활동내역으로 추천)과 RNN을 사용한다고 하나, 2017년 2월 아티클이므로 기술 수준이 달라졌을 듯

 

SRE:Site Reliability Engineering, 매우 큰 규모의 데이터 처리, 높은 트래픽 환경에서 안정적으로 처리하기 위한 엔지니어링, 운영 자동화 등 서비스에 필연적으로 따르는 운영을 합리적으로 다루는 일

(Metric 정의 & Monitoring, Capacity Planning(서비스에 필요한 용량 계산, 용량 확보 방안, 소프트웨어 최적화), Change Management(배포/업데이트 관리), Emergency Response(장애 처리) 등으로 업무가 분류됨)

 

on-call:비상 대기 인력으로 근무 시에 사용(그냥 근무할 때는 on duty라고 사용)

 

pain-point:불편사항, 고충

 

CIC:Company-in-company, 사내독립기업이란 의미로 창업가형 리더를 길러내고 각 사업단위를 독자적으로 잘 키워 독립할 수 있도록 하는게 목표로, 일정 비즈니스 모델로 정착이 되면 분사

(약어 CIC를 사용하는 CLOVA Interface Connect는 협력사가 클로바 기술을 쉽게 접목시키게 만든 인터페이스)

 

cross-domain recommendation:타 도메인의 활동이력을 활용하여 해당 도메인의 상품을 추천하는, 추천 시스템 내의 한 분야

 

장소추천에 있어서

일본에서는 유저간의 follower-following관계, 메뉴 단위의 리뷰와 평점 데이터, 이미지 중심의 데이터 활용

한국에서는 지도 데이터, 블로그 데이터와 이를 클릭하는 유저들의 데이터를 활용

이는 두 국가의 문화적 차이보다는 서비스에서 오는 데이터의 차이 때문

하지만, 두 국가간의 활용 데이터 차이는 좁혀져 가고 있으며

두 국가모두 모든 데이터를 활용할 수 있을 거라 예상

 

 

slideshare내용 마저 정리하기

d2에서 클로바 모델 2.0정리하기 등

 

 

 

참고자료:

www.slideshare.net/deview/airs-80886207

 

인공지능추천시스템 airs개발기_모델링과

인공지능추천시스템 airs개발기_모델링과시스템

www.slideshare.net

blog.naver.com/naver_diary

 

네이버 다이어리 : 네이버 블로그

사람과 사람, 오늘과 내일, Network와 Network가 연결되는- 더 큰 세상을 만들어 가는 NAVER의 공식블로그입니다

blog.naver.com

d2.naver.com/home

 

728x90
728x90

RMSE(Root Mean Squared Error)로 Rating prediction 성능을 평가하는 것은

실제로 추천 시스템의 역량을 평가하는 것인지 다시 한번 생각해볼 필요가 있다.

 

우리는 Top-N recommendation을 통해 좀 더 user-focused metric을 가질 필요가 있다.

내가 사용자로서 추천 시스템이 내가 어떤 영화를 rating을 얼마나 줄 지 알아맞춰주기 보다는

내가 필요로 하는 상품이 상단에 나와주면 되는 것이다.

 

따라서 다양한 평가 지표 중에 RMSE에 너무 집중하지 말자.

특히, paper에서는 RMSE가지고 성능이 좋아졌니 마니 하는데, 이것에 너무 집중하지 말자는 것이다.

 

실제로 DB에 추천 결과를 적재할 때, 모든 유저에 모든 상품의 predicted rating을 적재하려고 하지 말자.

굉장히 비효율적일 뿐더러, 유저는 그러한 rating맞추기엔 관심없을 테니 말이다.

 

728x90
728x90

Candidate Generation -> Scoring(Hybrid) -> Ranking -> Filtering

 

Candidate Generation,

여기에서는 개별 모델들을 학습한다.

 

Scoring,

여기에서는 개별 모델을 취합하는 Hybrid Recommendation을 설계한다.

 

Ranking,

단순히 item을 score에 따라 sorting하기 보다는, ranking을 다시 매기는 작업을 한다.

예를 들면, 자주 등장, 인기 상품, 평점 높은 상품 등을 상단에 배치하는 로직을 적용한다.

 

Filtering,

기 구매한 상품을 제거, 유해한 상품을 제거, score가 낮은 상품은 제거 등의 Filtering을 거친다.

Filtering을 거치고 나서야 Top-"N" recommendation을 얻는다.

728x90
728x90

장점:

-domain knowledge가 필요 없음, embedding 알아서 학습하므로

-serendipity, 즉 해당 유저의 기존 interest 밖의 상품도 추천이 가능

-No need any contextual features, just the feedback matrix, 따라서 여러 추천 엔진 중 바로 적용하기 좋다.

-folding 문제를 해결(objective function에서 unobserved data에 대한 weight를 조절하여) 가능

-user/item embedding을 미리 계산해두고 저장하여 사용함으로써 Serving이 편리

-아주 많은 items가 존재하여도, user/item matrix가 대개 sparse하므로 scalability가 있음

 

단점:

-cold-start problem, 즉 training data에 한번도 없었던 new item은 추천되지 않는다.

  -해결방안 1, 만약 new item이 training data엔 없었지만 신규 거래내역/평점내역 등이 많이 존재한다면 전체를 재학습시켜도 되지만, 해당 new item만 embedding vector를 쉽게 학습시킬 수 있다.(projection in WALS) 즉, User embedding 그대로 유지시키고 new item vector만 학습

  -해결방안 2, new item과 유사한 items(유튜브라면 같은 업로더가 올린 타 동영상들, commerce라면 같은 분류나 같은 브랜드 내의 상품들 등)의 embedding vectors를 평균을 취하는 방식으로 new item embedding vector를 approximate

-User/Item의 feature를 함께 고려하기가 어렵다.

  -해결방안, 기존 user-item matrix에 row로는 item feature을, column으로는 user feature를 나타내는 multi-hot encoding block matrix를 추가하여 학습하면, user/item/each feature embedding을 모두 얻을 수가 있다.

 

 

728x90
728x90

SGD(Stochastic gradient descent)

WALS(Weighted alternating least squares)

 

WALS란 어떤 방식이냐,

Fixing U and solving for V

Fixing V and solving for U

각 과정을 교차(alternating)하면서 objective function내에 square term을 최소화

각 과정은 linear system이므로 exactly하게 solved됨

objective function을 보면, Fixing U에선 V에 대한 convex, Fixing V에선 U에 대한 convex function이다. 다만, U와 V에 동시에 살피면 convex가 아니다. 즉 not jointly convex

 

SGD vs WALS

 

SGD의 장단점:

-(장점)flexible, loss가 꼭 error square형태가 아니어도 가능

-(장점)병렬계산처리 가능

-(단점)수렴 속도가 WLAS보단 느림

-(단점)unobserved data 다루기가 힘듦, negative sampling이나 gravity 사용이 필요

 

WLAS의 장점:

-(장점)병렬계산처리 가능

-(장점)SGD보다 빠르게 수렴

-(장점)unobserved data 다루기가 쉬움

-(단점)error square형태의 loss에 대해서만 가능

 

 

 

728x90
728x90

A(User-item matrix)에서 (entry는 feedback)

 

Observed only MF는 오직 observed data에 대해서만 objective function에 포함

Weighted MF는 unobserved data 또한 objective function에 포함 with some weight

SVD는 Observed+Unobserved, 즉 모두 포함(따라서 Frobenius norm으로 계산)

 

Observed only MF는 loss가 낮아보이겠으나, 대다수가 0이 아닌 값으로 학습하여(특히 A가 binary 1/0라면 모두 1로 학습해버리는 경향을 띔) generalization 능력이 떨어짐

SVD는 User-item matrix가 굉장히 sparse하여 대다수가 0으로 학습하여 generalization 능력이 떨어짐

Weighted MF는 unoserved data에 적당한 weight를 주어 0과 1에 치우치지 않게 학습(observed data에서도 training set에 많이 등장한 (u,i)는 가중치를 더 줄 수 있음)

 

728x90
728x90

장점:

-타 유저의 데이터를 필요로 하지않아 easy to scale to a large number of users

-해당 유저 고유의 interest를 capture하기 때문에, 덕후들만이 좋아할(대다수 유저들은 좋아하지 않는) 상품이 추천 가능

 

단점:

-item embedding에 있어서 domain knowledge의 수준에 따라 모델 성능 좌우

-유저의 interest 내에서만 추천이 돌기 때문에, interest를 확장할 수는 없다.

728x90
728x90

cosine VS dot product

-dot product가 cosine에 비해 sensitive to the norm of the embedding.

-training set에서 자주 등장한 상품은 norm이 큰 경향이 있음

-따라서 "popularity"를 고려한다면 dot product를 쓰자.

-하지만, popular items가 recommendation을 dominate한다면,

s(i,j) = ||i||^α ||j||^α cos(i,j)

형태로 norm에 대한 일련의 조정을 하여 사용하자.

 

그리고 주의할 점,

training set에 아주 적게 등장한 상품은 embedding이 update가 적게 될 것이다.

근데, 만약 initial embedding의 norm이 아주 큰 상황에서

dot product로 similarity를 measure하여 사용한다면

아주 rare하게 등장한 상품이 recommendation을 dominate할 수도 있음

따라서, initializer를 적절하게 택하는게 필요

 

 

728x90

+ Recent posts