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

機械学習輪講会資料

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for mahiguch mahiguch
August 01, 2019

 機械学習輪講会資料

Wantedly機械学習輪講会での発表資料です。

Avatar for mahiguch

mahiguch

August 01, 2019
Tweet

More Decks by mahiguch

Other Decks in Programming

Transcript

  1. Masahiro Higuchi / 樋口雅拓 • グリーグループのリミア株式会社で、LIMIA という住まい領域のメディアを 作っています。ゲーム会社ですが、最近はメディアに力を入れています。 • 機械学習のエンジニアですが、iOS,

    Android,JSなどもやっている何でも屋 です。4歳の娘のパパ。twitter: @mahiguch1 • https://limia.jp/ • https://arine.jp/ • https://aumo.jp/ • https://www.mine-3m.com/mine/
  2. 背景と目的: LIMIAとは? • メディアサービス。記事一覧を表示し、タップ すると記事詳細を閲覧できる。 • 記事詳細の最下部に別の記事への回遊導 線が付いている • 記事一覧:

    k-meansでユーザを分類し、それ ぞれの中でCTRが高い順に表示 • 記事下: トピックモデルで関連記事、協調フィ ルタでオススメ記事を表示。 → 教科書に書いてあるレベルは対応したため、 更に向上させるには論文調査が必要!
  3. 今月読んだ論文 社内で論文輪読会を開催し、まず次の 2つを読んで発表した。 • Personalized News Recommendation Based on Click

    Behavior: https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/3559 9.pdf • k-means++: The Advantages of Careful Seeding: http://ilpubs.stanford.edu:8090/778/1/2006-13.pdf 今回は社内で行った発表と同様に、上記 2つの論文について説明します。他社さんの論文輪読会の 雰囲気を知りたいため、普段通りに行っていただけると助かります。
  4. 本質的な興味予測 p(click | category=ci) = p(category = ci|click) p(click) /

    p(category = ci) これを「ユーザ毎」と「地域全体」の 2つを取得する。 地域全体と同じ動きをしていれば短期的な興味、違う動きをしていれば本質的な興味とわかる。 # 過去分の足し上げ これで特定の期間(1ヶ月とか)のユーザの興味が分かったので、過去分を足し上げる。 クリック数による加重平均を取る。
  5. 結論 # 結果 推薦枠のCTRは30%増加したが、GoogleNewsTop全体のCTRは変わらなかった。 つまり、その他の枠からクリックを奪った形になる。 また、1日あたりの訪問回数は 14%増加した。 # まとめと今後 分析したところ、ユーザの興味は短期と長期に分けられることが分かった。

    それをベイズで表現して組み込んだ結果、より良い成果を獲得できた。 枠位置補正が必要。 情報フィルタと協調フィルタを混ぜる方法を洗練させる。 ユーザ行動分析を通じて、さらに理解を深めたい。
  6. K-means++ algorithm k-meansの(1)の初期値選択を次のように変更する。 1a. 1つ目の中心点をランダムに選択する。 1b. 次の中心点を選択するとき、他の中心点から遠いものが選ばれ易くする。 1c. (1b)を繰り返して、必要な中心点を作る。 2-4.

    標準的なk-meansと同じ # 結果 k-meansだと稀に大きな誤差になることがあるが、 k-means++だと安定した結果を得られる。 誤差が20%減少し、速度が70%速くなった。
  7. // kmeans++の初期値を返す。入力のnumClusterはクラスタ数、dataは分類対象データ。 // 初期値同士を遠ざけることで、局所解を防ぐと共に収束を早くする。 // SEE ALSO: http://ilpubs.stanford.edu:8090/778/1/2006-13.pdf func seeds(numCluster

    uint64, data []*entityIdeaVector.Entity) ([][]float64, error) { seeds := make([][]float64, numCluster) e := data[rand.Intn(len(data))] seeds[0] = e.Vector for i := uint64(1); i < numCluster; i++ { dist := make([]float64, len(data)) var sum float64 for k, v := range data { _, dist[k] = nearest(seeds, v.Vector) sum += dist[k] } threshold := rand.Float64() * sum var stack float64 var dataNum int for k, v := range dist { stack += v if threshold < stack { dataNum = k break } } seeds[i] = data[dataNum].Vector } return seeds, nil }
  8. これから読みたい論文や書籍 • * Google news personalization: scalable online collaborative filtering:

    https://www2007.org/papers/paper570.pdf • * Amazon amazon-all-the-research-you-need-about-its-algorithm-and-innovation: https://www.cs.umd.edu/~samir/498/Amazon-Recommendations.pdf • * Netflix The Netflix Recommender System: Algorithms, Business Value, and Innovation: https://beta.vu.nl/nl/Images/werkstuk-fernandez_tcm235-874624.pdf • * Gunosy Greedy Optimized Multileaving for Personalization: https://arxiv.org/pdf/1907.08346.pdf • * Yahoo! News Embedding-based News Recommendation for Millions of Users: https://www.kdd.org/kdd2017/papers/view/bridging-collaborative-filtering-and-semi-supervised -learning-a-neural-appr • * 書籍 推薦システム―統計的機械学習の理論と実践 ― https://www.kyoritsu-pub.co.jp/bookdetail/9784320124301 • * 書籍 これからの強化学習: https://www.morikita.co.jp/books/book/3034