Web-Gakkai Symposium 2010

5,901 views

Published on

Published in: Technology

Web-Gakkai Symposium 2010

  1. 1. コンシューマ向けウェブサービス企業における サイエンスへの取り組み 株式会社はてな 伊藤 直也 2009/12 第 1 回ウェブ学会シンポジウム @ 東京大学
  2. 2. はてな
  3. 3. 主要サービス <ul><li>人力検索はてな (Q&Aコミュニティ) </li></ul><ul><li>はてなダイアリー (ブログ) </li></ul><ul><li>はてなブックマーク (ソーシャル・ブックマーク) </li></ul><ul><li>うごメモはてな (手書き動画共有) </li></ul>
  4. 4. 人力検索はてな
  5. 5. はてなダイアリー
  6. 6. はてなブックマーク
  7. 7. うごメモはてな
  8. 8. コンセプト <ul><li>人と人をつなげる </li></ul><ul><li>小さな知識を集めて大きな知恵に </li></ul><ul><ul><li>Wisdom of Crowds </li></ul></ul>
  9. 9. 近年の取り組み <ul><li>計算機科学の成果を取り込んだ機能開発 </li></ul><ul><ul><li>情報検索、マイニング、リコメンド etc. </li></ul></ul><ul><ul><li>以下、その一部を紹介 </li></ul></ul>
  10. 10. はてなブックマーク : 関連エントリー <ul><li>ユーザーへの記事推薦 </li></ul><ul><ul><li>次に見たい、より深く知りたいための記事を推薦 </li></ul></ul>
  11. 11. 関連エントリー機能の実装 <ul><li>(株) Preferred Infrastructure (PFI) と共同開発 </li></ul><ul><li>PFI のリコメンドエンジン </li></ul><ul><ul><li>Bayesian Sets [Z.Ghahramani, K.Heller, NIPS 05] </li></ul></ul><ul><ul><ul><li>クエリと同じクラスタに含まれると思われる順にアイテムをソートして返す </li></ul></ul></ul><ul><ul><ul><li>http://chasen.org/~daiti-m/diary/?0214 </li></ul></ul></ul><ul><ul><li>入力は記事に付けられたタグ ・・・ 後述 </li></ul></ul>
  12. 12. はてなブックマークの記事の自動分類 <ul><li>人気の記事をカテゴリ分け </li></ul><ul><ul><li>興味のあるカテゴリの話題を集中的に読める </li></ul></ul>
  13. 13. 記事分類の実装 <ul><li>Complement Naive Bayes </li></ul><ul><ul><li>[JD.Rennie, L.Shih, J.Teevan, D.Karger, ICML 2003] </li></ul></ul><ul><ul><li>Naive Bayes の学習データに補集合を使う </li></ul></ul><ul><ul><ul><li>「そのカテゴリに属さない文書」で学習 -> 「 属さない確率」が最も低いクラスを割り当てる </li></ul></ul></ul><ul><ul><ul><li>クラスの偏りに強い、学習がそこそこ速い </li></ul></ul></ul><ul><ul><ul><li>http://d.hatena.ne.jp/tkng/20081217/1229475900 </li></ul></ul></ul><ul><ul><li>スタッフほか一部のユーザーによる正解データを学習 </li></ul></ul><ul><ul><li>入力は本文テキスト中の単語など </li></ul></ul>
  14. 14. はてなブックマークの全文検索
  15. 15. 全文検索の実装 <ul><li>1. 全記事横断の全文検索 </li></ul><ul><ul><li>PFI の Sedue </li></ul></ul><ul><ul><ul><li>http://preferred.jp/sedue.html </li></ul></ul></ul><ul><ul><li>Compressed Suffix Arrays </li></ul></ul><ul><li>2. 各ユーザー毎の検索 </li></ul><ul><ul><li>自社開発の検索システム </li></ul></ul><ul><ul><ul><li> http://d.hatena.ne.jp/naoya/20090911 </li></ul></ul></ul><ul><ul><li>オーソドックスな転置索引 -> 各ユーザ毎に索引を作成 </li></ul></ul><ul><li>スコアリングのアルゴリズムを工夫 </li></ul><ul><ul><li>ブックマーク数、ブックマークされた時刻などを加味 </li></ul></ul>
  16. 16. うごメモはてなの動画判定 <ul><li>動画をパターン認識 </li></ul><ul><ul><li>規約違反の動画を学習データから自動判定 </li></ul></ul><ul><ul><ul><li>動画の途中に違反映像を差し込まれても対応可能 </li></ul></ul></ul><ul><ul><li>詳細は割愛 </li></ul></ul>
  17. 17. この類の課題に取り組むようになった背景 <ul><li>ウェブアプリケーションは技術的には掲示板の延長 </li></ul><ul><ul><li>ウェブアプリケーションそのものに技術的困難は多く無い </li></ul></ul><ul><ul><ul><li>ウェブアプリケーションは &quot; インタフェース &quot; </li></ul></ul></ul><ul><ul><ul><li>技術的困難 ・・・ 負荷分散、耐障害性、 UI 実装、プロトコルの制約 ... </li></ul></ul></ul><ul><ul><li>簡単、不特定多数 -> マーケット・インの開発に </li></ul></ul><ul><li>はてな 2000 年半ばころまで </li></ul><ul><ul><li>ウェブアプリケーション開発が得意な会社 </li></ul></ul><ul><ul><ul><li>LL やフレームワークによる開発速度が優位性 </li></ul></ul></ul><ul><ul><ul><li>ユーザーからの意見を早期に吸い上げ実装、成長 </li></ul></ul></ul><ul><ul><li>難しい課題も、 &quot; 富豪的 &quot; に解決 </li></ul></ul><ul><ul><ul><li>例 : 文書のキーワードリンク -> 巨大な正規表現 </li></ul></ul></ul><ul><ul><ul><li>例 : 検索 -> RDBMS で &quot;%like%&quot; ( 線形探索 ) </li></ul></ul></ul>
  18. 18. サービスがヒット -> 課題が発生 <ul><li>データ増加による問題の顕在化 </li></ul><ul><ul><li>ユーザー増加 -> データ増加 -> 富豪的な手法では解決できない </li></ul></ul><ul><ul><ul><li>例 : キーワードリンク、スパム対策、全文検索 </li></ul></ul></ul><ul><li>もう一つの課題 ・・・ データの再利用性が困難 </li></ul><ul><ul><li>集めた大量のデータを有効活用できていない </li></ul></ul><ul><ul><ul><li>場当たり的な手法では &quot; ロングテイル &quot; なデータにリーチできない </li></ul></ul></ul><ul><li>ウェブアプリケーション開発の &quot; 一歩先 &quot; へ </li></ul><ul><ul><li>ヒットサービスが必ずぶつかる問題 </li></ul></ul><ul><ul><li>これをスムーズに解決できる -> 競争優位に繋がる </li></ul></ul><ul><ul><ul><li>各分野で枯れた理論、新しい研究成果を利用 </li></ul></ul></ul>
  19. 19. 2008年 PFI と共同開発 <ul><li>ブックマークの関連エントリー機能 </li></ul><ul><ul><li>合宿 </li></ul></ul><ul><ul><li>Bayesian Sets を用いたリコメンドエンジン </li></ul></ul><ul><li>理論を製品に結びつけて、エンドユーザーの満足を得るまでに大きな壁があることを実感 </li></ul><ul><ul><li>入力 ・・・ ブックマーク相関 × 、本文中のキーワード × 、タグ ◎ !! </li></ul></ul><ul><ul><li>理論の実装をプロダクション環境のシステムに昇華させる実装 </li></ul></ul><ul><ul><ul><li>C++ のライブラリ実装を Perl のメインシステムとどう繋げるか </li></ul></ul></ul><ul><ul><ul><li>冗長性、負荷分散、インデクシングの自動化 ... </li></ul></ul></ul><ul><ul><li>できあがった出力を、どうユーザーに見せるのがベストか </li></ul></ul>
  20. 20. 技術を製品化する <ul><li>&quot; 記事を動的に判定してカテゴリ分けしましょう &quot; という発想は、技術者以外からは出てこない </li></ul><ul><ul><li>技術でできることがあって、機能の発想が出る </li></ul></ul><ul><ul><li>結果、技術中心の機能開発は &quot; プロダクトアウト &quot; に </li></ul></ul><ul><ul><li>プロダクトアウト開発を成功に導く -> プロダクト・マネージャーが必要 </li></ul></ul><ul><li>研究開発が製品化されて、コンシューマに届くまで </li></ul><ul><ul><li>(1) 理論 -> 実装 ( ライブラリ、ミドルウェア ) </li></ul></ul><ul><ul><li>(2) 実装 -> 機能への結びつけの発案 </li></ul></ul><ul><ul><li>(3) 製品への組み込み </li></ul></ul><ul><ul><li>(4) エンドユーザー向けへの仕上げ </li></ul></ul><ul><ul><li>PM は (1) ~ (4) が正しく実行されることを ファシリテート </li></ul></ul>
  21. 21. はてなと計算機科学 <ul><li>大量の CGM データを計算機科学的アプローチにより料理 -> 新しいエンドユーザー体験を創造したい </li></ul><ul><li>マーケットイン、プロダクトアウト両方の視点から攻めて製品が作れるユニークな企業に </li></ul><ul><ul><li>ユーザー、サービス視点 + 技術者視点 </li></ul></ul><ul><li>将来 ・・・ R&D への投資も </li></ul><ul><ul><li>まだそのフェーズではない、と判断 </li></ul></ul>
  22. 22. Thank You !

×