本郷ではたらく社長のブログ -2ページ目

Sedue on SSDのセミナーを開催します!

こんにちわ!!ひさしぶりの日記更新になってしましました。

今日は、先日リリースさせていただいたSSD版Sedueの紹介と、新しいSedueの技術的詳細のセミナーのお知らせです。

ここで詳しい記載がありますが、今回のバージョンアップで、メインメモリ上に最適化されていた検索コアだけでなく、SSDに最適化された検索コアも利用可能になりました。SSDはHDDと比較してランダムリード性能が非常に高く、全文検索というタスクに対しては非常に適しています。

このエンジンのリリースにより、大規模検索エンジンの構築は多大なコストがかかるもの、という概念をくつがえしたいと考えています。スループットが必要とされている検索システムでは、文書データ量が大きくなってしまうと、複数のマシンにインデックスを分割したり、同じデータを複数のマシンにもたせたりしないと、所望の性能を満たすことができません。メインメモリ型の検索エンジンでは、1台のマシンに収容できるモジュール数の制限から複数台必要になりますし、ディスク型の検索エンジンでは、ディスクのアクセス性能に制限されて複数台必要になります。今回のSSDでの検索エンジンは、両者のよいところをとって、1台でかなり高負荷・大容量のデータでも扱えるようにしました。

SSDに関しては、今年2月ぐらいから弊社田中を中心に、集中的に研究開発を行ってきました。SSDを複数搭載したサーバーを社内に構築し、田中がSSD向け検索アルゴリズムの開発・実用化を行いました。SSDでは、HDDやメモリとはまた異なるコストパフォーマンスのトレードオフがあるので、HDD,SSD,メモリそれぞれの長所を生かして欠点をカバーするような検索手法を構築する必要がありました。

今回のあたらしいSedueは、他にも、ファセットナビゲーション機能やカラムインデックス(1つの文書に対して様々なフィールドを定義でき、そのフィールドごとに適切なインデックスエンジンを指定できる)の機能を充実させ、新バージョンにふさわしい機能拡張をおこなっています。

弊社では、このエンジンを、ビジネス上のインパクトだけではなく、技術の進化という点でも重要なエンジンだと考えています。なので、ぜひSSDのすごさをしってもらうべく、弊社でははじめての、対外的なセミナーを実施することにしました!!はじめてなのでうまくいくかドキドキです。

セミナー告知ページに募集ページがあります。

今回のセミナーでは、新しい検索エンジンにおいてSSDがどのような形で組み込まれているのかの技術的な詳細と、具体的にどの程度の規模の検索がどの程度のマシンで実現できるのか、など具体的な話もします。新機能の詳細も、開発者みずからが発表させていただきます。

また、あわせて、セミナーでは、弊社岡野原・徳永によるレコメンデーションアルゴリズムの解説も同時開催いたします。WebDBプレスの著者2人による解説ということで、こちらも技術的要素満載でおとどけします!!

セミナーは、まだまだ参加者大募集ですので、ぜひぜひみなさまの参加をお待ちしております!

はてなブックマークリニューアル

日記を相当長い間書いていませんでしたすいません・・・

今日は、ちょっと時期をのがしてしまいましたが、はてなブックマークリニューアルについて書いてみようと思います。まずは、リニューアルおめでとうございます!>はてなの皆様

今回のはてなブックマークリニューアルでは、弊社は、はてなブックマークのエントリ全文検索に携わりました。弊社の全文検索エンジンである、「Sedue」を用いて、複数台で全文検索機能を実現しています。リアルタイム性と大規模な検索が必要なタスクであったので、Sedueは今回のタスクにぴったりなエンジンでした。

エンジン自体は、もともと分散環境でいかに簡単に動作させるか、が売りのエンジンなので、すぐに稼働させることができました。ランキングの部分は、かなり力をいれていて、id:naoyaさんと弊社のCTO太田、エンジニアの久保田が協力して作成していきました。ランキングは、もうすでに汎用のWeb検索はGoogleがあるので、いかにはてブらしさを出すか、が課題になっています。まだまだランキングの調整は必要ですが、今回のランキングでは、「はてブ数」が一番重要なファクターになっています。Googleにおけるページランクみたいなもんですね。それに加え、はてなブックマークでは、ブックマークの新鮮さというのも重要になってくるので、新鮮さをいかに検索エンジンで実現するか、というのがもう一つの大きなファクターになっています。

今回のエンジン導入では、弊社からもランキングのエンジンを多く出させていただき、いろいろ両社検討しながら開発がすすんでいきました。太田さんが実際には多くの仕事をこなしていき、時折僕も議論に交わってみたりもしました。

そこで一つ感じたのは、ページランクやはてブランクなど、ある程度客観的にページに対して静的なランキングが定義されていると、検索エンジンの作りとしては非常に作りやすくなるということです。

もともと、Sedueに搭載されている検索手法にしても、転置ファイルにしても、すべてのデータをまんべんなく完璧に検索するということは非常にコストがかかることです。転置ファイルなんかだと、あらかじめポスティングリスト(ある単語がヒットする文章集合を示すリスト)をランキング順に並べておいて、検索速度の高速化を実現するということはいろいろ研究されています。

論文レベルだと、たとえばtfidfなんかでソートしておくことが多いのですが、実際のユーザー視点から見ると、なかなかそれがページの重要性を表していると言いにくい部分もあります。静的にランキングを付けるといっても、ランキングの付け方にはいろいろあるので、難しいところではあります。

ですが、一旦、それなりに合理的な方法で静的なランキングを付けられると、ユーザーからみた精度と、実際の検索速度のトレードオフを考えた時、ずいぶんと考えやすくなります。

Webページはたくさんある、というか膨大です。その中のページには、どんな単語で検索されたとしても、あまり意味を持たないページも多いです。そういうページは、まずはインデックスにいれない、というのは重要です。特に、スパムサイトとかは、無駄にキーワードを多く含んでいたりすることもあるので、確実に排除する必要がある。その点では、はてなブックマークでは、スパムサイトはあまりブックマークされない、また、運営がきっちりしていて、スパムを排除する仕組みが整っているので、非常にありがたいことです。

その上で、ページの価値が定義されていると、何がいいのか。簡単にいってしまうと、より価値の高いページは、インデックスを別にしておけばよいわけです。すべての文書から、ある単語がヒットするページをもってこようとすると、考慮しなければいけない文書数が膨大になってしまいます。それを、ランキングの高さでインデックスを分けてあげると、メジャーなクエリーの場合には、プライオリティの高いインデックスを集中的に検索してあげると、結果的に検索精度の向上と、速度の向上の両方を達成できます。マニアックなクエリーの場合は、一番プライオリティの高いインデックスにはあまりヒットしないかもしれないので、次のインデックスを見に行きます。そうして、ある程度件数を取り出してきて、あとは、クエリ内容を考慮して最終的なランキングを決定します。

検索対象がたとえば社内文書だったりすると、この方法はつかえないこともあります。件数的にも、別に全部さがしてしまってもいい場合がおおいです。しかし、Web検索のような、膨大な件数を扱うことになると、いかにうまくはしょるか、ということは非常に重要になってきます。といっても、ユーザーが満足できなければまったく意味がなく、ユーザーにとってランキング手法が合理的である上で、そのランキング手法の特性を理解してはしょることが重要になってきます。はしょる、というといい加減なんじゃないか、ととらえられてしまいそうですけど、そうではなくて、計算時間は有限ですから、その有限の計算時間の中でどううまく処理をわりあてていくか、ということです。

まだまだ検索精度は恒常的に向上させていなかいといけませんし、研究レベルでも、ユーザーのアクセスログをうまく利用したりして精度向上に寄与させるなどの研究はたくさん行われています。今回、ソフトウェアライセンスの提供が主であった弊社が、はてなさんと一緒に開発を進めていけることは重要なことだと考えていて、積極的に検索精度向上に取り組み、その結果を製品の改良にもつなげられる重要なチャンスだと考えています。その意味でも、今回のはてなブックマークリニューアルに弊社が少しでもかかわれたことは、非常に大きなことだと思います。

検索精度や、検索の使い勝手向上は、これからもガンガン改良が必要だと思いますが、「はてブ」らしさを検索エンジンを通じて実現していければ、と思います。

また、このプロジェクトを通して、Sedueの分散部分を初期のころから一緒に開発していた太田と、新しく今年からPFIに参加した久保田が、検索精度のみならず、より堅牢・使い勝手のよいシステムとしてSedueを改良しつづけています。この成果は、もうすぐ、大きな形で、世の中の検索システムの性能向上のために寄与できるようにしたいと考えています。2人とも、学業と会社を両立させながら、インパクトのある製品開発も行っていて、非常にすごいです。僕は、なかなか最近開発する時間をとれなくてちょっとさびしいですが、優秀なメンバーに支えられているので、自分の仕事に集中できるようになってきました。とがったメンバーが順調に増えていて、いろいろな技術に触れあう機会が多くなっていることもあり、毎日がエキサイティングです。

ちなみに、今回のはてブ検索では、アスキーアートも探せます。

(=ω

などで検索してみると、こなたが見つかるかもしれません。いろいろ、Google検索とはまた違った楽しみがあるので、明日から、ちょっとづつそれを紹介していきたいと思っています。

株式会社Fillot

最近ちょっと忙しさがメリーゴーランドでまたもや全然更新できてません・・・ごめんなさいごめんなさい。どこでもドアがあれば、ちょっとはらくになるので、早くできないかなーww

うちの会社のデザインを全面的に作ってくれている方が起業しました!株式会社Fillotです。おめでとうございます!

1年ぐらい前に、当社が株式会社化するときに、ホームページのリニューアルなど、全部お願いさせてもらいました。UbiMatchのデザインもしていただいたり、いろいろと助けていただきました。僕らがエンジニアの会社なら、まさに、デザイナー・エンジニアの会社です。

なかなかコンピュータサイエンスだけを見ていると、見せ方とか見た人にとってのイメージまでは想いが至らないのですが、コンピュータサイエンスをいざ実用化しようとすると、バックエンドの技術だけでは決して人に受け入れられることはありません。実際に技術を使うのは人間ですから、いかに使う人がイメージを読み取り、すぐに技術の価値に触れられるかどうかが重要となってきます。Webサービスなんかは特に重要ですね。でも、Webサービスだけでなく、技術を実用化すると、デザインとは切っても切り離せない関係にあると思っています。そうかんがえていたタイミングで、Fillotの方々と出会うことができたので、非常に良かったと思います。

実に学ぶことが多くて、いままで全然意識していなかったようなことでも、ひとにとっての見え方というものを考えてくると、技術そのものに対しても新しい価値が生み出せるようになります。その意味でも、株式会社化して、デザイン・エンジニアリングの融合がもっと本格的になると思うと、非常に楽しみです。