Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
E-Commerce検索におけるランキング研究
Search
sz_dr
August 02, 2019
Technology
1
800
E-Commerce検索におけるランキング研究
Machine learning papers reading pitch #5
https://machine-learning-pitch.connpass.com/event/137427
sz_dr
August 02, 2019
Tweet
Share
More Decks by sz_dr
See All by sz_dr
Vespaを利用したテクいベクトル検索
szdr
3
420
ヤフーにおける機械学習検索ランキングの取り組み
szdr
11
15k
RecSys 2019 論文読み会 発表資料
szdr
1
1.2k
ランク学習と偽負例化合物を用いたバーチャルスクリーニング
szdr
0
440
Convolutional Neural NetworkとRankNetを用いた画像の順序予測
szdr
0
220
Other Decks in Technology
See All in Technology
kargoの魅力について伝える
magisystem0408
0
200
Snykで始めるセキュリティ担当者とSREと開発者が楽になる脆弱性対応 / Getting started with Snyk Vulnerability Response
yamaguchitk333
2
180
スタートアップで取り組んでいるAzureとMicrosoft 365のセキュリティ対策/How to Improve Azure and Microsoft 365 Security at Startup
yuj1osm
0
210
コンテナセキュリティのためのLandlock入門
nullpo_head
2
320
.NET 9 のパフォーマンス改善
nenonaninu
0
530
AWS re:Invent 2024 ふりかえり
kongmingstrap
0
130
Amazon VPC Lattice 最新アップデート紹介 - PrivateLink も似たようなアップデートあったけど違いとは
bigmuramura
0
190
re:Invent をおうちで楽しんでみた ~CloudWatch のオブザーバビリティ機能がスゴい!/ Enjoyed AWS re:Invent from Home and CloudWatch Observability Feature is Amazing!
yuj1osm
0
120
サーバレスアプリ開発者向けアップデートをキャッチアップしてきた #AWSreInvent #regrowth_fuk
drumnistnakano
0
190
マイクロサービスにおける容易なトランザクション管理に向けて
scalar
0
110
新機能VPCリソースエンドポイント機能検証から得られた考察
duelist2020jp
0
210
20241220_S3 tablesの使い方を検証してみた
handy
3
240
Featured
See All Featured
Building Flexible Design Systems
yeseniaperezcruz
327
38k
Site-Speed That Sticks
csswizardry
2
190
Designing Dashboards & Data Visualisations in Web Apps
destraynor
229
52k
Become a Pro
speakerdeck
PRO
26
5k
Practical Orchestrator
shlominoach
186
10k
Large-scale JavaScript Application Architecture
addyosmani
510
110k
It's Worth the Effort
3n
183
28k
How GitHub (no longer) Works
holman
311
140k
Producing Creativity
orderedlist
PRO
341
39k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
The Pragmatic Product Professional
lauravandoore
32
6.3k
Being A Developer After 40
akosma
87
590k
Transcript
E-Commerce検索における ランキング研究 鈴木 翔吾 @sz_dr Machine learning papers reading pitch
#5 2019/8/2
EC検索は情報検索・エンジニアリングの総合格闘技 NIKE スニーカー 赤 例) クエリの意図解釈 ・カテゴリ:スニーカー ・ブランド:NIKE ・属性:色=赤 例)
機械学習ランキング ・購入・クリックをラベル ・予測購入・クリック確率 ・ランキング学習 例) 検索負荷対策 ・セール ・テレビで話題の商品 クエリ処理 ランキング 検索エンジン 他にも「A/Bテスト」「画像や音声で検索」「UI最適化」…など面白いトピックが盛りだくさん!
今日は「ランキング」に絞ってお話します NIKE スニーカー 赤 例) クエリの意図解釈 ・カテゴリ:スニーカー ・ブランド:NIKE ・属性:色=赤 例)
機械学習ランキング ・購入・クリックをラベル ・予測購入・クリック確率 ・ランキング学習 例) 検索負荷対策 ・セール ・テレビで話題の商品 クエリ処理 ランキング 検索エンジン 他にも「A/Bテスト」「画像や音声で検索」「UI最適化」…など面白いトピックが盛りだくさん!
EC検索におけるランキング研究例 [L. Wu+, SIGIR 2018] (Etsy) ・商品ごとに「期待売り上げ」を求めてランキング ここ数年で様々な会議に投稿されており、熱いトピックかも(?) [S. Santu+,
SIGIR 2017] (イリノイ大, WalmartLabs) ・EC検索へランキング学習を適用・モデルや特徴量、ラベルについて考察 [A. Magnani+, WWW 2019] (WalmartLabs) ・EC検索へNeural Rankingを適用 [Y. Zhang+, WWW 2019] (北京大学) ・EC検索へGraph Embedding + Neural Rankingを適用
今日は2つの研究を紹介します [L. Wu+, SIGIR 2018] (Etsy) ・商品ごとに「期待売り上げ」を求めてランキング ここ数年で様々な会議に投稿されており、熱いトピックかも(?) [S. Santu+,
SIGIR 2017] (イリノイ大, WalmartLabs) ・EC検索へランキング学習を適用・モデルや特徴量、ラベルについて考察 [A. Magnani+, WWW 2019] (WalmartLabs) ・EC検索へNeural Rankingを適用 [Y. Zhang+, WWW 2019] (北京大学) ・EC検索へGraph Embedding + Neural Rankingを適用
On Application of Learning to Rank for E-Commerce Search [S.
Santu+, SIGIR 2017]
この論文でやったこと EC検索へランキング学習を適用・モデルや特徴量、ラベルについて考察 Q. どんなモデル(最適化手法)が強かった? A. LambdaMART(勾配ブースティング木を使ったランキングモデル)が 圧倒的に高い精度 Q. どんな特徴量が効いた? A.
商品の人気度を表す特徴量(売り上げ・レビュー数・レイティング)が効いた Q. どんなラベルで学習するのが良い? A. クリック・購入・売り上げ・カート追加を試したが 購入をラベルにすると安定した精度が得られた. クラウドソーシングによるラベリングは上手くいかなかった
ランキング学習 Learning to Rank 文書間の順序関係を訓練データとし、ランキング関数を構築する機械学習手法 ・web検索→webページ ・EC検索→商品 ・グルメサイト→お店 文書Aが文書Bよりも「良い」とき クエリ:q1
Perfect Bad Good クエリ:qN Bad Good Excellent … 予測対象文書 1.2 0.9 0.3
この論文で使うデータセット (1/3) walmartのユーザー検索ログ クエリ数 2,800件をランダム選択 商品数 500万 クエリあたり商品数 BM25Fで120商品を取得 検索結果に100回以上出現した商品だけ抽出
→ 94.2商品 ・クエリ数は, walmartの規模を考えるとかなり少ない? ・検索結果に100回以上出現した商品だけ抽出しているので、 ヘッドクエリに偏っている?
この論文で使うデータセット (2/3) 各商品にランク学習のためのラベル付けを行う 各商品ごとに以下指標を算出 ・ctr (Click through rate) ・or (Order
rate) ・revr (Revenue rate) ・atcr (Add-to-cart ratio) 以下の式で, ラベル値が{0,1,2,3,4}を取るように離散化
この論文で使うデータセット (3/3) 562特徴量を用意 Text Match BM25F クエリと商品の各フィールド(ブランド・タイトル・説明文 などなど)のマッチ度 Product attributes
商品の属性 購入数・人気度・レビュー数・ブランド・価格などなど Query-Document attribute match クエリ・商品に属性情報が含まれるか 「blue Iphone 6 case」→ colorの情報存在 Query-Document attribute value match クエリ・商品の属性情報がマッチするか ・クエリ → color=blue (確率=0.9) ・商品 → color=blue → マッチ度=0.9 クエリから推定した属性を使っているが, 推定自体も難しい&面白いタスク
Q1. EC検索 ランキング学習におけるモデル比較 RankNet → RankBoost → AdaRank → LambdaMART
→ ランキング学習一般においてLambdaMART強いのはあるあるなので, 今回のタスクでもLambdaMART強いのは違和感無い結果
Q2. 効いた特徴量. 特に商品の人気度を表す特徴量 商品の人気度を表す特徴量を抜いたときの精度を比較 → 人気度を表す特徴量は精度向上に大きく寄与 商品の人気度を表す特徴量 ・売り上げ ・レビュー数 ・レイティング(☆の数)
などなど 人気な商品がクリック・購入されやすいというのはそれはそう. 一方で, 商品の人気度特徴量を使ったランキングモデルを使うと, 人気な商品が検索結果上位に出やすくなる → 検索結果上位なのでクリック・購入を集めやすい → rich get richer問題が深刻に. unbiased learning-to-rankの出番…?
Q3. 商品ラベルはどうするのが良い? (1/2) テストデータのラベルを固定、 訓練データのラベルを変えて学習したときの精度を比較 → 購買情報をラベルに使うと, 平均して高い精度が得られた 商品検索は クリックもされて欲しいし,
売れて欲しいし, 売り上げに繋がって欲しい なので, 各ラベルでの精度に全て効きそうな学習ができると嬉しい
Q3. 商品ラベルはどうするのが良い? (2/2) クラウドソーシングによる商品ラベル付けを試した ・各クエリについて, ワーカー毎に異なる商品を見せて {0,1,2,3,4}の5段階評価ラベリングしてもらい, 4の商品について注目 ユーザーに見られているのに, クリックされていない商品が多い
→ クラウドソーシングによる 商品ラベル付けは困難
この論文でやったこと (再掲) EC検索へランキング学習を適用・モデルや特徴量、ラベルについて考察 Q. どんなモデル(最適化手法)が強かった? A. LambdaMART(勾配ブースティング木を使ったランキングモデル)が 圧倒的に高い精度 Q. どんな特徴量が効いた?
A. 商品の人気度を表す特徴量(売り上げ・レビュー数・レイティング)が効いた Q. どんなラベルで学習するのが良い? A. クリック・購入・売り上げ・カート追加を試したが 購入をラベルにすると安定した精度が得られた. クラウドソーシングによるラベリングは上手くいかなかった
Neural IR Meets Graph Embedding: A Ranking Model for Product
Search [Y. Zhang+, WWW 2019]
この論文でやったこと Graph Embedding + Neural RankingをEC検索に適用 クエリグラフから embedding作成 商品グラフから embedding作成
Graph Embeddingを “混ぜて”学習
クエリグラフ・商品グラフの作り方 (1/2) (a)クエリとクリックされた商品群で グラフを作る (b)1-hopで繋がってるnodeについて クエリグラフ・商品グラフを作る (c-d)Graph Embedding手法により
nodeのembeddingを得る この論文では ・DeepWalk ・LINE の2つの手法を試した
クエリグラフ・商品グラフの作り方 (2/2) クリックだけでなく他情報も混ぜて、クエリグラフ・商品グラフを作成 1セッション内で検索された クエリ間にも辺を張る 商品ページから他商品ページ へ遷移したときも辺を張る
ランキングモデル (1/2) Graph Embedding使わない版 → NeuBase ・クエリ中の各termに対するembeddingを CNNにつっこむ → ・商品中の各termに対するembeddingを
CNNにつっこむ → ・商品id to embedding(謎)→ 3つのベクトルをconcatしてMLP通して relevance scoreを求める
ランキングモデル (2/2) Graph Embedding使う版 → GEPS (Graph Embedding Product Search)
・クエリ term-embeddingが クエリグラフから得られるembeddingの空間で 近くなるように学習 ・商品グラフから得られるembeddingは 直接ランキングモデルで使う
モデルの学習 お気持ち:あるクエリでクリックされた商品が、 クリックされなかった商品よりもスコアが高くなって欲しい
実験で使ったデータセット CIKM Cup 2016のデータセット ユーザー検索行動のセッション ・Original testはセッション最後の検索 ・Chronological train/testを日付で分割
実験1 ベースライン・既存手法との比較 LSI:BoWの行列分解 BM25:tf-idfを良くしたやつ QLM:P(p|q)をモデリング LSE:シンプルなembedding手法 VPCG:neuralじゃないgraph embedding ARC-II・MatchPyramid:Neural Ranking
実験2 tailクエリの性能・表示商品の分布 ← head tail → ← head tail →
学習が難しいtailクエリでも良い性能! top5件にランキングされた商品の impression rank vs frequency → GEPSは万遍なく商品を表示 tailクエリで良性能は非常に嬉しい
実験3 Graph Embedding手法比較 手法・次元数を変えたときの精度比較 手法を変えたときの学習時間比較 データセット小さいので, 実用では学習時間かなり気になる…
実験4 ランク学習の素性に追加 GBDT:以下素性+relevance score ・クリック数 ・view数 ・購入数 ・CTR ・説明文の長さ ・log(価格)
GEPS追加した際の精度向上が大きい 応用ではモデルたくさん運用したくないので, Base+QLM+GEPSくらいが嬉しい…
実験5 node間の距離とrelevance scoreの相関 GEPSはクエリ-商品間の距離が遠くなるほど, relevance scoreも小さくなっていく
この論文でやったこと (再掲) Graph Embedding + Neural RankingをEC検索に適用 クエリグラフから embedding作成 商品グラフから
embedding作成 Graph Embeddingを “混ぜて”学習