LLM의 시대에 "추천 시스템" 및 "검색" 개선방법
(eugeneyan.com)- 추천 시스템 및 검색은 역사적으로 언어 모델에서 영감을 받아 발전해 왔음
- Word2vec → 아이템 임베딩 학습 (임베딩 기반 검색)
- GRU, Transformer, BERT → 다음 추천 아이템 예측 (랭킹)
- 현재 대형 언어 모델(LLM)의 패러다임도 같은 방향으로 진화 중
- 주요 발전 사항
-
1. LLM/멀티모달 강화 모델 아키텍처
-
2. LLM 기반 데이터 생성 및 분석
-
3. Scaling Laws, 전이 학습, 지식 증류, LoRA
-
4. 검색 및 추천의 통합 아키텍처
-
LLM/멀티모달 강화 모델 아키텍처
- 추천 모델이 언어 모델(LLM) 및 멀티모달 콘텐츠를 도입해 전통적인 ID 기반 접근 방식의 한계를 극복 중
- 행동 모델링의 강점과 콘텐츠 이해를 결합 → 콜드 스타트 및 롱테일 문제 해결
-
1. Semantic IDs (YouTube)
- 기존 해시 기반 ID 대신 콘텐츠에서 파생된 Semantic ID 사용
-
이중 단계 프레임워크 도입:
- Transformer 기반 비디오 인코더 → 고밀도 콘텐츠 임베딩 생성
- RQ-VAE(Residual Quantization Variational AutoEncoder) → 임베딩을 정수 형태의 Semantic ID로 변환
-
RQ-VAE 구조:
- 256차원 잠재 공간, 8개 양자화 레벨, 레벨당 2048개 코드북 항목
- Transformer 기반의 VideoBERT 백본에서 2048차원 임베딩 생성
-
결과:
- 랜덤 해시 ID보다 직접적인 고밀도 임베딩 성능이 떨어짐
- N-gram 및 SPM(SentencePiece Model) 기반 접근이 특히 콜드 스타트 시나리오에서 우수한 성능 제공
-
2. M3CSR (Kuaishou)
- 멀티모달 콘텐츠 임베딩(비주얼, 텍스트, 오디오) → K-means로 클러스터링 후 학습 가능한 ID로 변환
-
듀얼 타워 구조:
- 사용자 측 타워: 사용자 행동 모델링
- 아이템 측 타워: 아이템 임베딩 사전 계산 및 인덱싱
-
학습 과정:
- ResNet(비주얼), Sentence-BERT(텍스트), VGGish(오디오) 임베딩 병합 → K-means 클러스터링 (~1000개 클러스터)
- 클러스터 ID를 학습 가능한 임베딩으로 매핑
-
결과:
- A/B 테스트에서 클릭 +3.4%, 좋아요 +3.0%, 팔로우 +3.1% 개선
- 콜드 스타트 시나리오에서 속도 +1.2%, 커버리지 +3.6% 개선
-
3. FLIP (Huawei)
- ID 기반 추천 모델과 LLM 간의 정렬
- 마스킹된 텍스트 및 테이블 데이터에서 동시에 학습 → 다중 모달 정렬 수행
-
학습 단계:
- 1. 모달 변환: 테이블 데이터를 텍스트로 변환
- 2. 모달 정렬 사전학습: 마스킹된 텍스트 및 ID 재구성
- 3. 적응형 미세 조정: 클릭 예측에 대해 양 모델 가중치 최적화
-
결과:
- ID 기반, LLM 기반 및 ID + LLM 모델보다 성능 우수
- 마스킹 수준 및 다중 모달 정렬이 성능 개선에 중요한 역할
-
4. beeFormer
- 텍스트 정보와 사용자-아이템 상호작용 데이터 기반 Transformer 모델 훈련
- ELSA(Scalable Linear Shallow Autoencoder) 기반 디코더 사용 → 상호작용 패턴 학습 강화
-
훈련 과정:
- Transformer로 임베딩 생성 → ELSA를 통해 사용자 행동 패턴 학습
- 대규모 카탈로그에서 훈련을 최적화하기 위해 그래디언트 체크포인팅, 배치 크기 확장, 음성 샘플링 사용
-
결과:
- mpnet-base-v2, bge-m3 등의 기존 모델보다 우수한 성능 제공
- 도메인 간 전이 학습에서 성능 향상 관찰
-
5. CALRec (Google)
- 텍스트 기반 프롬프트로 사용자-아이템 상호작용 모델링
- PaLM-2 XXS 기반 모델에 대한 2단계 미세 조정
-
훈련 단계:
- 1. 다중 카테고리 학습: 범용 추천 패턴 학습
- 2. 특정 카테고리 학습: 아이템 카테고리에 특화된 패턴 학습
-
결과:
- Amazon Review Dataset에서 ID 및 텍스트 기반 모델보다 성능 우수
- 다중 카테고리 학습 및 대비 학습이 성능 개선에 기여
-
6. EmbSum (Meta)
- 사용자 관심 요약 및 후보 아이템 요약 생성
- T5-small 및 Mixtral-8x22B-Instruct 모델 사용
-
구성 요소:
- User Poly-Embeddings (UPE) → 사용자 관심 임베딩
- Content Poly-Embeddings (CPE) → 아이템 임베딩
- 요약 생성 → 인코더에 주입 → 최종 추천 생성
-
결과:
- 콘텐츠 기반 추천 모델 대비 성능 우수
- 세션 기반 그룹화 및 요약 손실이 성능에 중요한 역할
LLM 기반 데이터 생성 및 분석
- LLM은 추천 및 검색 시스템의 데이터 부족 문제 해결 및 데이터 품질 강화에 사용됨
- 주요 적용 사례:
- Bing → 웹페이지 메타데이터 생성 및 클릭 예측 성능 강화
- Indeed → 저품질 구인 매칭 필터링
- Yelp → 검색 쿼리 이해 및 리뷰 하이라이트 개선
- Spotify → 탐색 검색 쿼리 생성
- Amazon → 재생목록 메타데이터 강화 및 검색 성능 개선
-
1. Recommendation Quality Improvement (Bing)
- GPT-4를 사용해 웹페이지에서 고품질 타이틀 및 요약 생성
- 약 200만 개 웹페이지에서 생성된 메타데이터로 Mistral-7B 모델 미세 조정
- MiniLM 기반 크로스 인코더를 학습해 클릭 예측 및 품질 점수를 결합
-
결과:
- 클릭베이트 콘텐츠 31% 감소, 중복 콘텐츠 76% 감소
- 권위 있는 콘텐츠 18% 증가, 크로스 미디어 추천 48% 증가
-
2. Expected Bad Match (Indeed)
- GPT-3.5를 인간 리뷰 데이터로 미세 조정해 저품질 구인 매칭 필터링 모델(eBadMatch) 구축
- GPT-4 수준의 성능을 유지하면서 비용 및 속도 개선
- 최종 필터링 모델은 매칭 초대 이메일 수를 17.68% 줄이고, 구독 취소율 4.97% 감소, 신청률 4.13% 증가
-
결과:
- 필터링 모델의 AUC-ROC 성능: 0.86
-
3. Query Understanding (Yelp)
- LLM을 사용해 검색 쿼리 세분화 및 리뷰 하이라이트 개선
- 쿼리 세분화:
- 주제, 이름, 시간, 장소 등을 구분해 의미 태그 추가
- RAG(Retrieval-Augmented Generation) 기법 적용해 문맥 기반 쿼리 이해 강화
- 리뷰 하이라이트:
- LLM을 사용해 하이라이트 생성 → OpenAI 배치 호출로 대규모 확장
-
결과:
- 검색 세션 및 클릭률 향상
- 롱테일 쿼리에서도 성능 개선
-
4. Query Recommendations (Spotify)
- Spotify에서 직접적인 검색 결과 외에 탐색형 검색 쿼리 추천 도입
- 쿼리 생성 방법:
- 카탈로그 제목, 재생 목록, 팟캐스트에서 추출
- 검색 로그에서 사용자 최근 검색 반영
- LLM을 사용한 문장 생성 기법 적용 (Doc2query, InPars 등)
- 쿼리 추천을 개인화된 벡터 임베딩으로 랭킹화
-
결과:
- 탐색형 쿼리 비율 +9% 증가
- 최대 쿼리 길이 +30% 증가, 평균 쿼리 길이 +10% 증가
-
5. Playlist Search (Amazon)
- LLM을 사용해 커뮤니티 재생 목록의 메타데이터 생성 및 강화
- Flan-T5-XL 모델을 미세 조정해 데이터 생성 효율성 강화
- LLM 생성 쿼리와 재생 목록 매칭 데이터를 사용해 양방향 인코더 모델 학습
-
결과:
- 검색 결과 재현율(double-digit) 개선
- SEO 성능 및 패러프레이징 성능 개선
Scaling Laws, 전이 학습, 지식 증류, LoRA
-
Scaling Laws
- 모델 크기와 데이터 양이 성능에 미치는 영향을 분석한 연구
- Decoder-only Transformer 아키텍처 사용 (98.3K ~ 0.8B 파라미터 범위)
- MovieLens-20M 및 Amazon-2018 데이터셋에서 평가
- 고정된 길이의 50개 항목 시퀀스를 사용해 다음 항목 예측
-
주요 기법:
- 층별 적응형 드롭아웃 → 낮은 층은 높은 드롭아웃, 높은 층은 낮은 드롭아웃 적용
- Adam → SGD 전환 → 초기 학습은 Adam, 이후에는 SGD로 전환해 수렴 속도 개선
-
결과:
- 모델 크기가 클수록 교차 엔트로피 손실 감소
- 작은 모델은 더 많은 데이터가 필요하지만, 큰 모델은 더 적은 데이터로도 우수한 성능 달성
- 75.5M 및 98.3K 모델은 2~5 에포크에서 성능 향상
-
PrepRec
- 추천 시스템에서 사전 학습 적용 → 도메인 간 전이 학습 가능
- 항목 메타데이터 없이 항목 인기 동적 변화만으로 학습 가능
- 사용자 상호작용 간 상대적 시간 간격 및 위치 인코딩 사용
-
결과:
- zero-shot 추천에서 recall@10 성능이 2~6% 감소했지만 훈련 후 성능은 유사
- 타겟 도메인에서 훈련 후 성능은 SasREC 및 BERT4Rec 모델과 동등 수준 달성
-
E-CDCTR (Meituan)
- 광고 클릭 예측 모델에서 전이 학습 적용
-
TPM → CPM → A-CTR의 3단계 학습 구조 사용
- TPM → 사용자 및 항목 임베딩 학습
- CPM → 최신 유기 데이터로 사전 학습
- A-CTR → 광고 데이터로 세부 조정
-
결과:
- CPM이 성능에 가장 큰 영향 → 장기 협업 필터링 신호 학습 가능
- 과거 3개월의 임베딩을 사용해 성능 개선
-
Bridging the Gap (YouTube)
- 지식 증류를 통한 대규모 개인화 비디오 추천
- 교사-학생 모델 구조 사용 (교사 모델이 학생 모델보다 2~4배 큼)
- 직접 예측 대신 보조 증류 전략 사용 → 분포 이동 문제 해결
-
결과:
- 보조 증류 전략 적용 시 성능이 0.4% 개선
- 교사 모델 크기가 2배일 때 +0.42%, 4배일 때 +0.43%의 성능 개선 달성
-
Self-Auxiliary Distillation (Google)
- 대규모 추천 모델의 샘플 효율성 개선
- 양방향 브랜치 구조 → 교사 레이블 및 원본 레이블 혼합 학습
- 부정 레이블을 0이 아닌 추정 CTR 값으로 처리
-
결과:
- 다양한 도메인에서 성능 일관되게 개선
- 훈련 안정성 강화 및 모델 출력 정밀도 향상
-
DLLM2Rec
- 대형 언어 모델의 추천 지식을 경량 모델에 증류
-
중요도 기반 랭킹 증류 및 협업 임베딩 증류 사용
- 중요도 기반 랭킹 증류 → 항목 순위 및 일관성에 가중치 적용
- 협업 임베딩 증류 → 교사와 학생 모델 간 임베딩 차이를 보정
-
결과:
- GRU4Rec, SASRec, DROS 모델에서 평균 성능 47.97% 개선
- 추론 시간은 교사 모델의 3
6시간 → 1.61.8초로 감소
-
MLoRA (Alibaba)
- CTR 예측에서 도메인별 LoRA (Low-Rank Adaptation) 적용
- 공통 백본 모델 사전 학습 후 도메인별 LoRA로 미세 조정
- LoRA 랭크를 레이어별로 동적으로 설정
-
결과:
- AUC 성능 +0.5% 개선
- CTR +1.49%, 전환율 +3.37%, 유료 구매자 +2.71% 증가
-
Taming One-Epoch (Pinterest)
- 한 번의 에포크에서 과적합 발생 문제 해결
-
대조 학습을 사용해 훈련 단계 분리
- 첫 번째 단계 → 임베딩 학습
- 두 번째 단계 → 세부 조정
-
결과:
- 기존 BCE 손실보다 성능 개선
- 홈피드 +1.32%, 관련 핀 +2.18% 성능 상승
-
Sliding Window Training (Netflix)
- 긴 사용자 기록을 메모리 부담 없이 학습하기 위한 슬라이딩 윈도우 학습 도입
- 훈련 에포크마다 다른 사용자 기록 세그먼트를 선택해 학습
- 최신 100개 상호작용과 장기 상호작용 균형 유지
-
결과:
- 최신 상호작용만 사용한 모델보다 일관된 성능 개선
- Mean Average Precision(MAP) +1.5%, recall +7.01% 개선
검색 및 추천 통합 아키텍처
-
Bridging Search & Recommendations (Spotify)
- 검색 및 추천 데이터를 하나의 생성 모델에서 통합 학습
- Flan-T5-base를 기반으로 아이템 ID를 토큰으로 변환해 학습
- 생성 추천 모델: 사용자 상호작용 기반으로 다음 아이템 예측
- 생성 검색 모델: 텍스트 쿼리에서 아이템 ID 예측
-
결과:
- 단일 태스크 모델보다 평균 16% 성능 개선 (recall@30 기준)
- 팟캐스트 데이터셋에서 검색 성능 +855%, 추천 성능 +262% 개선
- 기존 추천 및 검색 모델(BM25, SASRec 등) 성능에는 미치지 못함
-
360Brew (LinkedIn)
- 150B 파라미터 규모의 단일 모델로 30개 이상의 랭킹 태스크 수행
- Mixtral-8x22B 모델 기반 → 연속 사전 학습(CPT) → 명령어 미세 조정(IFT) → 지도 학습(SFT) 진행
- 자연어 인터페이스 도입 → 피처 엔지니어링 대신 프롬프트 엔지니어링 활용
-
결과:
- 기존 특화 모델과 동등하거나 더 나은 성능 달성
- 대규모 데이터셋(3배 증가)에서 성능 개선
- 콜드 스타트 사용자 성능 개선 → 기존 모델 대비 우수
-
UniCoRn (Netflix)
- 검색 및 추천 태스크를 하나의 모델에서 처리
- 사용자 ID, 검색 쿼리, 국가, 소스 엔터티 등 컨텍스트 정보 사용
- 컨텍스트-타겟 기능 및 특성 교차(feature crossing) 활용
-
결과:
- 추천 성능 +10%, 검색 성능 +7% 개선
- 개인화 강화로 성능 개선
- 태스크 유형 및 결측값 처리 중요성 확인
-
Unified Embeddings (Etsy)
- Transformer 기반, 텍스트 기반 및 그래프 기반 임베딩 통합
- T5 모델을 미세 조정해 쿼리-상품 매칭 강화
- Hard negative sampling 및 근접 검색(ANN) 적용
-
결과:
- 전환율 +2.63%, 유기 검색 구매율 +5.58% 개선
- 그래프 임베딩이 성능에 가장 큰 기여 (+15%)
-
Embedding Long Tail (Best Buy)
- 장기 꼬리(long-tail) 쿼리 문제 해결
- 사용자 행동 기반의 내부 BERT 모델 사용 → 검색 및 상품 인코딩
- Llama-13B로 생성된 합성 쿼리를 통해 데이터 강화
-
결과:
- 전환율 +3% 개선
- 쿼리-상품 매칭 성능 개선 (+4.67%)
-
User Behavioral Service (YouTube)
- 사용자 임베딩 생성 모델과 추천 모델 분리
- 비동기적으로 사용자 임베딩 생성 → 고속 캐싱 사용
- 요청 시 임베딩 미사용 시 빈 값 반환 후 비동기 갱신
-
결과:
- 사용자 시퀀스 모델 크기 확장 → 비용 증가 억제 (28.7% → 2.8%)
- 추천 성능 전반 개선 (0.01% ~ 0.40%)
-
Modern Ranking Platform (Zalando)
- 검색 및 브라우징 통합 시스템 구축
- 후보 생성 → 랭킹 → 정책 레이어 구조 사용
- Transformer 기반 고객 임베딩 + 벡터 데이터베이스 적용
-
결과:
- 전반적인 참여율 +15%, 수익 +2.2% 개선
- 훈련 가능한 임베딩 도입 후 추가 성능 개선
마무리
- 2023년의 초기 연구(LLM을 추천 및 검색에 적용)는 부족했지만, 최근의 노력은 특히 업계 결과에 뒷받침되어 더 큰 희망을 보여줌
- 이는 LLM을 사용하여 추천 시스템 및 검색 시스템을 증강하는 것을 탐구하는 것이 실질적인 이점이 있으며, 비용과 노력을 줄이는 동시에 성과를 증가시킬 수 있음을 시사
Hacker News 의견
-
Spotify의 검색 쿼리 관련 업데이트가 사용자에게 더 복잡한 의도를 표현할 수 있도록 도왔다는 분석이 있음
- 그러나 사용자가 원하는 정보를 얻기 위해 더 많이 검색하고 긴 쿼리를 입력해야 했다는 점에서 개선으로 해석하기 어려움
-
LLM을 활용하여 검색 쿼리와 인덱스를 강화하는 팀들이 많음
- 작은 모델과 간단한 프롬프트로도 검색 문자열을 구조화된 쿼리로 변환할 수 있음
- 문서를 분류하거나 캐시를 활용하는 것도 가능함
- 이러한 작업을 하지 않는다면 실수일 수 있음
-
Eugene이 컨퍼런스 직후에 작업을 발표하는 것이 흥미로움
- 전통적으로는 박사 과정 학생이 12개월 정도 걸려 발표하는 논문이었을 것임
- Eugene의 능력인지 아니면 새로운 경향인지 궁금함
-
Spotify 경험이 시간이 지남에 따라 나빠진 이유를 설명함
-
아침에 일어나자마자 이 기사를 텍스트 음성 변환 모델로 듣기 시작함
- 전문 용어가 많아 저자가 매우 지적으로 보이지만 정보를 효과적으로 전달하지는 못함
- 학술 논문에서 자주 보이는 현상이며, 본인의 연구 논문도 예외가 아님
- ML 분야의 전문가가 아니므로 대상 독자가 아닐 수 있음
- 다른 사람들도 같은 느낌을 받았는지 궁금함
- 이 의견이 너무 부정적이지 않기를 바람
-
SASRec과 Bert4Rec의 변형이 ID-토큰으로 훈련되며 LLM과 유사한 확장 법칙을 보임
- Meta의 접근 방식이 예시로 제시됨
-
추천 시스템과 포럼을 결합하는 것이 사회에 큰 재앙이 되었다고 생각함
-
PC와 스마트폰에 LLM 기반 검색 도구가 없는 이유에 대한 의문
- 특히 스마트폰의 데이터가 클라우드에 저장되므로 광고나 FBI를 위한 스크래핑 대신 사용자에게 유용한 기능을 제공할 수 있음
-
추천 시스템에 대한 훌륭한 개요로 보임
- 주요 포인트는 지연 시간이 주요 문제라는 것임
- 미세 조정이 큰 개선을 가져올 수 있으며 지연 시간을 줄일 수 있음
- 프롬프트나 미세 조정을 사용해야 하는 임계값이나 문제가 있음
-
이러한 논문들이 학술 연구실에서 나오지 않는 것이 흥미로움