222 Views
September 19, 18
スライド概要
WebDB Forum 2018 テクノロジーショーケースの発表資料です。
http://db-event.jpn.org/webdbf2018/
2023年10月からSpeaker Deckに移行しました。最新情報はこちらをご覧ください。 https://speakerdeck.com/lycorptech_jp
WebDB Forum 2018 テクノロジーショーケース 関連記事 レコメンドエンジン @Yahoo! JAPAN 2018年 9月 14日 柴垣 篤志 Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
内容 Yahoo! で開発中の関連記事レコメンドエンジンについて • ライブテストやっています • 機械学習モデルについて • システム構成について Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 2
関連記事モジュールとは • ニュース記事の下にある回遊性を向上させるためのモジュール Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 3
どのようなレコメンドがしたいか •その記事を見た後によく見られている記事 •よくリクックされる記事 ( Click / xxx の高い記事 ) • Click / PV • Click / Unique Browser • … Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 4
モデルの方針 元の記事を見た次に よく見られている記事 を •レコメンドしたらよいでは? 🤔 Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 5
実績がたまるまで、待てない • だいたいこんな感じ 実績だけでは カバレッジ出せない😱 新しい記事のPVが高い 入稿されてから3時間後に まともにレコメンドしても インパクトが薄い 新しい記事によいレコメン ドをすることが重要 Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 6
ではどうしているか •記事の情報も使う ! •AutoEncoder + α で記事の分散表現を学習 •モデルの特徴量に分散表現を使う Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 7
記事の分散表現の作り方 Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. [Okura+, KDD’17] 8
どう学習するか? →ランキング学習 Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 9
教師スコアの付け方 • モジュール内でレコメンドしてCTRが集計できたペア • • • • スコア スコア スコア スコア = = = = 5 4 3 2 : : : : CTR CTR CTR CTR の の の の 上位 上位 上位 下位 25% の ペア 25 – 50 % の ペア 50 – 75 % の ペア 25% の ペア 元記事 → 遷移先 CTR スコア X→A 0.04 5 X→B 0.03 4 X→C 0.025 3 X→D 0.015 2 Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 10
教師スコアの付け方 • モジュール内でレコメンドしたものだけでは • ペアのバリエーションが少ない。 • しかし、それ以外のペアはCTRが得られていない • 元記事の次にみられた回数 (グローバルな遷移回数) と • CTRのあるペアのスコアを基準に教師スコアをつける • グローバルな遷移の例 (記事X → トップページ → 記事 E) ⇛ X → E の遷移 (記事X → 検索 → 記事F) ⇛ X → F の遷移 Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 11
CTRの集計できないペアのスコア • • • • : : : : 遷移元の記事 , : 遷移先の記事 グローバル遷移回数を返す関数 CTRの集計できた記事の集合を返す関数 CTRの集計できた記事の教師スコアを返す関数 • CTRの集計できないペアのスコアを返す関数 • CTRがあるペアの中で よりも高いグローバル遷移回数を持つスコアの最小値 CTRがあるペアの中で よりも低いグローバル遷移回数を持つスコアの最大値 • Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 12
スコアの付け方 具体例 遷移回数 CTR スコア X→E 14 N.A. ? X→F 3 N.A. ? X→A 10 0.04 5 X→B 15 0.03 4 X→C 12 0.025 3 X→D 5 0.015 2 Dummy 1 0 1 Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 負例として 適当にランダムサンプリングしたもの をスコア0として使う 13
学習アルゴリズム LambdaRank[Burges+, NIPS’07] • 基本的にはペアワイズ学習 • pairwise error最小化の問題点を改善した手法 • を改善した手法 • 青色の線 : 関連度が高い 灰色の線 : 関連度が低い • NDCG@5は A のほうが高いが、 • Errorはランキング Bの方が低い • 上位があたっていることが大切 Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 14
学習アルゴリズム LambdaRank[Burges+, NIPS’07] • 勾配にペアを入れ替えたときの NDCG の 変化量をかける • 灰色の矢印 : pairwise error最小化の勾配 • 下にある記事を上げる力に比べて 上にある記事を上げる力が弱い • 青色の矢印 : LambdaRankの勾配 • 上にある記事を上げる力も強い Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 15
システムはこんな感じでOKか Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 16
システムはこんな感じでOKか 候補記事は数十万件 😰 全件分の分散表現自体の計算と 距離計算は重い 厳しい • レイテンシー • 1appのリソース Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 17
候補記事は数十万件あって、つらい • 😰 全件に対して、前もって計算しておくのも つらい • O((候補記事数)^2) の空間 • 新規入稿は絶え間なく来るので、更新もつらい • 分散表現モデルを更新したときの再計算もつらい • 😰 実績特徴量を使うのも大変 • 実績も絶え間なく溜まっていく 😇 軽いモデルで候補を数百件まで絞ってから、重いモデルを使う Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 18
計算の軽いモデル 😇 線形モデル + 単純な特徴量なので、予測は検索エンジンでできる ! Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 19
検索エンジンを使って嬉しいところ •スケールする + 速い •インデックスの更新や削除などの機能がある •サービスのロジックを検索エンジンに丸投げできる • あるカテゴリの記事だけをレコメンドしたい • サービス A と B の記事のみレコメンドしたい • アダルトな記事等はNG Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 20
つまりこんな感じ LambdaMart = LambdaRank + Regression Tree Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 21
実際のシステムは どうなっているか Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 22
実際のシステムはどうなっているか Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 23
レコメンド記事が作成できているとき Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 24
レコメンド記事がまだ作成できないとき Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 25
モデル学習周りも加えてみると Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 26
今後やりたいこと • バンディット • 探索と活用のバランスを調整してくれる → 教師データのバリエーションも増えてうれしい • 試行回数(PV) が多くないと 意味がないのでは ? → 一部の記事のPVが全体のPVの大半を占めている • ランキング学習と分散表現の学習を同時に行う • 現状分散表現はfine-tuneしていない • LSTMを使って分散表現+ListNet をやってみたしたが精度が低い Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved. 27