BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース LinkedInのスマートリプライ機能

LinkedInのスマートリプライ機能

原文(投稿日:2017/10/30)へのリンク

LinkedInが新しい自然言語リコメンドエンジンをローンチした。彼らはこれを使って、メッセージに対するスマートリプライ機能を提供する。エンジニアリングチームにより、そのモデルとインフラストラクチャ開発プロセスがブログに詳しく説明されている。

メッセージのリプライを生成する従来のアプローチは、Sequence-to-Sequenceモデル(リプライを一語ずつ計算する)だったが、今回のLinkedInのアプローチは、有限の在庫からリプライを選択するというものだ。エンジニアによると、問題をテキスト生成ではなく、多項分類として扱うことになるという。これには次のような利点がある。

  • トレーニングがよりシンプルに、より容易になる。
  • トレーニングがより高速になる。これは即座の提案を必要とするユースケースで重要だ。
  • 不適切なリプライをするリスクがより低下する。

リプライ候補を生成するため、LinkedInはまず、一部を代用語に置き換えて、会話を匿名化した。たとえば、個人的なメッセージに含まれる名前は “RECIPIENT_FIRST_NAME” といったものになる。また、メッセージを標準化処理にかけて、同じ意味の持つメッセージを同じものとして扱い(たとえば、“Yup; ok!!!” と “Yes, ok!”)、意味に基づいてグループ化できるようにした。

多項分類モデルを構築するため、LinkedInはDagliという独自の機械学習フレームワークを使っている。これはJava APIを用いて、機械学習パイプラインを有向非循環グラフとして表現しており、将来オープンソース化される可能性がある。

スマートリプライの要件の一つは、一通りの言い方だけを提案することだ。たとえば、“yes”、“yup”、“yeah”はすべて “yes” を意味し、3つすべてを提案しても意味がない。エンジニアたちは、意味グループから1つのメッセージだけを返すことで、この問題を解決した。たとえば、"yes" のような応答はすべて、肯定のグループに属しているため、そのうち1つだけが即座に提案される。

メッセージを意味グループにまとめるもう一つの利点は、その評価にある。提案がどれだけ正確かを調べるには、具体的なテキストではなく意味に注目して、メッセージの応答グループの予測と実績の差分を見るだけでよい。

またLinkedInは、彼らのシステムでメッセージを送信するユーザー数のために、できるだけ素早くスマートリプライを生成するには、スケーラビリティに大きな課題があると指摘する。チームはこの課題を、事前に(送信時に)リプライを計算して、社内NoSQLデータベースであるExpressoに格納することで解決した。これにより、高価なオンザフライの計算を回避し、スマートリプライをほぼ即座に提供することが可能になる。

またLinkedInは、メッセージがプライベートであることを保証するための仕組みも用意している。一つは、メッセージを匿名化することだ。これにより、メッセージをトレーニングデータとして使用する前に、ユーザーにとって個人的なものは消えてなくなるはずだ。もう一つは、オプトアウト機能だ。これにより、その人のメッセージデータはシステムでまったく使われないようにすることができる。

彼らのアーキテクチャは、オンラインですべて説明されている。


 

Rate this Article

Adoption Stage
Style

この記事に星をつける

おすすめ度
スタイル

BT