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
810
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
500
ヤフーにおける機械学習検索ランキングの取り組み
szdr
11
15k
RecSys 2019 論文読み会 発表資料
szdr
1
1.2k
ランク学習と偽負例化合物を用いたバーチャルスクリーニング
szdr
0
470
Convolutional Neural NetworkとRankNetを用いた画像の順序予測
szdr
0
230
Other Decks in Technology
See All in Technology
DeepSeekとは?何がいいの? - Databricksと学ぶDeepSeek! 〜これからのLLMに備えよ!〜
taka_aki
1
170
役員・マネージャー・著者・エンジニアそれぞれの立場から見たAWS認定資格
nrinetcom
PRO
4
6.5k
20250304_赤煉瓦倉庫_DeepSeek_Deep_Dive
hiouchiy
2
120
Qiita Organizationを導入したら、アウトプッターが爆増して会社がちょっと有名になった件
minorun365
PRO
1
270
リクルートのエンジニア組織を下支えする 新卒の育成の仕組み
recruitengineers
PRO
1
140
ウォンテッドリーのデータパイプラインを支える ETL のための analytics, rds-exporter / analytics, rds-exporter for ETL to support Wantedly's data pipeline
unblee
0
140
E2Eテスト自動化入門
devops_vtj
1
110
JavaにおけるNull非許容性
skrb
2
2.7k
サバイバルモード下でのエンジニアリングマネジメント
konifar
16
4.2k
AIエージェント開発のノウハウと課題
pharma_x_tech
8
4.5k
エンジニアリング価値を黒字化する バリューベース戦略を用いた 技術戦略策定の道のり
kzkmaeda
7
3.2k
実は強い 非ViTな画像認識モデル
tattaka
3
1.4k
Featured
See All Featured
Designing for humans not robots
tammielis
250
25k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
2.1k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
For a Future-Friendly Web
brad_frost
176
9.6k
Gamification - CAS2011
davidbonilla
80
5.2k
Building Adaptive Systems
keathley
40
2.4k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
227
22k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
120k
The Invisible Side of Design
smashingmag
299
50k
What's in a price? How to price your products and services
michaelherold
244
12k
A Philosophy of Restraint
colly
203
16k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
175
52k
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を “混ぜて”学習