SlideShare a Scribd company logo
Jubatusのリアルタイム分散
   レコメンデーション

    2012/02/25@TokyoNLP
  株式会社Preferred Infrastructure
    海野  裕也 (@unnonouno)
⾃自⼰己紹介

l    海野  裕也  (@unnonouno)
      l    unno/no/uno
      l    ㈱Preferred Infrastructure 研究開発部
      l    検索索・レコメンドエンジンSedueの開発など


l    専⾨門
      l    ⾃自然⾔言語処理理
      l    テキストマイニング

l    Jubatus開発者
今⽇日のお話

l    Jubatusの紹介

l    新機能、分散レコメンデーションについて
Jubatusの紹介
Big Data !

l    データはこれからも増加し続ける
      l    多いことより増えていくということが重要
      l    データ量量の変化に対応できるスケーラブルなシステムが求めら
            れる


l    データの種類は多様化
      l    定形データのみならず、⾮非定形データも増加
      l    テキスト、⾏行行動履履歴、⾳音声、映像、信号

l    ⽣生成される分野も多様化
      l    PC、モバイル、センサー、⾞車車、⼯工場、EC、病院


                           5
データを活⽤用する

STEP 1. ⼤大量量のデータを捨てずに蓄積できるようになってきた
STEP 2. データを分析することで、現状の把握、理理解ができる
STEP 3. 状況を理理解し、現状の改善、予測ができる


l 世の中的には、蓄積から把握、理理解に向かった段階

                この本が実際        この⼈人は30代
   本の購買情報       に売れている        男性なので、
   を全て記録で       のは意外にも        この本を買う
   きるように        30代のおっさ       のではない
   なった!         ん達だ!          か?


    蓄積           理理解          予測
               より深い解析へ
                  6
Jubatus
l    NTT  PF研とPreferred  Infrastructureによる共同開発
      10/27よりOSSで公開  http://jubat.us/




      リアルタイム  
       ストリーム         分散並列列          深い解析
                          7
Jubatusの技術的な特徴


       分散かつオンラインの機械学習基盤


l    オンライン学習をさらに分散化させる

l    そのための通信プロトコル、計算モデル、死活監視、学
      習アルゴリズムなどの⾜足回りを提供する
分散かつオンラインの機械学習

l    処理理が速い!
      l    処理理の完了了を待つ時間が少ない
      l    5分前のTV番組の影響を反映した広告推薦ができる
      l    5分前の交通量量から渋滞をさけた経路路を提案できる

l    ⼤大規模!
      l    処理理が間に合わなくなったらスケールアウト
      l    ⽇日本全国からデータが集まる状態でも動かしたい

l    機械学習の深い分析!
      l    単純なカウント以上の精度度を

                       9
他の技術との⽐比較

l    ⼤大規模バッチ(Hadoop & Mahout)
      l    並列列分散+機械学習
      l    リアルタイム性を確保するのは難しい


l    オンライン学習ライブラリ
      l    リアルタイム+機械学習
      l    並列列分散化させるのはかなり⼤大変


l    ストリーム処理理基盤
      l    並列列分散+リアルタイム
      l    分散機械学習は難しい
例例:組み込みJubatus

l    ⽇日本全国に散らばったセンサーからデータ収集・分析・
      予測をしたい
l    ⽣生データを全部送れない

l    それぞれが⾃自律律的に学習してモデル情報だけ交換する
Jubatusにおける分散機械学習のイメージ


                              学習器




l    みんな個別に⾃自学⾃自習
l    たまに勉強会で情報交換
l    ⼀一⼈人で勉強するより効率率率がいいはず!
                    12
3種類の処理理に分解

l    UPDATE
      l    データを受け取ってモデルを更更新(学習)する
l    ANALYZE
      l    データを受け取って解析結果を返す
l    MIX
      l    内部モデルを混ぜ合わせる

l    cf. MAP / REDUCE
l    ver. 0.2.0でこの3操作を書くだけで、残りの
      ソースを⾃自動⽣生成する仕組みができた


                       13
3つの処理理の例例:統計処理理の場合

l    平均値を計算する⽅方法を考えよう
l    内部状態は今までの合計(sum)とデータの個数(count)

l    UPDATE
      l    sum += x
      l    count += 1
l    ANALYZE
      l    return (sum / count)
l    MIX
      l    sum = sum1 + sum2
      l    count = count1 + count2


                                      14
ところで・・・

l    機械学習、⼀一般のエンジニアにまだ普及してないような
      気がする・・・


l    Jubatusの価値が伝わならない
世の中の機械学習ライブラリの敷居はまだ⾼高い

l    libsvmフォーマット
      l    +1 1:1 3:1 8:1
      l    何よこれ?  ←普通の⼈人の反応

l    ハイパーパラメータ
      l    「Cはいくつにしましたか?」
      l    Cってなんだよ・・・  ←普通の⼈人の反応

l    研究者向き、エンジニアが広く使えない



                        16
RDBやHadoopから学ぶべきこと

l    わからない
      l    リレーショナル理理論論
      l    クエリオプティマイザ
      l    トランザクション処理理
      l    分散計算モデル

l    わかる
      l    SQL
      l    Map/Reduce
      l    「あとは裏裏でよろしくやってくれるんでしょ?」



                          17
Jubatus裏裏の⽬目標



               全ての⼈人に機械学習を!

l    わからない
      l    オンライン凸最適化
      l    事後確率率率最⼤大化
      l    MCMC、変分ベイズ
      l    特徴抽出、カーネルトリック
l    わかる
      l    ⾃自動分類、推薦
      l    「あとはよろしくやってくれるんでしょ?」
                        18
⽣生データを突っ込めば動くようにしたい

l    Jubatusの⼊入⼒力力はキー・バリュー
      l    最初は任意のJSONだった
      l    twitter APIの⽣生出⼒力力を⼊入⼒力力できるようにしたかった

l    あとは勝⼿手に適当に処理理してくれる
      l    ⾔言語判定して
      l    各キーが何を表すのか⾃自動で推定して
      l    勝⼿手に適切切な特徴抽出を選ばせる
      l    (予定、まだできない)




                            19
新機能:分散レコメンド
レコメンデーションとは何か?

l    記事や商品のおすすめ機能
      l    この記事に類似した記事はこの記事です
      l    この商品を買った⼈人はこの商品も買っています


l    技術的には「近傍探索索」を使っている
近傍探索索とは何か?
登録されたデータの中から、クエリに近いものを探す
l  データ:D={d1, d2, …, dn}
l  クエリ:q
l  類似度度関数fに対して、f(d, q)の⼤大きいk件を求めなさい
  l    fはコサイン類似度度やJaccard係数など



                    クエリ q
                                 この辺が類似!
近傍探索索の技術的課題

l    実⾏行行時間
      l    単純な実装だと、データ点のサイズに⽐比例例した時間がかかる


l    消費メモリ
      l    すべてのオリジナルデータを保持するとデータが膨⼤大になる
レコメンダーに対する操作

l    similar_row
      l    クエリベクトルqに類似した⽂文書IDのリストを返す
      l    類似度度のスコアも同時に返す
l    update_row
      l    指定の⽂文書IDのベクトルを更更新する


l    complete_row
      l    クエリベクトルqと類似したベクトルの重み付き線形和を返す
      l    similar_rowを利利⽤用して実装されている
準備:よくある類似度度尺度度

l    コサイン類似度度
      l    2つのベクトルの余弦
      l    cos(θ(x, y)) = xTy / |x||y|


l    Jaccard係数
      l    2つの集合の積集合と和集合のサイズの⽐比
      l    Jacc(X, Y) = |X∩Y|/|X∪Y|
      l    ビットベクトル間の距離離と思うことができる
近傍探索索アルゴリズム

l    転置インデックス
l    Locality Sensitive Hashing
l    minhash
l    アンカーグラフ
転置インデックス

l    疎⾏行行列列と疎ベクトルの内積を計算する
l    転置インデックスを⽤用意すると効率率率的に計算できる

  全要素で類似度度を計算すると⼤大変    要素のある列列だけ計算する




        ・                 ・
        ・                 ・
        ・                 ・
Locality Sensitive Hashing (LSH)

l    ランダムなベクトル r を作る
l    このときベクトルx, yに対してxTrとyTrの正負が⼀一致する
      確率率率はおよそ  cos(θ(x, y))

l    ランダムベクトルをk個に増やして正負の⼀一致率率率を数え
      れば、だいたいコサイン距離離になる

l    ベクトルxに対して、ランダムベクトル{r1, …, rk}との内
      積の正負を計算 H(x) = {sign(xTr1), …, sign(xTrk)}
      l    signは正なら1、負なら0を返す関数
l    H(x)だけ保存すればよいので1データ当たりkビット
絵でわかるLSH

l    正負が⼀一致というのは、ランダムな平⾯面の同じ側に来る
      ということ
l    この確率率率は1 – θ(x, y)/π ≒ cos(θ(x, y))


平⾯面が⼀一つのランダ
 ムベクトルに対応




                              ランダムな平⾯面が2点間
                               を横切切る確率率率はθ/π
Jaccard係数

l    集合の類似度度を図る関数
      l    値を0, 1しか取らないベクトルだと思えばOK
l    Jacc(X, Y) = |X∩Y| / |X∪Y|

例例
l    X = {1, 2, 4, 6, 7}
l    Y = {1, 3, 5, 6}
l    X∩Y = {1, 6}
l    X∪Y = {1, 2, 3, 4, 5, 6, 7}
l    Jacc(X, Y) = 2/7
minhash

l    X = { x1, x2, …, xn }
      l    Xは集合なので、感覚的には⾮非ゼロ要素のインデックスのこと
l    H(X) = { h(x1), …, h(xn) }
l    m(X) = argmin(H(X))
l    m(X) = m(Y)となる確率率率はJacc(X, Y)に⼀一致
      l    ハッシュ関数を複数⽤用意したとき、m(X)=m(Y)となる回数を数
            えるとJacc(X, Y)に収束する


l    m(X)の最下位ビットだけ保持すると、衝突の危険が⾼高
      まる代わりにハッシュ関数を増やせる [Li+10a, Li+10b]
絵でわかるminhash

l    ハッシュ値の最⼩小値が⼀一致するのは、X∪Yの全要素中で
      ハッシュ値が最⼩小となる要素が、X∩Yに含まれるとき
                    全体で最⼩小
             X         Y
重み付きJaccard係数

l    各集合の要素のidfのような重みをつける
l    wJacc(X, Y) = Σ i∈X∩Y wi / Σ i∈X∪Y wi
      l    wiが常に1なら先と同じ


例例
l    X = {1, 2, 4, 6, 7}
l    Y = {1, 3, 5, 6}
l    w = (2, 3, 1, 4, 5, 2, 3)
l    X∩Y = {1, 6}
l    X∪Y = {1, 2, 3, 4, 5, 6, 7}
l    wJacc(X, Y) = (2+2)/(2+3+1+4+5+2+3)=4/20
重み付きJaccard版minhash               [Chum+08]


l    X = { x1, x2, …, xn }

l    H(X) = {h(x1)/w1, …, h(xn)/wn}
      l    論論⽂文中では-log(h(x))としている
      l    差分はwiで割っているところ
      l    感覚的にはwiが⼤大きければ、ハッシュ値が⼩小さくなりやすいの
            で、選ばれる確率率率が⼤大きくなる
l    m(X) = argmin(H(X))
l    m(X) = m(Y)となる確率率率はwJacc(X, Y)に⼀一致
アンカーグラフ  [Liu+11]

l    予めアンカーを定めておく
l    各データは近いアンカーだけ覚える
      l    アンカーはハブ空港のようなもの
l    まず類似アンカーを探して、その周辺だけ探せばOK

                              アンカー
それぞれのアルゴリズムをオンライン化・・・でき
るか?
Jubatusのポイントはオンライン学習!


近傍探索索のオンライン化とは?
l  データ集合Dに新しいデータdを追加・変更更できる
l  追加したら、直ちにL(d, q)の⼩小さいdを求められる
更更新の分散のさせ⽅方

l    IDごとに同じノードに⾏行行くように分散させる
l    更更新情報はmixのタイミングで他のノードに通知

                                        1~100




                                        101~200




             CHT (Consistent Hashing)
                                        201~300
転置インデックスの分散化
l    新規の差分を分散してMIXのタイミングで更更新する
l    全サーバーがデータを保持するため容量量の点では分散化
      できない

      差分1~100
       サーバー1     サバー2
                差分101~200    サーバー3

                            差分201~300


                   MIX!!
ビット⾏行行列列の分散化

l    LSHとminhashのデータはbit⾏行行列列
l    転置インデックスとやることは同じだが容量量が⼩小さい

      差分1~100
       サーバー1     サバー2
                差分101~200    サーバー3

                            差分201~300


                   MIX!!
アンカーグラフの分散化?

l    類似アンカーの情報しか残ってないため、データの⼀一部
      を更更新するのが困難
      l    オリジナルデータを持っておけばよい?


l    実装・デバッグはかなり激しい
      l    うまく⾏行行っているのかどうかわかりにくい
現在の実装

l    転置インデックスとLSHが実装されている

l    minhashとアンカーグラフは⼤大⼈人の事情で有りませ
      ん・・・
こんなことができる?:リアルタイムレコメンド

⾖豆腐が健康にイイヨー               ⼩小売
               影響の予測




           変化の検知

 ユーザーの購買⾏行行動




                          広告配信

                   42
まとめ

l    Jubatusの3つの軸
      l    リアルタイム
      l    分散
      l    深い解析
l    MIX操作による緩い同期計算モデル

l    レコメンドの4⼿手法
      l    転置インデックス
      l    Locality Sensitive Hashing
      l    minhash
      l    アンカーグラフ
l    Jubatusでは前者2つを実装
参考⽂文献
l  [Chum+08] Ondrej Chum, James Philbin, Andrew Zisserman.
    Near Duplicate Image Detection: min-Hash and tf-idf
    Weighting.
    BMVC 2008.
l  [Li+10a] Ping Li, Arnd Christian Konig.
    b-Bit Minwise Hashing.
    WWW 2008.
l  [Li+10b] Ping Li, Arnd Christian Konig, Wenhao Gui.
    b-Bit Minwise Hashing for Estimating Three-Way Similarities.
    NIPS 2008.
l  [Liu+11] Wei Liu, Jun Wang, Sanjiv Kumar, Shin-Fu Chang.
    Hashing with Graphs.
    ICML 2011.

More Related Content

What's hot

畳み込みLstm
畳み込みLstm畳み込みLstm
畳み込みLstm
tak9029
 
Triplet Loss 徹底解説
Triplet Loss 徹底解説Triplet Loss 徹底解説
Triplet Loss 徹底解説
tancoro
 
SSII2022 [SS2] 少ないデータやラベルを効率的に活用する機械学習技術 〜 足りない情報をどのように補うか?〜
SSII2022 [SS2] 少ないデータやラベルを効率的に活用する機械学習技術 〜 足りない情報をどのように補うか?〜SSII2022 [SS2] 少ないデータやラベルを効率的に活用する機械学習技術 〜 足りない情報をどのように補うか?〜
SSII2022 [SS2] 少ないデータやラベルを効率的に活用する機械学習技術 〜 足りない情報をどのように補うか?〜
SSII
 
ドメイン適応の原理と応用
ドメイン適応の原理と応用ドメイン適応の原理と応用
ドメイン適応の原理と応用
Yoshitaka Ushiku
 
トピックモデルの評価指標 Perplexity とは何なのか?
トピックモデルの評価指標 Perplexity とは何なのか?トピックモデルの評価指標 Perplexity とは何なのか?
トピックモデルの評価指標 Perplexity とは何なのか?
hoxo_m
 
最近のDeep Learning (NLP) 界隈におけるAttention事情
最近のDeep Learning (NLP) 界隈におけるAttention事情最近のDeep Learning (NLP) 界隈におけるAttention事情
最近のDeep Learning (NLP) 界隈におけるAttention事情
Yuta Kikuchi
 
低ランク性および平滑性を用いたテンソル補完 (Tensor Completion based on Low-rank and Smooth Structu...
低ランク性および平滑性を用いたテンソル補完 (Tensor Completion based on Low-rank and Smooth Structu...低ランク性および平滑性を用いたテンソル補完 (Tensor Completion based on Low-rank and Smooth Structu...
低ランク性および平滑性を用いたテンソル補完 (Tensor Completion based on Low-rank and Smooth Structu...
Tatsuya Yokota
 
Active Learning 入門
Active Learning 入門Active Learning 入門
Active Learning 入門Shuyo Nakatani
 
【メタサーベイ】Vision and Language のトップ研究室/研究者
【メタサーベイ】Vision and Language のトップ研究室/研究者【メタサーベイ】Vision and Language のトップ研究室/研究者
【メタサーベイ】Vision and Language のトップ研究室/研究者
cvpaper. challenge
 
[DL輪読会]相互情報量最大化による表現学習
[DL輪読会]相互情報量最大化による表現学習[DL輪読会]相互情報量最大化による表現学習
[DL輪読会]相互情報量最大化による表現学習
Deep Learning JP
 
Transformerを多層にする際の勾配消失問題と解決法について
Transformerを多層にする際の勾配消失問題と解決法についてTransformerを多層にする際の勾配消失問題と解決法について
Transformerを多層にする際の勾配消失問題と解決法について
Sho Takase
 
GAN(と強化学習との関係)
GAN(と強化学習との関係)GAN(と強化学習との関係)
GAN(と強化学習との関係)
Masahiro Suzuki
 
[DL輪読会]When Does Label Smoothing Help?
[DL輪読会]When Does Label Smoothing Help?[DL輪読会]When Does Label Smoothing Help?
[DL輪読会]When Does Label Smoothing Help?
Deep Learning JP
 
backbone としての timm 入門
backbone としての timm 入門backbone としての timm 入門
backbone としての timm 入門
Takuji Tahara
 
【DL輪読会】A Time Series is Worth 64 Words: Long-term Forecasting with Transformers
【DL輪読会】A Time Series is Worth 64 Words: Long-term Forecasting with Transformers【DL輪読会】A Time Series is Worth 64 Words: Long-term Forecasting with Transformers
【DL輪読会】A Time Series is Worth 64 Words: Long-term Forecasting with Transformers
Deep Learning JP
 
エンジニアも知っておきたいAI倫理のはなし
エンジニアも知っておきたいAI倫理のはなしエンジニアも知っておきたいAI倫理のはなし
エンジニアも知っておきたいAI倫理のはなし
Yasunori Nihei
 
モデル高速化百選
モデル高速化百選モデル高速化百選
モデル高速化百選
Yusuke Uchida
 
[DL輪読会]Decision Transformer: Reinforcement Learning via Sequence Modeling
[DL輪読会]Decision Transformer: Reinforcement Learning via Sequence Modeling[DL輪読会]Decision Transformer: Reinforcement Learning via Sequence Modeling
[DL輪読会]Decision Transformer: Reinforcement Learning via Sequence Modeling
Deep Learning JP
 
最適化超入門
最適化超入門最適化超入門
最適化超入門
Takami Sato
 
[DL輪読会]Set Transformer: A Framework for Attention-based Permutation-Invariant...
[DL輪読会]Set Transformer: A Framework for Attention-based Permutation-Invariant...[DL輪読会]Set Transformer: A Framework for Attention-based Permutation-Invariant...
[DL輪読会]Set Transformer: A Framework for Attention-based Permutation-Invariant...
Deep Learning JP
 

What's hot (20)

畳み込みLstm
畳み込みLstm畳み込みLstm
畳み込みLstm
 
Triplet Loss 徹底解説
Triplet Loss 徹底解説Triplet Loss 徹底解説
Triplet Loss 徹底解説
 
SSII2022 [SS2] 少ないデータやラベルを効率的に活用する機械学習技術 〜 足りない情報をどのように補うか?〜
SSII2022 [SS2] 少ないデータやラベルを効率的に活用する機械学習技術 〜 足りない情報をどのように補うか?〜SSII2022 [SS2] 少ないデータやラベルを効率的に活用する機械学習技術 〜 足りない情報をどのように補うか?〜
SSII2022 [SS2] 少ないデータやラベルを効率的に活用する機械学習技術 〜 足りない情報をどのように補うか?〜
 
ドメイン適応の原理と応用
ドメイン適応の原理と応用ドメイン適応の原理と応用
ドメイン適応の原理と応用
 
トピックモデルの評価指標 Perplexity とは何なのか?
トピックモデルの評価指標 Perplexity とは何なのか?トピックモデルの評価指標 Perplexity とは何なのか?
トピックモデルの評価指標 Perplexity とは何なのか?
 
最近のDeep Learning (NLP) 界隈におけるAttention事情
最近のDeep Learning (NLP) 界隈におけるAttention事情最近のDeep Learning (NLP) 界隈におけるAttention事情
最近のDeep Learning (NLP) 界隈におけるAttention事情
 
低ランク性および平滑性を用いたテンソル補完 (Tensor Completion based on Low-rank and Smooth Structu...
低ランク性および平滑性を用いたテンソル補完 (Tensor Completion based on Low-rank and Smooth Structu...低ランク性および平滑性を用いたテンソル補完 (Tensor Completion based on Low-rank and Smooth Structu...
低ランク性および平滑性を用いたテンソル補完 (Tensor Completion based on Low-rank and Smooth Structu...
 
Active Learning 入門
Active Learning 入門Active Learning 入門
Active Learning 入門
 
【メタサーベイ】Vision and Language のトップ研究室/研究者
【メタサーベイ】Vision and Language のトップ研究室/研究者【メタサーベイ】Vision and Language のトップ研究室/研究者
【メタサーベイ】Vision and Language のトップ研究室/研究者
 
[DL輪読会]相互情報量最大化による表現学習
[DL輪読会]相互情報量最大化による表現学習[DL輪読会]相互情報量最大化による表現学習
[DL輪読会]相互情報量最大化による表現学習
 
Transformerを多層にする際の勾配消失問題と解決法について
Transformerを多層にする際の勾配消失問題と解決法についてTransformerを多層にする際の勾配消失問題と解決法について
Transformerを多層にする際の勾配消失問題と解決法について
 
GAN(と強化学習との関係)
GAN(と強化学習との関係)GAN(と強化学習との関係)
GAN(と強化学習との関係)
 
[DL輪読会]When Does Label Smoothing Help?
[DL輪読会]When Does Label Smoothing Help?[DL輪読会]When Does Label Smoothing Help?
[DL輪読会]When Does Label Smoothing Help?
 
backbone としての timm 入門
backbone としての timm 入門backbone としての timm 入門
backbone としての timm 入門
 
【DL輪読会】A Time Series is Worth 64 Words: Long-term Forecasting with Transformers
【DL輪読会】A Time Series is Worth 64 Words: Long-term Forecasting with Transformers【DL輪読会】A Time Series is Worth 64 Words: Long-term Forecasting with Transformers
【DL輪読会】A Time Series is Worth 64 Words: Long-term Forecasting with Transformers
 
エンジニアも知っておきたいAI倫理のはなし
エンジニアも知っておきたいAI倫理のはなしエンジニアも知っておきたいAI倫理のはなし
エンジニアも知っておきたいAI倫理のはなし
 
モデル高速化百選
モデル高速化百選モデル高速化百選
モデル高速化百選
 
[DL輪読会]Decision Transformer: Reinforcement Learning via Sequence Modeling
[DL輪読会]Decision Transformer: Reinforcement Learning via Sequence Modeling[DL輪読会]Decision Transformer: Reinforcement Learning via Sequence Modeling
[DL輪読会]Decision Transformer: Reinforcement Learning via Sequence Modeling
 
最適化超入門
最適化超入門最適化超入門
最適化超入門
 
[DL輪読会]Set Transformer: A Framework for Attention-based Permutation-Invariant...
[DL輪読会]Set Transformer: A Framework for Attention-based Permutation-Invariant...[DL輪読会]Set Transformer: A Framework for Attention-based Permutation-Invariant...
[DL輪読会]Set Transformer: A Framework for Attention-based Permutation-Invariant...
 

Viewers also liked

小町のレス数が予測できるか試してみた
小町のレス数が予測できるか試してみた小町のレス数が予測できるか試してみた
小町のレス数が予測できるか試してみた
JubatusOfficial
 
jubarecommenderの紹介
jubarecommenderの紹介jubarecommenderの紹介
jubarecommenderの紹介
JubatusOfficial
 
単語コレクター(文章自動校正器)
単語コレクター(文章自動校正器)単語コレクター(文章自動校正器)
単語コレクター(文章自動校正器)
JubatusOfficial
 
新聞から今年の漢字を予測する
新聞から今年の漢字を予測する新聞から今年の漢字を予測する
新聞から今年の漢字を予測する
JubatusOfficial
 
Jubatus 新機能ハイライト
Jubatus 新機能ハイライトJubatus 新機能ハイライト
Jubatus 新機能ハイライト
JubatusOfficial
 
JubaQLご紹介
JubaQLご紹介JubaQLご紹介
JubaQLご紹介
JubatusOfficial
 
かまってちゃん小町
かまってちゃん小町かまってちゃん小町
かまってちゃん小町
JubatusOfficial
 
jubabanditの紹介
jubabanditの紹介jubabanditの紹介
jubabanditの紹介
JubatusOfficial
 
コンテンツマーケティングでレコメンドエンジンが必要になる背景とその活用
コンテンツマーケティングでレコメンドエンジンが必要になる背景とその活用コンテンツマーケティングでレコメンドエンジンが必要になる背景とその活用
コンテンツマーケティングでレコメンドエンジンが必要になる背景とその活用
JubatusOfficial
 
Jubaanomalyについて
JubaanomalyについてJubaanomalyについて
Jubaanomalyについて
JubatusOfficial
 
まだCPUで消耗してるの?Jubatusによる近傍探索のGPUを利用した高速化
まだCPUで消耗してるの?Jubatusによる近傍探索のGPUを利用した高速化まだCPUで消耗してるの?Jubatusによる近傍探索のGPUを利用した高速化
まだCPUで消耗してるの?Jubatusによる近傍探索のGPUを利用した高速化
JubatusOfficial
 
データ圧縮アルゴリズムを用いたマルウェア感染通信ログの判定
データ圧縮アルゴリズムを用いたマルウェア感染通信ログの判定データ圧縮アルゴリズムを用いたマルウェア感染通信ログの判定
データ圧縮アルゴリズムを用いたマルウェア感染通信ログの判定
JubatusOfficial
 
Jubakit の紹介
Jubakit の紹介Jubakit の紹介
Jubakit の紹介
kmaehashi
 
発言小町からのプロファイリング
発言小町からのプロファイリング発言小町からのプロファイリング
発言小町からのプロファイリング
JubatusOfficial
 
銀座のママ
銀座のママ銀座のママ
銀座のママ
JubatusOfficial
 
JUBARHYME
JUBARHYMEJUBARHYME
JUBARHYME
JubatusOfficial
 
小町の溜息
小町の溜息小町の溜息
小町の溜息
JubatusOfficial
 
Jubatus 1.0 の紹介
Jubatus 1.0 の紹介Jubatus 1.0 の紹介
Jubatus 1.0 の紹介
JubatusOfficial
 
地域の魅力を伝えるツアーガイドAI
地域の魅力を伝えるツアーガイドAI地域の魅力を伝えるツアーガイドAI
地域の魅力を伝えるツアーガイドAI
JubatusOfficial
 
WordPressコミュニティの魅力 | OSC Nagoya 2012 WordBench Nagoya
WordPressコミュニティの魅力 | OSC Nagoya 2012 WordBench NagoyaWordPressコミュニティの魅力 | OSC Nagoya 2012 WordBench Nagoya
WordPressコミュニティの魅力 | OSC Nagoya 2012 WordBench Nagoya
takashi ono
 

Viewers also liked (20)

小町のレス数が予測できるか試してみた
小町のレス数が予測できるか試してみた小町のレス数が予測できるか試してみた
小町のレス数が予測できるか試してみた
 
jubarecommenderの紹介
jubarecommenderの紹介jubarecommenderの紹介
jubarecommenderの紹介
 
単語コレクター(文章自動校正器)
単語コレクター(文章自動校正器)単語コレクター(文章自動校正器)
単語コレクター(文章自動校正器)
 
新聞から今年の漢字を予測する
新聞から今年の漢字を予測する新聞から今年の漢字を予測する
新聞から今年の漢字を予測する
 
Jubatus 新機能ハイライト
Jubatus 新機能ハイライトJubatus 新機能ハイライト
Jubatus 新機能ハイライト
 
JubaQLご紹介
JubaQLご紹介JubaQLご紹介
JubaQLご紹介
 
かまってちゃん小町
かまってちゃん小町かまってちゃん小町
かまってちゃん小町
 
jubabanditの紹介
jubabanditの紹介jubabanditの紹介
jubabanditの紹介
 
コンテンツマーケティングでレコメンドエンジンが必要になる背景とその活用
コンテンツマーケティングでレコメンドエンジンが必要になる背景とその活用コンテンツマーケティングでレコメンドエンジンが必要になる背景とその活用
コンテンツマーケティングでレコメンドエンジンが必要になる背景とその活用
 
Jubaanomalyについて
JubaanomalyについてJubaanomalyについて
Jubaanomalyについて
 
まだCPUで消耗してるの?Jubatusによる近傍探索のGPUを利用した高速化
まだCPUで消耗してるの?Jubatusによる近傍探索のGPUを利用した高速化まだCPUで消耗してるの?Jubatusによる近傍探索のGPUを利用した高速化
まだCPUで消耗してるの?Jubatusによる近傍探索のGPUを利用した高速化
 
データ圧縮アルゴリズムを用いたマルウェア感染通信ログの判定
データ圧縮アルゴリズムを用いたマルウェア感染通信ログの判定データ圧縮アルゴリズムを用いたマルウェア感染通信ログの判定
データ圧縮アルゴリズムを用いたマルウェア感染通信ログの判定
 
Jubakit の紹介
Jubakit の紹介Jubakit の紹介
Jubakit の紹介
 
発言小町からのプロファイリング
発言小町からのプロファイリング発言小町からのプロファイリング
発言小町からのプロファイリング
 
銀座のママ
銀座のママ銀座のママ
銀座のママ
 
JUBARHYME
JUBARHYMEJUBARHYME
JUBARHYME
 
小町の溜息
小町の溜息小町の溜息
小町の溜息
 
Jubatus 1.0 の紹介
Jubatus 1.0 の紹介Jubatus 1.0 の紹介
Jubatus 1.0 の紹介
 
地域の魅力を伝えるツアーガイドAI
地域の魅力を伝えるツアーガイドAI地域の魅力を伝えるツアーガイドAI
地域の魅力を伝えるツアーガイドAI
 
WordPressコミュニティの魅力 | OSC Nagoya 2012 WordBench Nagoya
WordPressコミュニティの魅力 | OSC Nagoya 2012 WordBench NagoyaWordPressコミュニティの魅力 | OSC Nagoya 2012 WordBench Nagoya
WordPressコミュニティの魅力 | OSC Nagoya 2012 WordBench Nagoya
 

Similar to Jubatusのリアルタイム分散レコメンデーション@TokyoNLP#9

Jubatusのリアルタイム分散レコメンデーション@TokyoWebmining#17
Jubatusのリアルタイム分散レコメンデーション@TokyoWebmining#17Jubatusのリアルタイム分散レコメンデーション@TokyoWebmining#17
Jubatusのリアルタイム分散レコメンデーション@TokyoWebmining#17Yuya Unno
 
Deep Learningの基礎と応用
Deep Learningの基礎と応用Deep Learningの基礎と応用
Deep Learningの基礎と応用
Seiya Tokui
 
Jubatusの紹介@第6回さくさくテキストマイニング
Jubatusの紹介@第6回さくさくテキストマイニングJubatusの紹介@第6回さくさくテキストマイニング
Jubatusの紹介@第6回さくさくテキストマイニングYuya Unno
 
comp_pfiseminar
comp_pfiseminarcomp_pfiseminar
comp_pfiseminar
Preferred Networks
 
Chainerの使い方と 自然言語処理への応用
Chainerの使い方と自然言語処理への応用Chainerの使い方と自然言語処理への応用
Chainerの使い方と 自然言語処理への応用
Yuya Unno
 
Jubatusが目指すインテリジェンス基盤
Jubatusが目指すインテリジェンス基盤Jubatusが目指すインテリジェンス基盤
Jubatusが目指すインテリジェンス基盤
Shohei Hido
 
bigdata2012ml okanohara
bigdata2012ml okanoharabigdata2012ml okanohara
bigdata2012ml okanohara
Preferred Networks
 
機械学習の理論と実践
機械学習の理論と実践機械学習の理論と実践
機械学習の理論と実践
Preferred Networks
 
Chainer入門と最近の機能
Chainer入門と最近の機能Chainer入門と最近の機能
Chainer入門と最近の機能
Yuya Unno
 
深層学習フレームワーク Chainer の開発と今後の展開
深層学習フレームワーク Chainer の開発と今後の展開深層学習フレームワーク Chainer の開発と今後の展開
深層学習フレームワーク Chainer の開発と今後の展開
Seiya Tokui
 
Jubatusの特徴変換と線形分類器の仕組み
Jubatusの特徴変換と線形分類器の仕組みJubatusの特徴変換と線形分類器の仕組み
Jubatusの特徴変換と線形分類器の仕組みJubatusOfficial
 
MapReduceによる大規模データを利用した機械学習
MapReduceによる大規模データを利用した機械学習MapReduceによる大規模データを利用した機械学習
MapReduceによる大規模データを利用した機械学習
Preferred Networks
 
Jubatusにおける大規模分散オンライン機械学習
Jubatusにおける大規模分散オンライン機械学習Jubatusにおける大規模分散オンライン機械学習
Jubatusにおける大規模分散オンライン機械学習Preferred Networks
 
ウェーブレット木の世界
ウェーブレット木の世界ウェーブレット木の世界
ウェーブレット木の世界
Preferred Networks
 
Deep learning実装の基礎と実践
Deep learning実装の基礎と実践Deep learning実装の基礎と実践
Deep learning実装の基礎と実践
Seiya Tokui
 
Dimensionality reduction with t-SNE(Rtsne) and UMAP(uwot) using R packages.
Dimensionality reduction with t-SNE(Rtsne) and UMAP(uwot) using R packages. Dimensionality reduction with t-SNE(Rtsne) and UMAP(uwot) using R packages.
Dimensionality reduction with t-SNE(Rtsne) and UMAP(uwot) using R packages.
Satoshi Kato
 
はじめての「R」
はじめての「R」はじめての「R」
はじめての「R」
Masahiro Hayashi
 
Convolutional Neural Netwoks で自然言語処理をする
Convolutional Neural Netwoks で自然言語処理をするConvolutional Neural Netwoks で自然言語処理をする
Convolutional Neural Netwoks で自然言語処理をする
Daiki Shimada
 
Extract and edit
Extract and editExtract and edit
Extract and edit
禎晃 山崎
 

Similar to Jubatusのリアルタイム分散レコメンデーション@TokyoNLP#9 (20)

Jubatusのリアルタイム分散レコメンデーション@TokyoWebmining#17
Jubatusのリアルタイム分散レコメンデーション@TokyoWebmining#17Jubatusのリアルタイム分散レコメンデーション@TokyoWebmining#17
Jubatusのリアルタイム分散レコメンデーション@TokyoWebmining#17
 
Deep Learningの基礎と応用
Deep Learningの基礎と応用Deep Learningの基礎と応用
Deep Learningの基礎と応用
 
Jubatusの紹介@第6回さくさくテキストマイニング
Jubatusの紹介@第6回さくさくテキストマイニングJubatusの紹介@第6回さくさくテキストマイニング
Jubatusの紹介@第6回さくさくテキストマイニング
 
comp_pfiseminar
comp_pfiseminarcomp_pfiseminar
comp_pfiseminar
 
Chainerの使い方と 自然言語処理への応用
Chainerの使い方と自然言語処理への応用Chainerの使い方と自然言語処理への応用
Chainerの使い方と 自然言語処理への応用
 
Jubatusが目指すインテリジェンス基盤
Jubatusが目指すインテリジェンス基盤Jubatusが目指すインテリジェンス基盤
Jubatusが目指すインテリジェンス基盤
 
Overview and Roadmap
Overview and RoadmapOverview and Roadmap
Overview and Roadmap
 
bigdata2012ml okanohara
bigdata2012ml okanoharabigdata2012ml okanohara
bigdata2012ml okanohara
 
機械学習の理論と実践
機械学習の理論と実践機械学習の理論と実践
機械学習の理論と実践
 
Chainer入門と最近の機能
Chainer入門と最近の機能Chainer入門と最近の機能
Chainer入門と最近の機能
 
深層学習フレームワーク Chainer の開発と今後の展開
深層学習フレームワーク Chainer の開発と今後の展開深層学習フレームワーク Chainer の開発と今後の展開
深層学習フレームワーク Chainer の開発と今後の展開
 
Jubatusの特徴変換と線形分類器の仕組み
Jubatusの特徴変換と線形分類器の仕組みJubatusの特徴変換と線形分類器の仕組み
Jubatusの特徴変換と線形分類器の仕組み
 
MapReduceによる大規模データを利用した機械学習
MapReduceによる大規模データを利用した機械学習MapReduceによる大規模データを利用した機械学習
MapReduceによる大規模データを利用した機械学習
 
Jubatusにおける大規模分散オンライン機械学習
Jubatusにおける大規模分散オンライン機械学習Jubatusにおける大規模分散オンライン機械学習
Jubatusにおける大規模分散オンライン機械学習
 
ウェーブレット木の世界
ウェーブレット木の世界ウェーブレット木の世界
ウェーブレット木の世界
 
Deep learning実装の基礎と実践
Deep learning実装の基礎と実践Deep learning実装の基礎と実践
Deep learning実装の基礎と実践
 
Dimensionality reduction with t-SNE(Rtsne) and UMAP(uwot) using R packages.
Dimensionality reduction with t-SNE(Rtsne) and UMAP(uwot) using R packages. Dimensionality reduction with t-SNE(Rtsne) and UMAP(uwot) using R packages.
Dimensionality reduction with t-SNE(Rtsne) and UMAP(uwot) using R packages.
 
はじめての「R」
はじめての「R」はじめての「R」
はじめての「R」
 
Convolutional Neural Netwoks で自然言語処理をする
Convolutional Neural Netwoks で自然言語処理をするConvolutional Neural Netwoks で自然言語処理をする
Convolutional Neural Netwoks で自然言語処理をする
 
Extract and edit
Extract and editExtract and edit
Extract and edit
 

More from Yuya Unno

深層学習で切り拓くパーソナルロボットの未来
深層学習で切り拓くパーソナルロボットの未来深層学習で切り拓くパーソナルロボットの未来
深層学習で切り拓くパーソナルロボットの未来
Yuya Unno
 
深層学習時代の 自然言語処理ビジネス
深層学習時代の自然言語処理ビジネス深層学習時代の自然言語処理ビジネス
深層学習時代の 自然言語処理ビジネス
Yuya Unno
 
ベンチャー企業で言葉を扱うロボットの研究開発をする
ベンチャー企業で言葉を扱うロボットの研究開発をするベンチャー企業で言葉を扱うロボットの研究開発をする
ベンチャー企業で言葉を扱うロボットの研究開発をする
Yuya Unno
 
PFNにおける セミナー活動
PFNにおけるセミナー活動PFNにおけるセミナー活動
PFNにおける セミナー活動
Yuya Unno
 
深層学習フレームワーク Chainerとその進化
深層学習フレームワークChainerとその進化深層学習フレームワークChainerとその進化
深層学習フレームワーク Chainerとその進化
Yuya Unno
 
進化するChainer
進化するChainer進化するChainer
進化するChainer
Yuya Unno
 
予測型戦略を知るための機械学習チュートリアル
予測型戦略を知るための機械学習チュートリアル予測型戦略を知るための機械学習チュートリアル
予測型戦略を知るための機械学習チュートリアル
Yuya Unno
 
深層学習による機械とのコミュニケーション
深層学習による機械とのコミュニケーション深層学習による機械とのコミュニケーション
深層学習による機械とのコミュニケーション
Yuya Unno
 
最先端NLP勉強会 “Learning Language Games through Interaction” Sida I. Wang, Percy L...
最先端NLP勉強会“Learning Language Games through Interaction”Sida I. Wang, Percy L...最先端NLP勉強会“Learning Language Games through Interaction”Sida I. Wang, Percy L...
最先端NLP勉強会 “Learning Language Games through Interaction” Sida I. Wang, Percy L...
Yuya Unno
 
Chainer, Cupy入門
Chainer, Cupy入門Chainer, Cupy入門
Chainer, Cupy入門
Yuya Unno
 
Chainerのテスト環境とDockerでのCUDAの利用
Chainerのテスト環境とDockerでのCUDAの利用Chainerのテスト環境とDockerでのCUDAの利用
Chainerのテスト環境とDockerでのCUDAの利用
Yuya Unno
 
深層学習フレームワークChainerの特徴
深層学習フレームワークChainerの特徴深層学習フレームワークChainerの特徴
深層学習フレームワークChainerの特徴
Yuya Unno
 
子供の言語獲得と機械の言語獲得
子供の言語獲得と機械の言語獲得子供の言語獲得と機械の言語獲得
子供の言語獲得と機械の言語獲得
Yuya Unno
 
NIP2015読み会「End-To-End Memory Networks」
NIP2015読み会「End-To-End Memory Networks」NIP2015読み会「End-To-End Memory Networks」
NIP2015読み会「End-To-End Memory Networks」
Yuya Unno
 
GPU上でのNLP向け深層学習の実装について
GPU上でのNLP向け深層学習の実装についてGPU上でのNLP向け深層学習の実装について
GPU上でのNLP向け深層学習の実装について
Yuya Unno
 
言語と知識の深層学習@認知科学会サマースクール
言語と知識の深層学習@認知科学会サマースクール言語と知識の深層学習@認知科学会サマースクール
言語と知識の深層学習@認知科学会サマースクール
Yuya Unno
 
企業における自然言語処理技術利用の最先端
企業における自然言語処理技術利用の最先端企業における自然言語処理技術利用の最先端
企業における自然言語処理技術利用の最先端
Yuya Unno
 
「知識」のDeep Learning
「知識」のDeep Learning「知識」のDeep Learning
「知識」のDeep Learning
Yuya Unno
 
自然言語処理@春の情報処理祭
自然言語処理@春の情報処理祭自然言語処理@春の情報処理祭
自然言語処理@春の情報処理祭
Yuya Unno
 
ピーFIの研究開発現場
ピーFIの研究開発現場ピーFIの研究開発現場
ピーFIの研究開発現場
Yuya Unno
 

More from Yuya Unno (20)

深層学習で切り拓くパーソナルロボットの未来
深層学習で切り拓くパーソナルロボットの未来深層学習で切り拓くパーソナルロボットの未来
深層学習で切り拓くパーソナルロボットの未来
 
深層学習時代の 自然言語処理ビジネス
深層学習時代の自然言語処理ビジネス深層学習時代の自然言語処理ビジネス
深層学習時代の 自然言語処理ビジネス
 
ベンチャー企業で言葉を扱うロボットの研究開発をする
ベンチャー企業で言葉を扱うロボットの研究開発をするベンチャー企業で言葉を扱うロボットの研究開発をする
ベンチャー企業で言葉を扱うロボットの研究開発をする
 
PFNにおける セミナー活動
PFNにおけるセミナー活動PFNにおけるセミナー活動
PFNにおける セミナー活動
 
深層学習フレームワーク Chainerとその進化
深層学習フレームワークChainerとその進化深層学習フレームワークChainerとその進化
深層学習フレームワーク Chainerとその進化
 
進化するChainer
進化するChainer進化するChainer
進化するChainer
 
予測型戦略を知るための機械学習チュートリアル
予測型戦略を知るための機械学習チュートリアル予測型戦略を知るための機械学習チュートリアル
予測型戦略を知るための機械学習チュートリアル
 
深層学習による機械とのコミュニケーション
深層学習による機械とのコミュニケーション深層学習による機械とのコミュニケーション
深層学習による機械とのコミュニケーション
 
最先端NLP勉強会 “Learning Language Games through Interaction” Sida I. Wang, Percy L...
最先端NLP勉強会“Learning Language Games through Interaction”Sida I. Wang, Percy L...最先端NLP勉強会“Learning Language Games through Interaction”Sida I. Wang, Percy L...
最先端NLP勉強会 “Learning Language Games through Interaction” Sida I. Wang, Percy L...
 
Chainer, Cupy入門
Chainer, Cupy入門Chainer, Cupy入門
Chainer, Cupy入門
 
Chainerのテスト環境とDockerでのCUDAの利用
Chainerのテスト環境とDockerでのCUDAの利用Chainerのテスト環境とDockerでのCUDAの利用
Chainerのテスト環境とDockerでのCUDAの利用
 
深層学習フレームワークChainerの特徴
深層学習フレームワークChainerの特徴深層学習フレームワークChainerの特徴
深層学習フレームワークChainerの特徴
 
子供の言語獲得と機械の言語獲得
子供の言語獲得と機械の言語獲得子供の言語獲得と機械の言語獲得
子供の言語獲得と機械の言語獲得
 
NIP2015読み会「End-To-End Memory Networks」
NIP2015読み会「End-To-End Memory Networks」NIP2015読み会「End-To-End Memory Networks」
NIP2015読み会「End-To-End Memory Networks」
 
GPU上でのNLP向け深層学習の実装について
GPU上でのNLP向け深層学習の実装についてGPU上でのNLP向け深層学習の実装について
GPU上でのNLP向け深層学習の実装について
 
言語と知識の深層学習@認知科学会サマースクール
言語と知識の深層学習@認知科学会サマースクール言語と知識の深層学習@認知科学会サマースクール
言語と知識の深層学習@認知科学会サマースクール
 
企業における自然言語処理技術利用の最先端
企業における自然言語処理技術利用の最先端企業における自然言語処理技術利用の最先端
企業における自然言語処理技術利用の最先端
 
「知識」のDeep Learning
「知識」のDeep Learning「知識」のDeep Learning
「知識」のDeep Learning
 
自然言語処理@春の情報処理祭
自然言語処理@春の情報処理祭自然言語処理@春の情報処理祭
自然言語処理@春の情報処理祭
 
ピーFIの研究開発現場
ピーFIの研究開発現場ピーFIの研究開発現場
ピーFIの研究開発現場
 

Jubatusのリアルタイム分散レコメンデーション@TokyoNLP#9

  • 1. Jubatusのリアルタイム分散 レコメンデーション 2012/02/25@TokyoNLP 株式会社Preferred Infrastructure 海野  裕也 (@unnonouno)
  • 2. ⾃自⼰己紹介 l  海野  裕也  (@unnonouno) l  unno/no/uno l  ㈱Preferred Infrastructure 研究開発部 l  検索索・レコメンドエンジンSedueの開発など l  専⾨門 l  ⾃自然⾔言語処理理 l  テキストマイニング l  Jubatus開発者
  • 3. 今⽇日のお話 l  Jubatusの紹介 l  新機能、分散レコメンデーションについて
  • 5. Big Data ! l  データはこれからも増加し続ける l  多いことより増えていくということが重要 l  データ量量の変化に対応できるスケーラブルなシステムが求めら れる l  データの種類は多様化 l  定形データのみならず、⾮非定形データも増加 l  テキスト、⾏行行動履履歴、⾳音声、映像、信号 l  ⽣生成される分野も多様化 l  PC、モバイル、センサー、⾞車車、⼯工場、EC、病院 5
  • 6. データを活⽤用する STEP 1. ⼤大量量のデータを捨てずに蓄積できるようになってきた STEP 2. データを分析することで、現状の把握、理理解ができる STEP 3. 状況を理理解し、現状の改善、予測ができる l 世の中的には、蓄積から把握、理理解に向かった段階 この本が実際 この⼈人は30代 本の購買情報 に売れている 男性なので、 を全て記録で のは意外にも この本を買う きるように 30代のおっさ のではない なった! ん達だ! か? 蓄積 理理解 予測 より深い解析へ 6
  • 7. Jubatus l  NTT  PF研とPreferred  Infrastructureによる共同開発 10/27よりOSSで公開  http://jubat.us/ リアルタイム   ストリーム 分散並列列 深い解析 7
  • 8. Jubatusの技術的な特徴 分散かつオンラインの機械学習基盤 l  オンライン学習をさらに分散化させる l  そのための通信プロトコル、計算モデル、死活監視、学 習アルゴリズムなどの⾜足回りを提供する
  • 9. 分散かつオンラインの機械学習 l  処理理が速い! l  処理理の完了了を待つ時間が少ない l  5分前のTV番組の影響を反映した広告推薦ができる l  5分前の交通量量から渋滞をさけた経路路を提案できる l  ⼤大規模! l  処理理が間に合わなくなったらスケールアウト l  ⽇日本全国からデータが集まる状態でも動かしたい l  機械学習の深い分析! l  単純なカウント以上の精度度を 9
  • 10. 他の技術との⽐比較 l  ⼤大規模バッチ(Hadoop & Mahout) l  並列列分散+機械学習 l  リアルタイム性を確保するのは難しい l  オンライン学習ライブラリ l  リアルタイム+機械学習 l  並列列分散化させるのはかなり⼤大変 l  ストリーム処理理基盤 l  並列列分散+リアルタイム l  分散機械学習は難しい
  • 11. 例例:組み込みJubatus l  ⽇日本全国に散らばったセンサーからデータ収集・分析・ 予測をしたい l  ⽣生データを全部送れない l  それぞれが⾃自律律的に学習してモデル情報だけ交換する
  • 12. Jubatusにおける分散機械学習のイメージ 学習器 l  みんな個別に⾃自学⾃自習 l  たまに勉強会で情報交換 l  ⼀一⼈人で勉強するより効率率率がいいはず! 12
  • 13. 3種類の処理理に分解 l  UPDATE l  データを受け取ってモデルを更更新(学習)する l  ANALYZE l  データを受け取って解析結果を返す l  MIX l  内部モデルを混ぜ合わせる l  cf. MAP / REDUCE l  ver. 0.2.0でこの3操作を書くだけで、残りの ソースを⾃自動⽣生成する仕組みができた 13
  • 14. 3つの処理理の例例:統計処理理の場合 l  平均値を計算する⽅方法を考えよう l  内部状態は今までの合計(sum)とデータの個数(count) l  UPDATE l  sum += x l  count += 1 l  ANALYZE l  return (sum / count) l  MIX l  sum = sum1 + sum2 l  count = count1 + count2 14
  • 15. ところで・・・ l  機械学習、⼀一般のエンジニアにまだ普及してないような 気がする・・・ l  Jubatusの価値が伝わならない
  • 16. 世の中の機械学習ライブラリの敷居はまだ⾼高い l  libsvmフォーマット l  +1 1:1 3:1 8:1 l  何よこれ?  ←普通の⼈人の反応 l  ハイパーパラメータ l  「Cはいくつにしましたか?」 l  Cってなんだよ・・・  ←普通の⼈人の反応 l  研究者向き、エンジニアが広く使えない 16
  • 17. RDBやHadoopから学ぶべきこと l  わからない l  リレーショナル理理論論 l  クエリオプティマイザ l  トランザクション処理理 l  分散計算モデル l  わかる l  SQL l  Map/Reduce l  「あとは裏裏でよろしくやってくれるんでしょ?」 17
  • 18. Jubatus裏裏の⽬目標 全ての⼈人に機械学習を! l  わからない l  オンライン凸最適化 l  事後確率率率最⼤大化 l  MCMC、変分ベイズ l  特徴抽出、カーネルトリック l  わかる l  ⾃自動分類、推薦 l  「あとはよろしくやってくれるんでしょ?」 18
  • 19. ⽣生データを突っ込めば動くようにしたい l  Jubatusの⼊入⼒力力はキー・バリュー l  最初は任意のJSONだった l  twitter APIの⽣生出⼒力力を⼊入⼒力力できるようにしたかった l  あとは勝⼿手に適当に処理理してくれる l  ⾔言語判定して l  各キーが何を表すのか⾃自動で推定して l  勝⼿手に適切切な特徴抽出を選ばせる l  (予定、まだできない) 19
  • 21. レコメンデーションとは何か? l  記事や商品のおすすめ機能 l  この記事に類似した記事はこの記事です l  この商品を買った⼈人はこの商品も買っています l  技術的には「近傍探索索」を使っている
  • 22. 近傍探索索とは何か? 登録されたデータの中から、クエリに近いものを探す l  データ:D={d1, d2, …, dn} l  クエリ:q l  類似度度関数fに対して、f(d, q)の⼤大きいk件を求めなさい l  fはコサイン類似度度やJaccard係数など クエリ q この辺が類似!
  • 23. 近傍探索索の技術的課題 l  実⾏行行時間 l  単純な実装だと、データ点のサイズに⽐比例例した時間がかかる l  消費メモリ l  すべてのオリジナルデータを保持するとデータが膨⼤大になる
  • 24. レコメンダーに対する操作 l  similar_row l  クエリベクトルqに類似した⽂文書IDのリストを返す l  類似度度のスコアも同時に返す l  update_row l  指定の⽂文書IDのベクトルを更更新する l  complete_row l  クエリベクトルqと類似したベクトルの重み付き線形和を返す l  similar_rowを利利⽤用して実装されている
  • 25. 準備:よくある類似度度尺度度 l  コサイン類似度度 l  2つのベクトルの余弦 l  cos(θ(x, y)) = xTy / |x||y| l  Jaccard係数 l  2つの集合の積集合と和集合のサイズの⽐比 l  Jacc(X, Y) = |X∩Y|/|X∪Y| l  ビットベクトル間の距離離と思うことができる
  • 26. 近傍探索索アルゴリズム l  転置インデックス l  Locality Sensitive Hashing l  minhash l  アンカーグラフ
  • 27. 転置インデックス l  疎⾏行行列列と疎ベクトルの内積を計算する l  転置インデックスを⽤用意すると効率率率的に計算できる 全要素で類似度度を計算すると⼤大変 要素のある列列だけ計算する ・ ・ ・ ・ ・ ・
  • 28. Locality Sensitive Hashing (LSH) l  ランダムなベクトル r を作る l  このときベクトルx, yに対してxTrとyTrの正負が⼀一致する 確率率率はおよそ  cos(θ(x, y)) l  ランダムベクトルをk個に増やして正負の⼀一致率率率を数え れば、だいたいコサイン距離離になる l  ベクトルxに対して、ランダムベクトル{r1, …, rk}との内 積の正負を計算 H(x) = {sign(xTr1), …, sign(xTrk)} l  signは正なら1、負なら0を返す関数 l  H(x)だけ保存すればよいので1データ当たりkビット
  • 29. 絵でわかるLSH l  正負が⼀一致というのは、ランダムな平⾯面の同じ側に来る ということ l  この確率率率は1 – θ(x, y)/π ≒ cos(θ(x, y)) 平⾯面が⼀一つのランダ ムベクトルに対応 ランダムな平⾯面が2点間 を横切切る確率率率はθ/π
  • 30. Jaccard係数 l  集合の類似度度を図る関数 l  値を0, 1しか取らないベクトルだと思えばOK l  Jacc(X, Y) = |X∩Y| / |X∪Y| 例例 l  X = {1, 2, 4, 6, 7} l  Y = {1, 3, 5, 6} l  X∩Y = {1, 6} l  X∪Y = {1, 2, 3, 4, 5, 6, 7} l  Jacc(X, Y) = 2/7
  • 31. minhash l  X = { x1, x2, …, xn } l  Xは集合なので、感覚的には⾮非ゼロ要素のインデックスのこと l  H(X) = { h(x1), …, h(xn) } l  m(X) = argmin(H(X)) l  m(X) = m(Y)となる確率率率はJacc(X, Y)に⼀一致 l  ハッシュ関数を複数⽤用意したとき、m(X)=m(Y)となる回数を数 えるとJacc(X, Y)に収束する l  m(X)の最下位ビットだけ保持すると、衝突の危険が⾼高 まる代わりにハッシュ関数を増やせる [Li+10a, Li+10b]
  • 32. 絵でわかるminhash l  ハッシュ値の最⼩小値が⼀一致するのは、X∪Yの全要素中で ハッシュ値が最⼩小となる要素が、X∩Yに含まれるとき 全体で最⼩小 X Y
  • 33. 重み付きJaccard係数 l  各集合の要素のidfのような重みをつける l  wJacc(X, Y) = Σ i∈X∩Y wi / Σ i∈X∪Y wi l  wiが常に1なら先と同じ 例例 l  X = {1, 2, 4, 6, 7} l  Y = {1, 3, 5, 6} l  w = (2, 3, 1, 4, 5, 2, 3) l  X∩Y = {1, 6} l  X∪Y = {1, 2, 3, 4, 5, 6, 7} l  wJacc(X, Y) = (2+2)/(2+3+1+4+5+2+3)=4/20
  • 34. 重み付きJaccard版minhash [Chum+08] l  X = { x1, x2, …, xn } l  H(X) = {h(x1)/w1, …, h(xn)/wn} l  論論⽂文中では-log(h(x))としている l  差分はwiで割っているところ l  感覚的にはwiが⼤大きければ、ハッシュ値が⼩小さくなりやすいの で、選ばれる確率率率が⼤大きくなる l  m(X) = argmin(H(X)) l  m(X) = m(Y)となる確率率率はwJacc(X, Y)に⼀一致
  • 35. アンカーグラフ  [Liu+11] l  予めアンカーを定めておく l  各データは近いアンカーだけ覚える l  アンカーはハブ空港のようなもの l  まず類似アンカーを探して、その周辺だけ探せばOK アンカー
  • 37. 更更新の分散のさせ⽅方 l  IDごとに同じノードに⾏行行くように分散させる l  更更新情報はmixのタイミングで他のノードに通知 1~100 101~200 CHT (Consistent Hashing) 201~300
  • 38. 転置インデックスの分散化 l  新規の差分を分散してMIXのタイミングで更更新する l  全サーバーがデータを保持するため容量量の点では分散化 できない 差分1~100 サーバー1 サバー2 差分101~200 サーバー3 差分201~300 MIX!!
  • 39. ビット⾏行行列列の分散化 l  LSHとminhashのデータはbit⾏行行列列 l  転置インデックスとやることは同じだが容量量が⼩小さい 差分1~100 サーバー1 サバー2 差分101~200 サーバー3 差分201~300 MIX!!
  • 40. アンカーグラフの分散化? l  類似アンカーの情報しか残ってないため、データの⼀一部 を更更新するのが困難 l  オリジナルデータを持っておけばよい? l  実装・デバッグはかなり激しい l  うまく⾏行行っているのかどうかわかりにくい
  • 41. 現在の実装 l  転置インデックスとLSHが実装されている l  minhashとアンカーグラフは⼤大⼈人の事情で有りませ ん・・・
  • 42. こんなことができる?:リアルタイムレコメンド ⾖豆腐が健康にイイヨー ⼩小売 影響の予測 変化の検知 ユーザーの購買⾏行行動 広告配信 42
  • 43. まとめ l  Jubatusの3つの軸 l  リアルタイム l  分散 l  深い解析 l  MIX操作による緩い同期計算モデル l  レコメンドの4⼿手法 l  転置インデックス l  Locality Sensitive Hashing l  minhash l  アンカーグラフ l  Jubatusでは前者2つを実装
  • 44. 参考⽂文献 l  [Chum+08] Ondrej Chum, James Philbin, Andrew Zisserman. Near Duplicate Image Detection: min-Hash and tf-idf Weighting. BMVC 2008. l  [Li+10a] Ping Li, Arnd Christian Konig. b-Bit Minwise Hashing. WWW 2008. l  [Li+10b] Ping Li, Arnd Christian Konig, Wenhao Gui. b-Bit Minwise Hashing for Estimating Three-Way Similarities. NIPS 2008. l  [Liu+11] Wei Liu, Jun Wang, Sanjiv Kumar, Shin-Fu Chang. Hashing with Graphs. ICML 2011.