Upgrade to Pro — share decks privately, control downloads, hide ads and more …

E-Commerce検索におけるランキング研究

E8118b9dd283149c750084f95eee8bc0?s=47 sz_dr
August 02, 2019

 E-Commerce検索におけるランキング研究

Machine learning papers reading pitch #5
https://machine-learning-pitch.connpass.com/event/137427

E8118b9dd283149c750084f95eee8bc0?s=128

sz_dr

August 02, 2019
Tweet

Transcript

  1. E-Commerce検索における ランキング研究 鈴木 翔吾 @sz_dr Machine learning papers reading pitch

    #5 2019/8/2
  2. EC検索は情報検索・エンジニアリングの総合格闘技 NIKE スニーカー 赤 例) クエリの意図解釈 ・カテゴリ:スニーカー ・ブランド:NIKE ・属性:色=赤 例)

    機械学習ランキング ・購入・クリックをラベル ・予測購入・クリック確率 ・ランキング学習 例) 検索負荷対策 ・セール ・テレビで話題の商品 クエリ処理 ランキング 検索エンジン 他にも「A/Bテスト」「画像や音声で検索」「UI最適化」…など面白いトピックが盛りだくさん!
  3. 今日は「ランキング」に絞ってお話します NIKE スニーカー 赤 例) クエリの意図解釈 ・カテゴリ:スニーカー ・ブランド:NIKE ・属性:色=赤 例)

    機械学習ランキング ・購入・クリックをラベル ・予測購入・クリック確率 ・ランキング学習 例) 検索負荷対策 ・セール ・テレビで話題の商品 クエリ処理 ランキング 検索エンジン 他にも「A/Bテスト」「画像や音声で検索」「UI最適化」…など面白いトピックが盛りだくさん!
  4. 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を適用
  5. 今日は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を適用
  6. On Application of Learning to Rank for E-Commerce Search [S.

    Santu+, SIGIR 2017]
  7. この論文でやったこと EC検索へランキング学習を適用・モデルや特徴量、ラベルについて考察 Q. どんなモデル(最適化手法)が強かった? A. LambdaMART(勾配ブースティング木を使ったランキングモデル)が 圧倒的に高い精度 Q. どんな特徴量が効いた? A.

    商品の人気度を表す特徴量(売り上げ・レビュー数・レイティング)が効いた Q. どんなラベルで学習するのが良い? A. クリック・購入・売り上げ・カート追加を試したが   購入をラベルにすると安定した精度が得られた.   クラウドソーシングによるラベリングは上手くいかなかった
  8. ランキング学習 Learning to Rank 文書間の順序関係を訓練データとし、ランキング関数を構築する機械学習手法 ・web検索→webページ ・EC検索→商品 ・グルメサイト→お店 文書Aが文書Bよりも「良い」とき クエリ:q1

    Perfect Bad Good クエリ:qN Bad Good Excellent …
 予測対象文書 1.2 0.9 0.3
  9. この論文で使うデータセット (1/3) walmartのユーザー検索ログ クエリ数 2,800件をランダム選択 商品数 500万 クエリあたり商品数 BM25Fで120商品を取得 検索結果に100回以上出現した商品だけ抽出

    → 94.2商品 ・クエリ数は, walmartの規模を考えるとかなり少ない? ・検索結果に100回以上出現した商品だけ抽出しているので、  ヘッドクエリに偏っている?
  10. この論文で使うデータセット (2/3) 各商品にランク学習のためのラベル付けを行う 各商品ごとに以下指標を算出 ・ctr (Click through rate) ・or (Order

    rate) ・revr (Revenue rate) ・atcr (Add-to-cart ratio) 以下の式で, ラベル値が{0,1,2,3,4}を取るように離散化
  11. この論文で使うデータセット (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 クエリから推定した属性を使っているが, 推定自体も難しい&面白いタスク
  12. Q1. EC検索 ランキング学習におけるモデル比較 RankNet → RankBoost → AdaRank → LambdaMART

    → ランキング学習一般においてLambdaMART強いのはあるあるなので, 今回のタスクでもLambdaMART強いのは違和感無い結果
  13. Q2. 効いた特徴量. 特に商品の人気度を表す特徴量 商品の人気度を表す特徴量を抜いたときの精度を比較 → 人気度を表す特徴量は精度向上に大きく寄与 商品の人気度を表す特徴量 ・売り上げ ・レビュー数 ・レイティング(☆の数)

    などなど 人気な商品がクリック・購入されやすいというのはそれはそう. 一方で, 商品の人気度特徴量を使ったランキングモデルを使うと, 人気な商品が検索結果上位に出やすくなる → 検索結果上位なのでクリック・購入を集めやすい → rich get richer問題が深刻に. unbiased learning-to-rankの出番…?
  14. Q3. 商品ラベルはどうするのが良い? (1/2) テストデータのラベルを固定、 訓練データのラベルを変えて学習したときの精度を比較 → 購買情報をラベルに使うと, 平均して高い精度が得られた 商品検索は クリックもされて欲しいし,

    売れて欲しいし, 売り上げに繋がって欲しい なので, 各ラベルでの精度に全て効きそうな学習ができると嬉しい
  15. Q3. 商品ラベルはどうするのが良い? (2/2) クラウドソーシングによる商品ラベル付けを試した ・各クエリについて, ワーカー毎に異なる商品を見せて  {0,1,2,3,4}の5段階評価ラベリングしてもらい, 4の商品について注目 ユーザーに見られているのに, クリックされていない商品が多い

    → クラウドソーシングによる   商品ラベル付けは困難
  16. この論文でやったこと (再掲) EC検索へランキング学習を適用・モデルや特徴量、ラベルについて考察 Q. どんなモデル(最適化手法)が強かった? A. LambdaMART(勾配ブースティング木を使ったランキングモデル)が 圧倒的に高い精度 Q. どんな特徴量が効いた?

    A. 商品の人気度を表す特徴量(売り上げ・レビュー数・レイティング)が効いた Q. どんなラベルで学習するのが良い? A. クリック・購入・売り上げ・カート追加を試したが   購入をラベルにすると安定した精度が得られた.   クラウドソーシングによるラベリングは上手くいかなかった
  17. Neural IR Meets Graph Embedding: A Ranking Model for Product

    Search [Y. Zhang+, WWW 2019]
  18. この論文でやったこと Graph Embedding + Neural RankingをEC検索に適用 クエリグラフから embedding作成 商品グラフから embedding作成

    Graph Embeddingを “混ぜて”学習
  19. クエリグラフ・商品グラフの作り方 (1/2) (a)クエリとクリックされた商品群で   グラフを作る (b)1-hopで繋がってるnodeについて   クエリグラフ・商品グラフを作る (c-d)Graph Embedding手法により

       nodeのembeddingを得る    この論文では    ・DeepWalk    ・LINE    の2つの手法を試した
  20. クエリグラフ・商品グラフの作り方 (2/2) クリックだけでなく他情報も混ぜて、クエリグラフ・商品グラフを作成 1セッション内で検索された クエリ間にも辺を張る 商品ページから他商品ページ へ遷移したときも辺を張る

  21. ランキングモデル (1/2) Graph Embedding使わない版 → NeuBase ・クエリ中の各termに対するembeddingを  CNNにつっこむ → ・商品中の各termに対するembeddingを

     CNNにつっこむ → ・商品id to embedding(謎)→ 3つのベクトルをconcatしてMLP通して relevance scoreを求める
  22. ランキングモデル (2/2) Graph Embedding使う版 → GEPS (Graph Embedding Product Search)

    ・クエリ term-embeddingが  クエリグラフから得られるembeddingの空間で  近くなるように学習 ・商品グラフから得られるembeddingは  直接ランキングモデルで使う
  23. モデルの学習 お気持ち:あるクエリでクリックされた商品が、 クリックされなかった商品よりもスコアが高くなって欲しい

  24. 実験で使ったデータセット CIKM Cup 2016のデータセット ユーザー検索行動のセッション ・Original  testはセッション最後の検索 ・Chronological  train/testを日付で分割

  25. 実験1 ベースライン・既存手法との比較 LSI:BoWの行列分解 BM25:tf-idfを良くしたやつ QLM:P(p|q)をモデリング LSE:シンプルなembedding手法 VPCG:neuralじゃないgraph embedding ARC-II・MatchPyramid:Neural Ranking

  26. 実験2 tailクエリの性能・表示商品の分布 ← head
 tail →
 ← head
 tail →


    学習が難しいtailクエリでも良い性能! top5件にランキングされた商品の impression rank vs frequency → GEPSは万遍なく商品を表示 tailクエリで良性能は非常に嬉しい
  27. 実験3 Graph Embedding手法比較 手法・次元数を変えたときの精度比較 手法を変えたときの学習時間比較 データセット小さいので, 実用では学習時間かなり気になる…

  28. 実験4 ランク学習の素性に追加 GBDT:以下素性+relevance score ・クリック数 ・view数 ・購入数 ・CTR ・説明文の長さ ・log(価格)

    GEPS追加した際の精度向上が大きい 応用ではモデルたくさん運用したくないので, Base+QLM+GEPSくらいが嬉しい…
  29. 実験5 node間の距離とrelevance scoreの相関 GEPSはクエリ-商品間の距離が遠くなるほど, relevance scoreも小さくなっていく

  30. この論文でやったこと (再掲) Graph Embedding + Neural RankingをEC検索に適用 クエリグラフから embedding作成 商品グラフから

    embedding作成 Graph Embeddingを “混ぜて”学習