動的カテゴライズ

はてなブックマークと言うか,SBM と呼ばれるサービスを利用するユーザの母数自体がまだまだ少ない,かつ偏っているため,どうしても取り上げられる記事は偏りがちになってしまいます.

はてなブックマークは内輪か? - Life like a clown

前回の最後にこのような感想を書きましたが,これは「偏っている方が正常である」と言う見方もできます.実際,一般大衆に向けて発信されるマスコミのニュース記事を見ても偏りが発生していますし,母数を日本人全員としても趣向には大きな偏りがあるでしょう.そう考えると,「全ての分野の情報・話題を偏りなく提供する」事の方が異常であるとも言えます.したがって,(実際問題として,SBM はもう少し母数を増やす必要はあるのですが)必要以上に偏っているように見えてしまうのは,はてなブックマークはてブニュース 辺りの「(単一階層の)固定カテゴリーによる分類の見せ方の限界」に起因するのかなと言う気がします.

一般的には,あるカテゴリー内においてある程度似た情報が多数集まると,サブカテゴリーを設定して再分類すると言う手法が取られます.Web 上における身近な例としては,Yahoo!ニュースなどが挙げられるでしょうか.Yahoo!ニュースでは,トピック一覧 - Yahoo!ニュース のように提供されるニュース記事の量に応じて動的にサブカテゴリーを設定し,さらに,それらの中で現在よく使用されているサブカテゴリーを選択して表示しています(例:国内トピックス - Yahoo!ニュース).これによって,興味のない人に同じ種類の情報を大量に提供してしまう現象を防ぎ,ユーザの不快感を和らげる事に成功しています.

ユーザによるタグ情報の活用の未来

SBM においては,当初,この動的カテゴライズ機能はユーザによるタグ情報によって行われる事が期待されていました.しかし,現在までのところ,タグ情報はあまり有効には活用されていません.タグ情報を分類(カテゴリー分け)に使用する上で問題になるものとして例えば,以下のようなものが挙げられます.

これらのうち,最初の表記のゆれに関しては既に多くの対処方法が提案されているようですが,その他に関しては依然として多くの問題が存在しているようです.

例えば,はてなブックマーク - はてなブックマークは内輪か? - Life like a clown では,現在のところ「はてブはてなはてなブックマーク,考察,hatena,ネタ,SBM,net,論,blog」の 10種類のタグが付けられていますが,これらを使って以下のようなツリー構造を構築できるのが理想となります.

- はてな/hatena → はてブ/はてなブックマーク
- net → SBM → はてブ/はてなブックマーク
※考察,ネタ,論 辺りは,分類には利用できないとして除去(blog の扱いに悩む・・・)

タグ間の包含関係を基にしたツリー構造の構築に関しては,昔「より広い意味を表すタグほど数多く出現するだろう」と言う予測の元で以下のような構築方法を取れば良いかなぁと考えた事もありましたが,やはりこれにもいくつかの問題が存在するようです(こう言ったものは研究会レベルでは既にどこかで提案されているはずなので,真面目に考えるつもりなら調査から始めなければなりませんが・・・).

// elements は,対象とする記事とそれらの記事に付与されたタグの集合
make_sub_category(elements) {
    threshold = ... // 適当な閾値
    upper_bound = MAX_INTEGER
    
    while (upper_bound > threshold) {
        // elements 中,upper_bound 以下で最も多数出現するタグを検索
        tuple<n, tag, sub_elements> = find_most_tag(elements, upper_bound)
        
        // 今までに作成したサブカテゴリーの中のサブカテゴリーとして登録されていたらスルー
        if (n > threshold && !already_exists_in_other_sub_category(tag)) {
            // tag と言うサブカテゴリーを作って,sub_elements に含まれる記事をそこに登録
            regist(tag, sub_elements)
            make_sub_category(sub_elements)
        }
        
        upper_bound = n;
    }
}

個人的には,タグ情報は(今でも)有効に利用できる方法がありそうと感じているので,何かうまい方法が出てくると良いなぁと思っています.