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
370
ヤフーにおける機械学習検索ランキングの取り組み
szdr
11
15k
RecSys 2019 論文読み会 発表資料
szdr
1
1.1k
ランク学習と偽負例化合物を用いたバーチャルスクリーニング
szdr
0
430
Convolutional Neural NetworkとRankNetを用いた画像の順序予測
szdr
0
220
Other Decks in Technology
See All in Technology
Lambdaと地方とコミュニティ
miu_crescent
2
330
State of Open Source Web Mapping Libraries
dayjournal
0
240
スクラム成熟度セルフチェックツールを作って得た学びとその活用法
coincheck_recruit
1
110
Deno+JSRでパッケージを作って公開する
askua
0
120
【若手エンジニア応援LT会】ソフトウェアを学んできた私がインフラエンジニアを目指した理由
kazushi_ohata
0
120
エンジニアが一生困らない ドキュメント作成の基本
naohiro_nakata
3
170
Amplify Gen2 Deep Dive / バックエンドの型をいかにしてフロントエンドへ伝えるか #TSKaigi #TSKaigiKansai #AWSAmplifyJP
tacck
PRO
0
280
Terraform Stacks入門 #HashiTalks
msato
0
330
Microsoft Intune アプリのトラブルシューティング
sophiakunii
1
440
Shopifyアプリ開発における Shopifyの機能活用
sonatard
4
220
FOSS4G 2024 Japan コアデイ 一般発表25 PythonでPLATEAUのデータを手軽に扱ってみる
ra0kley
1
140
テストコード品質を高めるためにMutation Testingライブラリ・Strykerを実戦導入してみた話
ysknsid25
6
2.2k
Featured
See All Featured
Building Adaptive Systems
keathley
38
2.3k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
6.8k
Ruby is Unlike a Banana
tanoku
96
11k
Git: the NoSQL Database
bkeepers
PRO
427
64k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
250
21k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.7k
Fontdeck: Realign not Redesign
paulrobertlloyd
82
5.2k
For a Future-Friendly Web
brad_frost
175
9.4k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
Facilitating Awesome Meetings
lara
50
6.1k
Side Projects
sachag
452
42k
Building Your Own Lightsaber
phodgson
103
6.1k
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を “混ぜて”学習