目次
今年もBerlin Buzzwordsにオンライン出張してました。 今年の開催は6月14日から17日まででした。 どんなカンファレンスなのかは昨年のブログ記事をごらんください。
今年はHAYSTACKは共同開催で、MICESは別開催でした。 MICESにも参加していたので、また後日にブログ記事を公開する予定です。
参加したセッション
参加したセッションの個人用のメモを取ってあるので、簡単にまとめておきます。 セッションページに動画やスライドも追加されつつあります。興味のある方はそちらをご覧いただければと。 (今のところYouTubeに上がっているビデオは69本あります。再生リストはこちら) 気になっていたセッションもあるので、ビデオを見てまたメモを公開すると思いますが、まずは第1弾を。 ちなみに、検索をメインに見ています。Berlin Buzzwords自体はオブザバビリティやOSSコミュニティ、データのストリーミングの話などの話題もあるので、この辺りも興味があれば探してみても面白いかもです。
How to measure Diversity of Search Results
従来の検索では、クエリに対して精度の高い検索結果を1件または数件返すのはどうするか?というものだったが、最近、あるユースケース(ほかの物の発見を促したいケース)では 検索結果の多様性を高めつつ、精度もある程度確保したいという場合があります。
ざっくりした検索クエリ(例えば自転車)の場合に、自転車だけが1ページ目にある場合よりも自転車とは別に自転車グッズも表示された場合のほうがクリック率やGMV(Gross Merchandice Value?)が上がったという話が紹介されていました。 この時どのくらい混ぜればいいのか?というのを、シャノンのエントロピーを使って、検索結果の多様性を保つための具体的なヒントについて話をされています。 実際にこういう計算をしてやれますねという紹介がされています。
From text search and recommendation to ads and online dating; approximate nearest neighbors in real world applications
Vespa.ai(OSS)の紹介でANNの話でした。通常、ANNを用いた検索の場合に他の検索条件(地理情報、日付など)をANNの結果に対して適用すると、望んでいる数がとれないです。その場合に、Vespaは内部でいい感じの動きをしますよという紹介でした。
“Are You Sure?": blending product comparisons and recommendations with A.I.
- セッションページ: “Are You Sure?": blending product comparisons and recommendations with A.I. | Berlin Buzzwords 2021
Amazonの製品ページにある、類似商品との比較一覧のような一覧をどうやって実現するか?という話でした。比較一覧に掲載する商品を選出するパイプラインをこうやれますよね?という話でした。ログ(クリックやカートに入れたかどうかなど)を元にkNNで似ているデータを洗い出し、どの商品、どの項目を比較一覧として選ぶかという流れでした(セッションではもっと詳しい話がされています)。オフライン実験の話までがセッションでされています。
The future of Lucene’s MMapDirectory: Why use it and what’s coming with Java 16 and later?
Apache Lucene PMCのUweさんによるLuceneのMMapDirectoryの話です。 ファイルシステムとJavaに関する歴史と、なぜMMapなのか、現在のMMapの実装の問題点とJDK 16でどうなっているか(どんな感触か)、さらにその先(JDK17)は?という話です。 Luceneでの利用方法からJDKへのフィードバックが行われている話や、そのフィードバックをもとに今後どのようにしていくのか?という話がされています。
Search and Sushi; Freshness Counts
こちらもVespa.aiの紹介です(今年はスポンサーしてるから多いのかも?)。Yahoo!とVerizon Mediaで利用している話をしたあと、Vespaでのリアルタイムインデキシングに関するアーキテクチャの紹介でした。内部で転置インデックスやそれ以外のデータをどのように保持しているのか?どういったことができるのか?というのをアーキテクチャ、ストレージの観点から紹介しています。
Encores? - Going beyond matching and ranking of search results
- セッションページ(動画がまだない): Encores? - Going beyond matching and ranking of search results | Berlin Buzzwords 2021
検索のマッチングやランキング以外のいくつかの機能についての紹介をワークショップ形式で行うセッションです。ファセット、クエリオートコンプリート、スペル訂正、クエリリラクゼーションについて、データとSolrのクエリを基準に説明をしてくれます。
The Invasion of Transformers - Boosting Search with Latest NLP
deepsetという会社のCTOの方で、自社で作っているOSSのhaystackという製品の紹介です。 最近のGoogleの検索結果にはいろんなもの(問いかけに関する答えそのもの、またそのプレビューやサマリー)が出てきているという話から、Transformersを使って検索ができないかということで自社のOSSの仕組みを紹介しています。
- 参考
Learning to Judge
otto.deというECサイトでLtRを導入し、そのLtRにどんな特徴を利用しどうやって実験したかというセッションでした。Apache Solrで検索ができていて、これまでは検索の管理を人手で行っていたがスケールしない(扱う商品などは増えているのに)のでLtRを導入し始めたという感じでした。LtRの導入の過程でどういう仮定を置いて、どうモデルを決め、それをどうやってテストしてどう分析したか?という流れでした。
Text categorization with Apache Lucene
LTなので短めです。BBCのデータセットをインデックスに登録し、そのデータをもとにLucene(デモではKibana+Esを利用していた)でテキスト分類を行なう方法について紹介しています。BBCのデータセットは記事(テキスト)とカテゴリ(タグ)というデータです。 このデータが登録されているインデックスに対して、More Like Thisクエリに分類したい文章を与え、ヒットしたデータをもとにAggregationでカテゴリを取得し、上位のカテゴリが分類された結果になるというデモでした。 テキストフィールドにはEdge N-Gramを利用していること、Aggregationのソートの条件はMore Like Thisクエリでのスコアの平均を利用していることというのがこの方法がうまくいくことのようでした(なるほど!)。ただ、日本語でもこれが使えるかな?というのはやってみないとわからないかなぁと(やってないです)。
とりあえず、メモしておいたのはこの辺でした。 他にもセッション一覧を眺めながら面白そうな話をピックアップしてメモを取っていこうかなぁ?気になるセッション、メモがおかしいなどあればコメントいただければと。
comments powered by Disqus
See Also by Hugo
- 今年もオンラインでBerlin Buzzwordsに参加した
- 今年もMICESにオンライン出張してた
- Berlin Buzzwordsにオンライン出張してた
- 今年もオンラインでBerlin Buzzwordsに参加した
- Elastic Stack 7.7がリリースされた