Milvusで作る:シャオミのモバイルブラウザにAIを搭載したニュース推薦機能を追加
ソーシャルメディアのフィードからSpotifyのプレイリスト推薦に至るまで、人工知能はすでに私たちが毎日見たり接したりするコンテンツで大きな役割を果たしている。多国籍電子機器メーカーのシャオミは、自社のモバイル・ウェブ・ブラウザを差別化するために、AIを搭載したニュース推薦エンジンを構築した。類似検索と人工知能のために特別に構築されたオープンソースのベクトルデータベースであるMilvusが、アプリケーションのコアデータ管理プラットフォームとして使用された。この記事では、シャオミがどのようにしてAIを搭載したニュース推薦エンジンを構築したのか、またMilvusやその他のAIアルゴリズムがどのように使用されたのかを説明する。
AIを使ってパーソナライズされたコンテンツを提案し、ニュースのノイズをカットする
ニューヨーク・タイムズ紙だけでも、毎日230本を超えるコンテンツを発行しており、膨大な量の記事が作成されるため、個人がすべてのニュースを包括的に把握することは不可能である。大量のコンテンツを選別し、最も関連性の高い、あるいは興味深い記事を推薦するために、私たちはますますAIに頼るようになっている。レコメンデーションは完璧には程遠いものの、機械学習は、複雑化し相互接続が進む世界から絶え間なく流れ出る新しい情報を切り分けるために、ますます必要になってきている。
シャオミは、スマートフォン、モバイルアプリ、ノートパソコン、家電製品、その他多くの製品を製造し、投資している。同社が四半期ごとに販売する4,000万台以上のスマートフォンの多くにプリインストールされているモバイルブラウザを差別化するために、シャオミはニュース推薦システムを組み込んだ。ユーザーがシャオミのモバイル・ブラウザを起動すると、人工知能がユーザーの検索履歴や興味などに基づいて類似のコンテンツを推薦する。Milvusは、関連記事の検索を高速化するために使用されるオープンソースのベクトル類似検索データベースである。
AIによるコンテンツ推薦の仕組みは?
ニュース推薦(または他のタイプのコンテンツ推薦システム)の核心は、入力データを膨大なデータベースと比較し、類似した情報を見つけることである。コンテンツ推薦を成功させるには、関連性と適時性のバランスをとり、膨大な量の新しいデータを効率的に取り込む必要がある。
膨大なデータセットに対応するため、推薦システムは通常2つの段階に分けられる:
- 検索:検索では、ユーザーの興味や行動に基づいて、幅広いライブラリからコンテンツが絞り込まれる。Xiaomiのモバイルブラウザでは、数百万のニュース記事を含む膨大なデータセットから数千のコンテンツが選択される。
- ソート:次に、検索中に選択されたコンテンツは、ユーザーにプッシュされる前に、特定の指標に従ってソートされる。ユーザーが推薦されたコンテンツにアクセスすると、システムはリアルタイムで適応し、より関連性の高い提案を提供する。
ニュースコンテンツの推奨は、ユーザーの行動と最近公開されたコンテンツに基づいてリアルタイムで行われる必要がある。さらに、提案されるコンテンツは、ユーザーの興味や検索意図にできるだけ合致していなければならない。
Milvus + BERT = インテリジェントなコンテンツ提案
Milvusはオープンソースのベクトル類似検索データベースであり、ディープラーニングモデルと統合することで、自然言語処理、身元確認、その他多くのアプリケーションを強化することができます。Milvusは、検索をより効率的にするために大規模なベクトルデータセットにインデックスを付け、機械学習アプリケーションの開発プロセスを簡素化するために様々な一般的なAIフレームワークをサポートしています。これらの特徴により、多くの機械学習アプリケーションの重要な要素であるベクトルデータの保存とクエリに理想的なプラットフォームとなっています。
Xiaomiがインテリジェントなニュース推薦システムのベクトルデータ管理にMilvusを選択した理由は、高速で信頼性が高く、最小限の設定とメンテナンスで済むからだ。しかし、展開可能なアプリケーションを構築するには、MilvusをAIアルゴリズムと組み合わせる必要がある。シャオミは、推薦エンジンの言語表現モデルとしてBERT(Bidirectional Encoder Representation Transformersの略)を選択した。BERTは、多くの異なるNLP(自然言語処理)タスクを推進できる一般的なNLU(自然言語理解)モデルとして使用できる。その主な特徴は以下の通りです:
- BERT の変換器は、アルゴリズムの主要なフレームワークとして使用され、文の中と文の間の 明示的および暗黙的な関係を捕捉することができる。
- マルチタスク学習目標、マスク言語モデリング(MLM)、次文予測(NSP)。
- BERTはデータ量が多いほど性能が向上し、変換行列として機能することで、Word2Vecなどの他の自然言語処理技術を強化することができる。
BERTと連携するMilvus](https://assets.zilliz.com/Blog_Xiaomi_1_6301344312.jpeg)
BERTのネットワーク・アーキテクチャは、従来のRNNやCNNニューラルネットワークを放棄した多層トランスフォーマー構造を採用している。これは、アテンション・メカニズムを通じて、任意の位置にある2つの単語間の距離を1つに変換することで機能し、NLPに以前から存在する依存性の問題を解決する。
BERTにおける変換器のネットワーク・アーキテクチャ](https://assets.zilliz.com/Blog_Xiaomi_2_fe5cf2e401.jpeg)
BERTのネットワーク構造。Trm」は、上に描かれた変圧器のネットワークアーキテクチャを表す](https://assets.zilliz.com/Blog_Xiaomi_3_5d10b51440.jpeg)
BERT は、単純モデルと複雑モデルを提供する。対応するハイパーパラメータは以下のとおりである:BERT BASE: L = 12, H = 768, A = 12, パラメータ総数 110M; BERT LARGE: L = 24, H = 1024, A = 16, パラメータ総数 340M.
上記のハイパーパラメータにおいて、Lはネットワークの層数(すなわちTransformerブロックの数)を表し、AはMulti-Head Attentionにおける自己注意の数を表し、フィルタサイズは4Hである。
シャオミのコンテンツ推薦システム
Xiaomiのブラウザベースのニュース推薦システムは、ベクトル化、IDマッピング、近似最近傍(ANN)サービスの3つの主要なコンポーネントに依存しています。
ベクトル化は記事のタイトルを一般的な文ベクトルに変換するプロセスである。Xiaomiの推薦システムでは、BERTに基づくSimBertモデルが使用されている。SimBertは隠れサイズが768の12層モデルである。Simbertは、連続学習に学習モデル中国語L-12_H-768_A-12を使用しています(学習タスクは「メトリック学習+UniLM」であり、Adamオプティマイザを使用してサインルTITAN RTX上で117万ステップを学習しています(学習率2e-6、バッチサイズ128)。簡単に言えば、これは最適化されたBERTモデルである。
ANNアルゴリズムは、ベクトル化された記事タイトルをMilvusに保存されているニュースライブラリ全体と比較し、類似したコンテンツをユーザーに返す。IDマッピングは、対応する記事のページビューやクリック数などの関連情報を取得するために使用される。
コンテンツ推薦の仕組み](https://assets.zilliz.com/Blog_Xiaomi_N1_f4749b3131.jpeg)
シャオミのニュース・レコメンデーション・エンジンを動かしているMilvusに保存されているデータは、追加記事やアクティビティ情報を含め、常に更新されている。システムが新しいデータを取り込むと、古いデータは消去されなければならない。このシステムでは、最初のT-1日間は完全なデータ更新が行われ、その後のT日間は増分更新が行われる。
決められた間隔で古いデータが削除され、T-1日分の処理済みデータがコレクションに挿入される。ここでは、新しく生成されたデータがリアルタイムで組み込まれる。新しいデータが挿入されると、Milvusで類似性検索が行われる。取得された記事は再びクリック率などでソートされ、上位のコンテンツがユーザーに表示される。このように、データが頻繁に更新され、結果をリアルタイムに配信する必要があるシナリオにおいて、Milvusが新しいデータを迅速に取り込み、検索することで、シャオミのモバイルブラウザにおけるニュースコンテンツのレコメンデーションを飛躍的に加速させることが可能になる。
<br
Milvusはベクトル類似検索を向上させる
データをベクトル化し、ベクトル間の類似度を計算することは、最も一般的に使われている検索技術です。ANNベースのベクトル類似検索エンジンの台頭により、ベクトル類似度計算の効率は大幅に向上しました。類似ソリューションと比較して、Milvusは最適化されたデータストレージ、豊富なSDK、検索レイヤーの構築負荷を大幅に軽減する分散バージョンを提供します。さらに、Milvusの活発なオープンソースコミュニティは、質問や問題が発生した際のトラブルシューティングを支援する強力なリソースです。
ベクトル類似検索とMilvusについてより詳しくお知りになりたい方は、以下のリソースをご覧ください:
- GithubのMilvusをチェックしてください。
- ベクトル類似検索は平易に隠れる](https://zilliz.com/blog/Vector-Similarity-Search-Hides-in-Plain-View)
- ベクトルインデックスによるビッグデータの類似検索の高速化](https://zilliz.com/blog/Accelerating-Similarity-Search-on-Really-Big-Data-with-Vector-Indexing)
その他のユーザーストーリーを読むと、Milvusを使ったものづくりについてより詳しく知ることができます。
読み続けて

A Developer's Guide to Exploring Milvus 2.6 Features on Zilliz Cloud
Milvus 2.6 marks a shift from “vector search + glue code” to a more advanced retrieval engine, and it is now Generally Available (GA) on Zilliz Cloud (a managed Milvus service).

Milvus 2.6.x Now Generally Available on Zilliz Cloud, Making Vector Search Faster, Smarter, and More Cost-Efficient for Production AI
Milvus 2.6.x is now GA on Zilliz Cloud, delivering faster vector search, smarter hybrid queries, and lower costs for production RAG and AI applications.

Why I’m Against Claude Code’s Grep-Only Retrieval? It Just Burns Too Many Tokens
Learn how vector-based code retrieval cuts Claude Code token consumption by 40%. Open-source solution with easy MCP integration. Try claude-context today.
