오픈챗 메시지들로부터 트렌딩 키워드 추출하기 (새 탭에서 열림)
LINE 오픈챗은 사용자 참여를 높이기 위해 채팅방 중심의 추천에서 메시지 콘텐츠 기반의 트렌딩 키워드 추천으로의 변화를 시도하고 있습니다. 이를 위해 일주일 전 대비 빈도가 급증한 단어를 Z-테스트 통계량으로 추출하는 기법을 도입했으며, 중복 메시지로 인한 노이즈를 제거하기 위해 MinHash 알고리즘을 활용한 데이터 정제 과정을 적용했습니다. 이러한 기술적 접근은 일상적인 대화 속에서 실시간 화젯거리를 효과적으로 발굴하여 서비스 활성도를 높이는 데 기여합니다.
트렌딩 키워드 추출의 배경과 목적
- 기존 오픈챗 메인 화면은 채팅방 검색과 추천 위주로 구성되어 있어, 이미 특정 방에 정착한 사용자가 새로운 콘텐츠를 탐색할 동기가 부족했습니다.
- 개별 메시지는 단건으로 보면 맥락 파악이 어렵고 비문이 많으므로, 유사한 주제의 메시지들을 키워드 중심으로 묶어 가시적인 콘텐츠 덩어리로 제공하는 전략을 수립했습니다.
- 이는 마이크로 블로그 서비스가 개별 포스트를 메인에 노출하여 재방문율을 높이는 방식과 유사하며, 사용자들에게 신선한 즐길 거리를 제공하여 서비스 KPI를 개선하고자 했습니다.
Z-테스트 기반의 화제어 탐지 기법
- 단순 빈도 기반 추출 시 발생하는 일상어(인사, 환영 등) 편중 문제를 해결하기 위해, 빈도 자체가 아닌 '빈도의 급격한 증가량'을 기준으로 트렌딩 키워드를 정의했습니다.
- 비교 기준점을 하루 전이 아닌 '일주일 전(D-7)'으로 설정하여, 요일별 반복 단어를 억제하고 며칠간 지속되는 트렌드 피크를 놓치지 않도록 설계했습니다.
- 이표본 모비율 차 검정을 위한 Z-테스트 통계량을 사용하여 각 단어의 점수를 계산하며, 이를 통해 빈도수가 작을 때 발생하는 노이즈 효과를 확률 이론에 근거해 제어했습니다.
- 통계적 유의미함을 확보하기 위해 빈도가 최소 30% 이상 증가한 단어들만을 최종 후보군으로 선정합니다.
MinHash를 활용한 중복 메시지 정제
- 복사 및 붙여넣기 등으로 생성된 중복 메시지가 빈도 집계에 미치는 왜곡을 방지하기 위해 집계 전 단계에서 데이터 정제 과정을 거칩니다.
- 대량의 텍스트 데이터를 효율적으로 처리하기 위해 차원 축소 기법인 MinHash를 도입하여 유사한 메시지들을 클러스터링했습니다.
- 텍스트를 명사 위주로 토큰화(슁글링)한 후 k-MinHash 시그니처를 생성하고, 동일한 시그니처를 가진 메시지 묶음 중 하나만 남기고 나머지는 제거합니다.
- 클러스터 내 집합들의 합집합과 교집합 크기를 비교하는 선형 시간 복잡도의 다양성 지표(SetDiv)를 정의하여, 최적의 중복 제거 정밀도를 유지하기 위한 시그니처 길이(k)를 결정했습니다.
단순한 통계 수치를 넘어 채팅 데이터의 특성인 반복성과 중복성을 기술적으로 해결한 이 방식은 실시간 커뮤니티의 활성도를 시각화하는 데 매우 유용합니다. 특히 일주일 전 데이터를 기준선으로 삼는 전략과 MinHash를 이용한 효율적인 중복 제거는 대규모 텍스트 데이터를 다루는 서비스에서 실무적으로 즉시 적용 가능한 강력한 방법론입니다.