INFORMATION
テクノロジ

SIGIR 2017に参加してきました

溝口 泰史 著

2017年8月7日から8月11日の5日間新宿で開催された、情報検索分野トップカンファレンスのACM-SIGIR 2017に参加してきました。実際には初日はチュートリアル、最終日はワークショップなので、学会としては三日間でしたが、チュートリアル・ワークショップを含め、とても刺激的な五日間でした。

会場は京王プラザホテルで、JRの新宿駅からは地上にほとんど出ることなく行き来することができました。会期中雨の降ることが多かったので、この会場の立地はとてもありがたかったです。会場は5階、42階、43階になることが多かったですが、コーヒーブレイクやポスターセッションで立ち寄った43階の部屋からの眺望は曇天にもかかわらず遠くまで新宿を見渡すことができ、気分をリフレッシュすることができました。

一日の間にいくつもの発表を聞いており、全ての発表の感想はとても書ききれないので、以下は興味深いと感じた発表のみ抜粋してレポートしたいと思います。

目次

初日:チュートリアル

初日は全日チュートリアルでした。プログラムはここに載っていますが、私は個人的な興味から以下の二つに参加しました。

LinkedInの事例を例にした、リコメンドシステムの構築時の(特に)クエリ側の処理に重点を置いたチュートリアル。 始まりは転置インデックスの仕組みなど本当に基礎から説明を行ないつつも、クエリの解釈と検索結果の絞り込みの部分に関しては非常に詳しく説明されており適正なリコメンドを行うためにどのような処理をすれば良いか勉強になりました。実例として挙げられているものはLinkedInのビジネス(求人のマッチング)に特化していましたが、いくつかは他の職種であっても応用することが可能であると思います。最先端のテクノロジー企業が実際の業務でどのように検索改善を行っているか、その一部でも知ることができたのはとても有意義でした。唯一残念だったと思った点は、Large Scaleな検索を支えるインフラ構成の話がほぼなかったことです。

後半は実際にSolrやStanford NLPを用いてリコメンドのプロトタイプアプリケーションを設定し、動作させてみるというものでしたが、参加者が多かったために会場のWiFiの速度が非常に遅くなり、ソフトウェアのダウンロードに多くの時間を費やしてしまったため、私は最後までたどり着くことができませんでした。サンプルアプリのコードはGithubに上がっており、手順も丁寧に書かれているので興味があればぜひ実際に動かしてみてください。

スライドはSlideshareに出てはいないようですが、トピックモデルに関する大学の講義のようなチュートリアルでした。トピックモデルを利用することで、ドキュメントがどういったトピックを扱っているものであるかをコンピューターによって判別させることができるようになり、ドキュメントのカテゴライズ、ドキュメントやクエリのコンテキストを加味した検索ができるようになるなど、情報検索においては多くのメリットを享受することができます。チュートリアルを担当されていたZhai先生はcourseraで情報検索やデータマイニングなどのコースを持っており、そのコースの評価も非常に高かったことから、トピックモデルをきちんと学ぶ良い機会だと思って参加しました。

確率をメインで扱うことからスライドの内容は大半が数式でしたが、パラメータの説明も丁寧になされており、わかりやすく説明するように努めていると感じました。英語の単語自体がわからなかったり、細かなニュアンスで理解できない点はいくつかありましたが、今後トピックモデルを学んでいくための基礎を学ぶことはできたと思えます。

ただ、前半の基礎部分の説明を丁寧に行ったためか、後半の応用部分がかなり駆け足になってしまったため、応用部分は自習する必要がありました。

二日目

二日目から四日目までは発表(プレゼンテーション)がメインでした。プログラムはここに載っています。

  • End-to-End Neural Ad-hoc Ranking with Kernel Pooling
  • K-NRM(Kernel Neural Ranking Model)というKernel poolingを利用したランキングモデルを開発したという発表でした。単語をベクトルに置き換えて検索することで、良い検索結果が得られたり、良いリコメンドが行えることが知られていますが、いくつかの手法では「東京」と「ロンドン」、「ホテル」と「モーテル」などあまり似ていない単語がベクトル成分が似ているため、ペアになることがあります。この状態で検索を行うと、例えば「東京 ホテル」での検索結果に「ロンドンのモーテル」が表示されてしまうという問題があります。

    結果としてはK-NRMを使うと、他のアルゴリズム(Word2Vec)で単語をベクトルに置き換えた場合に不適切にペアとして判別された単語のペアを90%以上分離することができたということで、驚くべき結果でした。自分で検証できそうならば検証してみたいと思います。 他にもSoft matchというキーワードがちょくちょく出てきてはいたのですが、残念ながらSoft matchについてはよくわかっておらず、勉強の必要性を痛感しました。

    同一の検索セッション(特定の結果を見つけるまで検索キーワードを変えたり、ページングするなどの一連の行動の集合)内での検索精度を向上させる取り組みについての発表。簡単に言ってしまえば、同一セッション内で検索をする際のクエリの変化に注目して検索結果へのスコアのフィードバックをかけるというもので、複数回検索が行われても変化しないキーワードや新たに追加されたキーワードには重みをつけ、前回の検索には存在したが今回の検索で削除されたキーワードに関するスコアを減らす制御を実施して検索のランキングを改善するというものです。後述する五日目のLuceneのワークショップでもデモを行なっていました。

    Improving Search Engines via Large-Scale Physiological Sensing(ポスターセッション)

    ランキング改善の特徴量に心拍(Heartrate)を利用したという試みに関する発表。(ポスターの中では心拍のデータソースは示されていませんでしたが)活動量計(Microsoft Band)を売っているMicrosoftだからこそできる面白い研究だと思いました。結果はほぼ全てのカテゴリーではランキングの改善が見られ、生体信号を特徴量として利用することの有用性を示すものでした。ただし、心拍を利用しているにもかかわらずHealthとNewsのカテゴリのみでランキングが悪化していたことが気にかかりましたが、そこも含めて興味深い内容でした。残念ながら私が通った際に担当の方がいらっしゃらなかったので、詳しい説明を聞くことはできなかったのですが、今後ランキング処理のための特徴量として生体信号を使うというのはトレンドになり得るかなと思いました。

    三日目

    動画サイトで動画の検索結果に表示されるキーフレーム(動画を一部を切り抜いたサムネイルのようなもの)のパーソナライズを検証したという発表。 従来のキーフレームは動画をいかに短い時間の中で要約するかと言うところにフォーカスしていたのに対し、機械学習を利用して利用者に応じてキーフレームの内容を変えるたというものです。効果があった特徴量としてTime synchronized comment(動画のシーンにリンクしたコメント)を挙げており、効果も得られたという結論でした。動画などのリッチなメディアからはメタデータを除いて意味のある特徴量を抽出するのは難しいと思っていましたが、コメントであればテキストベースでの分析が使えるので、納得と感心が半々というところでした。

    Webページのランキング改善の手続きにゲーム理論を取り入れたという発表。 ゲーム理論は制約のある中で複数のプレイヤーが競合・協力しつつ自分の利得の最大化・損失の最小化を目指す最適な戦略を導きだすための理論で、発表の中ではWebサイトのSEOを想定し、ドキュメント(Webサイト)の作者(管理者)をゲーム理論のプレイヤーとして自分のドキュメントのランキングを最大化しようとする試みを非協力ゲームとしてモデリングし、その場合の最も効果的な戦略をシミュレーションにより確かめていました。

    結論としては、前回観測された最良のランクのドキュメントの真似をすることで、ランキングのモデルに関わらずランキングを上昇させることができるという、直感的に納得できるものでしたが、それをシミュレーションで裏付けしたというところに大きな意味があり、さらにランキング改善の手順をゲーム理論と結びつけた点は、(私が知らないだけかもしれませんが、)非常にユニークだと感じました。ただ、Googleのような外部からの参照によってスコアリングを行う検索エンジンに対して結論として導き出された最適戦略が有効かは疑問が残りました。

    ランキング処理にかかる特徴量ごとの計算コストとその効果を加味してランキング処理の効率と効果のバランスを取るという発表。 ランキング処理は対象とするドキュメント数を増やせば増やすほど良い精度が得られるのですが、そのドキュメント数に応じて計算量も増えていきます。この発表ではドキュメント数を減らしつつ複数回の異なるランキング処理を行うことで精度を向上を目指すカスケードモデルを対象にして、各ランキング処理の効果とその計算量のトレードオフを考慮したランキング処理を行なったというものでした。

    結果としては、使用する特徴量におけるランキング改善の効果とその特徴量での計算量を加味することで、すべての特徴量を利用する場合に比べて検索結果が10%程度適正なランキングにはなりにくくなるものの、ランキングにかかるコストを1/40-1/50程度にできるというものでした。

    Solr本体にはランキング処理を2回実施するリランキングという機能が取り込まれており、弊社も独自にnlp4lというリランキングモデルを作成することができるフレームワークの開発していることから、ランキングのコストを加味してリランキングモデルを決定するという点は今後業務に活かしたいと思います。

    四日目

    Siriなど音声アシスタントへ会話形式で質問する場合に、それまでの会話のコンテキストを加味することで質問の回答を改善できたという発表。 不完全な疑問文(Incomplete Follow-up Question)というのは、例えば(1)「日本の首都は?」の後に続いて(2)「アメリカは?」と質問する場合の(2)のことを指しています。 発表では不完全な疑問文を、直前の疑問文から補完するシステムを作り、Siriを使ってそのシステムを間に挟む場合とそうでない場合を比較し、不完全な疑問文への回答の正確さが130%程度向上したとのことで、音声アシスタントと自然な会話の流れで質問をすることができるようになることが期待できると思いますが、評価に用いられている言語が英語でしたので、日本語で同様のことができるかという点は考えさせられるものがありました。

    エンティティのベクトル化のための新しい手法の発表。 数式が難しくてMax-Margin Basedの意味はほとんど理解できなかったものの、既存の他のベクトル化の手法に比べても良い検索結果が得られたという結果が印象的で、良い検索を実現するためにエンティティのベクトル化のアルゴリズムとその背景となっている考え方を勉強する必要性を強く感じることができました。

    五日目

    五日目はワークショップでした。Lucid works社CTOのGrant Ingersoll氏が携わるLuceneを使ったハッカソンに興味があって午前中参加していたのですが、午後の空き時間に別のワークショップに参加している間にハッカソンが始まっており、午後からはeCommerceのワークショップに参加しました。

    Lucene及びLuceneをベースとした検索エンジンであるSolr/Elasticsearchを情報検索のプラットフォームとして情報検索用のコードの実装をすることを目的としたワークショップでした。 前述の理由により、午前中だけの参加ではあったものの、Grant Ingersoll氏によるLuceneの機能の説明や、Luceneを利用したIRフレームワークの紹介、Luceneを利用した検索アルゴリズムに関する発表など、非常に勉強になりました。 特に、初日のポスターセッションのAn Extended Relevance Model for Session Searchのデモで、同一検索セッション内での検索キーワードの変化をスコアに反映することの効果を知ることができ、検索キーワードの変化をスコアにフィードバックすることの有用性を目視できたことが一番大きかったです。

    eCommerceに関連する検索技術のワークショップでした。 昼のポスターセッションから参加しましたが、午後のプレゼンテーションではAlibaba、eBay、楽天の三社の検索の事例が紹介され、大規模スケールの検索やリコメンドの事例、発生しうる問題というものを知ることができました。特にeBayの方のDocument Reordering is Good, Especially for e-Commerceが、ドキュメントのidを検索結果が表示される際のカテゴリ順に並び変えることで検索レスポンスを向上させるという低レイヤーでの話でしたが、超大規模な検索ならではのパフォーマンスチューニングだと感心するものがありました。

    感想

    当初は学術的な発表に終始するものだと考えていましたが、大手の企業の実績を伴う検索改善や、SNS/動画サイトなど時代の変化や業務分野に応じた検索技術の発表など、私にとっては検索という枠組みへの視野を大きく広げることができたと思います。一方で学会発表のため、求められている知識のレベルが高く、総じて自分の知識不足を痛感した一週間でした。ただ、このような機会がなければ世界の先端企業でどのような試みが行われているか、自身の知識がそれらの試みを把握するのにどれだけ不足しているか実感することは難しかったと思います。そういった点では、今回SIGIRに参加できたことはとても意味があったと思えました。


    トレーニングコース

    ロンウイットのトレーニングは、Lucene/Solrの経験豊富なコミッターの
    監修のもと開発されたハンズオン(実習)形式のコースです。

    セミナー

    ロンウイットのApache Software Foundationコミッターが、情報検索の基礎、自然言語処理、そして、ユーザにとっての効果についてご説明させていただきます。