Upload
naoya-oosugi
View
2.636
Download
0
Embed Size (px)
Citation preview
Function Query って便利ですね
2017/06/05
リクルートテクノロジーズ
大杉直也
1
Solr本の9章後半あたりを書きました
• A/Bテスト、機械学習、レコメンドの辺り
• 自己紹介• 大杉直也
• リクルートテクノロジーズ所属• 検索改善とその周辺のことが仕事
• データサイエンティスト
• 小平ボードゲーム交流会代表
2
Solr出版記念ブログでSolr以外のこと書いたら爆死した
3
https://recruit-tech.co.jp/blog/2017/05/25/abtest_solr/
検索でランキングアルゴリズムが大切な理由• みんな、1ページ目のトップ3件くらいしか見ないから
4
5
ストーカーでもない限り、ここから下は読まないと思う
レコメンドエンジンにSolrがむいている3つの理由1. 数字だけでなく、文字列な特徴量(素性)を扱いやすい
• 形態素解析してBOWとか Similarity とか
2. オフラインでの計算だけでなく、オンラインでの計算が容易• function query でリクエストごとにアルゴリズムを変えられる
• Solrの外側でfunction queryを動的に変える仕組みが必要
3. 高負荷につよく、スケールさせやすい• そもそも検索導線とかいう過酷なところで利用される前提
• 処理を複数台に分散できる
• 更新しながらの利用もできる
6
Solrのランキングアルゴリズムの自由度高さは素敵1. Sort のパラメータに score をいれる
2. Function query で score の値をつくる
• テキスト検索時のSimilarityも function query の query 関数を使って、function query の一要素とみなせる
• 「100% こっちの方を上位に出さなければならない」のようなガチガチのビジネスロジックでもないかぎり、function query で制御していたほうがなにかと楽
7
鶏肉仕入れすぎちゃったから、季節のおすすめ商品と同じ感じで
鶏肉のソテーもおすすめしておいて*とあるレストランでの会話(フィクション)
VS Elasticsearch
• Solr の方がデフォルトの function query が豊富
• (多分)設計思想の違い• Solr
• いろんな関数を用意しておくから、後は勝手にして• Linux っぽい• 組み合わせれば、かなりの自由度がある
• Elasticsearch• 我々が考える便利関数パッケージを用意しておきましたので、こちらをお使いく
ださい• Windows っぽい• Script score という凶暴なものがあるが、重くて実用には辛かった(1系時代)
8
Function query の自由度よ (1/3)
9
Solr 本の300ページより引用
Function query の自由度よ (2/3)
10
Solr 本の299ページより引用
Function query の自由度よ (3/3)
• 特定のアイテムだけオススメしたい場合• 例:
• メニュー名に鶏肉とあるものが上位に出やすくしたい
• Similarityは考慮したくない
11
if(exist(query(!df=‘menu’ v=‘鶏肉’)), 1, 0)
本体のコードや、インデックスの中身の修正なしに、
リクエストのパラメータを変えるだけで色々と制御できるのは、
日々移り変わるビジネスの現場で(仕入れミスやシェフの気まぐれや)
迅速かつ安全な対応がとれる。Solr すげぇ!
本日のLTの参考資料
12