第9回 データマイニング+WEB 勉強会@東京 - 2nd Weekに参加してきた

第9回 データマイニング+WEB 勉強会@東京 - 2nd Weekに参加してきました。


以下、メモです。

Opening:

O1.“Openinig Talk” (講師:@hamadakoichi)(10分)
  • 進行方針
    • 充分な時間
      • 浅く多くではなく、少ないテーマでも深く
    • 理解
      • 進行を急がない、分からないところはすぐ質問
      • 講師・各メンバーからの返答で、みなで理解を深めることを優先
    • 議論
      • 議論時間をしっかりとる
      • 各分野の意見の共有、みなでの発想・創造を優先
      • 講師は、3分に一回くらい参加者に質問するように!
  • 参加者の声から開催内容を改善している
O2.“参加者全員自己紹介” (進行:@hamadakoichi) (50分)

参加者のレベルがますます高くなっていて、もっと頑張らないといけないなと思いました。

方法論:

1. 初めてでもわかる Complementary Naive Bayes 分類器 (講師:@yanaoki))(発表20分+議論20分)
  • さまったー公開した
  • 単純ベイズ分類器
    • カテゴリに分類する
    • 大前提 : ベイズの定理
    • カテゴリの決定は、事後確率が最大となるcを選択
  • 「条件付き独立性を仮定」に良いのか
    • 工学的には仕方が無い。
    • 仮定しないと、計算が始まらない
  • SVMより、オンライン学習のコストが安い
    • SVMでもオンライン学習の方法がある
    • SVMを使う時は、コストをかけても良いから精度がほしいということが多いので、オンラインはあんまりやらないのでは?
  • complement naive bayes
    • 多項Naive Bayesを応用
    • カテゴリ毎に「そのカテゴリに属さない文書」を使って学習を行うことで、そのバイアスを排除
  • 実施例(楽天の商品データ)
    • 学習データ量が均等である場合
      • bayes : 約94%
      • c bayes : 約96%
    • 学習データ量が偏りがある場合
      • bayes : 約61%
      • c bayes : 約72%
    • 学習データと評価データが同じだから、精度が高い
  • まとめ
    • 今年の抱負 : 時間を守る
  • 独立性の仮定の部分の話
    • テキスト情報に関しては、情報をそぎ落として、過学習を防いだ方が精度が高くなる
2. お金をかけず広告配信のログ分析システムを作った話 (講師:@karubi)(発表15分+議論15分)
  • なぜ広告配信で分析システムが必要か
    • 配信する広告を閲覧者のニーズに合致させるため
    • 広告主に多くの成果をあげてもらうため
    • メディアの収益を増やすため
  • なぜお金をかけないのか
    • 使えるお金に限界がある
      • まずは営業にお金をかけるべき
    • 他社が高級なシステムを導入している
      • 商用DWHとSPSSとかスタートアップには無理
    • 趣味の世界
      • OSSを使い倒したり、300円のサーバで処理させたり
    • 思想の世界
      • お金をかけたら負けだと思った
  • システムの用件
    • 計算能力が必要
    • アルゴリズムを時々変えたいので依存性を排除
    • 必要なときにリソースを投入・開放できる仕組み
    • OSSでやりくり
    • その時々で最も安いリソースに乗り換えたい
  • 前処理のこだわった点
    • 日々のログの量が一定でない
    • アルゴリズムによってデータ構造を変えなければならない
    • 言語別の実装を出来る限り楽をしたい
  • 具体的な前処理の仕事
    • 個々人の意識が明示的なデータの整形
    • 逆に暗黙的なデータの整形
    • データセットにまとめる
  • 計算の中身
    • 傾向に基づく分類
    • 頻度パターンの抽出
      • Mahout
  • 計算のこだわった点
    • アルゴリズムを時々変えること
    • ローカルサーバがあふれたときに、ネット上のリソースで仕事をさせたい
  • 計算の具体的な仕事2暗黙的データ
    • データマイニング
      • 発掘や予測などの計算を行う
    • 評価
      • 正確性の評価
      • 再現率、精度、全体カバー、多様性
3. 分析屋のためのマーケティング講座 (講師:@mmlab_jp)(発表30分+議論30分)
  • 自己紹介
    • 1992 恐竜ほってた
    • 1994 恐竜ほってた
    • こっちのが似てるだろ議論が行われる古生物学会
      • 学生が言っても新種にはならないが、偉い先生が言うと新種になる
      • いやいや、おかしいだろうってことで、統計とかやった
    • データマイニングとは、掘るつながり
  • 小さなPDCAと大きなPDCA両方を知るべき
  • 自動化 = 小さなPDCA
    • 構想ありき
    • 統計・DM+実装+DB+関連システムの知識
  • 戦略の方向を決める = 大きなPDCA
    • 戦術をきめるため
    • 数値目標を決めるため
    • 統計・DM+マーケティング+ビジネス+伝える力
  • マーケティングとは
    • 欲しい人に欲しいものを届けましょう
  • ビジネスにおける方向性の違い
    • 営業
      • 誰が買ってくれそうか
      • 売れるポイントは
      • いくらでどれくらい売れそうか
      • どれだけ売り上げをあげるか
      • どれだけ利益を上げるか
    • マーケ
      • どんな人が欲しがりそうか
      • ニーズの本質は
      • どれくらいの価値があるか
      • どれだけ市場価値をあげるか
      • どれだけ利益をあげるか
  • 欲しい人の属性例
  • 商品の属性例
    • スペック
    • 感情価値・付加価値
    • イメージ
    • 対競合/環境
  • 大事なこと
    • 優位性 : マネ出来るもの。
      • 例)デジカメとか画素数競争とか
    • 差別性 : マネ出来ないもの。デザインとか質的な違い
    • 説得性
    • 市場性
  • 価値/ベネフィット
    • ものが価値として翻訳される
  • マーケティングでのクラスタの表示
    • ボリュームに合わせ面積を表現
  • 自己顕示タイプ
    • ステータスを顕示するために、商品を買いそうなひとだけではなく買いそうにない人にも露出させる。
    • 「高い」ということを皆が知らなければステータスにはならないから
  • クラス : グループ化して扱いやすく
  • 因子分析 : 変数を減らして扱いやすく
  • 記述統計 : 代表となる数字だけにして扱いやすく
  • 回帰系 : 「で、どうなりそうなの?」の答え
  • 有意差 : 儀式
4. Mecab以外の形態素解析 – 新たなわかち書き機能を実装してみた- (講師:@super_rti)(発表15分+議論15分)
  • 自己紹介
  • TinySegmenter
    • mecabの工藤さんがつくったもの
    • 利点
    • 辞書レスでのわかち書きが可能
  • 実装
    • 調べるとよく分からないことが分かった
    • boosting
      • 弱いやつらでも、強いやつにも勝てるかもしれない!
      • 勝つ負けるというより、民主主義的な感じ
  • IWordBreaker
    • windows搭載のわかち書き
    • 結構、大まかなわけ方をしてくれる
    • COMなのでいろんな言語から呼べます。
      • はまりどころ : indexsrv.hをincludeすればOK
  • まとめ
    • mecabでいいじゃん!
5. 画像認識の初歩、SIFT, SURF特徴量 (講師:@lawmn)(発表15分+議論15分)
  • 自己紹介
    • 画像認識に興味をもったきっかけ
      • 1年半前にリリースした画像解析による色検索実装
  • 認識手法
    • 第一世代
      • 対象物全体
      • 輝度分布
      • wavelet
    • 第二世代
      • 局所情報
      • SIFT
      • SURF
      • Haar-like
      • HOG
    • 第三世代
      • 局所情報のつながり
      • Joint Haar-like
      • Joint HOG
      • Shapelet
  • SIFT特徴量、SURF特徴量
    • SIFT特徴量とは
      • スケールスペースを使った、照明変化や回転、拡大縮小に不変な頑強な特徴量
      • 画像1つから128次元のSIFT特徴量が複数取得出来る
    • 用途
      • 複数写真からのパノラマ写真合成
      • AR
      • 一般物体認識
    • SIFT特徴量の抽出方法
      • 特徴点検出
        • スケールと特徴点検出 : DoGを使った極値検出
      • 特徴量の生成
        • 特徴点の向き検出
        • 特徴量記述
        • 不要な特徴点を排除
    • SIFT特徴量とSURF特徴量の違い
      • 特徴点検出
        • SURFでは、処理が軽量化されている
        • 認識精度は、SIFTの方が良い
  • 応用の一例
    • Bag of featuresの紹介
      • 一般物体認識で用いられている方法
    • Bag of Words : 単語頻度情報
    • Bag of Features : Bag of Wordsの画像版
6. ペアトレードを実装してみた (講師:@yokkuns)(発表15分+議論15分)

ソーシャル:

7. 「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで
  • 自己紹介
    • ラソン好き
    • アルバイト、ログ解析部隊
    • MongoDB JP主催
  • Graph を理解する
    • 何らかの関係をDotsとLinesで表現したもの
    • Undirected Graph : 矢印がない
    • Directed Graph : 矢印がある
  • Directed/Undirected Graphの例
    • Facebookの友達関係 : Undirected
    • Twitterのfollow関係 : Directed
    • Single-Relational Graph
      • 同じ種類の頂点、同じ種類の矢印
      • 複数の関係を1つのGraphで表現することが出来ない
      • 実際のソーシャルグラフは、複数のノードで、複数のエッジがある
    • Multi-Relational Graph
      • 全ての辺は有効辺に統一
      • 複数の関係を混在させることも出来る
    • Property Graph
      • Multi-Relational Graphのノードやエッジに属性を持たせる
      • Graph DBで扱うのはProperty Graph
  • Graph DBを理解する
    • Graph DBの定義
      • 全ての要素はグラフ上で隣接している要素に対してダイレクトなポインタを持つ
      • 隣接要素の探索にindexを使わない
      • 構造が頻繁に変わるものには向かない
    • Graph DBが適合する場合
      • 大きなデータ構造の中で局所的なプロセスのみに着目する場合
      • 最短経路など、グラフに基づく演算を行う場合
      • Graph DBがグラフ理論に関する演算に最適化されている
    • Graph DBが適合しない場合
      • グラフの検索は局所的な計算に特化してるため、全体的な計算には向いてない
      • そういうのは、SQLとかkey-valueとか別の使う
      • joinにも向かない
      • GraphDB の分析・解析方面での活用は、まだ索段階
  • 代表的なGraph DBの紹介
    • Neo4j
    • sones
    • OrientDB
    • Info Grid
    • Infinite Graph
  • Tinker Popについて
    • 多数存在するGraph DBを統一的に扱う各種ライブラリを提供するプロジェクト
  • Gremlin
    • Gremlin = Graph Programing Language
    • 独自のShellで様々な操作が出来る
    • 各Graph DB特有のQuery記述方式に依存しない
8. Newman アルゴリズムによるソーシャルグラフクラスタリング (講師:@komiya_atsushi)(発表20分+議論20分)
  • グラフにおけるクラスタリング
    • 「ノード」をクラスタリング対象とする
    • ノード間に張られている「エッジ」の密度が高いノードの集まりを「コミュニティ」とする
  • 一般的なデータに対するクラスタリング各種手法の分類
  • 階層的クラスタリング
  • Modularity "Q"
    • グラフクラスタリングの精度を測る指標値
    • Qの値
      • 1に近い値ほど、制度が高い
  • Girvan-Newmanアルゴリズム
    • トップダウンアプローチでのクラスタリング
    • コミュニティ間を跨ぐ存在になる可能性の高いエッジから順に切り出す
    • エッジを切り離す旅、"betweenness"を再計算する
  • Girvan-Newman アルゴリズムの欠点
    • とにかく計算量が大きい
  • 計算量の問題を解決するには?
    • Shortetst-path betweennessの計算によるところが大きい
    • そもそも、(Shortewst-path) betweetnnessを求める必要があるのか?
  • Newman アルゴリズム
  • Modularityを高める
    • あるクラスタリングの状態から次の併合対象の2つのコミュニティを選ぶ際に、併合後のModularityを計算してみる
  • 最適なModularityの計算
    • 本当に最適化しようとすると、膨大な計算量となる
    • 二つのコミュニティを併合したときの増加量に着目
  • Newman アルゴリズムの処理手順
    • 個々のノードからなるコミュニティからはじめる
    • すべての2つのコミュニティの組み合わせに対し、それらのコミュニティを併合したときのΔQを計算
    • ΔQのもっとも高いコミュニティの組み合わせを併合
    • 併合された2つのコミュニティにエッジを張っているほかのコミュニティとの間のΔQを再計算する
    • コミュニティの数が1つになったところで、処理を終了する
  • まとめ

Newmanアルゴリズムの計算量の話がちょっと理解出来てないので、論文を読んでみようと思った。

全体的な感想

  • 最近忙しく、この手の話題に触れていなかったので、とても刺激になった。
  • 長い時間だったけど、専門外の話が多く最初から最後まで飽きることなく聞くことが出来た。
  • やはり、議論の時間が多めに取られているスタイルは良いなと思った。
  • Graph DBは、早速使ってみたい
  • やっぱり、時間はオーバーしました