XiaomiのモバイルブラウザにMilvusのAIを搭載したニュース推薦機能を組み込む
ソーシャルメディアのフィードからSpotifyのプレイリスト推薦まで、人工知能はすでに私たちが毎日見たり接したりするコンテンツで大きな役割を果たしている。多国籍電子機器メーカーのシャオミは、自社のモバイル・ウェブ・ブラウザを差別化するために、AIを搭載したニュース推薦エンジンを構築した。Milvusは、類似検索と人工知能のために特別に構築されたオープンソースのベクトル・データベースで、アプリケーションのコア・データ管理プラットフォームとして使用された。この記事では、シャオミがどのようにしてAIを搭載したニュースレコメンデーションエンジンを構築したのか、またMilvusやその他のAIアルゴリズムがどのように使用されたのかを説明する。
AIを使ってパーソナライズされたコンテンツを提案し、ニュースのノイズをカットする
ニューヨーク・タイムズだけでも毎日230以上のコンテンツが掲載されており、膨大な量の記事が作成されているため、個人がすべてのニュースを包括的に把握することは不可能だ。大量のコンテンツをふるいにかけ、最も関連性の高い、あるいは興味深い記事を推薦するために、私たちはますますAIに頼るようになっている。レコメンデーションは完璧には程遠いものの、機械学習は、複雑化し相互接続が進むこの世界から絶え間なく溢れ出る新しい情報の流れを断ち切るために、ますます必要になってきている。
シャオミは、スマートフォン、モバイルアプリ、ノートパソコン、家電製品、その他多くの製品を製造し、投資している。同社が四半期ごとに販売する4000万台以上のスマートフォンの多くにプリインストールされているモバイルブラウザを差別化するために、シャオミはニュース推薦システムを組み込んだ。ユーザーがシャオミのモバイル・ブラウザを起動すると、人工知能がユーザーの検索履歴や興味などに基づいて類似のコンテンツを推薦する。Milvusは、関連記事の検索を高速化するために使用されるオープンソースのベクトル類似検索データベースである。
AIによるコンテンツ推薦の仕組み
ニュース推薦(または他のタイプのコンテンツ推薦システム)の核心は、類似情報を見つけるために入力データを巨大なデータベースと比較することである。コンテンツ推薦を成功させるためには、関連性と適時性のバランスをとり、膨大な量の新しいデータを効率的に取り込む必要がある。
膨大なデータセットに対応するため、推薦システムは通常2つの段階に分けられる:
- 検索:検索:検索では、ユーザーの興味や行動に基づいて、幅広いライブラリからコンテンツが絞り込まれる。シャオミのモバイルブラウザでは、数百万のニュース記事を含む膨大なデータセットから数千のコンテンツが選択される。
- 並べ替え:次に、検索中に選択されたコンテンツは、ユーザーにプッシュされる前に、特定の指標に従ってソートされる。ユーザーが推薦されたコンテンツにアクセスすると、システムはリアルタイムで適応し、より関連性の高い提案を提供する。
ニュースコンテンツの推奨は、ユーザーの行動と最近公開されたコンテンツに基づいてリアルタイムで行われる必要がある。さらに、提案されるコンテンツは、可能な限りユーザーの関心や検索意図に合致していなければならない。
Milvus + BERT = インテリジェントなコンテンツ提案
Milvusはオープンソースのベクトル類似検索データベースであり、ディープラーニングモデルと統合することで、自然言語処理、本人確認、その他多くのアプリケーションを強化することができる。Milvusは、検索をより効率的にするために大規模なベクトルデータセットにインデックスを付け、機械学習アプリケーションの開発プロセスを簡素化するために様々な一般的なAIフレームワークをサポートしています。これらの特徴により、このプラットフォームは多くの機械学習アプリケーションの重要な要素であるベクトルデータの保存とクエリに理想的なものとなっている。
Milvusは高速で信頼性が高く、設定やメンテナンスが最小限で済むため、Xiaomiはインテリジェントなニュース推薦システムのベクトルデータ管理にMilvusを選択した。しかし、展開可能なアプリケーションを構築するためには、MilvusをAIアルゴリズムと組み合わせる必要がある。シャオミは、推薦エンジンの言語表現モデルとしてBERT(Bidirectional Encoder Representation Transformersの略)を選択した。BERTは一般的なNLU(自然言語理解)モデルとして使用でき、さまざまなNLP(自然言語処理)タスクを推進できる。その主な特徴は以下のとおりです:
- BERT の変換器は、アルゴリズムの主要なフレームワークとして使用され、文の中と文の間の明示的および暗黙的な関係を捕捉することができます。
- マルチタスク学習目標、マスク言語モデリング(MLM)、次文予測(NSP)。
- BERTは、データ量が多いほど性能が向上し、変換行列として機能することで、Word2Vecなどの他の自然言語処理技術を強化することができる。
ブログ_Xiaomi_1.jpeg
BERTのネットワーク・アーキテクチャは、従来のRNNやCNNニューラルネットワークを放棄した多層変換構造を使用している。アテンション機構により、任意の位置にある2つの単語間の距離を1つに変換することで動作し、NLPに以前から存在する依存性の問題を解決する。
ブログ-Xiaomi-2.jpeg
ブログ-Xiaomi-3.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のコンテンツ推薦システム
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マッピングは、対応する記事のページビューやクリック数などの関連情報を取得するために使用される。
ブログ-Xiaomi-N1.jpeg
Milvusに保存されているシャオミのニュースレコメンデーションエンジンのデータは常に更新されており、追加記事やアクティビティ情報も含まれている。システムが新しいデータを取り込むと、古いデータは消去されなければならない。このシステムでは、最初のT-1日間は完全なデータ更新が行われ、その後のT日間は増分更新が行われる。
決められた間隔で古いデータが削除され、T-1日分の処理済みデータがコレクションに挿入される。ここでは、新しく生成されたデータがリアルタイムで組み込まれる。新しいデータが挿入されると、Milvusで類似性検索が行われる。取得された記事は再びクリック率などでソートされ、上位のコンテンツがユーザーに表示される。このように、データが頻繁に更新され、結果をリアルタイムに配信する必要があるシナリオにおいて、Milvusが新しいデータを迅速に取り込み、検索することで、シャオミのモバイルブラウザにおけるニュースコンテンツ・レコメンデーションを飛躍的に高速化することが可能となる。
Milvusはベクトル類似検索を向上させる
データをベクトル化し、ベクトル間の類似度を計算することは、最も一般的に使用されている検索技術である。ANNベースのベクトル類似検索エンジンの台頭により、ベクトル類似度計算の効率は大幅に向上した。Milvusは、類似ソリューションと比較して、最適化されたデータストレージ、豊富なSDK、検索レイヤーの構築負荷を大幅に軽減する分散版を提供しています。さらに、Milvusの活発なオープンソースコミュニティは、質問や問題が発生した際のトラブルシューティングを支援する強力なリソースです。
ベクトル類似検索とMilvusについてより詳しく知りたい方は、以下のリソースをご覧ください:
- GithubでMilvusをチェックする。
- ベクター類似性検索は平易に隠れる
- ベクトルインデックスによるビッグデータの類似検索の高速化
Milvusを使ったものづくりについては、他のユーザーストーリーをご覧ください。
Try Managed Milvus for Free
Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.
Get StartedLike the article? Spread the word