11 月 2008

You are currently browsing the monthly archive for 11 月 2008.

企業内ミニブログ

先週後半から39度の熱を出して、今週前半まで寝ていました。皆様体調にはお気をつけください。

最近アメリカでは企業向けのミニブログ(マイクロブログ)がちょっとした脚光を浴びています。今年のTechCrunch50というイベントでは、Yammerというネットサービスが最優秀に選ばれました。その後、対抗馬としてPresent.lyQikcomといったサービスも現れました。企業向けミニブログというアイデアは昨年からあちこちで言われていたようで、そのための自社製システムを使っていた会社もあるようですが、それが今年一斉に動き出したという感じです。

使い方ですが、基本的には、Twitterと同様に、その時自分がしていることをメモのように書きます。社内のメンバーが皆そのようにすれば、自分の周囲の範囲の人たちが今何をしているかという情報も次々に入ってきます。コメントしたいことがあれば返信することもできます。

企業内で使うための一番重要な機能がグループ機能です。メンバーはミニブログ内で複数のグループに所属します。重要な情報は特定の閉じたグルーブの参加者にしか読めないようなメッセージとして書くことができます。メンバーがグループに分散することで、自分の職務に関係の薄い情報が溢れることもなくなります。

弊社でもYammer、それからPresent.lyを試してみました。それぞれの使用感についてレポートします。

Present.ly

SSLでアクセスするためには有料コースを使う必要があります。ただし60日の無料試用期間があります。

画面はシンプルでとても見やすいデザインです。携帯からのアクセスにも対応しており、iPhoneでもきれいに見ることができました。

ダイレクトメッセージの送信、グループの設定、メッセージのタグづけ、ファイルの添付を行うことができます。

グループ向けメッセージの入力などはメッセージ先頭にコマンドを書くことで行います。この方法はプログラマーなどの技術者向けかもしれません。

Twitter互換のAPIを用意しているそうです。

多言語対応について少々問題があるのが残念です。まずタグは日本語が使えません。それから、一つの投稿あたり140文字まで入るはずですが、日本語では50文字を超えたあたりでエラーになります。おそらく140バイトでチェックしているのではないでしょうか。

Yammer

こちらは一部の管理機能が有料ですが、それを使わない場合は無料です。

グループの設定、タグといった機能があります。ファイルの添付はできません。コマンドを憶える必要がほとんどないので、プログラマー以外でも使いやすいと思います。

iPhoneアプリケーション、デスクトップアプリケーションが用意されています。iPhoneアプリはあまり洗練されたものではありませんが、何度かアップデートがあって使いやすくなってきています。

一つのメッセージはかなり長い文字数で投稿することができます。デフォルト設定では、日本語を入力しようとすると変換を確定した時に投稿されてしまいますが、Settting -> Appearanceに、Enterキーで投稿しない設定にチェックをすれば、日本語も問題なく使えます。タグに日本語を使うことも可能です。

しばらく使ってみて

Present.lyは日本語の扱いに問題があったので、弊社ではYammerを使い続けています。

今までメールというチャンネルからはこぼれ落ちていたような情報を拾い上げ、共有するのに役に立っていると感じています。上司に提出するための日報の代わりに、自主的に活動を記録するものとして使うこともできるでしょうね。ただ、メールの代わりになるものではなく、共存するものだと思います。

メール以外にはSkypeやIMを使ったコミュニケーションもありますが、ミニブログはそれらのような完全なリアルタイムコミュニケーションではありません。非同期に各メンバーが自分の仕事上の関心事を書き込むというスタイルで、また仕事上関心がある相手やグループの発言だけを読むことができるので、あまり個人の負荷にならないのではないかと思います。また、コミュニケーションが個人間に閉じてしまわないのも特徴だと思います。このあたりは、弊社のメンバーが数人しかいないので、規模が大きい組織で使った時にどうなるかは分かりませんが。

場所は今回も初台のDeNAさんの会議室でした。読んだのは15章の「サポートベクターマシンと文書の機械学習」という章です。15.4の前まで読みました。

実は今回ほとんど予習していない状態で行ってしまい、内容も難しくて数学が苦手な私にはよく理解できませんでした。この章は理論は解説してくれるのですが、疑似コードなど実装の話は出てきません。分かりやすいという話を聞いたオーム社の『サポートベクターマシン』を帰宅後注文しました。引き続き勉強するとして、とりあえず分かったことだけ書きます。

サポートベクターマシン(SVM)は、前回のRocchioなどと同じように、教師付き学習を用いた、ベクトル表現に基づく分類器の一種と考えていいようです。Rocchioとは違い、クラスの重心を考えるのではなくて、境界線をどこに引くかを考える方法だそうです。そのためにクラス分布の端にある文書だけを考えます。この文書一つ一つのことをサポートベクトルと呼びます。

境界線から一番近くの文書までの距離をマージンといいますが、SVMはこれが最大になるような境界を見つけようとします。この境界に基づいて、新しい入力を分類すれば、大体合っているだろうというわけです。

と書くと簡単っぽいですが、高次元でこれをやるのがSVMの偉いところなんでしょう。ナイーブベイズだと70%の精度、SVMだと80%の精度、というのが現場の感覚らしいです。とは言え、正直言って、なぜSVMが優れた性能を持ち、複雑な計算による学習を必要とするのかがちゃんと理解できていないです。

マージンを最大化する問題は、二次計画問題に還元できるそうです。ここで、サポートベクトルを決定するためにラグランジュの未定乗数法というのを使います。この辺が分からないと実装できないわけですが、さっぱりです。

というわけで、基本が分かっていないので後はキーワードだけ書きます。

ソフトマージン分類法は多少の例外を認めるという拡張。SVMにおける学習の複雑度は、文書数の3乗オーダーだが、経験的には1.7乗オーダーになる。cutting planesというものを使うと1乗になる(!?)。文書ベクトルを高次元にマップするカーネルトリックを使うことで、ノンリニアの問題に対応できる。(でもロイター21578というデータセットでの実験結果によると、リニアバージョンとほとんど変わってない。)

うーん、もうちょっと勉強します。まずちゃんと予習して行かないと。