Milvus로 만들기: Xiaomi 모바일 브라우저 속 AI 기반 뉴스 추천
소셜 미디어 피드부터 Spotify의 플레이리스트 추천에 이르기까지, 인공지능은 이미 우리가 매일 보고 상호작용하는 콘텐츠에서 중요한 역할을 하고 있습니다. 모바일 웹 브라우저를 차별화하기 위한 노력의 일환으로, 다국적 전자제품 제조업체 Xiaomi는 AI 기반 뉴스 추천 엔진을 구축했습니다. 유사도 검색과 인공지능을 위해 특별히 구축된 오픈 소스 벡터 데이터베이스인 Milvus가 애플리케이션의 핵심 데이터 관리 플랫폼으로 사용되었습니다. 이 글에서는 Xiaomi가 AI 기반 뉴스 추천 엔진을 어떻게 구축했는지, 그리고 Milvus와 기타 AI 알고리즘이 어떻게 사용되었는지 설명합니다.
AI를 사용해 개인화된 콘텐츠를 제안하고 뉴스 소음을 줄이기
New York Times만 해도 매일 230개가 넘는 콘텐츠를 게시하는 상황에서, 생산되는 기사의 엄청난 양 때문에 개인이 모든 뉴스를 포괄적으로 파악하는 것은 불가능합니다. 대량의 콘텐츠를 걸러내고 가장 관련성이 높거나 흥미로운 글을 추천하기 위해, 우리는 점점 더 AI에 의존하고 있습니다. 추천은 여전히 완벽과는 거리가 멀지만, 점점 더 복잡하고 상호 연결된 세계에서 쏟아져 나오는 새로운 정보의 끊임없는 흐름을 헤쳐 나가기 위해 머신 러닝은 점점 더 필요해지고 있습니다.
Xiaomi는 스마트폰, 모바일 앱, 노트북, 가전제품 및 더 많은 제품을 만들고 투자합니다. 회사가 분기마다 판매하는 4천만 대 이상의 스마트폰 중 많은 기기에 사전 설치되는 모바일 브라우저를 차별화하기 위한 노력의 일환으로, Xiaomi는 그 안에 뉴스 추천 시스템을 구축했습니다. 사용자가 Xiaomi의 모바일 브라우저를 실행하면, 사용자 검색 기록, 관심사 등을 기반으로 유사한 콘텐츠를 추천하는 데 인공지능이 사용됩니다. Milvus는 관련 기사의 검색 속도를 높이는 데 사용되는 오픈 소스 벡터 유사도 검색 데이터베이스입니다.
AI 기반 콘텐츠 추천은 어떻게 작동하나요?
핵심적으로, 뉴스 추천(또는 다른 유형의 콘텐츠 추천 시스템)은 유사한 정보를 찾기 위해 입력 데이터를 방대한 데이터베이스와 비교하는 것을 포함합니다. 성공적인 콘텐츠 추천은 관련성과 시의성의 균형을 맞추고, 종종 실시간으로 엄청난 양의 새로운 데이터를 효율적으로 통합하는 것을 포함합니다.
방대한 데이터셋을 수용하기 위해, 추천 시스템은 일반적으로 두 단계로 나뉩니다:
- 검색: 검색 단계에서는 사용자 관심사와 행동을 기반으로 더 넓은 라이브러리에서 콘텐츠를 좁혀 나갑니다. Xiaomi의 모바일 브라우저에서는 수백만 개의 뉴스 기사가 포함된 방대한 데이터셋에서 수천 개의 콘텐츠가 선택됩니다.
- 정렬: 다음으로, 검색 단계에서 선택된 콘텐츠는 사용자에게 푸시되기 전에 특정 지표에 따라 정렬됩니다. 사용자가 추천 콘텐츠와 상호작용하면, 시스템은 더 관련성 높은 제안을 제공하기 위해 실시간으로 적응합니다.
뉴스 콘텐츠 추천은 사용자 행동과 최근 게시된 콘텐츠를 기반으로 실시간으로 이루어져야 합니다. 또한, 제안된 콘텐츠는 사용자 관심사와 검색 의도에 최대한 부합해야 합니다.
Milvus + BERT = 지능형 콘텐츠 제안
Milvus는 자연어 처리, 신원 확인 등 훨씬 더 많은 분야에 걸친 애플리케이션을 구동하기 위해 딥 러닝 모델과 통합될 수 있는 오픈 소스 벡터 유사도 검색 데이터베이스입니다. Milvus는 검색을 더 효율적으로 만들기 위해 대규모 벡터 데이터셋을 인덱싱하고, 머신 러닝 애플리케이션 개발 과정을 단순화하기 위해 다양한 인기 AI 프레임워크를 지원합니다. 이러한 특성은 이 플랫폼을 많은 머신 러닝 애플리케이션의 핵심 구성 요소인 벡터 데이터를 저장하고 쿼리하는 데 이상적인 것으로 만듭니다.
Xiaomi는 빠르고 안정적이며 최소한의 구성과 유지보수만 필요하기 때문에 지능형 뉴스 추천 시스템의 벡터 데이터를 관리하기 위해 Milvus를 선택했습니다. 그러나 배포 가능한 애플리케이션을 구축하려면 Milvus를 AI 알고리즘과 함께 사용해야 합니다. Xiaomi는 추천 엔진의 언어 표현 모델로 Bidirectional Encoder Representation Transformers의 약자인 BERT를 선택했습니다. BERT는 다양한 NLP (자연어 처리) 작업을 구동할 수 있는 범용 NLU(자연어 이해) 모델로 사용할 수 있습니다. 주요 기능은 다음과 같습니다:
- BERT의 트랜스포머는 알고리즘의 주요 프레임워크로 사용되며 문장 내부 및 문장 간의 명시적·암묵적 관계를 포착할 수 있습니다.
- 멀티태스크 학습 목표, 마스크드 언어 모델링(MLM), 다음 문장 예측(NSP).
- BERT는 데이터 양이 많을수록 더 나은 성능을 발휘하며, 변환 행렬 역할을 함으로써 Word2Vec과 같은 다른 자연어 처리 기법을 향상시킬 수 있습니다.
BERT와 함께 작동하는 Milvus.
BERT의 네트워크 아키텍처는 기존의 RNN 및 CNN 신경망을 버린 다층 트랜스포머 구조를 사용합니다. 이는 어텐션 메커니즘을 통해 임의의 위치에 있는 두 단어 사이의 거리를 하나로 변환하는 방식으로 작동하며, NLP에서 한동안 지속되어 온 의존성 문제를 해결합니다.
BERT의 트랜스포머 네트워크 아키텍처.
BERT의 네트워크 구조. ‘Trm’은 위에 묘사된 트랜스포머 네트워크 아키텍처를 나타냅니다.
BERT는 단순 모델과 복잡 모델을 제공합니다. 해당 하이퍼파라미터는 다음과 같습니다: BERT BASE: L = 12, H = 768, A = 12, total parameter 110M; BERT LARGE: L = 24, H = 1024, A = 16, the total number of parameters is 340M.
위의 하이퍼파라미터에서 L은 네트워크의 레이어 수(즉, Transformer 블록 수)를 나타내고, A는 Multi-Head Attention에서 self-Attention의 수를 나타내며, 필터 크기는 4H입니다.
Xiaomi의 콘텐츠 추천 시스템
Xiaomi 브라우저 기반 뉴스 추천 시스템은 벡터화, ID 매핑, 근사 최근접 이웃(ANN) 서비스라는 세 가지 핵심 구성 요소에 의존합니다.
벡터화는 기사 제목을 일반 문장 벡터로 변환하는 과정입니다. BERT 기반의 SimBert 모델이 Xiaomi의 추천 시스템에서 사용됩니다. SimBert는 hidden size가 768인 12레이어 모델입니다. Simbert는 연속 학습을 위해 학습 모델 Chinese L-12_H-768_A-12를 사용하며(학습 작업은 “metric learning +UniLM”), Adam optimizer(learning rate 2e-6, batch size 128)를 사용하여 단일 TITAN RTX에서 117만 step을 학습했습니다. 간단히 말해, 이는 최적화된 BERT 모델입니다.
ANN 알고리즘은 벡터화된 기사 제목을 Milvus에 저장된 전체 뉴스 라이브러리와 비교한 다음, 사용자에게 유사한 콘텐츠를 반환합니다. ID 매핑은 해당 기사에 대한 페이지 조회수와 클릭 수 같은 관련 정보를 얻는 데 사용됩니다.
콘텐츠 추천 작동 방식.
Xiaomi의 뉴스 추천 엔진을 구동하는 Milvus에 저장된 데이터는 추가 기사와 활동 정보를 포함하여 지속적으로 업데이트됩니다. 시스템이 새 데이터를 통합함에 따라 오래된 데이터는 제거되어야 합니다. 이 시스템에서는 첫 T-1일 동안 전체 데이터 업데이트가 수행되고, 이후 T일 동안 증분 업데이트가 수행됩니다.
정의된 간격마다 오래된 데이터가 삭제되고 T-1일의 처리된 데이터가 컬렉션에 삽입됩니다. 여기서 새로 생성된 데이터는 실시간으로 통합됩니다. 새 데이터가 삽입되면 Milvus에서 유사도 검색이 수행됩니다. 검색된 기사는 다시 클릭률 및 기타 요소에 따라 정렬되고, 상위 콘텐츠가 사용자에게 표시됩니다. 이처럼 데이터가 자주 업데이트되고 결과를 실시간으로 제공해야 하는 시나리오에서, Milvus가 새 데이터를 빠르게 통합하고 검색할 수 있는 능력은 Xiaomi의 모바일 브라우저에서 뉴스 콘텐츠 추천을 크게 가속화할 수 있게 해줍니다.
Milvus는 벡터 유사도 검색을 더 좋게 만듭니다
데이터를 벡터화한 다음 벡터 간 유사도를 계산하는 것은 가장 일반적으로 사용되는 검색 기술입니다. ANN 기반 벡터 유사도 검색 엔진의 부상은 벡터 유사도 계산의 효율성을 크게 향상시켰습니다. 유사한 솔루션과 비교했을 때, Milvus는 최적화된 데이터 스토리지, 풍부한 SDK, 그리고 검색 계층 구축 작업량을 크게 줄여주는 분산 버전을 제공합니다. 또한 Milvus의 활발한 오픈 소스 커뮤니티는 질문에 답하고 문제가 발생했을 때 해결하는 데 도움을 줄 수 있는 강력한 리소스입니다.
벡터 유사도 검색과 Milvus에 대해 더 자세히 알아보고 싶다면 다음 리소스를 확인해 보세요:
- Github에서 Milvus를 확인해 보세요.
- 벡터 유사도 검색은 눈앞에 숨어 있습니다
- 벡터 인덱싱으로 초대용량 데이터의 유사도 검색 가속화
Milvus로 무언가를 만드는 방법에 대해 더 알아보려면 다른 사용자 사례를 읽어보세요.
계속 읽기

Will Amazon S3 Vectors Kill Vector Databases—or Save Them?
AWS S3 Vectors aims for 90% cost savings for vector storage. But will it kill vectordbs like Milvus? A deep dive into costs, limits, and the future of tiered storage.

Build for the Boom: Why AI Agent Startups Should Build Scalable Infrastructure Early
Explore strategies for developing AI agents that can handle rapid growth. Don't let inadequate systems undermine your success during critical breakthrough moments.

Vector Databases vs. Object-Relational Databases
Use a vector database for AI-powered similarity search; use an object-relational database for complex data modeling with both relational integrity and object-oriented features.



