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
360
ヤフーにおける機械学習検索ランキングの取り組み
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
ライブラリでしかお目にかかれない珍しい実装
mikanichinose
2
330
freeeのモバイルエンジニアについて
freee
1
100
Terraform Stacks入門 #HashiTalks
msato
0
220
透過型SMTPプロキシによる送信メールの可観測性向上: Update Edition / Improved observability of outgoing emails with transparent smtp proxy: Update edition
linyows
2
190
社内で最大の技術的負債のリファクタリングに取り組んだお話し
kidooonn
1
470
ジョブマッチングサービスにおける相互推薦システムの応用事例と課題
hakubishin3
3
620
マルチモーダルデータ基盤の課題と観点
neonankiti
1
110
スクラムチームを立ち上げる〜チーム開発で得られたもの・得られなかったもの〜
ohnoeight
2
290
Platform Engineering ことはじめ
oracle4engineer
PRO
8
810
LINEヤフー株式会社における音声言語情報処理AI研究開発@SP/SLP研究会 2024.10.22
lycorptech_jp
PRO
2
280
Datachain会社紹介資料(2024年11月) / Company Deck
datachain
4
17k
製造現場のデジタル化における課題とPLC Data to Cloudによる新しいアプローチ
hamadakoji
0
200
Featured
See All Featured
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
25
1.8k
A better future with KSS
kneath
238
17k
No one is an island. Learnings from fostering a developers community.
thoeni
19
3k
Mobile First: as difficult as doing things right
swwweet
222
8.9k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.7k
StorybookのUI Testing Handbookを読んだ
zakiyama
26
5.2k
How To Stay Up To Date on Web Technology
chriscoyier
788
250k
Facilitating Awesome Meetings
lara
49
6.1k
Making the Leap to Tech Lead
cromwellryan
133
8.9k
Imperfection Machines: The Place of Print at Facebook
scottboms
264
13k
The Power of CSS Pseudo Elements
geoffreycrofte
73
5.3k
Making Projects Easy
brettharned
115
5.9k
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を “混ぜて”学習