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

More Related Content

Web-Gakkai Symposium 2010