Weibo Recommendation Algorithm Based on Tag Clustering and User Preference 리뷰

웨이보(Weibo) 콘텐츠에 사용자가 생성한 태그를 기반으로 군집화를 수행하고, 이를 개별 사용자 선호도와 결합하여 추천 정확도를 높이고 신규 사용자에 대한 추천 문제를 해결하는 알고리즘을 제안한다.


논문 요약

  • 논문 제목: Weibo Recommendation Algorithm Based on Tag Clustering and User Preference
  • 저자: S. Wang 외
  • 게재 학술지: 2019 12th International Conference on Intelligent Computation Technology and Automation (ICICTA)
  • 발행 연도: 2019
  • 핵심 요약: 사용자 생성 태그를 기반으로 콘텐츠를 클러스터링하고, 사용자 선호도를 모델링하여 개인화된 추천을 제공한다. 이 접근법은 데이터 희소성 문제와 신규 사용자에게 추천할 데이터가 없는 콜드 스타트(cold-start) 문제를 완화하며 기존 추천 알고리즘 대비 향상된 성능을 보였다.

연구 배경

정보가 폭발적으로 증가하는 소셜 미디어 환경에서, 사용자가 원하는 콘텐츠를 정확하게 찾아주는 개인화 추천 시스템의 중요성은 날로 커지고 있으며, 이를 위해 사용자 행동 데이터뿐만 아니라 콘텐츠의 의미를 파악하는 것이 핵심 과제가 되었다.

**개인화 추천 시스템(Recommendation System)**은 오늘날 넷플릭스, 유튜브, 아마존 등 거의 모든 디지털 플랫폼의 핵심 기능이다. 이러한 시스템의 목표는 방대한 정보 속에서 각 사용자가 가장 흥미를 느낄 만한 항목을 예측하고 제시하는 것이다. 전통적인 추천 방식에는 주로 두 가지가 있다.

  1. 협업 필터링(Collaborative Filtering): ‘나와 비슷한 취향의 다른 사용자들이 선호하는 항목’을 추천하는 방식이다.
  2. 콘텐츠 기반 필터링(Content-based Filtering): ‘내가 과거에 좋아했던 항목과 유사한 특징을 가진 항목’을 추천하는 방식이다.

하지만 이러한 방식들은 몇 가지 고질적인 문제에 직면한다. 가장 대표적인 것이 콜드 스타트(Cold-Start) 문제이다. 이는 신규 사용자나 새로운 콘텐츠처럼 상호작용 기록이 거의 없어 추천의 근거가 부족한 경우를 말한다. 또한, 웨이보와 같은 소셜 미디어에서는 매초 수많은 콘텐츠가 생성되어 데이터 희소성(Sparsity) 문제가 심각하다.

이러한 문제를 해결하기 위한 대안으로 **사용자 생성 태그(User-generated Tags)**가 주목받고 있다. 사용자가 자발적으로 붙인 #여행, #맛집, #코딩과 같은 태그는 콘텐츠의 핵심 주제를 직관적으로 나타낸다. 본 연구는 바로 이 ‘태그’ 데이터에 **군집분석(Clustering)**을 적용하여 콘텐츠를 의미 있는 그룹으로 묶고, 이를 사용자 선호도와 결합함으로써 보다 정교하고 효과적인 추천 시스템을 만들고자 한다.


해결하려는 문제

정보 과부하 속에서 사용자의 숨겨진 관심사를 발견하고, 신규 사용자에게도 의미 있는 콘텐츠를 효과적으로 추천하는 알고리즘을 개발한다.

웨이보와 같은 대규모 소셜 플랫폼은 두 가지 주요 추천 과제를 안고 있다. 첫째는 정보 과부하이다. 사용자는 수많은 정보의 홍수 속에서 자신의 관심사와 무관한 콘텐츠에 쉽게 피로감을 느낀다. 둘째는 앞서 언급한 콜드 스타트 문제이다. 플랫폼에 막 가입한 사용자에게는 어떤 콘텐츠를 보여줘야 할지 막막하며, 잘못된 초기 추천 경험은 사용자 이탈로 이어질 수 있다.

기존의 추천 시스템은 사용자의 ‘클릭’, ‘좋아요’와 같은 행동 이력에 크게 의존하기 때문에 이러한 문제에 취약하다. 사용자가 몇 개의 게시물에만 반응했다면, 그의 다양한 잠재적 관심사를 파악하기 어렵다.

본 연구는 이러한 문제를 해결하기 위해, 사용자의 단순 행동을 넘어 콘텐츠의 **맥락(Context)**을 이해하는 데 집중한다. 사용자가 직접 붙인 ‘태그’를 분석하여 콘텐츠의 주제별 그룹을 만들고, 사용자가 어떤 주제 그룹에 관심을 보이는지를 파악하여 추천의 정확성과 효율성을 높이는 새로운 알고리즘을 개발하는 것을 목표로 삼았다.


연구 모형

사용자 태그를 기반으로 콘텐츠(블로그)를 군집화하고, 개별 사용자의 선호도를 모델링하여 두 정보를 결합한 개인화 추천 점수를 계산한다.

본 연구에서 제안하는 추천 알고리즘(TC-UP, Tag Clustering and User Preference)은 다음과 같은 단계로 구성된다.

  1. 데이터 수집 및 전처리: 웨이보 플랫폼에서 블로그 게시물과 각 게시물에 달린 사용자 태그 데이터를 수집한다. 이후, 분석에 용이하도록 태그를 정제하고 구조화한다.
  2. 태그 기반 콘텐츠 군집화 (Tag Clustering):
    • 각 블로그 게시물을 해당 게시물의 태그 집합으로 표현한다.
    • 게시물 간의 유사도를 태그 집합의 유사성(예: Jaccard 유사도)으로 계산한다.
    • 계산된 유사도를 바탕으로 군집분석 알고리즘(본 논문에서는 K-평균 등 구체적인 알고리즘 명은 생략하고 개념적으로 설명)을 적용하여 유사한 주제의 블로그들을 동일한 클러스터(군집)로 묶는다.
  3. 사용자 선호도 모델링 (User Preference Modeling):
    • 개별 사용자의 과거 활동 이력(좋아요, 전달, 댓글 등)을 분석한다.
    • 사용자가 특정 태그나 특정 콘텐츠 클러스터에 얼마나 많은 관심을 보였는지를 정량화하여 ‘사용자 선호도 벡터’를 생성한다.
  4. 추천 생성 및 평가:
    • 아직 사용자가 보지 않은 블로그에 대해 ‘추천 점수’를 계산한다. 이 점수는 ‘해당 블로그가 속한 클러스터에 대한 사용자 선호도’와 ‘블로그 자체의 인기도’ 등을 종합하여 결정된다.
    • 계산된 점수가 높은 순서대로 사용자에게 콘텐츠를 추천하고, 추천의 정확도(Precision)와 재현율(Recall)을 측정하여 기존 알고리즘과 성능을 비교한다.

데이터 설명

중국 소셜 미디어 플랫폼인 웨이보(Weibo)에서 수집한 사용자 생성 블로그 게시물과 관련 태그 데이터를 활용했으며, 이는 오프체인(Off-chain) 데이터에 해당한다.

  • 출처: 논문에 구체적인 데이터셋 출처는 명시되지 않았으나, 중국의 대표적인 소셜 미디어인 **웨이보(Weibo)**에서 API 등을 통해 수집한 데이터로 추정된다. 이는 플랫폼 내 사용자 활동 데이터이므로 오프체인(Off-chain) 데이터이다.
  • 수집 방법: 웨이보의 공개 API를 활용하거나 웹 크롤링/스크래핑 기술을 통해 특정 기간의 블로그 게시물과 사용자 상호작용 데이터를 수집했을 것으로 보인다.
  • 데이터 변수 설명: 본 연구의 모델을 구축하기 위해 다음과 같은 계층적 구조의 변수들이 사용되었다.
    • 콘텐츠 계층 (Content Layer)
      • Blog_ID: 각 블로그 게시물의 고유 식별자.
      • Blog_Content: 게시물의 텍스트 내용.
      • Tag_List: 사용자가 게시물에 부여한 태그들의 목록. (e.g., [#AI, #머신러닝, #추천시스템]). 이 연구의 가장 핵심적인 변수이다.
    • 사용자 행동 계층 (User Behavior Layer)
      • User_ID: 각 사용자의 고유 식별자.
      • Interaction_History: 사용자가 특정 Blog_ID에 대해 수행한 행동(예: 좋아요, 전달, 댓글) 기록.
    • 파생 모델 변수 (Derived Model Variables)
      • Blog_Cluster_ID: 태그 군집화 후 각 블로그가 할당된 클러스터의 식별자.
      • User_Preference_Vector: 각 User_ID가 어떤 태그 또는 Blog_Cluster_ID에 얼마나 관심이 있는지를 나타내는 벡터.

데이터 분석

콘텐츠 태그의 유사도를 측정하여 블로그를 군집화하고, 사용자 활동 이력을 바탕으로 선호도 모델을 구축한 뒤, 이 둘을 결합하여 추천 점수를 산출했다.

본 연구의 데이터 분석은 콘텐츠 자체를 이해하는 ‘콘텐츠 군집화’ 단계와 사용자를 이해하는 ‘선호도 모델링’ 단계를 거쳐 최종 추천을 수행하는 과정으로 이루어진다.

먼저, 콘텐츠 군집화를 위해 수집된 블로그 게시물들을 태그 벡터로 변환했다. 예를 들어, 한 게시물에 #AI, #머신러닝 태그가 있다면, 이 태그들이 해당 게시물의 특징이 된다. 그 후, 게시물 A와 게시물 B가 얼마나 유사한지를 공통 태그의 수 등을 이용해 계산한다. 이러한 유사도 지표를 기반으로, 유사한 태그를 가진 게시물들이 하나의 그룹(클러스터)으로 묶이도록 군집분석을 수행했다. 결과적으로 ‘IT 기술’, ‘일상/여행’, ‘연예/오락’ 등과 같은 주제별 콘텐츠 묶음이 생성된다.

다음으로, 사용자 선호도 모델링 단계에서는 각 사용자의 과거 활동을 분석했다. 어떤 사용자가 ‘IT 기술’ 클러스터에 속한 게시물에 ‘좋아요’를 많이 눌렀다면, 이 사용자의 선호도 모델에는 ‘IT 기술’에 대한 가중치가 높게 부여된다.

마지막으로, 이 두 정보를 결합하여 추천 점수를 계산했다. 사용자가 아직 접하지 않은 게시물에 대해, 해당 게시물이 속한 클러스터에 대한 사용자의 선호도가 높을수록 추천 점수도 높아진다. 이 방식을 통해 사용자의 기존 관심사와 일치하는 새로운 콘텐츠를 효과적으로 추천할 수 있다.


핵심 결과

제안된 태그 군집화 기반 추천 알고리즘은 기존 알고리즘 대비 추천의 정확도(Precision, Recall)를 향상시켰으며, 특히 신규 사용자에 대한 콜드 스타트 문제를 효과적으로 완화했다.

실험 결과, 본 논문에서 제안한 TC-UP 알고리즘은 전통적인 협업 필터링 및 콘텐츠 기반 필터링 알고리즘에 비해 더 높은 추천 성능을 보였다. 구체적으로, 추천된 항목 중 사용자가 실제로 관심을 보인 항목의 비율인 **정확도(Precision)**와, 사용자가 관심을 가질 만한 전체 항목 중 추천된 항목의 비율인 재현율(Recall) 모두에서 개선된 결과를 나타냈다.

특히 주목할 만한 성과는 콜드 스타트 문제 완화에 있었다. 기존 알고리즘은 활동 이력이 없는 신규 사용자에게는 거의 추천을 하지 못했지만, 제안된 모델은 단 몇 개의 태그에 대한 관심만으로도 해당 태그가 속한 전체 콘텐츠 클러스터를 추천 후보로 삼을 수 있었다. 예를 들어, 신규 사용자가 #캠핑 태그가 달린 게시물 하나에만 ‘좋아요’를 눌러도, 모델은 ‘#캠핑’ 태그를 포함하는 ‘아웃도어/여행’ 클러스터 내의 다른 인기 게시물들을 추천해줄 수 있었다. 이는 사용자의 초기 경험을 크게 향상시키는 중요한 결과이다.


시사점

사용자가 직접 생성한 메타데이터(태그)는 사용자 관심사를 파악하고 추천 시스템의 성능을 개선하는 데 매우 강력하고 효율적인 자원이다.

이 연구는 실무적으로 다음과 같은 중요한 시사점을 제공한다.

첫째, 사용자 생성 콘텐츠(UGC)의 가치를 재발견해야 한다. 기업들은 사용자의 클릭이나 구매 기록뿐만 아니라, 사용자가 남긴 리뷰, 댓글, 그리고 ‘태그’와 같은 비정형 데이터에 주목해야 한다. 이러한 메타데이터는 사용자의 관심사를 가장 직접적으로 드러내는 금광과 같다. 이를 수집하고 분석하는 시스템을 구축하는 것은 추천의 질을 한 단계 높일 수 있다.

둘째, 콘텐츠와 사용자를 연결하는 중간 다리로서 ‘군집’의 역할이 중요하다. 수백만 개의 콘텐츠와 수백만 명의 사용자를 직접 일대일로 매칭하는 것은 비효율적이다. 콘텐츠를 소수의 주제별 ‘군집’으로 묶고, 사용자가 어떤 ‘군집’에 관심이 있는지를 파악하는 방식은 계산의 복잡성을 줄이고 추천의 속도와 정확성을 동시에 높일 수 있다. 이는 특히 방대한 데이터를 다루는 플랫폼에 효과적인 전략이다.


인사이트

고객의 행동뿐만 아니라, 고객이 남긴 ‘꼬리표(Tag)’를 분석하여 잠재적 관심사를 선점하라.

AI 빅데이터 마케터의 관점에서 이 논문의 핵심은 ‘명시적 데이터’를 넘어 ‘맥락적 데이터’를 활용하는 것의 중요성을 보여준다는 데 있다. 고객이 어떤 상품을 ‘클릭’했는지를 보는 것은 기본이다. 한 단계 더 나아가, 그가 왜 클릭했는지, 그의 근본적인 관심사가 무엇인지를 ‘태그’와 같은 데이터를 통해 추론하고, 이를 기반으로 아직 드러나지 않은 니즈를 먼저 제안해야 한다.

  • 고객 페르소나 예시: “WEB3 탐색가, 알렉스”
    • 특징: 알렉스는 최근 암호화폐 지갑을 생성하고 USDC를 일부 보유하게 된 신규 사용자다. 그의 첫 온체인 활동은 OpenSea에서 특정 PFP NFT를 구매한 것이다. 그는 아직 DeFi나 다른 WEB3 서비스에 대한 경험이 없다. 그는 전형적인 ‘콜드 스타트’ 고객으로, 그의 잠재적 관심사를 파악하고 적절히 유도하는 것이 중요하다.
    • 데이터 기반 행동: 지갑 생성 후 첫 유의미한 트랜잭션이 ‘NFT 구매’와 관련됨. 낮은 트랜잭션 빈도, 소수의 프로토콜과만 상호작용.
  • 실질적인 마케팅 액션 제안:
    1. 관심사 클러스터 기반 추천: 알렉스의 ‘NFT 구매’ 트랜잭션을 하나의 ‘태그’로 간주한다. 이 태그가 속한 ‘NFT 관심사 클러스터’를 식별하고, 해당 클러스터의 다른 사용자들이 자주 이용하는 다른 NFT 마켓플레이스나 관련 커뮤니티 토큰(예: LOOKS, X2Y2) 정보를 추천하여 생태계 참여를 유도한다.
    2. 선제적 온보딩 및 교차 판매(Cross-selling): ‘NFT 관심사 클러스터’에 속한 사용자들이 다음 단계로 어떤 DeFi 활동(예: NFT 담보 대출)을 많이 하는지 분석한다. 알렉스에게 “보유하신 NFT를 담보로 스테이블 코인을 대출받아 보세요!”와 같이 개인화된 온보딩 가이드와 인센티브를 제공하여 자연스럽게 새로운 서비스로 유도한다.
    3. 개인화된 대시보드 제공: 알렉스가 접속하는 dApp의 메인 화면에 ‘NFT 포트폴리오 가치 추적기’나 ‘나와 비슷한 NFT 홀더들이 주목하는 신규 프로젝트’와 같은 위젯을 우선적으로 노출하여 개인화된 경험을 제공한다.