DevLog

엔지니어링 블로그를 한 곳에서 탐색하고, 최근 발행 흐름을 빠르게 파악할 수 있는 서비스 입니다.

Quick Links

  • Latest Feed
  • Engineering Directory

Support

  • 소개
  • 개인정보처리방침

Contribute

  • 원하는 블로그 추가 (준비 중)
  • Feedback

© 2026 DevLog Inc. All rights reserved.

본 사이트는 공개 RSS 피드를 통해 콘텐츠를 수집하며, 모든 콘텐츠의 저작권은 원저작자에게 있습니다.

Back to Feed
Read Original

Contents

Continue Reading

  • More from 포스타입
  • Related reads#OpenSearch
#Backend

포스타입이 개인화 추천을 하는 방법 1부

포스타입이 개인화 추천을 하는 방법 1부
01

Summary

단순 태그 매칭은 끝났다, 포스타입이 유저의 진짜 '취향'을 벡터로 찾아내는 방법

OpenSearch HNSW 벡터 검색과 하이브리드 알고리즘 도입으로 구매 건수 15% 폭발적 성장시킨 이야기

본 아티클은 포스타입이 겉으로 드러나는 태그 정보의 한계를 넘어 유저의 깊은 내면 취향을 타겟팅하기 위해 구축한 벡터 기반 개인화 추천 시스템 기술을 상세히 소개합니다. OpenSearch 환경에서의 HNSW 그래프 튜닝, 키워드와 벡터를 혼합한 하이브리드 검색, 그리고 인기 편향 완화를 위한 시그모이드 기반 태그 가중치 처리 등 실무적인 추천 고도화 전략을 담고 있습니다. 오프라인과 온라인 A/B 테스트를 거쳐 비즈니스 성장으로 이어지기까지의 실전 데이터 기반 성과를 제공합니다.

  • 01텍스트 매칭 한계 극복을 위한 유저 행동 및 포스트 데이터의 고차원 벡터 임베딩 구현
  • 02OpenSearch KNN과 FAISS HNSW 알고리즘 조율을 통한 수백만 규모 벡터 검색 속도 최적화
  • 03점수 스케일이 다른 BM25 키워드 검색과 KNN 의미 검색을 결합한 하이브리드 검색 시스템 구축
  • 04인기 태그의 영향력을 낮추기 위해 시그모이드 함수를 활용한 정밀한 태그 가중치(DF) 계산 도입
  • 05콘텐츠 기반 추천과 협업 필터링의 시너지로 프로덕션 구매 건수 15% 상승 증명

+RECOMMENDATION

기존에 구축된 OpenSearch 인프라를 적극적으로 활용하면서, 텍스트 검색 한계를 넘어 의미 검색과 개인화 추천 파이프라인을 빠르고 안정적으로 구축하려는 백엔드 개발자 및 데이터 엔지니어에게 훌륭한 실무 지침서가 됩니다.

The Problem

기존의 단순 키워드 및 태그 매핑 방식은 작가들의 주관적인 태그 작성 스타일 차이나 동음이의어 문제로 인해 유저의 실제 관심사나 콘텐츠의 세밀한 분위기를 정확하게 포착해 추천하지 못하는 한계가 있었습니다.

The Solution

포스트와 유저의 행동 데이터를 고차원 벡터로 변환(임베딩)하고 OpenSearch의 HNSW 알고리즘을 사용해 코사인 유사도 기반의 근사 최근접 이웃(ANN) 검색을 구현하였으며, 키워드 검색(BM25)과 결합한 하이브리드 검색 및 시그모이드 함수 기반의 태그 가중치 조절 방식을 도입했습니다.

The Result

오프라인 검증 단계에서 협업 필터링 기반의 추천이 대조군 대비 압도적인 70% 이상의 Hit Rate를 기록했으며, 실제 서비스 내 A/B 테스트 결과 기존 추천 시스템의 판매량을 잠식하지 않으면서도 전체 구매 건수를 15% 증가시켰습니다.

Trade-off

HNSW 알고리즘은 파라미터 조절이 유연하지만 벡터 데이터와 그래프 연결 수가 늘어날수록 인덱스 메모리 크기가 지속적으로 증가하는 한계가 있으며, 서로 다른 척도를 가진 BM25 점수와 KNN 유사도 점수를 합산하기 위해 추가적인 정규화 처리 비용이 발생합니다.

03

Key Concepts

Concept · 01

HNSW (Hierarchical Navigable Small World)

고차원 데이터 공간에서 데이터 포인트들을 계층적 그래프로 연결하여 가장 유사한 이웃 벡터를 매우 빠른 속도로 찾아내는 근사 최근접 이웃(ANN) 탐색 알고리즘입니다.

  • OpenSearch KNN 상에서 대규모 벡터들의 빠른 검색 성능과 정확도 균형을 잡기 위해 채택되었습니다.
  • m, ef_construction, ef_search 등 런타임 및 빌드 파라미터를 조율하여 메모리 요구사항 내에서 최적화를 수행했습니다.
Concept · 02

하이브리드 검색 (Hybrid Search)

전통적인 형태소/단어 매칭 기반의 텍스트 검색 점수(BM25)와 의미적 맥락을 반영하는 벡터 유사도 점수(KNN)를 결합하여 최종 결과 순위를 산출하는 고도화된 검색 모델입니다.

  • 유저의 명시적인 선호 태그 검색과 취향 벡터 검색 결과를 병합하는 과정에 사용되었습니다.
  • 척도가 다른 두 점수를 상호 보정하기 위해 min-max 정규화 연산을 거쳐 균형 있는 추천 스코어를 도출했습니다.
Concept · 03

인기 편향 완화 (Popularity Bias Mitigation)

모든 유저에게 노출되는 흔하고 대중적인 아이템(태그)의 가중치를 낮추고, 유저 개별 취향에 부합하는 소수의 희소한 정보를 발굴하여 추천의 질을 높이는 기법입니다.

  • 흔하게 붙는 범용적인 태그가 유저의 독특한 취향 필터링을 방해하지 못하도록 적용되었습니다.
  • 문서 빈도(DF)에 로그를 취해 시그모이드 함수에 통과시킴으로써 변별력 없는 인기 태그의 가중치를 유연하게 억제했습니다.
Continue reading · same source

포스타입More from 포스타입

View all posts from 포스타입
  • "이번 달 얼마 남았지?"를 없애는 방법

    Chrome ExtensionAI AssistantPrototyping
    2주 전
  • 포스타입이 개인화 추천을 하는 방법 2부

    OpenSearchKNNHNSW
    3주 전
  • AI 코드 리뷰, 3번 갈아엎고 배운 것

    Claude CodeGitHub ActionsCode Review
    1개월 전
  • 10년 된 에디터 코어를 Froala에서 Lexical로 교체하기

    LexicalFroalaWYSIWYG
    1개월 전
  • 좋은 아이디어보다 더 중요한 질문

    Product DesignUX UIROI
    1개월 전

Related reads#OpenSearch

Explore #OpenSearch
라인

일본어 상품 검색 정확도 높이기: Elasticsearch + Kuromoji에서 OpenSearch + Sudachi로

#OpenSearch1주 전
포스타입

포스타입이 개인화 추천을 하는 방법 2부

#OpenSearch3주 전
미리디

AI 스타일 검색 2편 : 듀얼 벡터 검색과 OpenSearch 3.3 버전업

#OpenSearch2개월 전
우아한형제들·AWS Bedrock

우아한공방의 새로운 동료, 시스템 맥락을 가진 챗봇서비스 개발기(feat. RAG)

#OpenSearch3개월 전
라인·Kafka

기획서 없이 내재화하기: 검증 로직으로 동일함을 증명하다

#OpenSearch5개월 전

Source

포스타입
포스타입
Engineering Blog

Published · August 5, 2026

Topics

OpenSearchVector SearchHNSWHybrid SearchCollaborative Filtering