https://arxiv.org/abs/2306.17256
연구 문제와 목적
이 논문은 시스템 콜드 스타트 추천 문제를 해결하는 데 중점을 둡니다. 이는 추천 시스템이 사용자-아이템 상호작용에 대한 사전 정보가 전혀 없는 상황에서 개인화된 추천을 제공해야 하는 문제를 말합니다. 기존 연구는 사용자나 아이템 콜드 스타트 문제를 다루지만, 시스템 콜드 스타트 문제에 대한 해결책은 부족한 상황입니다.
연구 방법
연구팀은 PromptRec라는 접근 방식을 제안했습니다. 이 접근 방식은 다음과 같은 방법론을 포함합니다:
인컨텍스트 학습: 사용자와 아이템의 프로필 정보를 자연어로 변환하고, 이를 통해 추천 과제를 감정 분석 과제로 전환합니다.
데이터 중심 파이프라인: 작은 언어 모델을 향상시키기 위해 두 가지 주요 단계를 수행합니다.
모델 사전 학습: 관련된 코퍼스를 구성하여 모델을 사전 학습.
프롬프트 템플릿 사전 학습: 다른 추천 도메인의 상호작용 데이터를 사용하여 프롬프트 템플릿을 사전 학습.
실험 및 결과
실험 결과, 개선된 작은 언어 모델이 시스템 콜드 스타트 추천에서 큰 언어 모델과 유사한 성능을 발휘하면서도 추론 시간이 약 17%에 불과하다는 것을 확인했습니다. 특히, BERT-mini 모델은 BERT-large 모델과 유사한 성능을 달성했습니다.
한계점
큰 언어 모델 의존성: 인컨텍스트 학습은 보통 수백만에서 수십억 개의 매개변수를 가진 큰 언어 모델의 능력에 의존하기 때문에 작은 언어 모델의 경우 성능이 제한될 수 있습니다.
데이터 의존성: 모델의 성능은 사용 가능한 프로필 데이터와 그 질에 크게 의존합니다.
결론
이 연구는 작은 언어 모델이 시스템 콜드 스타트 추천 문제를 해결할 수 있음을 보여주며, 데이터 중심의 접근 방식이 이를 강화할 수 있음을 입증했습니다. 이 논문은 시스템 콜드 스타트 문제에 대한 최초의 벤치마크를 제시하며, 향후 연구에 대한 중요한 인사이트를 제공합니다.
1. 문제 정의
시스템 콜드 스타트 추천 문제는 사용자가 아이템과의 상호작용 기록이 전혀 없는 상황에서 사용자에게 맞춤형 추천을 제공해야 하는 문제입니다. 이는 특히 새로운 서비스나 플랫폼에서 발생할 수 있는 실질적인 문제로, 기존의 사용자나 아이템의 상호작용 데이터가 없기 때문에 전통적인 추천 시스템이 제대로 작동하지 않는 상황을 말합니다.
2. 해결하고자 하는 문제
논문은 시스템 콜드 스타트 문제를 해결하기 위해, PromptRec이라는 접근 방식을 제안합니다. 이 접근법은 대형 언어 모델(LLM)의 인컨텍스트 학습(in-context learning) 능력을 활용하여, 추천 작업을 사용자와 아이템 프로필이 포함된 자연어 텍스트에 대한 감성 분석 문제로 변환합니다. 그러나 대형 언어 모델은 실시간 추천에 있어 큰 지연 시간이 발생할 수 있다는 문제가 있어, 작은 언어 모델을 사용하여 이를 해결하고자 했습니다.
3. 제안된 방법론
논문에서는 작은 언어 모델이 시스템 콜드 스타트 문제에서 유효한 추천을 할 수 있도록 하기 위해, 데이터 중심 파이프라인을 제안합니다. 이 파이프라인은 크게 두 가지 주요 단계로 구성됩니다:
- 모델 사전 학습: 추천 시나리오와 관련된 정제된 코퍼스를 구축하여 모델을 사전 학습합니다.
- 프롬프트 템플릿 사전 학습: 다른 도메인에서 상호작용 데이터를 사용하여 프롬프트 템플릿을 사전 학습합니다.
이 접근법은 언어 모델이 추천 작업에서 정확한 예측을 할 수 있도록 데이터를 준비하고, 프롬프트 템플릿을 최적화하는 데 중점을 둡니다.
4. 사용된 방법론 및 이론적 배경
논문에서는 언어 모델이 감성 분석을 통해 추천을 수행하는 과정을 숨은 마르코프 모델(HMM)로 설명합니다. 이 과정에서, 사용자의 관심사와 아이템 속성 간의 관계가 자연어 텍스트에서 감지되며, 이를 바탕으로 추천이 이루어집니다. 작은 언어 모델이 인컨텍스트 학습을 통해 감성 분석을 수행하는 데 어려움을 겪는 이유는 모델의 파라미터가 부족해 정확한 확률을 추정할 수 없기 때문이라고 분석했습니다.
5. 실험 결과
제안된 방법을 평가하기 위해, 콜드 스타트 추천 벤치마크를 도입했습니다. 실험 결과, 작은 언어 모델을 사용하여도 대형 모델과 비교하여 유사한 성능을 달성할 수 있었으며, 이때 필요한 추론 시간은 대형 모델의 17%에 불과했습니다. 특히, BERT-mini 모델은 11.3M 파라미터로도 대형 모델과 유사한 성능을 보여주었습니다.
6. 한계점
논문은 작은 언어 모델이 대형 모델보다 훨씬 빠른 속도로 유사한 성능을 낼 수 있음을 보였지만, 이 방법은 여전히 모델의 성능이 특정 도메인에 한정될 수 있다는 한계가 있습니다. 또한, 사전 학습에 사용된 데이터의 품질과 다양성에 따라 추천의 정확도가 크게 달라질 수 있습니다.
7. 결론 및 향후 연구
이 논문은 시스템 콜드 스타트 추천 문제를 처음으로 공식화하고, 작은 언어 모델이 이 문제를 해결할 수 있음을 실증적으로 보여주었습니다. 향후 연구에서는 더 다양한 도메인에 대한 실험과, 실제 비즈니스 환경에 적용할 수 있는 방법론 개발이 필요하다고 제안하고 있습니다.
추천 시스템은 방대한 온라인 정보를 필터링하여 사용자들의 관심사에 맞는 아이템을 발견하도록 도와줍니다. 전통적인 추천 시스템인 협업 필터링이나 콘텐츠 기반 방법은 사용자의 과거 클릭, 구매, 평점 등 사용자-아이템 상호작용 기록을 바탕으로 사용자 및 아이템의 표현을 학습하고, 사용자에게 맞는 아이템을 찾아줍니다. 그러나 이러한 방식은 사용자-아이템 상호작용 데이터를 얻을 수 없는 상황에서는 실패하게 되며, 이를 시스템 콜드 스타트 추천 문제라고 합니다. 이러한 문제는 주로 스타트업 기업에서 발생합니다. 이전 연구에서 콜드 스타트 추천 시나리오는 다뤄졌지만, 여전히 학습이나 추론 과정에서 과거의 사용자-아이템 상호작용 데이터를 사용할 수 있는 상황을 가정하고 있어, 우리의 설정과는 다릅니다. 시스템 콜드 스타트 추천 문제를 해결하기 위한 간단한 전략으로는 인기 있는 아이템이나 계절에 맞는 아이템을 추천하는 등의 규칙을 수동으로 설계하는 방법이 있지만, 이러한 추천은 개인화된 결과를 제공하지 못해 사용자 경험을 해칠 수 있습니다.
시스템 콜드 스타트 추천 문제를 해결할 수 있는 한 가지 방향은 대형 언어 모델(LLM)의 인컨텍스트 학습을 활용하는 것입니다. 대형 언어 모델은 특정 작업(여기서는 추천 작업)에 대해 별도의 데이터셋 학습 없이도 쉽게 적응할 수 있습니다. 직관적으로, 사용자 관심사와 아이템 속성 간의 관계는 공공 코퍼스의 자연어로 암시적으로 표현되어 있을 수 있습니다. 따라서 LLM이 이를 포착하여 콜드 스타트 추천에 활용할 수 있습니다. 그러나 인컨텍스트 학습은 대형 언어 모델의 수백만에서 수십억 개의 파라미터로 인해 나타나는 능력으로, 이 방법을 온라인 추천에 적용하는 것은 느린 추론 속도와 높은 비용으로 인해 실용적이지 않습니다. 따라서 다음과 같은 질문이 자연스럽게 떠오릅니다: 작은 언어 모델도 시스템 콜드 스타트 추천을 위한 인컨텍스트 추천자가 될 수 있을까요?
이 질문에 답하기 위해, 우리는 언어 모델을 활용한 간단하지만 효과적인 인컨텍스트 학습 접근 방식인 PromptRec을 제안하여 시스템 콜드 스타트 추천 문제를 해결하고자 합니다. 구체적으로, PromptRec은 먼저 사용자와 아이템의 프로필 특징을 자연어 설명으로 매핑한 후, 추천 작업을 이진 감성 단어에 대한 언어 모델링 작업으로 재구성하는 템플릿을 적용합니다. 마지막으로 언어 모델을 활용하여 작업을 수행하고 추천을 제공합니다. 초기 실험 결과, 대형 언어 모델은 개인화된 콜드 스타트 추천을 성공적으로 수행했지만, 작은 언어 모델은 실패했으며, 이는 LLM의 인컨텍스트 학습 능력에서 관찰된 스케일링 법칙과 일치합니다.
이 이유를 이해하기 위해, 우리는 Hidden Markov Model (HMM) 가정 하에 PromptRec의 인컨텍스트 추천 메커니즘을 공식화하기 위한 이론적 프레임워크를 제안합니다. 이 가정 하에서, 언어 모델은 입력된 프롬프트(사용자-아이템 프로필 및 템플릿)를 기반으로 '개념'(감성 극성)을 먼저 추론한 후, 추론된 개념과 입력을 기반으로 추천을 제공합니다. 우리의 분석은 언어 모델이 사용자-아이템 컨텍스트와 서로 다른 사전 학습된 개념에 대한 사전 확률을 조건으로 감성 단어의 가능성을 추정하여 인컨텍스트 추천을 수행함을 보여줍니다. 작은 언어 모델은 파라미터가 제한적이기 때문에 이 두 가지 요소에 대한 정확한 추정을 제공하지 못합니다.
이 발견을 바탕으로, 우리는 데이터 중심 파이프라인을 통해 인컨텍스트 예측 확률의 추정을 개선하여 작은 언어 모델의 추천 성능을 향상시킵니다. 이 파이프라인은 모델 사전 학습과 프롬프트 템플릿 사전 학습이라는 두 가지 주요 단계로 구성됩니다. 구체적으로, (1) 추천 시나리오와 관련된 코퍼스에서 언어 모델을 사전 학습하고, (2) 다른 추천 도메인과의 상호작용을 통해 프롬프트 템플릿을 사전 학습함으로써, 작은 언어 모델의 콜드 스타트 추천 성능을 향상시킬 수 있습니다. 이때 학습 데이터는 목표 추천 도메인과 다른 분포에 속하기 때문에 시스템 콜드 스타트 설정을 위반하지 않습니다. 그러나 콜드 스타트 시나리오에서 사용자-아이템 상호작용이 부족하기 때문에 우리는 두 가지 도전에 직면하게 됩니다:
(1) 작은 모델을 추천 작업에 사전 학습시키기 위한 코퍼스를 어떻게 찾을 것인가?
(2) 프롬프트 템플릿을 다양한 도메인에 걸쳐 어떻게 일반화시킬 것인가?
첫 번째 도전에 대해서는, 콜드 스타트 시나리오에서 일반 문서와 합성된 사용자-아이템 상호작용 간의 상호 정보를 최대화하여 일반 코퍼스를 정제할 것을 제안합니다. 두 번째 도전에는 프롬프트 템플릿을 '작업' 프롬프트와 '도메인' 프롬프트로 분해하여, 전자는 다양한 추천 시나리오에서 전이 가능하도록 하는 것을 제안합니다. 우리는 이 두 가지 방법을 검증하고, 강화된 작은 언어 모델이 대형 모델과 유사한 성능을 단 17%의 추론 시간으로 달성할 수 있음을 보여줍니다. 특히, 11.3M 파라미터(≈BERT-large의 3%)를 가진 강화된 BERT-mini가 시스템 콜드 스타트 설정에서 BERT-large와 유사한 성능을 달성했습니다. 우리의 공헌을 다음과 같이 요약합니다:
• 우리는 시스템 콜드 스타트 추천 문제를 공식화하고, 우리 커뮤니티에 첫 번째 벤치마크를 도입했습니다.
• 우리는 PromptRec을 제안하여 시스템 콜드 스타트 추천 문제를 해결하고, 언어 모델을 이용한 인컨텍스트 추천을 공식화하기 위한 첫 번째 이론적 프레임워크를 제공했습니다.
•우리는 일반 코퍼스와 도메인 간 데이터셋을 활용하여 작은 언어 모델의 잠재력을 탐구했습니다.
2.1 표기법
이 연구에서 우리는 굵은 소문자 (예: c)를 벡터로, 굵은 대문자 (예: R)를 행렬로, 서체가 다른 대문자 (예: D)를 집합으로 나타냅니다. 구체적으로, 각 추천 데이터셋 D = (U, I, R)는 사용자 집합 U, 아이템 집합 I, 그리고 사용자-아이템 상호작용을 저장하는 행렬 R ∈ R |U |× | I |로 구성됩니다. 여기서 r𝑢,𝑖 ∈ R는 사용자 𝑢와 아이템 𝑖 사이의 상호작용을 나타냅니다. 각 사용자와 각 아이템은 각각 𝑑𝑈와 𝑑𝐼 프로필 특성을 가지며, 이는 각각 c𝑢 ∈ R 𝑑𝑈와 c𝑖 ∈ R 𝑑𝐼로 표시됩니다. 프로필 특성은 사용자 또는 아이템을 설명하는 속성들입니다 (예: 사용자의 나이, 성별, 직업; 아이템의 이름, 브랜드, 카테고리).
2.2 문제 정의
우리는 추천 시나리오를 설정하기 위해 클릭률 예측(CTR) 작업을 선택했습니다. 즉, 각 기록 𝑟𝑢,𝑖 ∈ {0, 1}은 이진 값으로, 𝑟𝑢,𝑖 = 1은 사용자가 아이템 𝑖를 클릭했음을 의미합니다. 추천 시스템 𝑓는 사용자-아이템 쌍 (c𝑢, c𝑖)를 입력으로 받아 사용자가 해당 아이템을 클릭할 확률 𝑟ˆ𝑢,𝑖 ∈ [0, 1]을 출력으로 예측합니다. 모델은 𝑟ˆ𝑢,𝑖 = 𝑓 (𝑟𝑢,𝑖 = 1|c𝑢, c𝑖)를 기반으로 합니다. CTR 예측의 목표는 예측된 확률 𝑟ˆ𝑢,𝑖와 실제 사용자-아이템 상호작용 𝑟𝑢,𝑖 간의 차이 L을 최소화하는 것입니다.
2.3 시스템 콜드 스타트 추천
시스템 콜드 스타트 추천 설정에서는 상호작용 기록을 얻을 수 없으며, 이는 새롭게 비즈니스를 시작한 스타트업에서 흔히 발생하는 상황입니다. 따라서 시스템 콜드 스타트 추천에서 목표 데이터셋을 Dtgt = (Utgt, Itgt, Rtgt)로 정의하며, 이때 상호작용 행렬 Rtgt = ∅는 비어 있습니다. 우리의 목표는 Utgt의 사용자들에게 Itgt의 아이템을 프로필 특성 {c𝑢}와 {c𝑖}을 사용하여 추천하는 것입니다. 우리는 학습이나 추론 과정에서 기록된 상호작용을 사용하는 것을 허용하지 않지만, 추천 시스템 개발자들은 사용자와 아이템 프로필을 구축하기 위해 사용할 수 있는 자원을 탐색할 수 있습니다.
3. 방법론
이제 제안된 접근 방식의 세부 사항을 소개합니다. 3.1절에서는 시스템 콜드 스타트 문제를 해결하기 위한 인컨텍스트 학습 방법인 PromptRec을 소개합니다. 3.2절에서는 인컨텍스트 추천과 언어 모델 간의 연결을 구축하기 위한 이론적 프레임워크를 제공합니다. 또한, 3.3절에서는 작은 언어 모델의 인컨텍스트 추천을 향상시키기 위해 데이터 중심의 파이프라인을 개발하며, 여기에는 학습 코퍼스 정제에 중점을 둡니다. 마지막으로, 3.4절에서는 추론 시 프롬프트 디자인에 대해 다룹니다.
3.1 PromptRec
전통적인 지도 학습 패러다임은 시스템 콜드 스타트 설정에서 실패하는데, 그 이유는 모델 𝑓를 조정할 학습 데이터가 없기 때문입니다. 대형 언어 모델(LLM)의 인컨텍스트 학습 능력은 이 문제를 극복할 수 있는 잠재적인 방법입니다. 이때 다운스트림 작업은 언어 모델 사전 학습 작업 중 하나로 포맷되며, 이를 "프롬프트 학습"이라고도 합니다. 최근의 프롬프트 기반 추천 시스템은 추천 프로세스를 언어 모델링 작업과 일치시키는 방식으로, LLM을 사용하여 사용자-아이템 컨텍스트 내에서 아이템 이름이 나타날 확률을 추정합니다. 예를 들어, "사용자가 등산화를 클릭했다면 트레킹 폴도 클릭할 것"이라는 사용자 상호작용 문맥이 주어지면, 이 문맥 내에서 "트레킹 폴"이 나타날 확률을 해당 아이템에 대한 사용자 선호도로 간주합니다.
그러나 단순히 아이템 이름을 예측하는 것은 특히 제로샷 상황에서 추천에 효과적이지 않습니다. 이는 아이템 이름의 확률이 이름의 모든 단어에 영향을 받기 때문에, 일반적인 단어로 구성된 이름을 가진 아이템이 문맥에 상관없이 더 높은 확률로 나타날 가능성이 있기 때문입니다. 예를 들어, "리그 오브 레전드"는 "젤다의 전설"보다 자연스럽게 더 높은 확률을 가지는데, 이는 "리그"가 "젤다"보다 코퍼스에서 더 일반적이기 때문입니다.
이 문제를 해결하기 위해, 우리는 아이템 이름을 예측하는 대신, 선택된 이진 단어의 확률을 예측하여 추천을 제공합니다. 실제로, 이러한 단어들은 감성 단어(예: "좋다", "나쁘다")일 수 있습니다. 감성 단어와 관련된 확률을 예측하면, 희귀하거나 빈번하게 나타나는 단어의 영향을 줄여 사용자 선호도를 보다 정확하게 표현할 수 있습니다. 공식적으로, 우리는 사용자-아이템 쌍 (c𝑢, c𝑖)을 문맥 X𝑢,𝑖 = 𝑓prompt(𝑐𝑢, 𝑐𝑖)로 매핑하는 프롬프트 함수 𝑓prompt를 정의합니다. 언어 모델 𝑓LM을 제공받아, 사용자 𝑢가 아이템 𝑖에 대해 가지는 선호도 점수 𝑟ˆ𝑢,𝑖는 다음과 같이 추정됩니다:
여기서 Vpos와 Vneg ⊂ V는 미리 정의된 긍정 및 부정 감성 어휘 집합이고, V는 전체 어휘 집합입니다. 𝑝(𝑤|X𝑢,𝑖)는 언어 모델 𝑓LM이 인컨텍스트 학습을 통해 문맥 X𝑢,𝑖를 조건으로 하여 단어 𝑤를 생성할 확률입니다. 우리는 먼저 "The player is a age gender occupation. name is categorized as a category video game created by producer. Overall, the player feels [MASK] about the game."이라는 템플릿 T를 수동으로 설계합니다. 여기서 밑줄 친 각 단어는 슬롯이며, 이 슬롯들은 자연어로 변환된 사용자와 아이템 프로필 특징 𝑐𝑢와 𝑐𝑖로 채워집니다. 만약 Vpos = {"𝑔𝑜𝑜𝑑"}와 Vneg = {"𝑏𝑎𝑑"}로 설정하면, 예측된 선호도 𝑟ˆ𝑢,𝑖는 [MASK] 위치에서 "좋다"와 "나쁘다"를 관찰할 확률을 정규화하여 계산됩니다.
즉 r은 유저 u와 아이템 i에 대해서 모든 단어 쌍들에 대해 확률을 구한뒤에 긍정적인 단어가 나올 확률 + 부정적인 단어가 나올 확률 을 긍정적인 단어가 나올 확률로 나눠서 이 물품에 대해 긍정적인 생각을 가질까? 라는 확률을 구하는 거야?
네, 이해하신 부분이 대체로 맞습니다. 더 자세히 설명드리자면, 이 방법은 언어 모델을 이용해 사용자가 특정 아이템에 대해 긍정적인 감정을 가질 가능성을 추정하는 방식입니다.
- 기본 아이디어:
- 사용자가 특정 아이템에 대해 긍정적인 생각을 가질 가능성을 추정하기 위해, "긍정적인 단어"와 "부정적인 단어"가 나타날 확률을 계산합니다.
- 확률 계산:
- 먼저, 모든 단어 쌍들에 대해 모델이 그 단어를 생성할 확률을 계산합니다. 여기서 각각의 단어는 감성 단어(예: "좋다" 또는 "나쁘다")일 수 있습니다.
- 예를 들어, Vpos={"좋다"}와 Vneg={"나쁘다"}로 설정된 경우, 모델은 "좋다"라는 단어가 템플릿에서 [MASK] 위치에 나타날 확률 P(Vpos)와 "나쁘다"라는 단어가 나타날 확률 P(Vneg)를 계산합니다.
- 정규화:
- 모델은 특정 아이템에 대한 사용자의 선호도를 r ˆ𝑢,𝑖 라는 점수로 표현합니다. 이 점수는 다음과 같이 계산됩니다:
- 여기서, r ˆ𝑢,𝑖 는 긍정적인 감성 단어가 나타날 확률을 전체 감성 단어(긍정 + 부정)가 나타날 확률로 나누어 계산한 값입니다. 이 값은 0에서 1 사이의 값으로, 1에 가까울수록 사용자가 해당 아이템에 대해 긍정적인 생각을 가질 가능성이 높음을 의미합니다.
결론적으로, 이 접근법은 사용자가 아이템에 대해 긍정적인 감정을 가질지 예측하기 위해 긍정적인 단어가 나타날 확률을 전체 감성 단어의 확률로 정규화하여 계산하는 것입니다.
3.2 인컨텍스트 추천 프레임워크
각 감성 어휘 집합에 하나의 단어만 고려한다고 가정하면, 즉 |Vpos| = |Vneg| = 1인 경우, 사용자-아이템 쌍에 대한 콜드 스타트 추천의 목표는 다음과 같이 정의됩니다:
minL(𝑟𝑢,𝑖,𝑟ˆ𝑢,𝑖)→max𝑝(𝑦𝑢,𝑖∣X𝑢,𝑖)
여기서 𝑦𝑢,𝑖는 실제 선호도 𝑟𝑢,𝑖 = 1일 때 Vpos에 있는 유일한 긍정 단어를 나타내며, 그렇지 않은 경우 Vneg에 있는 유일한 부정 단어를 나타냅니다. 위의 방정식은 추천의 효과가 𝑝(𝑦𝑢,𝑖 |X𝑢,𝑖)의 정확한 추정에 크게 의존함을 나타냅니다. 이는 LLM을 활용하여 달성됩니다. 그러나 온라인 추천에서 LLM을 사용하는 단점은 상대적으로 느린 추론 속도입니다. 이 문제를 극복하는 한 가지 방법은 PromptRec에서 작은 언어 모델을 사용하는 것이지만, 이들은 제한된 인컨텍스트 학습 능력을 가진 것으로 알려져 있습니다.
언어 모델의 인컨텍스트 학습 능력을 향상시키는 방법을 분석하기 위해, 우리는 언어 모델이 숨은 마르코프 모델(HMM)로 단어를 생성한다고 가정하여 𝑝(𝑦𝑢,𝑖 |X𝑢,𝑖)를 확장합니다. HMM 가정 하에서, 언어 모델 𝑓LM은 두 단계의 과정을 통해 단어를 생성하는데, 먼저 개념 기반 Θ에서 개념 𝜃 ∈ Θ를 선택하고, 그 개념에 따라 단어 시퀀스를 샘플링합니다. 따라서 우리는 인컨텍스트 추천 목표 함수를 다음과 같이 확장할 수 있습니다:
효과적인 추천 모델은 위 방정식의 각 요소에 대한 정확한 추정이 필요합니다. 3.3절에서는 모델 사전 학습을 통해 더 나은 확률 추정을 위한 데이터 정제 전략을 소개합니다. 3.4절에서는 프롬프트 사전 학습을 통해 X𝑢,𝑖의 디자인을 개선하는 방법을 소개합니다.
HMM이 뭔지, 저 것을 통해 어떤 결과가 생겼는지, 수식의 변화는 왜 저렇게 진행되는지에 대해 설명해줘
이 부분에 대해 이해하기 위해, 몇 가지 중요한 개념을 먼저 설명하겠습니다.
1. 숨은 마르코프 모델 (HMM) 이란?
HMM은 Hidden Markov Model의 약자로, 일련의 관찰된 데이터(예: 단어, 감정 상태) 뒤에 숨어 있는 상태(예: 감정의 '긍정적' 또는 '부정적' 상태)가 있을 때 이 상태를 추정하는 데 사용하는 확률적 모델입니다. HMM에서는 현재 관찰된 데이터가 그 이전 상태에 의해 결정된다고 가정합니다. HMM은 일반적으로 다음과 같은 요소로 구성됩니다:
- 숨은 상태 (Hidden States): 예를 들어, 감정 상태가 될 수 있습니다. 각 상태는 직접 관찰되지 않으며, 대신 이 상태에서 생성된 관찰 데이터(예: 단어)를 통해 추론됩니다.
- 관찰 (Observations): 실제로 우리가 관찰할 수 있는 데이터입니다. 예를 들어, 텍스트의 단어들이 이에 해당합니다.
- 전이 확률 (Transition Probability): 하나의 상태에서 다음 상태로 전이될 확률입니다.
- 방출 확률 (Emission Probability): 특정 상태에서 특정 관찰이 발생할 확률입니다.
2. 수식의 변화와 의미
논문에서 언급된 수식들은 추천 시스템에서 HMM을 어떻게 활용할 수 있는지를 설명합니다.
기본적인 목표
우선, 기본 목표는 사용자가 특정 아이템에 대해 긍정적인 감정을 가질 확률을 계산하는 것입니다. 이 확률을 높이는 것이 추천 시스템의 주요 목표입니다. 수식으로 표현하면:
max𝑝(𝑦𝑢,𝑖∣X𝑢,𝑖)
여기서 𝑦𝑢,𝑖는 사용자의 감정(예: 긍정 또는 부정)을 나타내고, X𝑢,𝑖는 해당 감정과 관련된 사용자-아이템 프로필 정보를 나타냅니다.
HMM을 활용한 확장
이제 HMM의 가정 하에서, 이 확률을 계산하는 방법을 확장합니다. HMM에서는 각 단어(또는 감정)가 특정 "개념"에서 파생된다고 가정합니다. 이 개념 𝜃는 숨은 상태로, 사용자-아이템 프로필 X𝑢,𝑖로부터 유도됩니다.
그래서, 위의 확률을 더 자세히 보면:
이 수식은 여러 개념 𝜃을 고려하여 이들 각각이 X𝑢,𝑖와 𝑦𝑢,𝑖 사이의 관계를 어떻게 설명하는지 평가합니다.
좀 더 쉽게 설명하자면:
- 𝑝(𝑦𝑢,𝑖∣X𝑢,𝑖,𝜃): 특정 개념 𝜃에 따라 사용자가 특정 아이템에 대해 긍정적인 감정을 가질 확률.
- 𝑝(𝜃∣X𝑢,𝑖): 사용자-아이템 프로필 X𝑢,𝑖에 따라 개념 𝜃가 나타날 확률.
이 두 확률을 곱한 뒤, 𝜃의 모든 가능한 값에 대해 이들 확률의 총합을 계산합니다. 이 과정이 바로 수식에서의 적분입니다.
수식의 변화
마지막으로, 수식이:
로 변화하는데, 이는 감정 𝑦𝑢,𝑖와 사용자-아이템 프로필 X𝑢,𝑖이 주어졌을 때, 모든 가능한 개념 𝜃에 대한 확률을 고려하겠다는 의미입니다. 이때 중요한 점은 개념 𝜃가 사용자의 감정과 아이템의 특성 간의 관계를 설명할 수 있도록 해준다는 것입니다.
요약
- HMM은 사용자-아이템 관계에서 숨은 상태(개념)을 통해 사용자의 감정을 추론하는 모델입니다.
- 수식은 추천 시스템에서 사용자가 아이템에 대해 긍정적인 감정을 가질 확률을 HMM의 관점에서 확장하여 계산한 것입니다.
- 이 수식은 여러 개념을 고려하여 더 정확한 추천을 가능하게 합니다.
이러한 방법을 통해 추천 시스템은 단순히 데이터에 기반한 것이 아니라, 더 깊이 있는 개념(감정 상태 등)을 고려하여 추천을 수행할 수 있습니다.
여기서 수식이 어떻게 저렇게 변할 수 있는지 가 모르겠어
조건부 확률이 앞 뒤로 바뀔 수 있는 것인지도, 갑자기 theta가 추가되는 것도 나한테는 잘 이해가 되지 않아
이 수식 변화를 이해하기 위해서는 먼저 조건부 확률과 숨은 마르코프 모델(HMM)에서의 개념을 깊이 이해할 필요가 있습니다. 제가 천천히 설명해드리겠습니다.
1. 조건부 확률과 베이즈 정리
조건부 확률은 사건 A가 일어났다는 정보가 주어졌을 때, 사건 B가 일어날 확률을 나타냅니다. 수식으로는 다음과 같이 표현됩니다:
이는 B와 A가 동시에 발생할 확률(결합 확률)을 A가 발생할 확률로 나눈 값입니다. 반대로, 베이즈 정리를 사용하면 다음과 같이 변환할 수 있습니다:
이 정리는 어떤 사건이 주어졌을 때, 그 사건을 일으킨 원인을 추정하는 데 매우 유용합니다.
2. HMM에서의 개념 도입
HMM(숨은 마르코프 모델)은 관찰할 수 없는 "숨은 상태"가 있다고 가정합니다. 이 상태는 직접적으로 관찰되지 않지만, 관찰 가능한 데이터(예: 단어)와 간접적으로 연결되어 있습니다. 이 상태(여기서는 θ)가 추가된 이유는 이 상태가 데이터(사용자-아이템 프로필과 감정 단어)를 더 잘 설명할 수 있게 해주기 때문입니다.
3. 수식의 변환 과정
기본적으로 논문에서의 목표는 사용자가 특정 아이템에 대해 긍정적일 확률을 계산하는 것입니다. 처음에는 단순히:
maxP(yu,i∣Xu,i)
여기서 yu,i는 감정 단어(긍정 또는 부정)이고, Xu,i는 사용자-아이템 프로필 정보입니다.
그러나 이 상황에서 숨은 상태 θ\theta를 도입하여, HMM의 관점에서 문제를 재구성합니다. HMM에서는 모든 관찰이 숨은 상태에 의존한다고 가정하므로, 다음과 같이 표현할 수 있습니다:
이 식은 다음과 같은 의미를 가집니다:
- P(yu,i∣Xu,i,θ): 특정 숨은 상태 θ가 주어졌을 때, 사용자-아이템 프로필 Xu,i에 기반한 감정 단어 yu,i가 나타날 확률입니다.
- P(θ∣Xu,i): 사용자-아이템 프로필 Xu,i가 주어졌을 때, 숨은 상태 θ가 나타날 확률입니다.
여기서 적분은 모든 가능한 숨은 상태 θ에 대해 계산된 확률의 총합을 의미합니다. 이 과정은 θ가 관찰되지 않는 상태에서 발생할 수 있는 모든 경우를 고려하기 위한 것입니다.
4. 베이즈 정리와 조건부 확률의 역할
이 과정에서 조건부 확률 P(yu,i∣Xu,i)를 θ를 도입하여 확장한 것입니다. 여기서 베이즈 정리를 사용해:
따라서 최종적으로 수식이 다음과 같이 변형됩니다:
이 과정에서 P(θ∣Xu,i) 대신 P(Xu,i∣θ)P(θ)를 사용하게 된 것입니다. 이는 θ가 주어졌을 때의 Xu,i의 발생 가능성을 고려한 것이며, 이를 통해 yu,i의 발생 확률을 더욱 정교하게 계산할 수 있습니다.
5. 결론
결국, HMM을 사용하여 숨은 상태 θ\theta를 고려함으로써, 단순한 사용자-아이템 프로필에서 더 깊이 있는 정보를 추출하고, 이를 바탕으로 사용자가 특정 아이템에 대해 긍정적인 감정을 가질 가능성을 계산할 수 있게 됩니다. 이 수식 변환은 이러한 과정을 더 정확하게 수행하기 위한 것이며, 추천 시스템의 성능을 향상시키는 데 중요한 역할을 합니다.
이 설명이 수식의 변환 과정과 HMM의 역할을 이해하는 데 도움이 되었길 바랍니다. 추가로 궁금한 점이 있으면 언제든지 물어보세요!
이 개념 기반이 뭔지, 개념 theta가 뭔지 이해가 잘 안가네
p(theta)가 어떻게 나오는 것인지도 잘 모르겠어
이 질문을 해결하기 위해, 논문에서 언급된 "개념 θ"가 무엇인지, 그리고 p(θ)가 어떻게 등장하는지에 대해 상세히 설명드리겠습니다.
1. 개념 θ의 의미
논문에서 언급된 개념 θ는 **숨은 마르코프 모델(HMM)**에서의 "숨은 상태(hidden state)"에 해당합니다. 여기서 "개념(concept)"은 언어 모델이 텍스트를 이해하고 생성하는 과정에서, 특정 문맥에서 텍스트를 형성하는 데 사용되는 기저적(generative) 요소로 이해할 수 있습니다.
예시로 설명:
사용자-아이템 프로필 정보 Xu,i가 주어졌을 때, 이 정보는 여러 개의 숨은 상태(즉, 개념) θ 중 하나로부터 영향을 받습니다. 예를 들어, 어떤 사용자가 "축구"와 관련된 아이템들을 선호한다면, 이 사용자-아이템 프로필은 "스포츠"라는 개념 θ를 나타낼 수 있습니다. 여기서 "스포츠"라는 개념이 바로 θ입니다.
언어 모델은 이 개념 θ를 기반으로 단어를 생성하거나 예측하는데, 이때 이 개념이 Xu,i와 yu,i 간의 관계를 설명합니다.
2. p(θ)의 유도
p(θ)는 "개념 θ"가 나타날 확률을 나타내는 확률 분포입니다. 이 확률은 개념 θ가 얼마나 자주 나타나는지를 반영합니다.
HMM과의 관계:
HMM에서는 각 숨은 상태(개념) θ가 그 자체로 확률적으로 나타날 가능성을 가지고 있습니다. 이 확률은:
- p(θ): 개념 θ가 선택될 확률입니다.
- 예를 들어, "스포츠"라는 개념 θ가 나타날 확률이 0.3이라면, p(θ="스포츠")=0.3이 됩니다.
언어 모델이 문장을 생성하는 과정을 HMM의 관점에서 보면, 모델은 먼저 특정 개념 θ를 선택한 후, 그 개념을 바탕으로 단어 시퀀스 W를 생성합니다. 이때, p(θ)는 개념 θ가 선택될 확률입니다.
3. 결론
- 개념 θ: 언어 모델이 텍스트를 생성할 때 사용할 수 있는 숨은 상태로, 특정 문맥을 설명하는 기저 요소입니다.
- p(θ): 특정 개념 θ가 나타날 확률을 나타내며, 이는 언어 모델이 문맥에 따라 개념을 선택할 때 사용하는 확률 분포입니다.
그럼 내가 Xu,i라는 쿼리를 LM에 넣으면 theta라는 개념이 제일 먼저 나오는 거고, 그 개념의 확률을 p(theta)라고 하는거야?
1. Xu,i와 개념 θ의 관계
먼저, Xu,i라는 사용자-아이템 프로필 쿼리를 언어 모델(LM)에 입력하면, 언어 모델은 직접적으로 개념 θ를 출력하지 않습니다. 대신, Xu,i를 기반으로 여러 개념(숨은 상태) θ 중 하나가 선택되며, 이 개념에 기반하여 언어 모델이 단어(또는 감정 단어)를 생성합니다.
2. θ가 선택되는 과정
언어 모델이 Xu,i를 입력으로 받으면, 먼저 이 프로필이 어느 개념 θ에 해당하는지를 추정합니다. 이 추정은 확률적으로 이루어지며, 그 확률을 p(θ∣Xu,i)로 나타냅니다. 이 과정에서 개념 θ의 선택은 확률적입니다. 즉, θ가 직접적으로 언급되지는 않지만, 언어 모델 내부에서는 Xu,i를 입력받아 해당 개념 θ가 선택될 가능성을 평가하게 됩니다.
따라서, Xu,i 쿼리를 언어 모델에 넣으면, 먼저 θ라는 개념이 선택되며, 이 개념이 발생할 확률이 p(θ)가 됩니다. 그 이후에 이 개념 θ에 따라 구체적인 감정 단어가 예측됩니다. 이 과정은 HMM의 메커니즘을 활용한 것으로, 개념 θ는 숨은 상태로서 모델 내부에서 작동하지만, 모델의 출력에는 명시적으로 드러나지 않습니다.
여기서 theta를 어떻게 선택하는거야? LM이 직접적으로 출력하지 않으면 그것은 선택된게 아니지 않아? LM말고 다른 model이 theta만 선택하는거야?
1. 개념 θ의 선택 과정
논문에서 개념 θ는 언어 모델(LM) 내부에서 간접적으로 선택됩니다. 언어 모델이 Xu,i (사용자-아이템 프로필 쿼리)를 입력받으면, 이 입력에 따라 숨은 상태(hidden state)인 θ가 확률적으로 결정됩니다. 그러나, 이 선택은 모델 내부의 계산 과정에서 이루어지며, θ 자체가 외부로 명시적으로 출력되지는 않습니다.
2. 선택 과정에서의 HMM 역할
논문에서는 언어 모델이 HMM(숨은 마르코프 모델)을 기반으로 작동한다고 가정합니다. HMM에서는 각 단어(또는 문장)가 특정 숨은 상태 θ에 의해 생성된다고 가정합니다. 이때:
- p(θ): 특정 개념 θ가 나타날 확률입니다. 이는 Xu,i에 의해 영향을 받을 수도 있지만, 기본적으로는 사전 확률로 모델 내에서 설정됩니다.
- p(θ∣Xu,i): 입력된 Xu,i에 따라 θ가 선택될 조건부 확률입니다. 이 확률은 Xu,i가 주어졌을 때, 어느 개념 θ가 가장 적절한지를 평가하는 역할을 합니다.
3. 모델의 내부 메커니즘
언어 모델이 Xu,i를 입력으로 받으면, 모델 내부에서는 다음과 같은 단계가 이루어집니다:
- θ의 추정: Xu,i가 주어지면, 모델은 여러 개의 숨은 상태(개념) θ 중 하나를 선택하게 됩니다. 이때 선택된 θ는 p(θ∣Xu,i)에 따라 결정됩니다.
- 결과 출력: 선택된 θ에 기반하여, 모델은 최종적으로 단어(또는 감정 단어)를 생성합니다. 이 과정에서 개념 θ는 모델 내부에서 간접적으로 작용하며, 외부로 명시적으로 출력되지는 않습니다.
4. θ를 선택하는 모델
이 과정에서 θ를 명시적으로 선택하는 추가적인 모델이 있는 것은 아닙니다. 언어 모델 자체가 θ의 선택을 확률적으로 결정합니다.
- HMM을 기반으로 한 언어 모델: HMM의 구조를 언어 모델에 적용하여, 모델이 Xu,i를 입력받으면 내부적으로 적절한 개념 θ를 선택하는 방식으로 작동합니다.
- θ의 역할: θ는 언어 모델 내부에서 단어(또는 감정 단어)의 생성 과정에 영향을 미치는 숨은 상태로, 이 숨은 상태가 어떤 단어를 생성할지를 결정하는 데 중요한 역할을 합니다.
5. 결론
정리하자면, θ는 언어 모델(LM) 내부에서 간접적으로 선택되는 개념입니다. 언어 모델은 입력된 Xu,i에 따라 적절한 θ를 선택하고, 그 선택에 따라 단어를 생성합니다. 이 과정은 모델 내부에서 이루어지며, θ자체가 외부로 명시적으로 출력되지는 않습니다. θ의 선택은 언어 모델의 확률적 메커니즘을 통해 이루어집니다.
3.3 모델 사전 학습을 위한 코퍼스 정제
3.3.1 모델 사전 학습과 인컨텍스트 추천
우리는 언어 모델이 텍스트 코퍼스를 사전 학습한 후 추천 작업에 사용될 수 있는 이유를 이론적으로 분석하는 것으로 시작합니다. 구체적으로, 언어 모델은 각 단어 𝑤가 어휘 집합 V에 속하는 길이 𝑇의 시퀀스 W = [𝑤1, ..., 𝑤𝑇]을 관찰하여, 그 시퀀스의 우도(likelihood)를 최대화하도록 사전 학습됩니다. HMM 프레임워크에 따르면, 사전 학습 목표는 다음과 같이 작성됩니다:
이 목표는 모델 사전 학습 동안 언어 모델이 개념에 따라 단어 확률을 구분할 수 있도록 장려합니다. 만약 (X𝑢,𝑖, 𝑦𝑢,𝑖) ∈ Dtgt 쌍이 사전 학습 시퀀스에 존재한다면, 즉 W = [X𝑢,𝑖, 𝑦𝑢,𝑖]라면, 모델은 다음 목표 함수로 최적화될 기회를 갖게 됩니다:
여기서 𝑝(X𝑢,𝑖, 𝑦𝑢,𝑖 |𝜃) = 𝑝(X𝑢,𝑖, 𝑦𝑢,𝑖, 𝜃)/𝑝(𝜃), 그리고 𝑝(X𝑢,𝑖, 𝑦𝑢,𝑖, 𝜃) = 𝑝(𝑦𝑢,𝑖 |X𝑢,𝑖, 𝜃)𝑝(X𝑢,𝑖, 𝜃)이므로, 이 목표는 다음과 같이 변환될 수 있습니다:
이 방정식이 이전 방정식과 같은 형식을 가지고 있음을 관찰할 수 있으며, 이는 (X𝑢,𝑖, 𝑦𝑢,𝑖) 내용을 포함하는 텍스트를 사전 학습하는 것이 확률 추정을 더 정확하게 함으로써 추천 성능을 향상시킬 수 있음을 나타냅니다. 그러나 상호작용 컨텍스트를 포함하는 큰 일반 코퍼스에서 작은 언어 모델을 사전 학습하는 것은 그들이 제한된 파라미터를 사용해 관련 없는 문서를 인코딩하게 되어 이득이 없을 수 있습니다. 다음 절에서는 일반 코퍼스를 작은 크기로 정제하여 더 유용한 정보만을 포함하는 방법을 소개하고, 이를 통해 작은 언어 모델을 추천 작업에 사전 학습할 수 있도록 합니다.
3.3.2 사전 학습을 위한 정제된 코퍼스 추출
우리는 다양한 실제 세계의 소스에서 수집된 일반 코퍼스 C를 고려하며, 이 코퍼스는 콜드 스타트 시나리오와 관련된 추천 코퍼스(C* ⊂ C)를 포함하고 있습니다. 일반 코퍼스 C에서 𝑓LM을 사전 학습하는 것은 콜드 스타트 추천에 유익할 수 있습니다. 그러나 이 접근법은 많은 자원이 필요하며, 작은 언어 모델의 경우 제한된 파라미터로 인해 모든 정보를 저장하는 데 어려움이 있을 수 있습니다. 또한, 데이터 크기를 줄이기 위해 C* 하위 집합을 정확히 찾고 추출하는 것은 어렵습니다. 콜드 스타트 설정에서 C*는 다루기 어렵기 때문에, 우리는 C*의 정보를 유지하면서 𝐾개의 문서만 포함하는 정제된 코퍼스 Cˆ ⊂ C를 추구할 것을 제안합니다.
구체적으로, 우리는 자체적으로 구축한 코퍼스 Z를 기반으로 Cˆ를 구성합니다. 여기서 Z는 모든 가능한 사용자/아이템 프로필과 감성 극성의 조합의 완전한 집합, 즉 Z = { [𝑓prompt(𝑐𝑢, 𝑐𝑖), 𝑦]}입니다. Z, C, C* 간의 관계는 그림 2에 시각화되어 있습니다. 콜드 스타트 시나리오에서 Z는 모든 가능성을 포함하므로, C* ⊂ Z가 될 수 있습니다. 또한, 일반 코퍼스와 우리가 구축한 코퍼스 모두 C를 포함하므로, 우리는 C와 Z 간의 상호 정보를 최대화하는 하위 집합 Cˆ를 찾음으로써 C를 얻을 수 있습니다:
여기서 𝑀𝐼(·; ·)는 상호 정보를, 𝐻(·)와 𝐻(·|·)는 엔트로피와 조건부 엔트로피를 의미하며, 𝑝(·, ·)와 𝑝(·|·)는 두 텍스트의 결합 확률과 조건부 확률을 나타냅니다. 우리의 설계를 통해 우리는 콜드 스타트 시나리오와 가장 관련이 있는 문서 Cˆ를 추출할 수 있으며, 이는 관련 상호작용 기록 (X𝑢,𝑖, 𝑦𝑢,𝑖)을 암묵적으로 포함합니다. Cˆ에서 𝑓LM을 사전 학습하는 것은 PromptRec의 인컨텍스트 추천 성능을 향상시킬 것입니다.
실제로, 위의 두 확률은 사전 학습된 언어 모델 𝑔LM으로 추정될 수 있습니다. 구체적으로, 결합 확률 𝑝(𝑐, 𝑧)은 두 문서 임베딩의 유사도로 근사할 수 있습니다:
여기서 𝑒𝑐와 𝑒𝑧는 𝑔LM으로부터 생성된 문서 𝑐와 𝑧의 표현입니다. 또한, 조건부 확률 𝑝(𝑧|𝑐)는 다음과 같이 추정됩니다:
여기서 𝑔LM은 rˆ𝑢,𝑖을 예측하는 데 사용되는 𝑓LM과는 다른 언어 모델일 수 있습니다. 두 모델은 서로 다른 단계에서 적용되며, 𝑔LM은 데이터 전처리용으로, 𝑓LM은 예측용으로 사용됩니다. 이 섹션에서는 큰 코퍼스 C를 작은 코퍼스 Cˆ로 정제하여 콜드 스타트 시나리오에서 인컨텍스트 추천 성능을 향상시키는 𝑓LM 사전 학습이 가능함을 실험을 통해 검증했습니다.
' 3.3.2 Refined Corpus Extraction for Pre-training'가 이해가 잘 안되네 C^은 어떻게 만든건지, Z는 또 어디서 갑자기 나와서 C에 포함이 되지 않는건지, H의 엔트로피와 조건부 엔트로피가 뭔지, MI의 상호 정보가 뭔지에 대해 알려줘
1. Refined Corpus C^의 생성 과정
3.3.2절에서 논의된 "Refined Corpus Extraction for Pre-training"는 작은 언어 모델이 효율적으로 사전 학습할 수 있도록, 기존의 큰 데이터셋을 정제하여 더 작은 데이터셋 C^를 만드는 과정을 설명합니다. 이 과정은 모델이 학습할 때 가장 유용한 정보를 포함하면서도 데이터의 크기를 줄여 모델의 효율성을 높이기 위한 것입니다.
C^의 생성
- : 일반적인 데이터셋, 즉 다양한 출처에서 수집된 방대한 텍스트 코퍼스입니다.
- : 모든 가능한 사용자-아이템 프로필과 감성 극성의 조합으로 구성된 자체 생성된 코퍼스입니다. 이는 Z={[fprompt(cu,ci),y]}로 표현됩니다. 여기서 fprompt는 사용자와 아이템의 프로필을 기반으로 감성 단어를 예측하는 프롬프트 함수입니다. Z는 모든 가능한 조합을 포함하므로, 이론적으로 어떤 콜드 스타트 시나리오에서나 나타날 수 있는 모든 상황을 포함합니다.
- C^: 정제된 코퍼스로, C에서 가장 유용한 정보를 담고 있는 하위 집합입니다. 이는 Z와 가장 관련성이 높은 문서들로 구성됩니다.
생성 과정
C^는 상호 정보(Mutual Information, MI)를 최대화하는 방식으로 생성됩니다. 구체적으로, C^는 C 내에서 와 가장 큰 상호 정보를 가지는 K개의 문서로 구성됩니다. 상호 정보는 두 확률 변수 간의 의존성을 측정하며, C^를 만들 때 Z와 최대한 관련이 있는 문서를 선택하게 됩니다.
여기서 MI(C′;Z)는 상호 정보를 나타내며, C^는 Z와의 상호 정보를 최대화하는 K개의 문서로 이루어진 집합입니다.
2. Z의 출처
는 기존의 데이터셋에서 나온 것이 아니라, 논문에서 제안된 방법에 따라 자체 생성된 코퍼스입니다. 이는 모든 가능한 사용자-아이템 프로필과 감성 단어의 조합으로 구성되어 있습니다. 이 조합은 실제 데이터에서 나타날 수 있는 모든 가능성을 이론적으로 포함하며, 가 의 일부가 아닌 이유는, 는 생성된 데이터로서 와는 독립적으로 정의된 것입니다.
3. 엔트로피와 조건부 엔트로피
- 엔트로피(Entropy, ): 확률 분포의 불확실성을 측정하는 척도입니다. 높은 엔트로피는 불확실성이 큰 상태를 의미하며, 시스템의 복잡성을 나타냅니다. 엔트로피 H(Z)는 내 정보의 불확실성을 나타냅니다.
- 조건부 엔트로피(Conditional Entropy, H(Z∣C′)): C′가 주어졌을 때 Z의 불확실성을 나타냅니다. 즉, 특정 문서 C′가 주어진 상태에서 Z의 정보가 얼마나 불확실한지를 의미합니다. 이 값이 작을수록, C′가 Z에 대한 많은 정보를 제공한다는 것을 의미합니다.
4. 상호 정보 M란?
상호 정보(Mutual Information, MI)는 두 확률 변수 간의 상관성을 나타내는 척도입니다. 즉, 한 변수를 알았을 때 다른 변수에 대해 얻을 수 있는 정보량을 의미합니다.
MI(X;Y)=H(X)−H(X∣Y)
- MI(C′;Z): C′와 Z 사이의 상호 정보를 나타냅니다. C가 에 대해 제공하는 정보량을 의미합니다. 상호 정보가 클수록, 는 Z에 대한 중요한 정보를 많이 포함하고 있다는 것을 의미합니다.
결론
- C^: C에서 Z와 상호 정보가 가장 큰 문서들로 구성된 정제된 코퍼스입니다.
- : 모든 가능한 사용자-아이템 프로필과 감성 단어의 조합으로 구성된 자체 생성된 데이터셋입니다.
- 엔트로피와 조건부 엔트로피: 데이터의 불확실성을 측정하며, 상호 정보 계산에 사용됩니다.
- 상호 정보: 두 데이터 집합 간의 의존성을 나타내며, C^를 선택하는 기준으로 사용됩니다.
그럼 여기서 fprompt는 아까 만든 LM인거야?
네, 맞습니다. fprompt는 앞서 언급된 언어 모델(LM)을 기반으로 하는 함수입니다.
1. fprompt의 역할
- fprompt는 사용자 u와 아이템 i의 프로필 정보 cu와 ci를 받아서, 이를 감성 단어(예: "좋다", "나쁘다")와 연결짓는 역할을 합니다.
- 구체적으로, fprompt(cu,ci)는 사용자와 아이템의 프로필 정보를 입력받아, 그 정보에 따라 감성 단어를 예측하거나 생성하는 함수입니다. 이 함수는 언어 모델(LM)의 일부분으로 작동하며, 프롬프트 기반의 예측을 수행합니다.
2. fprompt와 언어 모델(LM)의 관계
- 언어 모델(LM): LM은 기본적으로 텍스트를 생성하거나 예측하는 역할을 하는 모델입니다. 여기서 언급된 fpromp는 이 언어 모델을 사용하여 특정 입력(사용자와 아이템 프로필)을 감성 단어로 매핑하는 함수로 볼 수 있습니다.
- 프롬프트 기반 학습: 논문에서는 fprompt를 이용해 프롬프트 기반 학습을 수행합니다. 이는 특정 입력을 기반으로 감성 단어를 예측하는 작업으로, 언어 모델이 학습한 내용을 바탕으로 감성 단어를 생성하거나 선택합니다.
3. 결론
- fprompt는 논문에서 언급된 언어 모델(LM)을 사용하여 사용자-아이템 프로필을 감성 단어로 매핑하는 함수입니다. 이 함수는 LM의 기능을 활용하여 입력된 정보에 따라 적절한 감성 단어를 예측합니다.
- 이 과정에서, fpromp는 LM의 일부로 동작하며, Z 집합을 구성하는 데 중요한 역할을 합니다.
e는 뭔지, c는 뭔지, gLM은 정확하게 뭔지, 위에서 학습용 데이터셋 C^는 C'에서 Z와 관련성이 높은 것을 고른다고 했는데 거기서 갑자기 여기로 왜 건너 뛴 것인지 알려줘
1. ec와 ez: 임베딩 벡터
- ec와 ez는 각각 문서 c와 문서 z의 임베딩 벡터입니다.
- 임베딩 벡터란, 문서나 단어를 고차원의 수치 벡터로 변환한 것입니다. 언어 모델은 텍스트 데이터를 이러한 벡터로 변환하여 처리합니다.
- ec와 ez는 사전 학습된 언어 모델(여기서는 gLM)을 사용해 생성된 문서 임베딩입니다. 예를 들어, 문서 와 는 각각의 텍스트를 표현한 벡터입니다.
2. gLM: 사전 학습된 언어 모델
- gLM은 특정 작업을 위해 사전 학습된 언어 모델입니다. 이 모델은 데이터 전처리를 위해 사용됩니다.
- 여기서 gLM은 fLM과 다를 수 있으며, fLM은 최종적으로 추천 작업을 수행하는 언어 모델입니다. gLM은 전처리 단계에서, fLM은 예측 단계에서 사용됩니다.
- 예를 들어, gLM은 문서 임베딩을 생성하고, 이 임베딩을 통해 문서 간의 유사성을 계산하는 데 사용됩니다.
3. p(c,z): 결합 확률
- p(c,z)는 문서 c와 문서 z가 함께 나타날 확률, 즉 결합 확률(joint probability)을 의미합니다.
- 이 결합 확률은 두 문서의 임베딩 벡터 ec와 ez간의 유사성을 통해 근사할 수 있습니다. 논문에서는 이 유사성을 시그모이드 함수로 계산하며, 다음과 같이 표현됩니다:
여기서 ec⋅ez⊤는 두 임베딩 벡터 간의 내적(inner product)을 의미합니다.
4. p(z∣c): 조건부 확률
- p(z∣c)는 문서 c가 주어졌을 때, 문서 z가 나타날 조건부 확률을 의미합니다.
- 이 조건부 확률은 gLM을 사용해 추정되며, 특정 문맥에서 다음 단어(또는 문서)가 나올 확률을 계산하는 방식으로 접근됩니다.
5. C′와 간의 관련성
논문에서는 와 관련성이 높은 문서 C^를 에서 선택하는 방법을 설명했습니다. 그 후, gLM을 사용해 C와 간의 상호 정보를 계산하고, 이를 통해 C^를 정제된 코퍼스로 만듭니다.
즉, 논문에서 언급한 흐름은 다음과 같습니다:
- 정제된 코퍼스 C^를 만들기 위해 에서 상호 정보가 높은 문서들을 선택합니다.
- 이 과정에서 gLMg을 사용해 문서 임베딩 ec와 ez를 생성하고, 이를 기반으로 결합 확률 p(c,z)와 조건부 확률 p(z∣c)을 계산합니다.
- 이 계산을 통해 상호 정보가 높은 문서를 선택하고, 이를 기반으로 C^를 구성합니다.
- 최종적으로 C^를 사용해 모델 fLM을 사전 학습하고, 이를 통해 콜드 스타트 추천 성능을 향상시킵니다.
결론
정리하자면:
- ec와 ez는 각각 문서 와 문서 z의 임베딩 벡터입니다.
- gLM은 문서 임베딩을 생성하고 결합 확률과 조건부 확률을 계산하기 위한 사전 학습된 언어 모델입니다.
- C^는 와의 상호 정보가 높은 문서들로 구성되며, 이 과정을 통해 정제된 코퍼스입니다.
- 논문에서 언급된 흐름은, C^를 만들기 위한 계산 과정에서 gLM을 활용하는 방식으로 진행됩니다.
3.4 전이 가능한 프롬프트 사전 학습
3.4.1 프롬프트 사전 학습과 인컨텍스트 추천
사용자-아이템 상호작용으로 프롬프트 템플릿을 학습하는 것이 인컨텍스트 추천에 왜 유리한지 이론적으로 분석하는 것으로 시작하겠습니다. 일반성을 잃지 않으면서, 학습 가능한 프롬프트 템플릿 를 사용자-아이템 컨텍스트 Xu,i의 접두사로 간주합니다. 그러면 식 (3)의 학습 목표는 다음과 같이 다시 표현됩니다:
실제로 우리는 프롬프트 템플릿 와 사용자-아이템 컨텍스트 Xu,i의 단어 임베딩을 함께 결합하여 언어 모델 fLM에 입력합니다. 이는 그림 3에 나와 있습니다. 전통적인 지도 학습 패러다임에서는 목표 데이터셋 Dtg에서 충분한 학습 샘플이 있을 때, 접두사 프롬프트 S∗는 기울기 하강법 알고리즘을 통해 다음과 같이 최적화될 수 있습니다:
그러나 콜드 스타트 설정에서는 목표 데이터셋에서 사용자-아이템 상호작용을 관찰할 수 없습니다.
이 문제를 극복하기 위해, 우리는 다른 추천 시나리오에서 상호작용 기록을 수집합니다. 이를 소스 데이터셋 Dsrc=
이라고 부르며, 각 소스 데이터셋
은 사용자 집합, 아이템 집합, 상호작용 행렬, 그리고 사용자와 아이템의 프로필 특징을 포함합니다. 각 소스 데이터셋의 상호작용 행렬 R(m)은 비어 있지 않지만, 콜드 스타트 설정에서는 목표 행렬 Rtgt=∅이 비어 있습니다. 또한, 목표 데이터셋의 사용자와 아이템은 소스 데이터셋에 존재하지 않습니다:
여기서
및
입니다. 공식적으로, 우리는 소스 데이터셋에서 사전 학습을 통해 목표 데이터셋의 최적 프롬프트 접두사 S∗를 추정하며, 이는 HMM 프레임워크 하에서 다음과 같이 표현됩니다:
여기서 (Xu,i,yu,i)는 소스 데이터셋 중 하나에서 나온 사용자-아이템 상호작용 기록을 나타냅니다. 확률의 연쇄 법칙을 사용하여, 위의 목표 함수를 다음과 같이 단순화할 수 있습니다:
따라서 프롬프트 사후 확률 p(S∣X'u,i,y'u,i,θ)는 최적의 접두사 S∗가 사용자-아이템 컨텍스트, 감성 단어, 그리고 사용자-아이템 컨텍스트에서 감성 단어로의 매핑에서 정보를 포착한다는 것을 나타냅니다. 이상적으로, 감성 단어 및 매핑 내의 정보는 데이터셋 간에 공유되지만, 사용자-아이템 컨텍스트의 정보는 그렇지 않습니다. 이는 서로 다른 추천 데이터셋이 보통 영화, 레스토랑, 장난감, 뉴스 등과 같은 서로 다른 도메인을 참조하기 때문입니다. 따라서 소스 데이터셋에서 직접 학습하는 것은 목표 도메인에 대한 최적의 접두사 프롬프트를 생성하지 못할 수 있습니다.
3.4.2 전이 가능한 사전 학습을 위한 프롬프트 분해
이 문제를 해결하기 위해, 학습된 접두사 프롬프트 S를 두 그룹으로 분해할 것을 제안합니다. 즉, 작업 프롬프트 ST와 도메인 프롬프트 SD(m)로 나누는데, 여기서 ST는 "추천"이라는 작업을 설명하고, SD(m)는 특정 추천 시나리오의 주제를 반영합니다. 식 (11)에서 논의한 대로, ST는 감성 단어에 대한 정보와 컨텍스트-감성 매핑을 포착해야 하며, SD(m)는 사용자-아이템 컨텍스트의 고유한 특성을 반영해야 합니다. 따라서 우리가 설계한 학습 목표는 다음과 같이 다시 표현됩니다:
여기서 SD(tgt)는 목표 도메인 Dtgt를 위한 도메인 프롬프트입니다. 콜드 스타트 추천에서는 목표 도메인에서 사용자-아이템 상호작용이 없기 때문에 이 목표를 달성하기 어렵습니다. 그러나 우리의 설계에 따르면, 도메인 프롬프트는 추천 시나리오 내의 주제를 인코딩해야 하며, 이는 아이템 프로필의 키워드로 표현될 수 있습니다. 반면, 작업 프롬프트는 다양한 시나리오에서 전이할 수 있는 능력을 가지므로, 여러 추천 시나리오에서 학습되어야 합니다. 이러한 통찰에 기반하여, 우리는 콜드 스타트 설정에서 SD(tgt)와 ST를 순차적으로 최적화하기 위한 두 단계의 탐욕 알고리즘을 제안합니다. 첫 번째 단계에서는 목표 도메인의 아이템 프로필에서 키워드를 추출하여 목표 도메인 프롬프트 SD(tgt)를 추정합니다:
여기서 gdom은 TF-IDF 점수와 같은 키워드 추출 방법으로 설계됩니다. 두 번째 단계에서는 소스 데이터셋의 상호작용을 활용하여 프롬프트 분해 방법을 사용한 식 (11)을 기반으로 작업 프롬프트를 최적화합니다:
여기서
입니다. ST∗를 얻은 후에는, 그림 3에 설명된 대로 이를 Dtgt에서의 콜드 스타트 추천에 적용할 수 있습니다. 구체적으로, ST∗와 SD(tgt)∗는 콜드 스타트 추천에서 각 사용자-아이템 컨텍스트 Xu,i의 접두사로 삽입됩니다.
4. 실험
우리는 세 가지 연구 질문(RQ)을 조사합니다: (1) PromptRec의 콜드 스타트 성능을 어떻게 평가할 수 있는가? (2) PromptRec이 콜드 스타트 시나리오에서 개인화된 추천을 제공할 수 있는가? 그렇다면, 언어 모델의 규모에 얼마나 민감한가? (3) 정제된 코퍼스 사전 학습(3.3절)과 전이 가능한 프롬프트 사전 학습(3.4절)이 PromptRec이 작은 언어 모델에 일반화되는 데 도움이 되는가? 이러한 질문에 답하기 위해, 우리는 콜드 스타트 추천 시스템을 평가하는 첫 번째 벤치마크를 도입합니다. 우리는 이 벤치마크가 콜드 스타트 설정에서 추천 시스템을 개발하는 미래 연구를 촉진하기를 바랍니다.
4.1 콜드 스타트 추천 벤치마크
우리의 콜드 스타트 추천 벤치마크는 세 가지 공개 데이터셋과 실제 시나리오에서 콜드 스타트 문제를 시뮬레이션하기 위해 설계된 데이터셋 전처리 전략으로 구성되어 있습니다. 이 벤치마크는 전통적인 지도 학습 방법, 규칙 기반 방법, LLM(대형 언어 모델) 기반 방법을 포함한 기준 방법을 고려하며, 모든 기준과 향후 테스트는 GAUC를 사용하여 평가됩니다.
4.1.1 데이터셋
콜드 스타트 추천의 제약은 학습 중에 사용자-아이템 상호작용이 부족하다는 점입니다. 이 설정에서는 추천 시스템이 개인화된 추천을 제공하기 위해 프로필 특징에 크게 의존합니다. 우리는 이러한 요구를 충족하는 세 가지 데이터셋을 최종적으로 수집했습니다: 차량 내 쿠폰 추천(Coupon) [55], 멕시코 레스토랑 추천(Restaurant) [50], 그리고 MovieLens-100K (ML-100K) [17]. Coupon 데이터셋은 운전자에게 정확한 매장 할인을 제공하는 추천 시스템의 성능을 평가하고, Restaurant 데이터셋은 사용자의 레스토랑 선호도를 예측하는 시스템의 능력을 측정하며, ML-100K 데이터셋은 모델이 사용자에게 영화를 추천하는 능력을 평가합니다. 표 1은 데이터셋의 통계를 요약한 것입니다.
4.1.2 데이터셋 분할
각 데이터셋은 학습, 검증, 테스트 세트로 분할되며, 학습 데이터셋은 250개의 샘플로 구성되고, 검증 데이터셋은 50개의 샘플로 구성되며, 나머지 데이터셋은 테스트 데이터셋을 형성합니다. 여기서 학습 데이터셋은 미래 연구에서 추천을 평가하기 위해 남겨두며, 모델 튜닝을 위한 소수의 상호작용 기록을 사용할 수 있습니다. 검증 데이터셋은 포함되지만 학습 데이터셋보다 적은 샘플을 가지고 있습니다. 모든 모델은 여러 랜덤 시드에 걸쳐 테스트 데이터셋에서의 평균 성능으로 비교됩니다.
4.1.3 데이터 전처리
이 논문에서 우리는 추천을 클릭률 예측(CTR) 문제로 처리합니다. 이러한 데이터셋의 초기 레이블은 사용자 선호도의 강도를 나타내기 때문에, 우리는 임계값을 도입하여 이를 이진 레이블 {0, 1}로 변환합니다 [35, 67]. 이를 통해 CTR 예측의 벤치마크로 사용할 수 있습니다. 여기서 ML-100K, Coupon, Restaurant 데이터셋의 임계값은 각각 4.0, 1.0, 2.0입니다.
4.1.4 평가 지표
CTR 예측은 ROC-AUC 점수로 평가할 수 있는 이진 분류 작업입니다 [15]. 그러나 AUC는 모든 사용자-아이템 상호작용을 계산에 포함시키기 때문에 개인화된 추천에서 한계가 있습니다. 이는 다른 사용자들 간의 예상치 못한 간섭을 초래할 수 있습니다 [68]. Group-AUC(GAUC) [18, 68] 점수는 각 사용자에 대해 AUC를 계산한 후 가중 평균으로 이를 집계하여 이 문제를 해결합니다:
여기서 #historyu는 사용자 u의 기록 수이며, AUC(u)는 사용자 에 대한 모든 상호작용 기록의 AUC입니다.
4.1.5 기준 방법
우리는 두 가지 범주의 기준 방법을 고려합니다. 첫 번째는 인간이 설계한 규칙에 의존하는 기준으로, 예를 들어 무작위로 사용자에게 아이템을 추천하는 Random 방법이 있습니다. 두 번째 범주는 언어 모델 기반의 비지도 학습 방법으로, 사용자의 언어화된 특징과 아이템의 언어화된 특징을 입력으로 사용하고, LLM의 출력물을 사용하여 추천을 수행합니다. 예를 들어, EmbSim [66]은 사용자와 아이템의 언어화된 특징의 두 가지 임베딩을 생성하고, 이 임베딩들의 내적(dot product)을 통해 사용자-아이템 선호도를 예측합니다. PairNSP는 다음 문장 예측 작업 [6]을 적용하여, 사용자의 언어화된 특징과 아이템의 언어화된 특징을 결합하여 이를 언어 모델에 입력하고, 이들이 동일한 문맥에 속하는지를 결정합니다. ItemLM [5]은 사용자-아이템 컨텍스트 내에서 아이템 이름이 나타날 확률을 계산하여 선호도를 예측합니다.
4.2 PromptRec은 개인화된 시스템 콜드 스타트 추천을 제공할 수 있다
4.2.1 실험 설계
대형 언어 모델: 우리는 PromptRec의 일반화를 보여주기 위해 다양한 규모, 아키텍처, 사전 학습 전략, 모델 크기를 가진 여러 대형 언어 모델을 고려합니다. 접근성과 인기 등을 고려하여 BERT-large-uncased [6], GPT-2-medium [2], T5-large [38], 그리고 LLaMA-7B [48]을 선택했습니다. 이들의 파라미터 수는 355M부터 7B까지 이릅니다. 우리는 Huggingface [60]에서 이들의 구현체와 체크포인트를 사용했습니다.
프롬프트 함수 설계: 각 데이터셋에 대한 프롬프트 함수 fprompt는 전문가들이 설계했으며, 이는 템플릿, 버벌라이저(Verbalizers), 라벨러(Labelers)라는 세 가지 구성 요소로 이루어져 있습니다. 각 템플릿은 사용자 프로필, 아이템 프로필, 그리고 이들 프로필과 추천 작업 간의 연결 부분으로 구성됩니다. 우리는 연속형 특징 버벌라이저와 이산형 특징 버벌라이저라는 두 가지 유형의 버벌라이저를 고려합니다. 연속형 특징 버벌라이저는 특징 값 범위를 여러 구간으로 나누고, 각 구간에 대해 전문가가 자연어 설명을 부여합니다(예: 나이 72는 "나이 듦"이라는 단어로 표현). 반면, 이산형 특징 버벌라이저는 각 특징 값에 대해 직접적으로 설명을 반환합니다. 예를 들어, ML-100K 데이터셋에서 특정 사용자-아이템 상호작용은 인간이 설계한 템플릿과 버벌라이저를 거쳐 다음과 같은 문장으로 형식화됩니다:
"The woman is a middle-aged writer living in Michigan. The Star Wars is categorized as an adventure, animated, romantic, scientific, war movie. The user is that woman, and the item is that movie. In short, the user feels [MASK] about the item."
LLaMA와 같은 인과적 언어 모델의 경우, 텍스트는 대부분 동일하게 유지되지만 마지막 문장은 "In short, the user’s attitude towards the item is [MASK]."으로 대체됩니다. 전문가가 설계한 라벨러는 긍정적인 단어는 긍정적인 것으로, 부정적인 단어는 부정적인 것으로 간주합니다.
4.2.2 실험 결과
표 2는 제안된 벤치마크에서 다양한 백본 대형 언어 모델과 함께 PromptRec 접근법의 결과를 보여줍니다. 우리는 또한 BERT-large를 사용한 여러 기준 제로샷 솔루션의 결과를 상단에 보고합니다. 추가로, 표 3은 다양한 규모의 BERT 결과를 보고합니다. 아래와 같은 몇 가지 관찰이 이루어졌습니다.
기준 방법은 시스템 콜드 스타트 설정에서 개인화된 추천을 제공하는 데 대부분 실패했습니다. 시스템 콜드 스타트 설정에서 모든 데이터셋에서 일관된 효과적인 추천을 제공하는 기준 방법은 없습니다. 그 이유로는 다음과 같은 가능성이 있습니다. 본질적으로, 개인화된 추천은 모델이 동일한 카테고리의 아이템 간의 세부적인 차이를 포착해야 합니다. 그러나 EmbSim과 PairNSP가 사용하는 텍스트 표현과 NSP 작업 [6]은 대략적인 의미만 구별할 수 있습니다. 따라서 이들은 추천 작업을 잘 처리하지 못합니다. 반면, ItemLM은 세부적인 사전 학습 작업(예: MLM [6])에 의존하지만, 이는 3.1절에서 논의된 언어적 편향으로 인해 어려움을 겪습니다. 이러한 관찰은 시스템 콜드 스타트 추천을 수행하는 것이 매우 도전적이라는 것을 보여줍니다.
PromptRec은 다양한 LLM 계열에 대해 시스템 콜드 스타트 추천으로 일반화될 수 있습니다. PromptRec은 각 데이터셋에서 모든 LLM 후보와 함께 Random 전략보다 유의미한 개선을 보여, 강력한 일반화 능력을 나타냅니다. 특히, PromptRec은 세 가지 데이터셋에서 각각 최대 6.93%, 14.01%, 5.05% GAUC로 Random 전략을 개선하여 대형 언어 모델이 강력한 인컨텍스트 학습 능력으로 개인화된 추천을 제공할 수 있음을 입증했습니다.
PromptRec은 언어 모델의 크기에 민감합니다. 표 3에서 우리는 BERT 계열이 모델 크기가 커짐에 따라 성능이 점진적으로 향상된다는 것을 관찰했습니다. 주목할 점은 29.1M 변형이 Coupon 및 Restaurant 데이터셋에서 충분한 콜드 스타트 추천을 제공할 수 없다는 것입니다. 이 결과는 모델 크기와 인컨텍스트 학습 능력 간의 상관관계에 대한 최근 연구 [59]와 일치하며, 작은 언어 모델에 대한 우리의 개선이 필요함을 확인합니다.
4.3 작은 언어 모델들은 RCMP와 TPPT를 통해 콜드 스타트 추천자가 될 수 있다
4.3.1 실험 설계
작은 언어 모델: 우리는 [49]에서 소개된 BERT 계열의 네 가지 작은 변형(BERT-tiny, BERT-mini, BERT-small, BERT-medium)을 고려합니다. 이들은 BERT-base/large와 동일한 아키텍처와 사전 학습 전략을 공유합니다. 가장 작은 변형인 BERT-tiny는 2개의 트랜스포머 레이어와 128개의 히든 차원으로 구성된 440만 개의 파라미터만 포함하며, 이는 공개적으로 사용할 수 있는 가장 작은 일반 사전 학습 언어 모델입니다.
정제된 코퍼스 모델 사전 학습(RCMP)의 세부 사항: RCMP는 일반 코퍼스를 정제하고, 정제된 코퍼스에서 언어 모델을 추가로 사전 학습하는 두 단계로 구성됩니다. 구체적으로, 우리는 K=10000의 하이퍼파라미터로 식 (8)에 따라 일반 코퍼스를 정제합니다. 일반 코퍼스 C는 C4 [37] 데이터셋의 하위 집합으로 구성되며, 30개 이상의 고유 단어와 3개의 문장을 포함하는 문서의 5%를 무작위로 샘플링하여 약 1700만 개의 문서를 얻습니다. p(c,z)를 추정하는 데 사용된 문서 임베딩은 10억 개의 쌍으로 이루어진 문장으로 훈련된 인코더 [56]에 의해 생성되었습니다. 우리는 p(z∣c)의 추정이 문서 품질에 최소한의 영향을 미친다는 것을 발견했으므로, 이를 상수로 간주하여 코퍼스 선택을 가속화했습니다. 추가 사전 학습을 위해, 이전 연구 [14]에 따라 Adafactor [45] 옵티마이저를 학습률 2e-5, 배치 크기 32, 10,000 학습 단계, 학습률 선형 감소(부록 A.1에 상세히 설명됨)와 함께 사용합니다. 우리는 학습을 다섯 개의 랜덤 시드로 반복하며, 각 랜덤 시드의 최고 점수 평균을 보고합니다.
전이 가능한 프롬프트 사전 학습(TPPT)의 세부 사항: 벤치마크의 각 데이터셋을 단일 콜드 스타트 시나리오로 간주하므로, 우리는 나머지 두 데이터셋을 사용하여 작업 프롬프트 StS_t를 사전 학습합니다. 우리는 사전 학습된 모델의 차원에 맞춘 학습 가능한 벡터로 표현된 연속형 작업 프롬프트를 채택합니다. 우리의 학습은 AdamW 옵티마이저와 학습률 1e-4, 배치 크기 64로 50,000단계 동안 진행됩니다. 각 에폭이 끝날 때 검증 세트에서 성능을 검증합니다. 성능이 두 번 연속 감소하면 학습률이 0.5배로 줄어듭니다. 학습률 감소가 세 번 발생하면 조기 종료 전략이 트리거됩니다. 도메인 프롬프트 SdS_d는 각 데이터셋의 상위 TF-IDF [42] 점수 키워드에서 파생됩니다. 작업 프롬프트의 길이는 10 또는 50으로 선택되며, 도메인 프롬프트의 길이는 5, 10, 50, 100, 200으로 다양합니다. 각 설정에 대한 실험은 다섯 개의 랜덤 시드로 수행되며, 가장 성능이 좋은 평균 설정 결과가 보고됩니다.
4.3.2 실험 결과
표 4는 TPPT와 RCMP 전략이 세 가지 작은 언어 모델에서 다섯 개의 랜덤 시드로 실험한 결과를 보고합니다. 그림 4는 콜드 스타트 성능과 추론 시간 간의 관계를 보여줍니다.
정제된 코퍼스에서 추가 사전 학습을 한 작은 언어 모델은 콜드 스타트 추천 성능을 향상시킵니다. 표 4에서 RCMP 전략은 작은 언어 모델을 사용하여 모든 데이터셋에서 PromptRec의 성능을 향상시킵니다. 특히, RCMP는 BERT-mini의 성능을 45.63% GAUC에서 61.72% GAUC로 크게 향상시켰습니다. PromptRec의 성능이 약 50.00% GAUC 이하였던 다섯 가지 경우에서, RCMP는 BERT-tiny를 사용한 Restaurant 데이터셋을 제외하고 효과적인 인컨텍스트 추천을 가능하게 했습니다. 이러한 결과는 RCMP가 정제된 코퍼스에서의 고급 사전 학습을 통해 작은 언어 모델이 인컨텍스트 추천을 달성할 수 있도록 한다는 것을 나타냅니다.
전이 가능한 프롬프트의 사전 학습은 작은 언어 모델이 더 나은 콜드 스타트 추천을 하도록 돕습니다. 표 4에서 TPPT 전략은 대부분의 상황에서 PromptRec의 콜드 스타트 추천 성능을 향상시킵니다. 특히, 쿠폰 데이터셋에서 BERT-small은 GAUC 64.57을 달성하여 모든 후보 모델 중 BERT-large가 달성한 최고 GAUC 63.77을 능가했습니다. 또한, TPPT는 이전에 언어 모델이 최적이 아니었던 다섯 가지 설정 모두에서 인컨텍스트 추천을 촉진했습니다. 더욱이, TPPT는 콜드 스타트 시나리오에서 일관되게 RCMP보다 뛰어난 성능을 보였습니다. 이러한 결과는 작은 언어 모델이 콜드 스타트 상황에서 인컨텍스트 추천을 위한 잠재력을 가지고 있지만, 이를 활성화하기 위해 최적의 프롬프트가 필요함을 나타냅니다.
개선된 작은 언어 모델은 훨씬 더 빠른 추론 속도로 효과적인 추천을 제공합니다. 그림 4는 다양한 모델 크기에서 PromptRec의 원래 성능과 향상된 성능을 비교합니다. 향상된 성능을 계산하기 위해, 우리는 각 데이터셋에서 TPPT 또는 RCMP 중 더 나은 결과를 선택한 후, 세 가지 데이터셋에서 평균을 냈습니다. 주목할 만하게도, BERT-large가 거의 40ms의 추론 시간을 사용하여 약 58%의 GAUC를 달성하는 반면, 우리의 방법은 작은 모델을 약 5ms 만에 BERT-large 성능에 근접하게 향상시켜, 모델 크기와 효율성 간의 균형을 강조했습니다.
5 관련 연구
5.1 콜드 스타트 추천
"콜드 스타트"라는 용어는 추천 시스템이 제공하는 객체에 대해 아무것도 알지 못하는 상황을 설명합니다. 콜드 스타트 추천에는 여러 가지 사례가 있습니다.
새 시스템 콜드 스타트: 새로운 사용자에게 새로운 아이템을 개인화된 추천을 제공하는 것은 시스템 콜드 스타트 추천 문제를 야기합니다 [3, 8, 26, 31, 40, 43], 이를 신생 커뮤니티 콜드 스타트 문제라고도 합니다. 우리의 지식에 따르면, 이 문제를 공식화하거나, 이론적 방법론을 제안하거나, 평가 기준을 마련한 연구는 없습니다. 최근의 몇몇 연구는 "제로샷 추천"이라는 새로운 문제를 제안했는데 [7, 47], 이는 우리의 작업과 비슷해 보입니다. 그러나 주요 차이점은 시스템 콜드 스타트 설정에서는 학습 및 추론 중에 대상 데이터셋에서 사용자-아이템 상호작용이 불가능하다는 점이며, 제로샷 설정에서는 온라인 추론 중에 사용자의 구매 기록에 접근할 수 있다는 것입니다. 우리는 제안된 설정이 더 현실적이라고 믿습니다.
새로운 사용자/아이템 콜드 스타트: 추천 시스템이 온라인에서 안정적으로 동작할 때, 새로운 아이템과 사용자가 계속해서 추가됩니다. 이러한 새로운 아이템을 사용자에게 추천하는 것이 새로운 아이템 콜드 스타트 문제입니다. 마찬가지로, 새로운 사용자에게 아이템을 추천하는 것은 새로운 사용자 콜드 스타트 문제를 발생시키며, 새로운 사용자에게 새로운 아이템을 추천하는 것은 새로운 사용자-아이템 콜드 스타트 문제를 발생시킵니다 [23, 26, 40, 43]. 새 시스템 콜드 스타트 추천과 달리, 새 사용자/아이템 콜드 스타트 추천에서는 역사적인 사용자-아이템 상호작용을 기반으로 모델을 학습할 수 있습니다. 사용자/아이템을 표현하는 품질을 향상시키기 위해 보조 정보를 포함하는 것이 가장 전통적인 방법입니다 [13, 54, 62]. 보조 정보가 없다는 가정하에, 직접적으로 역사적인 사용자-아이템 상호작용을 분석하는 것이 더 실용적입니다 [9, 23, 51]. 최근에는 그래프 신경망을 사전 학습하는 것이 선도적인 방향으로 고려되고 있습니다 [16, 63].
5.2 인컨텍스트 추천
연구자들은 인컨텍스트 학습을 활용하여 해석 가능성 [10, 24], 다중 작업 학습 [12, 28, 64], 순차 추천 [5, 21, 34, 47, 58, 66], 대화형 추천 [10, 57] 등 여러 목적을 위해 추천 시스템을 개발하고 있습니다. 이러한 연구의 기본 직관은 두 가지입니다: 언어 모델을 지식 기반으로 활용하여 추천을 강화하는 것 [5, 28, 47, 64, 66], 언어 모델을 사용하여 인간과 시스템 간의 상호작용을 자연어로 구현하는 것 [10, 12, 21, 24, 34, 57, 58]. 이들 연구가 대형 언어 모델에 중점을 둔 것과 달리, 우리의 연구는 작은 언어 모델도 콜드 스타트 설정에서 추천을 제공할 수 있음을 보여줍니다.
6 결론
이 논문은 시스템 콜드 스타트 추천 문제를 연구하고 첫 번째 벤치마크를 제공합니다. 우리는 이 문제를 위해 PromptRec을 제안하고, 대형 언어 모델이 어떤 학습 샘플 없이도 개인화된 추천을 할 수 있음을 보여줍니다. 또한, 인컨텍스트 추천을 수행하는 언어 모델의 행동을 연구하기 위한 수학적 프레임워크를 제공합니다. 우리는 또한 콜드 스타트 시나리오의 도메인 밖에 있는 데이터셋을 활용하여 작은 언어 모델을 개선하는 두 가지 방법을 조사합니다. 우리의 결과는 작은 언어 모델도 향상된 능력으로 개인화된 추천을 제공할 수 있음을 보여줍니다. 우리는 미래의 연구가 더 많은 추천 작업을 위한 시스템 콜드 스타트 설정을 탐구하고, 이를 실제 비즈니스에 적용할 수 있기를 기대합니다.
Hidden Markov Model(HMM)을 이해하는 데 도움이 되도록, 개념을 차근차근 설명하고 예시를 통해 좀 더 쉽게 접근해보겠습니다.
1. 마르코프 모델(Markov Model) 이해하기
먼저, 마르코프 모델은 현재 상태가 오직 직전 상태에만 의존하는 확률 과정입니다. 쉽게 말해, 어떤 일이 일어날지 예측할 때, 과거의 모든 정보를 고려하는 것이 아니라, 직전의 상태만 알면 된다는 가정입니다.
예를 들어, 날씨를 예측한다고 가정해봅시다. 내일 날씨가 오늘 날씨에만 의존한다고 가정할 수 있습니다. 만약 오늘이 맑다면, 내일도 맑을 확률이 높고, 비가 올 확률이 낮다고 예측할 수 있겠죠. 이때 날씨의 변화를 마르코프 과정으로 모델링할 수 있습니다.
2. 숨은 마르코프 모델(HMM) 이해하기
숨은 마르코프 모델(HMM)은 마르코프 모델을 확장한 것입니다. HMM에서는 우리가 관찰할 수 없는 숨은 상태(hidden state)가 있으며, 이 상태가 관찰 가능한 결과(observed outcome)를 생성한다고 가정합니다.
예시: 음성 인식
음성 인식에서 HMM이 어떻게 사용되는지 예를 들어 설명해보겠습니다:
- 숨은 상태: 실제 말하는 사람의 발음 (예: "사과"라고 말하는 것).
- 관찰 가능한 결과: 마이크를 통해 수집된 소리 신호 (파형이나 스펙트럼).
여기서 숨은 상태는 우리가 직접 관찰할 수 없는 실제 발음이고, 관찰 가능한 결과는 그 발음으로 인해 생성된 소리입니다.
HMM에서는:
- 사람이 "사과"라고 말하는 숨은 상태가 있습니다.
- 이 숨은 상태는 여러 음향 신호(파형, 스펙트럼 등)를 생성합니다.
- 음성 인식 시스템은 관찰된 음향 신호를 보고, 어떤 단어를 말했는지 추정하려고 합니다.
3. HMM의 주요 구성 요소
HMM에는 몇 가지 중요한 구성 요소가 있습니다:
- 상태(state): 숨은 상태들, 예를 들어 "사과"를 발음하는 동안의 음소들.
- 전이 확률(transition probability): 한 상태에서 다른 상태로 이동할 확률입니다. 예를 들어, "사"에서 "과"로 넘어갈 확률.
- 관찰 확률(observation probability): 각 숨은 상태가 특정 관찰 결과를 생성할 확률입니다. 예를 들어, "사"를 발음할 때 특정 음향 신호가 발생할 확률.
- 초기 확률(initial probability): 모델이 시작할 때 각 상태에 있을 확률입니다. 예를 들어, 문장이 시작될 때 "사"라는 음소에서 시작할 확률.
4. HMM의 예측 과정
HMM을 이용해 음성 인식을 하는 과정을 간단히 설명하겠습니다:
- 초기 상태에서 시작합니다. 예를 들어, "사과"라는 단어를 발음하는 첫 번째 음소를 생각해보세요.
- 상태 전이가 발생합니다. 예를 들어, "사"에서 "과"로 전이될 수 있습니다. 각 전이에는 확률이 있습니다.
- 각 상태에서 관찰 확률에 따라 음향 신호가 생성됩니다.
- 시스템은 이 과정을 반복하며, 최종적으로 관찰된 음향 신호에 가장 적합한 숨은 상태(발음)를 찾아내려고 합니다.
5. HMM의 실제 사용
HMM은 음성 인식뿐만 아니라, 자연어 처리, 생물정보학(유전자 서열 분석), 금융 모델링 등 다양한 분야에서 사용됩니다. HMM은 관찰할 수 없는 숨은 상태와 관찰 가능한 데이터를 연결하여 복잡한 확률적 관계를 모델링하는 데 강력한 도구입니다.
6. 간단한 HMM 예시
간단한 예시를 통해 HMM을 다시 생각해보겠습니다:
- 숨은 상태: 오늘의 날씨 (맑음, 흐림, 비).
- 관찰 가능한 결과: 나는 우산을 가지고 있는가 (있다, 없다).
여기서 날씨는 숨은 상태이고, 우산을 가지고 있는지는 관찰 가능한 결과입니다. 만약 내가 우산을 가지고 있다면, 오늘이 비가 올 확률이 높다고 추정할 수 있습니다. HMM은 이와 같이 숨은 상태와 관찰된 결과 사이의 관계를 통해, 숨은 상태를 추정하는 모델입니다.
이 논문에서 언급된 숨은 마르코프 모델(Hidden Markov Model, HMM)은 언어 모델이 사용자-아이템 추천을 어떻게 수행하는지를 이론적으로 설명하기 위해 사용됩니다. HMM은 여기서 언어 모델이 텍스트 데이터를 처리하고 추천을 생성하는 과정을 모델링하는 데 활용됩니다.
1. HMM의 구성 요소와 논문에서의 대응
먼저, HMM의 기본 구성 요소를 논문에서 사용된 내용과 연결해보겠습니다:
- 숨은 상태 (Hidden State, θ):
- 이 논문에서 숨은 상태 θ는 언어 모델이 특정 사용자-아이템 프로필을 처리할 때 발생하는 "개념"을 나타냅니다. 예를 들어, 특정 사용자와 아이템 조합이 "스포츠"나 "로맨스"와 같은 개념을 형성할 수 있습니다.
- 전이 확률 (Transition Probability):
- 숨은 상태 θ가 한 상태에서 다른 상태로 전이될 확률입니다. 예를 들어, "스포츠"라는 개념이 "로맨스"로 바뀔 확률이 될 수 있습니다.
- 관찰 확률 (Observation Probability, p(yu,i∣Xu,i,θ)):
- 이는 숨은 상태 θ가 주어졌을 때, 사용자-아이템 프로필 Xu,i가 특정한 감성 단어(예: "좋다", "나쁘다")를 생성할 확률입니다. 예를 들어, "스포츠" 개념이 주어졌을 때 "좋다"라는 단어가 생성될 확률입니다.
- 초기 확률 (Initial Probability, p(θ)):
- 이는 모델이 특정 숨은 상태 θ에서 시작할 확률입니다. 예를 들어, 사용자가 처음에 "스포츠" 개념을 기반으로 아이템을 평가할 확률입니다.
2. HMM이 논문에서 사용되는 방식
이 논문에서 HMM은 다음과 같은 방식으로 사용됩니다:
- 추천 과정의 모델링:
- 언어 모델은 사용자와 아이템의 프로필 정보를 입력으로 받아들입니다. 이때, HMM에서는 먼저 숨은 상태 θ가 선택됩니다. 이 θ는 사용자와 아이템의 관계에서 발생하는 기본적인 개념(예: "스포츠", "로맨스")을 나타냅니다.
- 추천 생성:
- 숨은 상태 θ가 결정되면, 언어 모델은 이 θ와 사용자-아이템 프로필 Xu,i를 기반으로 감성 단어(예: "좋다", "나쁘다")를 예측합니다. 이 과정에서 관찰 확률 p(yu,i∣Xu,i,θ)이 사용됩니다.
- 최종적으로, 이 감성 단어를 기반으로 사용자가 해당 아이템에 대해 긍정적인 감정을 가질지 부정적인 감정을 가질지를 예측하여 추천을 생성합니다.
3. 예시를 통한 설명
가상 시나리오를 예로 들어보겠습니다:
- 사용자 프로필: 25세 남성, 스포츠를 좋아함.
- 아이템 프로필: 최신 스포츠 관련 영화.
여기서 HMM을 통해 추천 과정을 설명하면 다음과 같습니다:
- 숨은 상태 θ 선택:
- HMM은 "스포츠"라는 개념 θ를 선택합니다. 이 개념은 사용자가 스포츠에 관심이 많다는 것을 반영합니다.
- 관찰 확률 p(yu,i∣Xu,i,θ) 계산:
- 이제 언어 모델은 이 "스포츠" 개념을 바탕으로, 해당 영화에 대해 사용자가 긍정적인 감정을 가질 확률을 계산합니다. 예를 들어, "좋다"라는 감성 단어가 선택될 확률을 계산합니다.
- 추천 생성:
- 모델은 "스포츠" 개념과 사용자-아이템 프로필을 종합하여, 사용자가 이 스포츠 영화를 좋아할 것이라고 예측합니다. 따라서 이 영화를 추천하게 됩니다.
4. 결론
이 논문에서 HMM은 언어 모델이 사용자-아이템 프로필을 기반으로 숨은 상태 θ를 선택하고, 이 상태를 바탕으로 감성 단어를 예측하여 추천을 생성하는 과정을 이론적으로 설명하는 데 사용됩니다. HMM을 통해, 언어 모델이 어떻게 텍스트 데이터를 처리하고, 그 결과로 사용자에게 맞춤형 추천을 생성하는지를 더 잘 이해할 수 있습니다.
그럼 이 논문에서는 숨은 상태 theta를 어떻게 고르는지에 대해서 어떻게 설명하고 있어?
초기에 저걸 어떻게 설정하는지가 중요한 것 같은데
이 논문에서 숨은 상태 θ를 어떻게 선택하는지에 대한 과정은 논문의 핵심 부분 중 하나입니다. 이 과정은 언어 모델이 사용자-아이템 프로필을 입력받아 적절한 개념(숨은 상태) θ을 선택하고, 이를 바탕으로 추천을 생성하는 과정으로 설명됩니다. 여기에서 중요한 점은 θ가 어떻게 초기화되고 선택되는지에 대한 설명입니다.
1. 숨은 상태 θ의 선택 과정
논문에서는 θ를 직접적으로 선택하는 구체적인 알고리즘을 제시하지 않지만, HMM의 이론적 틀에서 θ가 어떻게 선택되는지에 대한 일반적인 과정은 다음과 같습니다:
- 언어 모델의 입력: 사용자 프로필 cu와 아이템 프로필 ci가 언어 모델에 입력됩니다. 이 입력은 텍스트 데이터로 표현되며, 예를 들어, "25세 남성, 스포츠를 좋아함"과 "스포츠 영화"와 같은 형태일 수 있습니다.
- 숨은 상태 θ\theta의 추론:
- 언어 모델은 사용자와 아이템 프로필을 기반으로 *적절한 숨은 상태 θ를 추론합니다. 이 θ는 "스포츠"와 같은 개념이 될 수 있습니다.
- 이 과정에서 언어 모델은 입력된 프로필 데이터를 분석하여, 해당 사용자-아이템 조합이 어떤 개념 θ에 가장 잘 맞는지를 결정합니다. 이를 확률적으로 추정하며, 이때 초기 확률 p(θ)와 입력 Xu,i에 기반한 조건부 확률 p(θ∣Xu,i)이 사용됩니다.
- 조건부 확률과 초기 확률의 역할:
- 초기 확률 p(θ)는 각 숨은 상태가 선택될 확률을 나타내며, 언어 모델이 특정 개념을 더 자주 선택할 가능성을 반영합니다.
- 조건부 확률 p(θ∣Xu,i)는 주어진 사용자-아이템 프로필 Xu,i에 따라 특정 θ가 선택될 가능성을 나타냅니다.
2. θ의 초기 설정
- θ의 초기 설정은 주어진 데이터와 사전 지식에 따라 달라질 수 있습니다. 예를 들어, 특정 도메인(영화, 음악 등)에 대한 추천 시스템을 구축할 때, 도메인에 맞는 여러 개의 θ (예: "스포츠", "로맨스", "코미디")를 사전에 정의할 수 있습니다.
- 언어 모델은 이러한 사전 정의된 θ들 중에서, 사용자와 아이템 프로필을 입력받아 가장 적합한 θ를 선택하게 됩니다.
3. 논문의 설명
논문에서는 HMM의 이론적 틀을 바탕으로 θ의 선택 과정을 설명하며, 언어 모델이 어떻게 이 θ를 추론하여 인컨텍스트 추천을 수행하는지를 다룹니다. 특히, θ는 사용자와 아이템 간의 상호작용을 나타내는 숨은 개념으로서, 추천을 생성하는 데 중요한 역할을 합니다.
결론적으로, θ는 사용자와 아이템의 프로필 정보를 바탕으로 언어 모델이 추론하여 선택하며, 이 과정은 확률적으로 이루어집니다. 초기 설정은 도메인에 따라 다를 수 있으며, θ의 선택은 추천의 품질에 중요한 영향을 미칩니다.
이 설명이 도움이 되었길 바랍니다. 더 궁금한 점이 있으시면 언제든지 질문해 주세요!
그럼 여기선 theta를 출력하는 LM, 사용자 프로필과 theta를 받아서 긍 부정을 출력하는 LM 따로 있는 거야?
이 논문에서는 θ를 출력하는 언어 모델(Language Model, LM)과 사용자 프로필 및 θ를 받아서 긍정 또는 부정을 출력하는 LM이 따로 존재하는 것이 아니라, 하나의 LM이 이러한 전체 프로세스를 수행합니다. 그러나, 이 프로세스가 두 단계로 나누어져 있다고 볼 수 있습니다.
1. 프로세스 설명
- 첫 번째 단계: θ 선택:
- 언어 모델은 사용자-아이템 프로필 Xu,i를 입력으로 받아서, 해당 프로필에 적합한 개념(concept) θ를 선택합니다. 이 θ는 추천 시스템이 사용자와 아이템 간의 상호작용을 평가하는 데 사용되는 숨은 상태(hidden state)입니다.
- 이 과정은 HMM의 첫 번째 단계에 해당합니다. 즉, 모델이 입력된 문맥에 기반하여 적절한 개념 θ를 추론합니다.
- 두 번째 단계: θ와 사용자 프로필을 이용한 긍정/부정 예측:
- 이후 같은 언어 모델이 선택된 θ와 사용자-아이템 프로필을 결합하여, 해당 아이템에 대한 사용자의 긍정적 또는 부정적 선호를 예측합니다.
- 이는 HMM의 두 번째 단계에 해당하며, 특정 단어(긍정/부정 단어)가 주어진 θ와 문맥 Xu,i에서 나타날 확률을 계산하는 과정입니다.
2. 하나의 LM으로 두 단계 수행
이 논문에서 제안된 방법은 하나의 언어 모델이 이러한 두 단계를 모두 수행하도록 설계되었습니다:
- θ 선택과 긍정/부정 예측이 모두 하나의 LM에서 수행됩니다. 모델은 처음에 문맥을 바탕으로 θ를 추론하고, 그 다음 θ와 문맥을 활용하여 최종적인 예측을 수행합니다.
- HMM의 관점에서 보면, θ는 숨은 상태(hidden state)로, 언어 모델이 이 상태를 먼저 추론하고, 그 상태를 기반으로 최종적인 확률을 계산하게 됩니다.
3. 요약
- 하나의 언어 모델이 θ를 선택하고, 선택된 θ와 사용자 프로필을 이용하여 긍정/부정을 예측하는 두 단계를 수행합니다.
- 논문에서 제안된 방법은 하나의 LM이 이러한 전체 프로세스를 담당하며, HMM의 구조를 따라 문맥에 맞는 개념을 선택하고, 이를 기반으로 최종적인 예측을 하는 방식입니다.
아래 문장이 살짝 이해가 안가네
C*가 Z에 포함된다는 것이 그 이유가 y에서 긍 부정을 모두 포함해서 C*에서 긍정인 부분도 부정으로 포함하고 있다는 거야?
C는 그냥 일반적인 언어 코퍼스인 거고, 그 중 C*은 Cold start에 관련된 코퍼스고, Z는 C*에 긍 부정이 전부 포함된 코퍼스 인거야?
이 문장에서 다루고 있는 개념들은 일반적인 언어 코퍼스(C), 콜드 스타트와 관련된 코퍼스(C*), 그리고 자체적으로 구성한 완전한 사용자/아이템 프로필과 감성 극성의 조합(Z)에 대한 관계입니다. 이해하기 어렵게 느껴질 수 있지만, 각각의 개념을 명확히 하면 문장을 더 잘 이해할 수 있습니다.
1. 주요 개념 정리
- C:
- 일반적인 언어 코퍼스입니다. 이는 다양한 실제 데이터 소스에서 수집된 텍스트들로 구성되어 있습니다. 이 코퍼스는 추천 시스템과 직접적인 연관이 없는 다양한 데이터를 포함합니다.
- C*:
- 콜드 스타트 추천 시나리오와 관련된 코퍼스입니다. 즉, 추천과 직접적으로 관련된 데이터들만 포함하고 있습니다. C라는 일반 코퍼스의 부분집합입니다.
- Z:
- 모든 가능한 사용자/아이템 프로필과 감성 극성(긍정/부정)의 조합으로 구성된 코퍼스입니다. 이 자체적으로 구성된 코퍼스는 이론적으로 모든 가능한 콜드 스타트 시나리오를 다루고 있으며, 따라서 C*가 Z에 포함됩니다.
2. 문장의 의미
이제 문장을 단계별로 풀어보겠습니다:
- C* ⊂ C:
- C*는 C의 부분집합으로, 콜드 스타트 추천과 관련된 텍스트들만 포함합니다.
- 예를 들어, C는 일반적인 텍스트 데이터를 포함하고 있지만, C*는 그 중에서도 추천 시스템에 필요한 정보(예: 사용자 리뷰, 제품 설명 등)만 포함하고 있습니다.
- Z가 C*를 포함하는 이유:
- Z는 모든 가능한 사용자/아이템 프로필과 긍정적/부정적 감성의 조합을 포함한 완전한 코퍼스입니다. 따라서 C*는 이 Z의 부분집합이 됩니다.
- Z는 모든 가능성을 포함하고 있기 때문에, C*는 자연스럽게 이 Z에 포함될 수밖에 없습니다.
- C*가 Z에 포함되는 이유:
- C*는 특정 상황(콜드 스타트 추천)에서 발생할 수 있는 데이터만 포함하고 있습니다. Z는 그보다 더 많은 모든 가능한 시나리오를 포함하고 있으므로, C*는 Z에 포함될 수밖에 없습니다.
- 문장에서 의도된 의미:
- 이 문장은 Z가 모든 가능성을 다루기 때문에 C*는 자연스럽게 Z에 포함된다는 점을 설명하고 있습니다. 따라서, C*는 Z 내에 존재하며, C와 Z 사이의 상호 정보를 최대화하는 방식으로 C*와 유사한 정보를 가진 작은 코퍼스 C^를 만들 수 있다는 뜻입니다.
3. 요약
- C*는 콜드 스타트와 관련된 텍스트 데이터들이 포함된 코퍼스이며, Z는 모든 가능한 사용자/아이템 프로필과 긍정/부정 감성을 포함하는 완전한 코퍼스입니다.
- Z는 모든 가능성을 다루므로, C*는 Z에 포함됩니다.
- C*를 추출하는 것이 어렵기 때문에, Z와 일반 코퍼스 C 사이의 상호 정보를 최대화하여, C*와 유사한 작은 코퍼스 C^를 구성합니다.
상호 정보가 뭔지, 엔트로피와 조건부 엔트로피가 뭔지, 결합 확률과 조건부 확률이 뭔지, 이 수식을 통해 어떻게 C^을 만들수 있는지에 대해 설명해줘 그리고 c,z가 생성된 문서라고 하는데 C는 이미 존재하는 문서 아니야? 왜 C를 생성하는거야?
이 문장에서 다루고 있는 상호 정보(Mutual Information), 엔트로피(Entropy), 조건부 엔트로피(Conditional Entropy), 그리고 결합 확률(Joint Probability)과 조건부 확률(Conditional Probability) 등의 개념은 정보 이론에서 매우 중요한 개념입니다. 이를 바탕으로, 어떻게 작은 코퍼스 C^를 만들 수 있는지를 설명하겠습니다.
1. 상호 정보 (Mutual Information, MI)
상호 정보는 두 변수 간의 정보 공유 정도를 측정하는 척도입니다. 두 변수 와 의 상호 정보는 다음과 같이 정의됩니다:
MI(X;Y)=H(X)−H(X∣Y)
여기서:
- H(X)는 의 엔트로피(불확실성의 측정)입니다.
- H(X∣Y)는 Y가 주어졌을 때 X의 엔트로피(조건부 엔트로피)입니다.
상호 정보는 X와 Y가 서로 얼마나 정보를 공유하는지를 나타냅니다. 상호 정보가 클수록 두 변수는 더 많이 관련이 있다는 의미입니다.
2. 엔트로피와 조건부 엔트로피
- 엔트로피 H(X):
- 엔트로피는 어떤 확률 분포의 불확실성을 측정하는 척도입니다. 엔트로피가 높을수록 불확실성이 큽니다. 예를 들어, 동전 던지기에서 공정한 동전일 경우 H(X)는 최대가 됩니다.
- 조건부 엔트로피 H(X∣Y):
- 조건부 엔트로피는 라는 정보가 주어졌을 때, 의 불확실성을 측정하는 척도입니다. 만약 가 를 정확히 설명할 수 있다면, H(X∣Y)는 0에 가까워집니다.
3. 결합 확률과 조건부 확률
- 결합 확률 p(c,z):
- 결합 확률은 두 사건 c와 z가 동시에 일어날 확률입니다. 이 확률은 두 문서의 표현(임베딩)이 얼마나 유사한지를 나타내는 척도입니다.
- 조건부 확률 p(z∣c):
- 조건부 확률은 c라는 사건이 발생했을 때 가 발생할 확률을 의미합니다. 이는 가 주어졌을 때, 가 문맥적으로 얼마나 잘 맞는지를 평가하는 데 사용됩니다.
4. 수식을 통해 C^를 만드는 방법
논문에서 제안하는 방법은 상호 정보를 최대화하는 방식으로 일반적인 코퍼스 C에서 작은 코퍼스 C^를 선택하는 것입니다. 이 과정은 다음과 같이 설명됩니다:
- 목표:
- 상호 정보 MI(C′;Z)를 최대화하는 작은 코퍼스 C^를 선택하는 것입니다. 즉, C 내에서 Z와 가장 관련성이 높은 서브셋을 찾는 것입니다.
- 엔트로피와 조건부 엔트로피:
- 상호 정보는 H(Z)−H(Z∣C′)로 표현됩니다. 이는 Z의 전체 불확실성에서 C′가 주어졌을 때 남은 불확실성을 뺀 값입니다. C′가 Z를 잘 설명한다면, H(Z∣C′)는 작아지고 상호 정보는 커집니다.
- 수식 전개:
- 상호 정보를 최대화하려면, 조건부 엔트로피 H(Z∣C′)를 최소화해야 합니다. 이를 위해, C′와 Z의 결합 확률과 조건부 확률을 이용해 상호 정보를 최대화하는 서브셋 C^를 선택합니다.
- 여기서 조건부 확률 p(z∣c)는 두 문서 c와 의 관계를 나타내며, 결합 확률 p(c,z)는 문서 임베딩 간의 유사도로 계산됩니다.
5. C가 이미 존재하는 문서인데 왜 생성하나?
문맥에서 "생성된 문서"라는 표현은 다음과 같은 의미로 해석할 수 있습니다:
- 문서 임베딩 생성: 와 z는 실제 문서이지만, 언어 모델 gLM을 통해 임베딩(벡터 표현)으로 변환된 상태를 의미합니다. 따라서, 문서 자체는 이미 존재하지만, 이 문서들에 대한 임베딩(벡터 표현)을 생성하는 과정을 거치게 됩니다.
결론
- 상호 정보(MI): 두 데이터셋 간의 정보 공유 정도를 측정하는 척도로, Z와 C 간의 상호 정보를 최대화하여 가장 관련성이 높은 서브셋 C^를 찾습니다.
- 엔트로피(Entropy)와 조건부 엔트로피(Conditional Entropy): 불확실성을 측정하는 척도로, 상호 정보를 최대화하기 위해 H(Z∣C′)를 최소화하려고 합니다.
- 결합 확률과 조건부 확률: 문서 임베딩 간의 유사성과 문맥적 관련성을 평가하는 데 사용됩니다.
이 수식은 C에서 작은 서브셋 C^를 선택하여, 이 서브셋이 콜드 스타트 시나리오와 가장 관련성이 높은 정보를 포함하도록 하는 방법을 설명합니다.
https://untitledtblog.tistory.com/97
아래 수식에서 왜 갑자기 적분이 나타난거야?
이 수식에서 갑자기 적분이 나타나는 이유는, 숨은 상태(Hidden State)를 고려하는 Hidden Markov Model(HMM)의 구조와 관련이 있습니다. 논문에서는 HMM을 기반으로 언어 모델이 단어를 생성하는 과정을 설명하기 위해 적분이 도입됩니다. 이 과정은 확률 분포와 관련된 모든 가능한 숨은 상태에 대해 평균을 계산하는 방식으로 이해할 수 있습니다.
1. HMM 구조에서의 적분 도입
HMM에서는 언어 모델이 단어를 생성할 때, 다음과 같은 두 단계로 이루어진다고 가정합니다:
- 숨은 상태 θ를 선택 (추출)합니다. 이 숨은 상태는 모델이 문맥을 통해 유추한 개념입니다.
- 선택된 숨은 상태 θ를 바탕으로 단어를 생성하거나 예측합니다.
여기서 적분은 모든 가능한 숨은 상태에 대한 확률 분포를 고려하기 위해 도입됩니다. 즉, 언어 모델이 특정 단어 yu,i를 예측할 때, 가능한 모든 숨은 상태 θ에 대해 그 상태에 해당하는 단어의 조건부 확률을 계산하고, 그 값을 통합하는 방식으로 전체 확률을 추정합니다.
2. 수식 설명
수식에서 설명된 흐름을 다시 살펴보면:
- 원래의 목표는 p(yu,i∣Xu,i), 즉 주어진 문맥 Xu,i에서 단어 yu,i가 발생할 확률을 최대화하는 것입니다.
- 그러나 HMM 가정을 도입하면서, 문맥 Xu,i로부터 직접 단어를 예측하는 대신, 중간 단계로 숨은 상태 θ를 도입하게 됩니다. 언어 모델은 먼저 숨은 상태 θ를 선택하고, 그 숨은 상태를 바탕으로 단어를 생성합니다.
- 숨은 상태 θ는 하나의 고정된 값이 아니라 여러 가능한 값들로 이루어진 분포로 생각할 수 있습니다. 이 모든 가능성에 대해 단어가 생성될 확률을 계산하려면, 모든 θ에 대해 그 확률을 통합해야 합니다. 이 통합 과정이 바로 적분으로 나타납니다.
- 따라서 적분은 가능한 모든 숨은 상태 θ를 고려해, 각 상태가 단어 yu,i를 생성할 확률을 계산하고 그 값을 더하는 과정입니다.
3. 적분의 의미
이 적분은 다음을 의미합니다:
- 각 숨은 상태 θ에 대해, p(yu,i∣Xu,i,θ)는 주어진 θ상태에서 문맥 Xu,i가 있을 때 단어 yu,i가 생성될 확률입니다.
- p(θ∣Xu,i)는 주어진 문맥 Xu,i에서 상태 θ가 선택될 확률입니다.
이 두 확률을 곱하고, 모든 가능한 θ에 대해 적분을 수행함으로써, 숨은 상태를 고려한 단어 예측 확률을 계산합니다.
4. 왜 적분을 사용하는가?
- 모든 가능한 숨은 상태를 고려하기 위해 적분이 필요합니다. HMM은 숨은 상태를 명시적으로 다루며, 이 상태는 우리가 직접 관측할 수 없는 개념이므로, 각 상태에 대한 가중 평균을 계산하는 적분이 필수적입니다.
- 단일 숨은 상태가 아니라 여러 상태에 대해 평균적으로 어떤 단어가 생성될지를 예측하기 위해 적분을 사용합니다. 이것이 HMM의 핵심 개념입니다.
결론
적분은 HMM 구조에서 모든 가능한 숨은 상태 θ를 고려하여, 각 상태가 단어 yu,i를 생성할 확률을 통합하는 역할을 합니다. 이 적분을 통해 모델은 단일 상태가 아닌 여러 상태에 기반한 더 정확한 확률 예측을 할 수 있게 됩니다.
내부에 p가 뭘 의미하는지는 잘 알겠어
그러나 적분의 의미를 명확하게 모르겠네
모든 theta 즉 개념의 가능성을 모두 고려하는데 가장 높은 것 쓰는 것이면 보통 max로 고르지 않아?
좋은 질문입니다! 말씀하신 대로, 최대화(max)와 적분(integration)의 차이를 이해하는 것이 중요합니다. 두 방법 모두 숨은 상태 θ를 고려하지만, 사용하는 방식이 다릅니다. 이를 구체적으로 설명해드릴게요.
1. Max와 적분의 차이점
- Max: 만약 max를 사용한다면, 이는 모델이 가능한 모든 θ 중에서 가장 가능성이 높은 단 하나의 θ만을 선택하고, 그 상태를 바탕으로 최종 예측을 수행하는 것을 의미합니다. 즉, 특정한 θ 하나만을 최종 결정하여 그 상태만 고려하는 방식입니다.
- 적분: 반면, 적분을 사용하면 모든 가능한 θ에 대해 각각의 기여를 모두 합산(평균)하여 최종 예측을 수행합니다. 각 θ에 대한 확률을 가중치로 사용하여 모든 상태를 통합함으로써 더 포괄적이고 균형 잡힌 예측을 가능하게 합니다.
2. Max를 사용하는 경우
- Max를 사용하는 방식은 가장 가능성이 높은 단일 숨은 상태를 선택합니다. 이 방법은 추론 과정이 단순화되며, 계산 비용이 줄어듭니다. 하지만 이 방식은 특정 상태 하나만을 고려하기 때문에, 숨은 상태에 대한 불확실성을 제대로 반영하지 못할 수 있습니다.
예를 들어, 가장 높은 확률을 가진 단어 하나를 선택하고 그 상태만으로 예측을 수행하게 됩니다. 이는 여러 가능한 상태를 모두 고려하지 않기 때문에, 다양성을 반영하는 데 한계가 있을 수 있습니다.
3. 적분을 사용하는 경우
- 적분을 사용하는 방식은 모든 θ를 모든 가능성으로 고려하여 각 상태에 기여한 확률을 합산합니다. 이 방식은 단일한 숨은 상태에 의존하지 않고, 모든 가능성을 반영하는 점에서 더 안정적이고 신뢰할 수 있는 예측을 제공할 수 있습니다.
예를 들어, 숨은 상태 θ에 대한 불확실성이 클 때, 단순히 가장 가능성이 높은 θ 하나만을 선택하는 것보다, 모든 θ를 통합하여 예측하는 방식이 더 나은 성능을 발휘할 수 있습니다.
이 적분 방식은 확률론적 접근으로, 숨은 상태가 여러 가지 가능성을 가질 수 있음을 인정하고, 그 가능성들을 모두 반영하여 최종적인 예측을 수행하는 방법입니다. 이는 특히 불확실성이 큰 상황에서 유리합니다.
4. 왜 적분을 사용하는가?
적분을 사용하는 이유는 확률 분포의 불확실성을 반영하기 위해서입니다. 적분은 모든 가능성을 반영하여 예측할 수 있게 해줍니다. 즉, 단일한 최적의 θ 하나에 의존하지 않고, 모든 θ가 기여하는 확률을 합산함으로써 더 다양한 가능성을 고려할 수 있게 됩니다.
예를 들어, θ가 여러 개의 가능성을 가지고 있고 각 상태의 기여가 중요할 때, 그 모든 가능성을 고려해서 최종 결과를 낼 수 있습니다. 이렇게 하면 특정 θ 하나가 선택되었을 때 발생할 수 있는 편향된 예측을 피할 수 있습니다.
결론
- Max는 단일 상태를 선택하여 간단한 추론을 가능하게 하지만, 숨은 상태의 불확실성을 반영하지 못할 수 있습니다.
- 적분은 모든 숨은 상태를 고려하여 각 상태가 기여하는 확률을 평균내어 더 포괄적이고 안정적인 예측을 가능하게 합니다.
따라서 논문에서는 적분을 통해, 모든 숨은 상태의 기여를 반영한 더 정확하고 신뢰성 있는 예측을 하려고 하는 것입니다.
그러니까 적분을 활용하여 모든 가능성을 다 더함으로써 다양한 가능성을 고려해 편향을 없애고, 불확실성을 반영한다는 거잖아
이건 알겠는데 명확한 이해가 안가
예시를 들어서 나한테 설명해줘
그리고 저 것의 결과가 어떻게 되는지도 설명해줘
네, 이해를 돕기 위해 예시를 들어 적분을 활용하는 방식과 그 결과를 설명해드리겠습니다.
예시: 레스토랑 추천 시스템
상황을 간단한 예시로 설명해볼게요.
- 문제: 당신이 새로운 도시에 방문했고, 추천 시스템이 당신에게 레스토랑을 추천하려고 합니다. 이때 추천 시스템은 당신이 좋아할 레스토랑을 예측하려고 합니다.
- 숨은 상태: 시스템은 여러 가지 숨은 상태 θ를 가집니다. 예를 들어, θ는 "음식의 종류", "레스토랑 분위기", "가격대" 등과 같은 특성을 나타낼 수 있습니다.
Max 방식의 접근
- 가장 높은 확률을 가진 숨은 상태 하나만 사용:
- 예를 들어, 당신이 "일식"을 좋아할 가능성이 가장 높다고 판단하여(가장 큰 θ) 일식 레스토랑을 추천합니다.
- 결과: 추천 시스템은 일식 레스토랑만 추천하게 됩니다. 그러나 이 방식에서는 만약 당신이 일식을 좋아할 가능성이 조금 높지만, 다른 종류(예: 이탈리안 음식, 인도 음식 등)의 음식도 좋아할 수 있다면 이 가능성은 무시됩니다.
적분 방식의 접근
- 모든 숨은 상태를 고려:
- 적분 방식에서는 "일식"이 가장 높더라도, 다른 음식 종류(예: 이탈리안, 인도, 타이 등)도 모두 고려합니다. 각 음식 종류에 대한 확률을 계산한 다음, 이를 모두 합산합니다.
- 결과: 시스템은 여러 가지 레스토랑을 고려한 후, 다양한 종류의 레스토랑을 추천하게 됩니다. 당신이 일식을 좋아할 가능성이 크더라도, 이탈리안이나 타이 음식점도 어느 정도 고려된 상태에서 추천이 이루어집니다.
왜 적분이 중요한가?
이 과정에서 적분은 모든 가능성을 반영하여 각 숨은 상태에 해당하는 확률을 합산하는 역할을 합니다. 만약 단일 숨은 상태를 고려했다면, 그 하나의 가능성에만 집중했을 겁니다. 하지만 적분을 사용하면 모든 가능한 숨은 상태를 고려함으로써 당신이 좋아할 만한 다양한 음식의 가능성을 반영한 추천을 할 수 있게 됩니다.
- Max 방식은 특정 하나의 가능성만을 선택해 추론하기 때문에, 다양한 가능성을 고려하지 못하고 편향된 결과를 낼 수 있습니다.
- 반면, 적분 방식은 모든 가능성을 다 합산함으로써 더 포괄적인 추천을 할 수 있고, 숨은 상태에 대한 불확실성도 반영하게 됩니다.
적분 방식의 결과
결국, 적분 방식의 결과는 더 균형 잡힌 예측을 하게 된다는 것입니다. 단일한 숨은 상태(예: 일식)만을 고려했을 때는 다양한 가능성이 무시될 수 있지만, 적분을 사용하면 여러 상태가 모두 기여하는 결과를 얻게 되어, 편향이 줄어들고 더 다양한 추천이 가능해집니다.
따라서 적분 방식은 다양한 가능성을 반영한 더 정확한 예측을 제공하는데, 이 과정에서 숨은 상태의 불확실성을 반영하기 때문에, 결과적으로 더 신뢰성 있는 예측이 가능하게 됩니다.
이제 이해가 좀 더 명확해졌기를 바랍니다. 추가 질문이 있으시면 언제든지 물어보세요!
음 그러니까 적분을 하여 모든 theta에 대한 추천을 다 한 다음에 그 중에서 제일 높은 갚을 선택하는 거지?
아닙니다. 적분을 사용하여 모든 θ를 고려한 다음에 가장 높은 값을 선택하는 것은 아닙니다. 적분의 역할은 각 θ에 대한 기여를 모두 합산하는 것입니다. 다시 말해, 적분을 통해 모든 θ의 기여를 평균화하여 최종적으로 하나의 확률 값을 구하는 것입니다.
차이점 정리
- 적분 방식: 적분은 각 θ가 해당 단어를 생성하는데 기여한 모든 확률을 종합합니다. 즉, 각각의 θ가 특정 단어를 예측하는 확률을 계산한 후, 이 값들을 모두 더해서 평균적인 확률을 구하는 것입니다. 이 방식은 모든 가능성을 고려하고, 그에 따른 가중치를 반영해 최종적인 하나의 확률 값을 산출합니다.
- Max 방식: Max 방식은 가능한 모든 θ 중에서 단 하나의 가장 높은 값을 가진 θ만을 선택합니다. 즉, 특정 θ 하나만 고려하고, 다른 θ는 무시합니다. 이 방식은 계산이 빠르지만, 다양한 가능성을 반영하지 못하고 편향된 예측이 나올 수 있습니다.
적분의 결과
적분을 사용한 후에는 각 θ에 따른 확률 값들을 모두 더하고 평균을 냅니다. 최종적으로 얻어지는 것은 모든 θ를 고려한 후에 나온 종합적인 확률 값입니다. 이 값은 여러 θ에 대한 기여를 종합하여 나온 것이기 때문에, 단일 θ의 예측보다 더 균형 잡힌 결과를 제공합니다.
따라서, 적분을 통해 모든 θ를 고려한 확률을 계산하고, 그 확률을 기반으로 최종적으로 예측을 수행하는 것입니다.
아 그러니까 적분을 활용해서 모든 theta에 대해 y_u,i에 대한 값을 다 예측하고, 더해서 그 값이 극대화 되도록 한다는 거지?
네, 정확합니다! 적분을 활용한 방식은 모든 숨은 상태 θ에 대해 각각의 θ가 yu,i를 생성할 확률을 계산하고, 그 확률을 모두 합산(적분)하여 최종적으로 하나의 종합적인 확률 값을 얻는 것입니다. 그 과정에서 모든 θ가 기여하는 예측 값을 평균화하여 최종 결과를 도출합니다.
적분의 역할 요약
- 모든 θ에 대해: 각각의 숨은 상태 θ가 있을 때, 그 상태에 따른 yu,i가 생성될 확률 p(yu,i∣Xu,i,θ)를 계산합니다.
- 합산(적분): 각 θ가 기여하는 확률 값을 모두 더해서, 종합적인 확률 값을 계산합니다. 적분은 이러한 가중 합을 수행하는 과정입니다.
- 최종 예측: 그 결과로 얻어진 종합적인 확률 값을 극대화하는 방식으로, yu,i에 대한 최종 예측을 수행합니다. 즉, 모든 θ를 고려한 상태에서 가장 가능한 yu,i를 예측하게 됩니다.
결론
적분을 통해 모든 θ에 대한 기여를 종합적으로 고려하고, 그 값을 극대화하도록 하여 최종적인 예측을 수행하는 방식입니다. 이 방식은 다양한 가능성을 반영하여 더 균형 잡힌 예측을 제공하는 것을 목표로 합니다.
그럼 아래 글에서 임베딩은 누가 만드는거야?
c,z는 gLM으로 C에서 걸러서 만드는 것 맞지?
이 문장에서 설명하는 임베딩 생성 과정과 관련하여, 언급된 두 언어 모델 gLM과 fLM의 역할을 이해하는 것이 중요합니다.
1. 임베딩 생성과 gLM의 역할
- 임베딩 생성: 임베딩은 문서(텍스트)를 벡터 형태로 변환한 표현입니다. 즉, 문서가 단어들의 나열로만 존재하는 대신, 해당 문서를 고차원 벡터로 변환하여 의미를 더 수치적으로 표현할 수 있습니다. 이를 임베딩(embedding)이라고 합니다.
- 이 임베딩을 생성: 문장에서 설명된 것처럼, 문서 와 z에 대한 임베딩은 gLM이라는 사전 학습된 언어 모델을 사용하여 생성됩니다. 즉, 은 일반적인 코퍼스 와, 특정한 사용자/아이템 프로필을 포함한 코퍼스 Z에 대해 임베딩을 생성합니다.
- 문서 c는 일반적인 코퍼스 에 속한 문서입니다.
- 문서 z는 특정한 사용자/아이템 프로필 및 감정 단어(긍정/부정)로 이루어진 텍스트 조각을 나타냅니다.
2. 임베딩 간의 유사도 계산
임베딩이 생성된 후, 두 문서 간의 결합 확률 p(c,z)는 이 두 임베딩 벡터 ec와 ez간의 유사도로 계산됩니다. 수식은 다음과 같이 나타납니다:
이 식에서, ec와 ez는 각각 문서 c와 z의 임베딩 벡터입니다. 이 벡터들의 내적(도트 곱)으로 계산된 값이 p(c,z)로 변환되며, 이는 두 문서 간의 유사도를 나타냅니다.
3. gLM과 fLM의 역할 분담
- gLM:
- 데이터 전처리 및 임베딩 생성 단계에서 사용됩니다.
- gLM은 코퍼스 와 로부터 임베딩 벡터 ec와 ez를 생성하고, 두 문서 간의 결합 확률 p(c,z)와 조건부 확률 p(z∣c)를 계산하는 데 사용됩니다.
- fLM:
- 최종 예측 및 추천 수행 단계에서 사용됩니다.
- fLM은 임베딩을 통해 축소된 코퍼스 C^를 활용하여 최종적인 예측(사용자에게 어떤 아이템을 추천할지 등)을 수행하는 데 사용됩니다. 즉, fLM은 추천 성능을 높이기 위해 작은 코퍼스에서 더 정밀한 학습과 추론을 수행하는 모델입니다.
4. C, C^, Z의 관계
- C는 일반적인 코퍼스(큰 규모의 텍스트 데이터)이며, 여기서 중요한 부분(콜드 스타트 관련 문서들)이 C^로 추출됩니다.
- Z는 사용자/아이템 프로필과 감성 극성(긍정/부정)의 모든 가능한 조합을 나타내며, 이는 특정 콜드 스타트 시나리오에 해당하는 텍스트 조각들을 의미합니다.
- 임베딩 과정은 gLM을 사용하여 일반적인 코퍼스와 사용자/아이템 프로필 간의 유사성을 측정하고, 이를 통해 가장 관련성이 높은 문서들을 선택합니다. 이 문서들이 모여 작은 코퍼스 C^를 구성하게 됩니다.
결론
- 임베딩은 gLM이라는 사전 학습된 언어 모델을 통해 생성됩니다.
- gLM은 문서 임베딩을 생성하고, 이 임베딩을 바탕으로 문서 간의 유사도를 계산하여, 상호 정보가 높은 작은 코퍼스 C^를 추출합니다.
- 추출된 C^는 fLM에서 사용되며, 최종적으로 더 나은 콜드 스타트 추천을 수행하기 위한 학습 및 예측에 활용됩니다.
그럼 p(c,z)는 두 문서의 유사도가 높으면 커지는거지?
logp(z|c)는 이해가 잘 안가네
네, p(c,z)는 두 문서의 임베딩 유사도를 기반으로 계산되며, 두 문서 간의 유사도가 높을수록 그 값이 커집니다. 이제 logp(z∣c)에 대해 설명드리겠습니다.
1. p(c,z)와 문서 유사도
p(c,z)는 두 문서 c와 간의 결합 확률을 나타내는 값으로, 이는 두 문서의 임베딩 벡터 간의 유사도에 비례합니다. 두 문서 간의 유사도가 높으면, 이 결합 확률이 커집니다. 수식적으로는 다음과 같이 계산됩니다:
p(c,z)=11+exp(−ec⋅ez⊤)p(c, z) = \frac{1}{1 + \exp(-e_c \cdot e_z^\top)}여기서 ec와 ez는 문서 와 의 임베딩 벡터입니다. 벡터 간의 내적(도트 곱)을 계산하여 두 문서 간의 유사도를 측정하고, 그 값이 커질수록 결합 확률 p(c,z)도 증가합니다.
2. logp(z∣c)의 의미
logp(z∣c)는 조건부 확률을 나타내며, 여기서 p(z∣c)는 "문서 cc가 주어졌을 때, 문서 zz가 나타날 확률"을 의미합니다. 이를 로그 값으로 취한 것이 logp(z∣c)-\log p(z|c)입니다.
3. p(z∣c)의 계산
문서 가 문서 를 기반으로 예측되는 과정은 다음과 같은 방식으로 모델링됩니다:
- 문서 가 주어졌을 때, 문서 가 나타날 확률 p(z∣c)는 문서 가 제공하는 정보(문맥)에서 문서 가 얼마나 자연스럽게 나타날지를 나타냅니다.
이 값은 언어 모델 gLM을 사용하여 계산됩니다. 문맥에 따라 여러 단어가 예측되는 방식으로, 문서 z가 문서 c로부터 생성된다고 가정하는 것입니다. gLM은 주어진 문맥에서 다음 단어(또는 텍스트)를 예측하는 언어 모델로, p(z∣c)는 이 모델이 문서 c를 입력으로 받아 문서 z를 예측하는 과정에서 산출되는 확률입니다.
4. 왜 로그를 취하는가?
로그를 취하는 이유는 다음과 같습니다:
- 수학적 안정성: 확률 값 p(z∣c)는 항상 0과 1 사이에 있으므로, 로그를 취하면 음수가 될 수 있습니다. 하지만 로그를 취한 값은 더 다루기 쉬운 범위에 놓이게 됩니다. 또한 확률이 매우 작을 때 로그 값을 취하면 더 명확하게 구분할 수 있습니다.
- 곱셈의 덧셈으로 변환: 여러 확률 값이 있을 때, 곱셈을 수행하면 값이 매우 작아질 수 있습니다. 로그를 취하면 곱셈을 덧셈으로 바꿔서 계산의 복잡성을 줄일 수 있습니다.
5. logp(z∣c)의 실제 계산
수식에서 logp(z∣c)는 다음과 같이 계산됩니다:
이 수식에서:
- zl는 문서 z의 l번째 단어입니다.
- gLM(zl∣c,z1,…,zl−1)는 주어진 문맥 c와 이전 단어들 z1,…,zl−1을 기반으로 l번째 단어 zl을 예측하는 언어 모델입니다.
이 방식은 문서 z의 각 단어가 문서 c의 문맥과 이전 단어들에 의해 어떻게 예측되는지를 보여줍니다.
6. 요약
- p(c,z)는 두 문서 간의 유사도를 나타내며, 유사도가 높을수록 결합 확률이 커집니다.
- 는 문서 c가 주어졌을 때 문서 z가 나타날 확률의 로그 값을 의미하며, 이는 언어 모델이 문서 c의 문맥을 기반으로 문서 z를 예측하는 방식으로 계산됩니다.
- 로그를 취하는 것은 수학적으로 더 안정적이고, 여러 확률 값을 더 쉽게 다루기 위해 사용됩니다.
그럼 지금 gLM은 임베딩도 생성하고, c를 통해서 z도 만들고 있는거야?
이 논문에서 gLM의 역할은 두 가지로 요약할 수 있습니다: 임베딩 생성과 조건부 확률 계산을 통해 문서 간의 관계를 평가하는 것입니다. 이를 좀 더 명확하게 설명해 드리겠습니다.
1. gLM의 역할 요약
- 첫 번째 역할: 임베딩 생성:
- gLM은 문서 와 문서 의 임베딩을 생성합니다. 이 임베딩은 문서 간의 유사도를 계산하는 데 사용됩니다. 임베딩을 통해 문서의 의미를 벡터로 표현하고, 이를 바탕으로 두 문서 간의 유사도를 평가할 수 있습니다.
- 문서 c는 일반적인 텍스트 데이터(일반 코퍼스)에서 가져온 문서입니다.
- 문서 z는 특정한 사용자-아이템 상호작용 또는 추천 시나리오와 관련된 텍스트 조각입니다. 이 문서 또한 gLM에 의해 임베딩 벡터로 변환됩니다.
- 두 번째 역할: 조건부 확률 계산:
- gLM은 또한 주어진 문서 c를 기반으로 문서 z가 나타날 확률, 즉 조건부 확률 p(z∣c)를 계산합니다.
- 이 과정은 언어 모델이 문서 c의 문맥을 바탕으로 문서 z를 예측하는 방식으로 이루어집니다. 언어 모델이 라는 텍스트를 입력으로 받아서, 그 텍스트의 문맥에서 문서 가 자연스럽게 이어지는지를 평가하는 것입니다.
2. 임베딩과 조건부 확률 계산의 차이
- 임베딩 생성:
- gLM은 문서 와 z에 대한 벡터 표현(임베딩)을 생성합니다. 이 임베딩은 텍스트의 의미를 수치화한 벡터로, 문서 간의 유사도를 계산하는 데 사용됩니다. 두 임베딩 간의 유사도는 두 문서가 의미적으로 얼마나 가까운지를 나타냅니다.
- 조건부 확률 계산:
- gLM은 문서 를 바탕으로 문서 가 등장할 확률을 계산합니다. 이때 언어 모델은 문맥을 분석하여, 문서 가 주어졌을 때 문서 z가 자연스럽게 이어질 가능성을 평가합니다. 이 확률은 문서 z의 각 단어가 주어진 문맥에서 얼마나 자연스럽게 발생하는지를 기반으로 계산됩니다.
3. gLM이 임베딩 생성과 조건부 확률 계산을 모두 할 수 있는 이유
언어 모델은 다음과 같은 두 가지 능력을 갖추고 있어 임베딩 생성과 조건부 확률 계산을 동시에 수행할 수 있습니다:
- 임베딩 생성 능력: 대부분의 사전 학습된 언어 모델(예: BERT, GPT 등)은 텍스트의 벡터 표현을 생성하는 데 능숙합니다. 이 벡터 표현은 텍스트의 의미적 정보를 고차원 공간에 압축한 것으로, 두 텍스트 간의 유사성을 비교할 때 유용합니다.
- 언어 생성 능력: 언어 모델은 주어진 문맥에서 다음 단어를 예측하는 능력도 있습니다. 따라서 문서 가 주어졌을 때, 문서 z가 자연스럽게 이어질 가능성을 평가할 수 있습니다. 이는 언어 모델의 조건부 확률 계산 능력으로, 문맥을 바탕으로 다음에 나올 가능성이 높은 텍스트를 예측할 수 있습니다.
4. 결론: gLM의 두 가지 작업
따라서, 논문에서 설명한 대로 gLM은 다음과 같은 두 가지 작업을 수행합니다:
- 임베딩 생성: 문서 c와 z를 각각 벡터로 변환하여, 두 문서 간의 유사도를 계산합니다.
- 조건부 확률 계산: 주어진 문서 c의 문맥에서 문서 z가 나타날 확률을 계산하여, 두 문서가 문맥적으로 얼마나 자연스러운지를 평가합니다.
아래 글에서 왜 최적의 접두사 프롬포트를 생성하지 못한다는거야?
저렇게 하면 모든 도메인에 대해서 S를 학습하는게 아니야?
이 부분에서 논문은 최적의 접두사 프롬프트(S*)를 생성하지 못하는 이유를 설명하고 있습니다. 이를 명확히 이해하기 위해 논문에서 말하는 도메인 간의 차이점과 프롬프트 학습의 한계를 기반으로 설명드리겠습니다.
1. 요약
이 문장에서 핵심적인 문제는 프롬프트 학습의 도메인 간 차이점 때문에 최적의 접두사 프롬프트(S*)를 생성할 수 없다는 것입니다. 문제의 원인은 프롬프트가 세 가지 중요한 정보를 캡처해야 하는데, 그 중 하나인 사용자-아이템 맥락(user-item context) 정보는 각 도메인마다 다르기 때문입니다.
2. 최적의 접두사 프롬프트(S*)의 구성 요소
논문에 따르면, 최적의 접두사 프롬프트(S*)는 세 가지 정보를 반영해야 합니다:
- 사용자-아이템 맥락 (user-item context): 각 사용자와 아이템에 대한 정보, 예를 들어, 사용자가 좋아하는 영화, 레스토랑, 상품 등에 대한 정보입니다.
- 감정 단어 (sentiment words): 추천 시스템이 긍정적 또는 부정적 감정을 표현하기 위해 사용하는 단어들입니다.
- 사용자-아이템 맥락과 감정 단어 간의 매핑: 특정 사용자와 아이템에 대한 정보가 주어졌을 때, 그 정보를 어떻게 감정 단어와 연결할지를 학습해야 합니다.
이 중 감정 단어와 그 매핑 정보는 모든 도메인에서 공유될 수 있습니다. 예를 들어, 영화, 음식, 장난감 등 어떤 도메인이든 '좋다', '나쁘다'와 같은 감정 표현은 동일하게 사용할 수 있습니다.
3. 도메인 간 차이점
그러나 문제는 사용자-아이템 맥락(user-item context)이 도메인마다 다르다는 것입니다.
- 각 도메인은 서로 다른 맥락을 가짐: 영화 추천, 레스토랑 추천, 뉴스 추천 등 다양한 추천 시스템에서 사용자-아이템 맥락이 다르게 나타납니다. 영화 추천 시스템에서의 맥락은 '액션 영화', '로맨스 영화' 등의 영화 카테고리일 수 있고, 레스토랑 추천 시스템에서는 '이탈리안 음식', '중식'과 같은 음식 유형이 될 수 있습니다. 각 도메인에서 이 맥락 정보는 매우 다르게 나타납니다.
4. 최적의 접두사 프롬프트 생성의 어려움
문제는 소스 도메인(즉, 다른 추천 시나리오)에서 학습한 접두사 프롬프트가 타겟 도메인에서 최적의 성능을 내지 못할 수 있다는 점입니다. 그 이유는 사용자-아이템 맥락 정보가 도메인마다 다르기 때문입니다.
- 왜 직접 학습으로는 안 되는가?:
- 만약 소스 도메인에서 접두사 프롬프트를 학습하면, 그 프롬프트는 해당 도메인의 사용자-아이템 맥락에 맞게 최적화됩니다. 예를 들어, 소스 도메인이 영화 추천 시스템이라면, 학습된 프롬프트는 영화 맥락에 맞게 설계됩니다.
- 그러나 타겟 도메인이 레스토랑 추천 시스템이라면, 영화와 관련된 맥락 정보는 레스토랑 추천에 적합하지 않을 수 있습니다. 사용자-아이템 맥락 정보는 공유되지 않기 때문에, 소스 도메인에서 학습된 프롬프트는 타겟 도메인에 적합하지 않게 됩니다.
5. 결론
이 문장에서 논문은 소스 도메인에서 학습한 접두사 프롬프트가 타겟 도메인에 최적화되지 못하는 이유를 설명하고 있습니다. 그 이유는 사용자-아이템 맥락 정보가 도메인마다 다르기 때문입니다. 비록 감정 단어와 그 매핑은 여러 도메인에 걸쳐 공유될 수 있지만, 사용자-아이템 맥락 정보는 도메인별로 다르게 나타나므로, 소스 도메인에서 학습한 프롬프트가 타겟 도메인에서 최적화되지 못하는 문제가 발생합니다.
따라서, 논문에서는 이러한 문제를 해결하기 위해 프롬프트를 "태스크 프롬프트"와 "도메인 프롬프트"로 분리하여 도메인 특화 정보와 공통 태스크 정보를 각각 처리하려는 방식을 제안합니다.
이 논문에서 테스트할 때 사용되었던 데이터셋에 대해 설명해줘
이 논문에서 테스트에 사용된 데이터셋에 대한 설명은 다음과 같습니다. 각 데이터셋은 서로 다른 도메인에서 수집된 사용자와 아이템 간의 상호작용 데이터를 기반으로 하며, 사용자와 아이템의 프로필 특징 및 상호작용 밀도에 차이가 있습니다.
1. ML-100K
- 도메인: 영화 추천 시스템
- 사용자 수/특징: 943명의 사용자가 있으며, 각 사용자에 대해 4개의 특징(예: 나이, 성별, 직업 등)이 있습니다.
- 아이템 수/특징: 1682개의 영화가 있으며, 각 영화에 대해 22개의 특징(예: 장르, 개봉 연도 등)이 제공됩니다.
- 상호작용 수: 100,000개의 사용자-아이템 상호작용(예: 사용자가 영화를 평가한 기록)이 포함되어 있습니다.
- 밀도: 3.15%의 밀도로, 이는 전체 가능한 사용자-아이템 조합 중에서 3.15%의 상호작용이 실제로 존재한다는 것을 의미합니다.
2. Coupon
- 도메인: 쿠폰 추천 시스템 (주로 운전자 대상)
- 사용자 수/특징: 8312명의 사용자가 있으며, 각 사용자에 대해 12개의 특징(예: 연령, 성별, 직업 등)이 제공됩니다.
- 아이템 수/특징: 6924개의 쿠폰이 있으며, 각 쿠폰에 대해 13개의 특징(예: 할인율, 쿠폰의 카테고리 등)이 제공됩니다.
- 상호작용 수: 12,684개의 사용자-아이템 상호작용이 있습니다.
- 밀도: 0.01%의 밀도로 매우 희박한 상호작용 데이터를 가지고 있습니다. 이는 쿠폰 사용 기록이 적다는 것을 의미합니다.
3. Restaurant
- 도메인: 레스토랑 추천 시스템
- 사용자 수/특징: 138명의 사용자가 있으며, 각 사용자에 대해 20개의 특징(예: 취향, 위치 등)이 제공됩니다.
- 아이템 수/특징: 939개의 레스토랑이 있으며, 각 레스토랑에 대해 25개의 특징(예: 음식 종류, 가격대 등)이 제공됩니다.
- 상호작용 수: 1,161개의 사용자-아이템 상호작용이 있습니다.
- 밀도: 0.45%의 밀도로, 쿠폰 데이터보다는 상호작용이 많지만 여전히 밀도가 낮은 편입니다.
데이터셋의 주요 특징
이 데이터셋들은 콜드 스타트 문제를 해결하기 위해 적합한 다양한 도메인에서 수집되었습니다. 각 데이터셋은 사용자-아이템 상호작용이 적거나 희박한 특성을 가지고 있으며, 이러한 데이터셋에서 시스템 콜드 스타트 상황을 시뮬레이션하고 테스트할 수 있습니다.
나 이 평가 수식이 이해가 잘 안가네
평가 수식에 대해 설명해줘
이 수식은 Group-AUC (GAUC)를 계산하는 수식입니다. GAUC는 개인화된 추천 시스템을 평가할 때, 각 사용자별로 AUC (Area Under the Curve)를 계산한 후, 이를 가중 평균하여 전체 시스템의 성능을 평가하는 방식입니다. 이 수식에 대한 설명을 단계별로 진행하겠습니다.
GAUC 정의
GAUC는 각 사용자에 대한 AUC 점수를 개별적으로 계산하고, 이를 각 사용자의 기록 수로 가중치를 주어 평균하는 방식입니다. 이를 통해 개별 사용자 수준에서의 추천 성능을 평가할 수 있습니다.
수식 분석
- ∑u∈U#historyu×AUC(u): 이 부분은 각 사용자 u에 대해 사용자별 AUC를 계산하고, 그 값을 해당 사용자의 상호작용 기록 수(#historyu)로 가중치를 준 후 모두 더한 것입니다.
- AUC(): 사용자 u에 대해 계산된 AUC 값입니다. AUC는 추천 성능을 평가하는 지표로, 완벽한 추천이 이루어졌다면 1에 가까운 값이 나옵니다.
- #historyu: 사용자 u에 대해 기록된 상호작용 수입니다. 예를 들어, 이 사용자가 10개의 아이템에 대해 상호작용한 기록이 있다면 #historyu=10입니다.
- ∑u∈U#historyu: 이는 모든 사용자에 대해 기록된 상호작용 수의 합입니다. 즉, 모든 사용자가 총 몇 번의 상호작용을 했는지를 계산합니다.
GAUC의 역할
이 수식은 모든 사용자의 AUC를 각각 계산한 후, 각 사용자의 상호작용 수로 가중 평균하여 시스템 전체의 성능을 측정하는 방법입니다. 사용자의 상호작용 기록이 많은 경우 그 사용자의 AUC가 더 큰 영향을 미치게 되고, 상호작용 기록이 적은 사용자는 그만큼 적은 영향을 미치게 됩니다.
직관적 이해
GAUC는 사용자 개개인의 추천 성능을 평가한 후, 그 성능을 전체적으로 통합한 값입니다. 만약 특정 사용자의 AUC가 높다면, 그 사용자는 시스템이 잘 추천하고 있다는 의미입니다. 반대로 AUC가 낮다면 그 사용자는 추천이 잘 되지 않는다는 의미입니다.
- 사용자 별로 개별적인 추천 성능을 평가한 후, 그 성능을 종합적으로 계산하는 방식으로 GAUC는 전체 시스템의 성능을 평가합니다.
그런데 왜 AUC가 개인화된 추천에서 한계가 있는거야?
AUC가 개별 사용자에 대한 성능 차이를 반영하지 못하는 이유를 더 구체적으로 설명해 드리겠습니다. 이를 이해하려면 AUC의 특성과 추천 시스템의 개별화된 성격을 이해하는 것이 중요합니다.
1. AUC의 본질
AUC (Area Under the ROC Curve)는 이진 분류 문제에서 양성과 음성을 구분하는 모델의 성능을 평가하는 지표입니다. AUC는 모델이 임의의 양성 샘플과 음성 샘플을 비교했을 때, 양성 샘플을 더 높은 확률로 분류할 확률을 의미합니다. AUC 값은 0.5에서 1 사이에 있으며, 1에 가까울수록 모델이 양성과 음성을 잘 구분한다고 평가합니다.
하지만, AUC는 전체적인 구분 능력을 평가할 뿐, 사용자마다 다른 선호와 상호작용 패턴을 구체적으로 반영하지 못합니다. 이는 개인화된 추천 시스템에서 중요한 문제가 됩니다.
2. AUC의 한계: 개별 사용자 반영 부족
AUC가 개인화된 추천 시스템에서 개별 사용자에 대한 성능 차이를 반영하지 못하는 이유는 AUC가 전체 데이터를 한꺼번에 평가하는 방식이기 때문입니다. 구체적으로 설명하면:
- 전체 데이터의 통합 평가: AUC는 모든 사용자와 아이템 간의 상호작용을 하나의 집합으로 취급하여 전체 성능을 평가합니다. 예를 들어, 100명의 사용자가 각각 10개의 아이템을 평가했다면, 이 1000개의 상호작용을 한꺼번에 평가하여 AUC 값을 계산합니다. 이 방식은 사용자별로 평가를 하지 않고, 전체 데이터에 대한 모델의 성능을 한 번에 측정합니다.
- 개인화된 정보 무시: 개인화된 추천 시스템에서는 각 사용자가 선호하는 아이템이 다르며, 상호작용 기록도 다를 수 있습니다. 어떤 사용자는 특정 장르의 영화만 보고, 다른 사용자는 다양한 장르의 영화를 볼 수 있습니다. 그러나 AUC는 이러한 개인화된 패턴을 반영하지 않고, 단순히 양성과 음성의 구분 능력만 평가하기 때문에 개별 사용자의 취향이나 상호작용 패턴을 반영하지 못합니다.
3. 사용자 간 상호작용 기록의 차이
사용자 간의 상호작용 기록은 매우 이질적일 수 있습니다. 예를 들어:
- 사용자 A는 매우 활발하게 상호작용을 하여 100개의 영화에 대해 평가했을 수 있습니다.
- 사용자 B는 몇 개의 영화만 평가했을 수 있습니다.
이 두 사용자는 분명히 다른 상호작용 패턴을 가지고 있으며, 추천 시스템의 성능도 각 사용자에게 다르게 나타날 수 있습니다. 그러나 AUC는 이러한 차이를 무시합니다. AUC는 전체 사용자와 아이템 상호작용을 한 번에 평가하기 때문에, 각 사용자가 얼마나 활발히 상호작용했는지와 사용자별로 추천 성능이 어떻게 달라지는지를 구체적으로 반영하지 못합니다.
4. 개별 사용자에 대한 AUC 계산의 필요성
추천 시스템은 사용자마다 다양한 선호와 다른 상호작용 기록을 가집니다. 따라서 각 사용자의 상호작용에 따라 개별적으로 평가하는 것이 중요합니다. 예를 들어:
- 사용자 A는 공포 영화를 좋아하고, 사용자 B는 코미디 영화를 좋아한다고 가정해봅시다. 이 두 사용자에게 같은 추천 모델을 적용했을 때, 추천 결과는 다르게 나타나야 하지만, AUC는 이러한 개별 사용자의 차이를 반영하지 않고 모든 사용자의 데이터를 통합하여 평가합니다.
따라서 AUC만으로는 개별 사용자에 대한 추천 성능을 명확하게 알 수 없습니다. 각 사용자가 얼마나 좋은 추천을 받았는지, 각 사용자의 선호에 맞는 추천이 얼마나 효과적이었는지를 평가하기 위해서는 사용자별로 AUC를 따로 계산하는 것이 필요합니다.
5. GAUC와 같은 개선된 지표의 필요성
이 문제를 해결하기 위해 GAUC (Group AUC)와 같은 지표가 도입되었습니다. GAUC는 각 사용자에 대해 AUC를 개별적으로 계산한 다음, 사용자의 상호작용 기록 수로 가중치를 부여하여 전체 성능을 계산합니다. 이렇게 하면 각 사용자의 상호작용 기록이 시스템 평가에 적절히 반영됩니다.
- 사용자별로 AUC를 계산함으로써, 각 사용자가 얼마나 좋은 추천을 받았는지 개별적으로 평가할 수 있습니다.
- 상호작용 기록 수로 가중치를 부여하여, 더 많은 상호작용을 가진 사용자가 전체 평가에 더 큰 영향을 미치도록 합니다.
결론
AUC는 전체적인 성능을 평가하는 데는 유용하지만, 개별 사용자 간의 성능 차이를 반영하지 못하는 한계가 있습니다. 이는 추천 시스템에서 특히 문제가 됩니다. 사용자마다 다른 선호와 상호작용 패턴을 가지기 때문에, 개인화된 추천 시스템에서는 각 사용자의 성능을 개별적으로 평가하는 것이 중요합니다. 이를 해결하기 위해 논문에서는 GAUC와 같은 지표를 사용해 각 사용자의 성능을 평가하고, 이를 가중 평균하여 시스템 전체 성능을 평가하는 방법을 제안하고 있습니다.
그럼 여기서 ML-100k나 Coupon, restaurant에서 학습을 진행했다고 하는데 그럼 학습 세트는 테스트 세트에 포함되지 않은 사람이나 item을 가지고 학습하는거야?
그럼 INTRODUCTION에서 말했던 것 처럼 시스템 콜드 스타트 추천 상황이 아닌거 아닌가...?
당신이 지적한 문제는 굉장히 중요한 논점입니다. 논문에서는 시스템 콜드 스타트 추천 상황을 다루고 있다고 설명하고 있지만, 이와 함께 제공된 ML-100K, Coupon, Restaurant 데이터셋으로 학습을 진행하고 있다고 합니다. 이 점을 논문을 기반으로 해석해 보겠습니다.
1. 시스템 콜드 스타트 추천이란?
논문에서 설명한 시스템 콜드 스타트 추천은 새로운 사용자와 새로운 아이템에 대한 상호작용 정보가 전혀 없는 상황에서 추천을 수행하는 것을 의미합니다. 이 상황에서는 학습 중에 어떠한 사용자-아이템 상호작용 기록도 사용하지 않으며, 기존의 상호작용 데이터를 전혀 참조할 수 없습니다. 즉, 학습과 추론 단계 모두에서 사용자와 아이템 간의 상호작용 데이터가 없는 상태에서 추천 시스템을 구축해야 합니다.
2. 논문의 학습 방식: 소스 데이터셋과 타겟 데이터셋
논문에서는 시스템 콜드 스타트 추천 문제를 해결하기 위해 소스 도메인 데이터셋을 사용하여 학습을 진행하고, 그 후 타겟 도메인에 대해 추천을 수행한다고 설명하고 있습니다. 여기서 소스 도메인과 타겟 도메인의 관계는 중요합니다.
- 소스 도메인 데이터셋: 이 데이터셋들은 사용자-아이템 상호작용이 존재하는 데이터로, 타겟 도메인과는 다른 도메인입니다. 예를 들어, 영화 추천 데이터를 소스 도메인으로 사용할 수 있습니다.
- 타겟 도메인 데이터셋: 이 데이터셋은 시스템 콜드 스타트 상황을 시뮬레이션하기 위해 사용되며, 여기서는 상호작용이 없는 새로운 사용자와 아이템에 대해 추천을 수행합니다.
3. 데이터셋 사용의 목적
각 데이터셋(ML-100K, Coupon, Restaurant)은 콜드 스타트 상황을 시뮬레이션하기 위해 다르게 사용됩니다. 구체적으로 설명하면:
- 학습 세트: 이 세트는 다른 도메인에서 수집된 상호작용 데이터를 포함합니다. 예를 들어, 영화 추천 데이터(ML-100K)에서 학습된 모델은 쿠폰 추천(Coupon)이나 레스토랑 추천(Restaurant)에 대해 타겟 도메인으로 적용됩니다. 중요한 점은, 이 타겟 도메인에서는 새로운 사용자와 새로운 아이템에 대해 상호작용 기록이 없다는 점입니다. 즉, 타겟 도메인에 속한 사용자나 아이템에 대해 모델이 학습하는 것이 아니며, 기존의 도메인에서 학습된 모델을 새로운 도메인에 적용합니다.
- 테스트 세트: 여기서 중요한 것은 시스템 콜드 스타트 상황을 반영한 테스트입니다. 즉, 테스트할 때는 타겟 도메인(예: 쿠폰 추천)에 대한 사용자-아이템 상호작용 기록이 전혀 없는 상태에서 추천을 수행해야 합니다.
4. 시스템 콜드 스타트와 학습의 차이
이 논문의 설정은 소스 도메인 데이터로 학습하고, 타겟 도메인에서 콜드 스타트 추천을 수행하는 구조입니다. 다시 말해, ML-100K, Coupon, Restaurant 데이터셋은 특정 도메인의 학습과 테스트에 각각 사용되지만, 시스템 콜드 스타트 추천 문제는 타겟 도메인에서의 새로운 사용자와 아이템을 대상으로 상호작용 데이터 없이 진행됩니다.
따라서, 학습 데이터와 테스트 데이터가 동일한 도메인에 속해 있는 것처럼 보일 수 있지만, 실제로는 다른 도메인 데이터로부터 학습된 모델을 새로운 사용자와 아이템에 적용하는 방식으로 시스템 콜드 스타트 추천을 시뮬레이션하고 있습니다.
결론
- 소스 도메인에서 학습된 모델은 타겟 도메인의 새로운 사용자와 아이템에 대해 학습되지 않은 상태에서 추천을 수행합니다.
- 타겟 도메인에서의 상호작용 기록은 학습 과정에서 사용되지 않기 때문에, 시스템 콜드 스타트 추천 상황을 반영하고 있습니다.
따라서 논문에서 언급된 시스템 콜드 스타트 문제는 여전히 충실히 반영된 것이며, 상호작용 기록이 없는 상황에서 추천을 수행하는 구조를 유지하고 있습니다.
그럼 이 데이터를 통해 gLM을 학습시켜서 C^을 만들어 fLM을 학습시킨다는 거야?
상호 작용 정보가 사용되는 것이 아니라 아이템과 프로필에 대한 정보만 들어간다고?
네, 맞습니다. 논문에서 설명한 방식에 따르면, 상호작용 정보가 없는 상황에서 아이템과 사용자 프로필 정보만을 사용하여 추천 시스템을 학습하는 방식입니다. 이를 구체적으로 설명드리겠습니다.
1. gLM을 사용한 C^ 생성
먼저, 논문에서는 gLM을 사용하여 큰 일반적인 코퍼스 C에서 정제된 코퍼스 C^를 생성합니다. 이 과정에서 중요한 것은, 상호작용 정보(예: 사용자가 어떤 아이템을 클릭하거나 평가한 기록)가 사용되지 않는다는 점입니다. 대신, 아이템과 사용자 프로필 정보를 기반으로 추천에 필요한 정보를 추출하게 됩니다.
- gLM은 주어진 텍스트 데이터에서 임베딩을 생성하고, 이 임베딩을 바탕으로 문서 간의 유사도를 계산합니다.
- 이를 통해, 일반적인 코퍼스 C에서 사용자-아이템 프로필 정보와 관련성이 높은 문서들로 구성된 정제된 코퍼스 C^가 생성됩니다.
이 정제된 코퍼스는, 사용자와 아이템의 프로필 정보에 기반하여 추천 시스템이 학습할 수 있는 데이터를 제공합니다.
2. C^을 사용한 fLM 학습
정제된 코퍼스 C^는 fLM의 학습에 사용됩니다. 여기서 중요한 점은, 상호작용 정보가 아니라 프로필 정보만 사용된다는 것입니다. 예를 들어:
- 사용자 프로필에는 사용자의 나이, 성별, 취향, 위치 등이 포함됩니다.
- 아이템 프로필에는 아이템의 이름, 카테고리, 브랜드 등의 정보가 포함됩니다.
이 정보를 바탕으로 fLM은 학습됩니다. 즉, 사용자와 아이템의 프로필 정보를 기반으로 감정(긍정 또는 부정) 단어와의 연관성을 학습하며, 이로부터 사용자에게 추천할 아이템을 예측하게 됩니다.
3. 상호작용 데이터 대신 프로필 정보를 활용하는 이유
시스템 콜드 스타트 상황에서는 상호작용 데이터가 존재하지 않기 때문에, 추천 시스템이 직접적으로 상호작용 정보를 학습하는 것이 불가능합니다. 따라서 논문에서는 프로필 정보에 의존하여 추천을 수행하는 접근 방식을 사용합니다.
이 방식은 다음과 같은 이유로 효과적일 수 있습니다:
- 상호작용 데이터가 없더라도, 사용자와 아이템의 프로필에 포함된 정보는 어느 정도 사용자 선호도를 예측하는 데 유용할 수 있습니다. 예를 들어, 나이와 성별 정보가 특정 카테고리의 아이템 선호도와 관련이 있을 수 있습니다.
- 추천 모델은 언어 모델의 능력을 활용하여, 사용자 프로필과 아이템 프로필 간의 관계를 학습하고, 이를 바탕으로 개별 사용자에 맞춘 추천을 수행할 수 있습니다.
4. 결론
네, 논문에서 설명한 방식은 상호작용 정보가 없는 상황에서도 프로필 정보를 활용하여 추천 모델을 학습하는 방식입니다.
- gLM은 일반 코퍼스에서 사용자-아이템 프로필과 연관성이 높은 데이터를 찾아내고,
- 이를 바탕으로 생성된 정제된 코퍼스 C^를 사용해 fLM을 학습시키며,
- fLM은 프로필 정보만으로도 추천을 수행할 수 있도록 학습됩니다.
따라서 상호작용 기록이 없는 시스템 콜드 스타트 상황에서 효과적인 추천을 가능하게 하는 구조를 갖추고 있습니다.
'인공지능 > 논문 리뷰 or 진행' 카테고리의 다른 글
Scalable and Effective Generative Information Retrieval - 리뷰 (0) | 2024.08.13 |
---|---|
Debiasing Recommendation with Personal Popularity 리뷰 (0) | 2024.08.13 |
Towards Robustness Analysis of E-Commerce Ranking System - 리뷰 (0) | 2024.08.06 |
Co-clustering for Federated Recommender System - 리뷰 (0) | 2024.08.06 |
Content-based Graph Reconstruction for Cold-start Item Recommendation - 리뷰 (0) | 2024.07.31 |