はじめに
前回の記事では、ソーシャル・アナリティクスを実現するテキスト・ネットワーク分析統合プラットフォーム(TExt and Network Analysis、以下、TENAと略します)を、データ構造、API、そしてアプリ構築に必要な分析フレームワークを中心に説明しました。ソーシャル・アナリティクスとは、ブログやSNSといったソーシャル・コンピューティング・ソフトウエアにおけるユーザーの行動とそれに伴うテキストを統合的に分析する技術です。今回の記事ではTENAが実現する分析アプリケーションの実例を、実際のAPIの利用例と共に説明します。
ブログユーザーに魅力的な情報を提供する:ブログサイト向けアプリケーション
現在実装されているTENAのアプリケーションは、分析結果をブログやSNSといったユーザーに対して提供し、それによりツールへの滞留時間を長くしたり、活動頻度を上げたりといった効果を期待するものが中心となります。このアプリケーションの例として、ブログサイト向けのアプリケーションである「ブログ推薦」と「ブログサポーター」を紹介します。これらは、株式会社サイバーエージェント様のアメーバブログ(アメブロ)上でサービスとして用いられています。
ブログの執筆・閲覧行動に基づいたブログ推薦機能
ログインページにおけるブログ推薦機能
ブログ推薦機能は、ユーザーが今まで書いた/読んだブログを基にして、ユーザーの気に入りそうなブログを求めることができる機能です。ブログサイトではブログを読むだけのユーザーであっても、自分のお気に入りのブログに対して簡単にアクセスすることができるポータルサイトのようなページが用意されていることがあります。そのようなユーザー専用のエリアに、ブログ推薦機能によって求められたブログを「オススメのブログ」として表示することにより、ユーザーの興味を広げ、ブログサイトへの滞在時間を延ばすことが期待できます。
ブログ推薦機能におけるユーザー嗜好のモデル化
ブログ推薦機能では、TENAを用いてブログの執筆/閲覧履歴からユーザーの嗜好をモデル化し、お勧めのブログを推定しています。ユーザーの嗜好をモデル化する方法として、ブログの「コンテンツ」を中心にしたテキスト分析と、「行動」を中心としたネットワーク分析の2種類があります。テキスト分析による推薦は、ユーザーの書いた/読んだブログの内容に関連したブログを推薦するため、一貫した内容のブログを読んだり書いたりしているユーザーには有効です。それに対してネットワーク分析による推薦は、内容に関係なくそのユーザーと行動が似ているユーザーの集合を弁別し、その集合でよく読まれているにもかかわらず未だにそのユーザーが読んでいないブログを発見することができます。そのため、ネットワーク分析による推薦はブログの目的が内容なのではなく、芸能人などといった「ブログを書く人」に注目してブログを読んでいるユーザーに有効だと言えます。
テキスト分析によるブログ推薦
テキスト分析による推薦では、前回の記事で説明した分析フレームワークの一つである「興味マトリクス」を用います。興味マトリクスとは、時間的な減衰を考慮して、ユーザーの行動別に関連したキーワードをベクトル表現で保持したものです。
ユーザーの興味は日々刻々と入る情報によって影響を受け、変化していると考えることができます。それらをよく表しているのがテキストです。ユーザーが頻繁にブログに書く話題や、頻繁に訪問するブログに現れている話題は、そのユーザーが現在興味を持っている話題である場合が多いでしょう。しかし、「読んだ」内容よりも、「書いた」内容の方がユーザーの興味をよりよく示していると考えられるため、ユーザーの行動別にテキストを分けて、ユーザーの興味をモデル化する必要があります。さらに、興味は日々移り変わるものであり、興味があったものも時間がたつと共に忘れられていくと考えるのが妥当です。そのため、2週間前に読んだ記事に含まれるキーワードよりも、昨日読んだ記事に含まれるキーワードの方が、そのユーザーの興味をより強く表すと考えるのが妥当です。これらの「行動」と「時間による変化」を考慮したモデル表現が、興味マトリクスと呼ばれるものです。
テキスト分析によるブログ推薦では、ユーザーの特徴およびブログの特徴を、それぞれ興味マトリクスを用いてモデル化しその近さを比べることで推薦するブログのランキングを得ます。
ネットワーク分析によるブログ推薦
ネットワーク分析による推薦では、ユーザーとブログコンテンツにより作られるネットワーク構造を分析する分析フレームワークである「2部グラフ分析」を用いて、各ユーザーに対してブログを推薦します。2部グラフとは、2つのグループ(クラスタ)に分割されたノードの集合と、それぞれのクラスタ間に存在するリンクによって作られるグラフのことをいいます。このアプリケーションで用いる2部グラフを図1に示します。このグラフは、ユーザーとコンテンツという2種類のノード間に「読む」「書く」といった行動のリンクが張られたものです。
2部グラフ分析を用いると、片方のクラスタから1つノードを選択し、同じクラスタに属する残りのノードを選択ノードに近い順番にランキングすることができます。このアプリケーションの場合は、あるユーザー(推薦対象ユーザー)を選んだとき、そのユーザーに「近い」ユーザーを知ることができます。ユーザーAとユーザーBの近さは、ユーザーAからユーザーBまでに、「読む」「書く」といったリンクを経由していく方法が何通りあるかで求めることができます。1つの「読む」「書く」行動を1つのリンクと数えると、距離も定義することができます。距離が短い経路が数多くあるユーザーは、同じようなブログに興味を持っているという意味で、そのユーザーに「近い」ユーザーであると言えます。この分析を用いて推薦対象ユーザーに近いユーザーの集合を求め、そのユーザーが読んでいるブログを集計することで、推薦するブログのランキングを求めることができます。
推薦結果の統合
前に解説したように、テキスト分析およびネットワーク分析では性質の違う2つの結果が出力されますので、これらを統合してブログ推薦の結果とすることも可能です。TENAのプラットフォームでは、ユーザーの行動履歴やこれまでの興味をモデル化した興味マトリクスを取得できますので、あるユーザーに対して、どちらの推薦手法が有効か、検討することができます。例えば、書いたという行動履歴が多いユーザーに対してはテキスト分析の結果を優先的に、読む行動が中心のユーザーにはネットワーク分析を優先的に出す、といったポリシーを決めて結果を統合します。また、あるユーザーの興味の内容がある話題(例えば旅行やスポーツなど)に一貫したものであったのか、そうではないのかという判定を興味マトリクスで行うこともできるため、統合のポリシーを決めるための材料として用いることが可能です。