Astro 블로그의 '유사 게시물' 관련성 및 단순성 향상: AI 기반 코사인 유사도 활용 전략

🤖 AI 추천

Astro 기반 블로그를 운영하며 사용자 경험 향상을 위해 '유사 게시물' 추천 기능을 개선하려는 웹 개발자 및 콘텐츠 전략가에게 유용합니다. 특히, AI 및 머신러닝 기술을 적용하여 추천의 정확도를 높이고자 하는 개발자에게 실질적인 가이드라인을 제공합니다.

🔖 주요 키워드

Astro 블로그의 '유사 게시물' 관련성 및 단순성 향상: AI 기반 코사인 유사도 활용 전략

핵심 기술

이 콘텐츠는 Astro 블로그에 AI 기반의 '유사 게시물' 추천 기능을 구현하고, 코사인 유사도 임계값 설정을 통해 추천의 관련성과 단순성을 향상시키는 방법을 다룹니다.

기술적 세부사항

  • 기존 유사 게시물 문제점: 초기 구현에서 관련 없는 게시물이 추천되는 문제점을 발견했습니다.
  • AI 기반 해결 방안 탐색: ChatGPT의 제안을 바탕으로 임계값 설정을 시도했으나, 경험적 데이터 기반의 계산 방법이 필요했습니다.
  • 데이터 수집 및 분석:
    • src/pages/api/post-similarity.json.ts 엔드포인트를 생성하여 게시물 간 쌍별 코사인 유사도 점수를 수집했습니다.
    • getPairWiseSimilarityScores 함수를 src/utils/related-posts.ts에 추가하여 모든 게시물 쌍의 코사인 유사도를 계산했습니다.
    • 수집된 유사도 점수의 최소값, 최대값, 평균, 중앙값, 75th, 90th 백분위수 등을 분석했습니다.
  • 임계값 결정:
    • 데이터 히스토그램 분석 결과, 코사인 유사도 점수가 약 0.65 부근에 밀집된 두 개의 분포(bimodal distribution)를 확인했습니다.
    • 가장 높은 관련성을 가진 게시물을 효과적으로 보여주기 위해 0.65를 최종 코사인 유사도 임계값으로 설정했습니다.
  • 코드 수정:
    • src/utils/related-posts.ts 파일 내 slugToMostRelatedPosts 함수에서 filter((c) => COSINE_THRESHOLD <= c.score) 조건을 추가하여 임계값 이상의 게시물만 필터링하도록 수정했습니다.
    • posts.length > 0 조건을 통해 관련 게시물이 없을 경우 컴포넌트가 렌더링되지 않도록 처리했습니다.

개발 임팩트

  • 사용자에게 더 관련성 높고 단순화된 게시물 추천을 제공하여 사용자 경험(UX)을 향상시킵니다.
  • 콘텐츠 발견성을 높여 블로그 내 체류 시간을 늘리고 사용자의 만족도를 제고합니다.
  • 데이터 기반의 의사결정을 통해 AI 기능을 지속적으로 개선할 수 있는 프레임워크를 구축합니다.

커뮤니티 반응

  • (언급되지 않음)

톤앤매너

전문적이고 실용적인 기술 분석 및 구현 가이드

📚 관련 자료