(57)【要約】      （修正有）【課題】不十分なソーシャル・ネットワークしか存在せず、且つユーザが積極的にソーシャル・ネットワークに関与するインセンティブがない場合でも、ソーシャル・ネットワークを拡張することが可能な技法を提供する。【解決手段】ソーシャル・ネットワークに新たなエッジを追加し、それによってノード間の距離が小さくなるように、Ｗｅｂサーバに接続されたクライアント・システムであるユーザに、ＧＵＩとしてカードを提示し、それに対するユーザの入力を利用することにより、新しいエッジを導入する。その際、下記のような優先度付け基準をもつアルゴリズムを利用する。（１）自分のノードから近い人に関するエッジ（カード）であるほど、優先度が高い。（２）そのエッジを導入することによって縮まる距離の総和が大きいほど、優先度が高い。（３）作業コストの低いカードであるほど優先度が高い。【選択図】図８
2014016916.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータの処理により、ソーシャル・グラフを拡張する方法であって、
(a)前記ソーシャル・グラフに、エッジE１又はエッジE1と該エッジの端点であるノードN1とを追加するための質問を複数用意するステップと、
(b)前記用意した複数の質問の中から、前記ソーシャル・グラフ内のユーザを表す任意のノードN2が示すユーザに提示する所定数の質問を決定するステップであって、該決定は、質問に対して回答する作業の作業コスト、追加するエッジE1の一方の端点であるノードN3とノードN2間の距離、及びエッジE１を追加することにより減少するノード間距離を前記ソーシャル・グラフ内の全ノード又は一部のノードに渡って足し合わせた総和のうちの少なくとも１つに基づいて行うステップ、
を含む方法。
【請求項２】
前記決定は、(エッジの導入によって縮まる距離の総和)/[(N2とN3の距離+1) * (作業コスト)] で計算された優先度に基づき行なわれる、請求項１に記載の方法。
【請求項３】
前記複数質問のうち少なくとも１つの質問は、前記ユーザに、前記ユーザに関連するキーワードである、少なくとも１つのタグを入力するように依頼することを含み、前記タグは前記ユーザに関連付けて保存される、請求項１に記載の方法。
【請求項４】
前記複数質問のうち少なくとも１つの質問は、既に入力された前記タグを表示するものである、請求項３に記載の方法。
【請求項５】
前記各ステップは、Ｗｅｂサーバ上で実施され、前記ソーシャル・グラフ内のユーザは、該Ｗｅｂサーバに接続されたユーザ端末に対応する、請求項１に記載の方法。
【請求項６】
前記質問は、前記ユーザ端末にカード形式で表示される、請求項５に記載の方法。
【請求項７】
前記ユーザ端末にはＷｅｂブラウザが導入され、前記質問は、該Ｗｅｂブラウザにカード形式で表示される、請求項６に記載の方法。
【請求項８】
コンピュータの処理により、ソーシャル・グラフを拡張するプログラムであって、
前記コンピュータに、
(a)前記ソーシャル・グラフに、エッジE１又はエッジE1と該エッジの端点であるノードN1とを追加するための質問を複数用意するステップと、
(b)前記用意した複数の質問の中から、前記ソーシャル・グラフ内のユーザを表す任意のノードN2が示すユーザに提示する所定数の質問を決定するステップであって、該決定は、質問に対して回答する作業の作業コスト、追加するエッジE1の一方の端点であるノードN3とノードN2間の距離、及びエッジE１を追加することにより減少するノード間距離をソーシャル・グラフ内の全ノード又は一部のノードに渡って足し合わせた総和のうちの少なくとも１つに基づいて行うステップ、
を実行させる、プログラム。
【請求項９】
前記決定は、(エッジの導入によって縮まる距離の総和)/[(N2とN3の距離+1) * (作業コスト)] で計算された優先度に基づき行なわれる、請求項８に記載のプログラム。
【請求項１０】
前記複数質問のうち少なくとも１つの質問は、前記ユーザに、前記ユーザに関連するキーワードである、少なくとも１つのタグを入力するように依頼することを含み、前記タグは前記ユーザに関連付けて保存される、請求項８に記載のプログラム。
【請求項１１】
前記複数質問のうち少なくとも１つの質問は、既に入力された前記タグを表示するものである、請求項１０に記載のプログラム。
【請求項１２】
前記各ステップは、Ｗｅｂサーバ上で実施され、前記ソーシャル・グラフ内のユーザは、該Ｗｅｂサーバに接続されたユーザ端末に対応する、請求項８に記載のプログラム。
【請求項１３】
前記質問は、前記ユーザ端末にカード形式で表示される、請求項１２に記載のプログラム。
【請求項１４】
前記ユーザ端末にはＷｅｂブラウザが導入され、前記質問は、該Ｗｅｂブラウザにカード形式で表示される、請求項１３に記載のプログラム。
【請求項１５】
コンピュータの処理により、ソーシャル・グラフを拡張するシステムであって、
(a)前記ソーシャル・グラフに、エッジE１又はエッジE1と該エッジの端点であるノードN1とを追加するための質問を複数用意する手段と、
(b)前記用意した複数の質問の中から、前記ソーシャル・グラフ内のユーザを表す任意のノードN2が示すユーザに提示する所定数の質問を決定する手段であって、該決定は、質問に対して回答する作業の作業コスト、追加するエッジE1の一方の端点であるノードN3とノードN2間の距離、及びエッジE１を追加することにより減少するノード間距離をソーシャル・グラフ内の全ノード又は一部のノードに渡って足し合わせた総和のうちの少なくとも１つに基づいて行う手段、
を含むシステム。
【請求項１６】
前記複数質問のうち少なくとも１つの質問は、前記ユーザに、前記ユーザに関連するキーワードである、少なくとも１つのタグを入力するように依頼することを含み、前記タグは前記ユーザに関連付けて保存される、請求項１５に記載のシステム。
【請求項１７】
前記複数質問のうち少なくとも１つの質問は、既に入力された前記タグを表示するものである、請求項１６に記載のシステム。
【請求項１８】
前記システムがＷｅｂサーバであり、前記ソーシャル・グラフ内のユーザは、該Ｗｅｂサーバに接続されたユーザ端末に対応する、請求項１５に記載のシステム。
【請求項１９】
前記質問は、前記ユーザ端末にカード形式で表示される、請求項１８に記載のシステム。
【請求項２０】
前記ユーザ端末にはＷｅｂブラウザが導入され、前記質問は、該Ｗｅｂブラウザにカード形式で表示される、請求項１９に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ソーシャル・ネットワーク・システム（ＳＮＳ）などにおいて、個々のユーザやアイテムを結ぶグラフであるソーシャル・ネットワーク・グラフを拡張するための技法に関する。
【背景技術】
【０００２】
近年、組織を横断した活動の活性化のため、多くの企業内にＳＮＳが導入されつつある。そのようにして導入したＳＮＳが有効に機能するためには、ユーザやコンテンツの間の関係データに基づくネットワークの構築を図る必要がある。
【０００３】
最近ユーザを増やしているＳＮＳとして、例えばFacebookがある。これらのＳＮＳでは、ユーザが積極的に行動することで、一定量の嗜好データが集まり、ネットワークの有用性が増し、ユーザがさらに積極的に行動するという正のフィードバックがありえる。
【０００４】
一方企業内のＳＮＳでは、ユーザが必ずしも能動的に参加せず、従ってデータが集まらず、それでいつまでたってもネットワークの有用性が高まらないので、ますますユーザが参加しないという悪循環がある。これは、コールド・スタート問題とも呼ばれる。これに対処するための関連技術を開示する文献として下記のものがある。
【０００５】
特開２０１１−２２７８９２号公報は、ユーザのソーシャルネットワークのモニタエージェントを利用することで、コンテキスト認識フレームワークにデータを供給することにより、ソーシャルネットワークの各ユーザの固有プロフィールを作成する段階と、共通の興味および関連キーワードを抽出することで原データをクラスタリングすることにより、ソーシャルネットワークのユーザ間の関係を特徴付ける内容の濃いコンテキスト認識キーワードリストを作成する段階と、リストをクエリするインタフェースを提供する段階とを備えたシステムを開示する。
【０００６】
特開２０１１−１７０４７１号公報は、ソーシャルグラフ生成装置とタグ評価値決定部とソーシャルグラフ生成部を備えたシステムを開示する。このシステムにおいて、ソーシャルグラフ生成装置が、被評価ユーザから評価要求情報を受信すると、タグ評価値決定部が、被評価ユーザの属性情報に関する評価値の設定を依頼する複数の評価ユーザを選定する。そして、選定した各評価ユーザから評価値が設定されたタグ評価情報を受信すると、タグ評価値決定部は、各評価ユーザについて、トラストを用いて、善意ユーザか悪意ユーザかを判定し、善意ユーザの数が悪意ユーザの数より多い場合に、被評価ユーザの評価値を決定する。続いて、ソーシャルグラフ生成部が、被評価ユーザが設定した属性情報と、その評価値とを用いて、協調フィルタリングを実行することにより、被評価ユーザと関連性の強いユーザを抽出し、ソーシャルグラフを生成する。
【０００７】
特表２００９−５０５２８６号公報は、ソーシャル・ネットワーク内部において共通する知り合いに、公開タグ、メモ、またはその他のデータを注釈として付ける方法を提供し、これによって、ソーシャル・ネットワークのユーザは、当該ネットワーク内部における他の連絡空きに関する有用な情報を一目で得ることができ、ユーザが定義したキーワードによって、当該ネットワーク内部にある知り合いを選別する手段を提供し、以って、ユーザが新しい潜在的な友人や仕事の知り合いを発見でき易く、しかも簡素化することを開示する。
【０００８】
特表２０１０−５００６４８号公報は、ソーシャルネットワーク環境においてニュース配信を表示するために、所定の組の視聴者に対してニュース項目へのアクセスを制限するステップと、ニュース項目に序列を割り当てるステップと同様に、ソーシャルネットワーク環境のユーザに関連した活動に関するニュース項目を生成するステップと、活動の少なくとも一つに関連した情報リンクをニュース項目の少なくとも一つに結びつけるステップを行なうことを開示する。
【０００９】
特表２００８−５３９５２８号公報は、ソーシャルネットワークのメンバーの間の相性を得点化する方法であって、前記ソーシャルネットワークの前記メンバーの表現された趣味に基づいて趣味相性得点を生成するステップと、前記ソーシャルネットワークの第１のメンバーと前記ソーシャルネットワークの第２のメンバーとの間の相性得点を、前記第１のメンバーの表現された趣味と、前記第２のメンバーの表現された趣味と、前記第１のメンバーの前記表現された趣味と前記第２のメンバーの前記表現された趣味との間の前記趣味相性得点とに基づいて、計算するステップを開示する。
【００１０】
特表２０１０−５００６４９号公報は、ウェブベースのソーシャルネットワークのメンバーのために個人別化された動的な関係をベースとしたコンテンツを生成するためのシステムと方法に関し、ウェブベースのソーシャルネットワークの１以上のメンバーの少なくとも１つの行動が、統合データを生成するために１以上のメンバーのための関係データと対応付け、統合データと対応付けられた１以上のエレメントを識別し、統合データを集めるために用い、さらに、ウェブベースのソーシャルネットワークのメンバーのために個人別化された動的な関係をベースとしたコンテンツを生成するために、集約された統合データを類似性によって重みづけることを開示する。
【００１１】
松尾, et al. Web上の情報からの人間関係ネットワークの抽出, 人工知能学会論文誌 2005は、Web上の文書 (検索エンジンによる検索結果) における氏名の共起関係から個人間の関係の強さを抽出する方法について述べており、この方法は共起関係を表す文書が大量にあることが前提となっている。
【００１２】
友部, et al. Semantic Webのための人の社会ネットワーク抽出と利用, 情報処理学会論文誌 ２００５も、上記松尾, et al. と同様の技術を開示している。
【００１３】
Christian Bird, et al. Mining Email Social Networks, MSR 2006は、メールに出現するアドレス群から関係を抽出・解析する方法について述べており、その中で重要な人を検出するための指標として、"betweenness" が定義されている。
【００１４】
Abhinandan Das, et al. Google News Personalization: Scalable Online Collaborative Filtering, WWW 2007は、Google Newsで使われている協調フィルタリングについて述べた論文である。
【００１５】
神嶌. 推薦システムのアルゴリズム (1)-(3), 人工知能学会誌 2007-2008は、推薦システム全般についての紹介論文であり、推薦システムの弱点である、各ユーザの嗜好が一定量集まらないと有効な結果が得られにくいことが本論文で述べられている。
【００１６】
Einat Amitay, et al. Social Search and Discovery Using a Unified Framework, HyperText 2009は、SNS上のアイテムの検索・スコアリングについて述べた論文である。
【先行技術文献】
【特許文献】
【００１７】
【特許文献１】特開２０１１−２２７８９２号公報
【特許文献２】特開２０１１−１７０４７１号公報
【特許文献３】特表２００９−５０５２８６号公報
【特許文献４】特表２０１０−５００６４８号公報
【特許文献５】特表２００８−５３９５２８号公報
【特許文献６】特表２０１０−５００６４９号公報
【非特許文献】
【００１８】
【非特許文献１】松尾, et al. Web上の情報からの人間関係ネットワークの抽出, 人工知能学会論文誌 2005
【非特許文献２】友部, et al. Semantic Webのための人の社会ネットワーク抽出と利用, 情報処理学会論文誌 2005
【非特許文献３】Christian Bird, et al. Mining Email Social Networks, MSR 2006
【非特許文献４】Abhinandan Das, et al. Google News Personalization: Scalable Online Collaborative Filtering, WWW 2007
【非特許文献５】神嶌. 推薦システムのアルゴリズム (1)-(3), 人工知能学会誌 2007-2008
【非特許文献６】Einat Amitay, et al. Social Search and Discovery Using a Unified Framework, HyperText 2009
【発明の概要】
【発明が解決しようとする課題】
【００１９】
上記特許文献で開示された技法、あるいは上記非特許文献で開示された技法は、既に出来上がったソーシャル・ネットワークにおいては十分に活用できる。
【００２０】
また、各ユーザが自分自身に関する情報に基づき、あるいは過去の行動履歴に基づきソーシャル・ネットワークを構築していく技法も開示する。
【００２１】
しかし、十分なソーシャル・ネットワークが存在せず、また、各ユーザが能動的でないような環境では、ソーシャル・ネットワークを構築していくことができない。
【００２２】
従って、この発明の目的は、不十分なソーシャル・ネットワークしか存在せず、且つユーザが積極的にソーシャル・ネットワークに関与するインセンティブがない場合でも、ソーシャル・ネットワークを拡張することが可能な技法を提供することにある。
【課題を解決するための手段】
【００２３】
この発明は、最初に、少なくとも組織の階層のような、最低限のソーシャル・ネットワークから出発して、実際にユーザやアイテムの間に存在する関係を反映したノードおよびエッジを追加してソーシャル・ネットワークを拡張することによって、上記課題を解決するシステムを提供する。
【００２４】
すなわち、本発明に従い、ソーシャル・ネットワークに新たなエッジを追加し、それによってノード間の距離が小さくなるなら、本発明のシステムは、目標とする状態に近づいていると判断する。
【００２５】
このため、本発明のシステムは、好適にはＷｅｂサーバに接続されたクライアント・システムであるユーザに、ＧＵＩとしてカードを提示し、それに対するユーザの入力を利用することにより、新しいノードおよびエッジを導入する。
【００２６】
その際、本発明のシステムは、下記のような優先度付け基準をもつアルゴリズムを利用する。
(1) 自分のノードから近い人に関するエッジ（カード）であるほど、優先度が高い。
(2) そのエッジを導入することによって縮まる距離の総和が大きいほど、優先度が高い。
(3) 作業コストの低いカードであるほど優先度が高い。
この基準を３つとも使ってもよいし、このうち１つだけ使ってもよい。
【発明の効果】
【００２７】
この発明によれば、システムによってユーザに、入力を促すカードを優先度付け基準に従い選択してＧＵＩとして提示し、その入力応答に応じて、エッジを導入していくことによって、効率的にソーシャル・ネットワークを拡張することができる。
【図面の簡単な説明】
【００２８】
【図１】本発明を実施するためのハードウェア構成の全体の概要図である。
【図２】クライアント・コンピュータのハードウェア構成のブロック図である。
【図３】Ｗｅｂサーバのハードウェア構成のブロック図である。
【図４】本発明の実施例に係る機能構成のブロック図である。
【図５】本発明の実施例に係る処理のフローチャートを示す図である。
【図６】ソーシャル・ネットワーク・グラフの例を示す図である。
【図７】本発明の処理に従い、ソーシャル・ネットワーク・グラフが拡張される様子を示す図である。
【図８】優先度計算アルゴリズムを示す図である。
【図９】Ｗｅｂブラウザにカードを示す例を示す図である。
【図１０】ユーザに提示されるカードの例を示す図である。
【図１１】ユーザに提示されるカードの例を示す図である。
【図１２】ユーザに提示されるカードの例を示す図である。
【図１３】ユーザに提示されるカードの例を示す図である。
【図１４】ユーザに提示されるカードの例を示す図である。
【発明を実施するための形態】
【００２９】
以下、図面に従って、本発明の実施例を説明する。これらの実施例は、本発明の好適な態様を説明するためのものであり、発明の範囲をここで示すものに限定する意図はないことを理解されたい。また、以下の図を通して、特に断わらない限り、同一符号は、同一の対象を指すものとする。
【００３０】
図１において、Ｗｅｂサーバ１０２には、インターネット１０４を介して、複数のクライアント・コンピュータ１０６ａ、１０６ｂ・・・１０６ｚが接続されている。図１のシステムにおいては、クライアント・コンピュータのユーザは、Ｗｅｂブラウザを通じて、インターネット１０４の回線を介して、Ｗｅｂサーバ１０２に、ログインする。具体的には、所定のＵＲＬをＷｅｂブラウザに打ち込んで、所定のページを表示する。ここでは、Ｗｅｂサーバ１０２が実現するサービスとして、ソーシャル・ネットワーク・システム（ＳＮＳ）を想定する。
【００３１】
ログインに当たっては、クライアント・コンピュータのユーザは、与えられたユーザＩＤと、それに関連付けられたパスワードを用いる。クライアント・コンピュータのユーザは、一旦ログインすると、ＳＮＳ内で、ブログを書いたり、アクセスを許可されている他人のブログを閲覧してコメントを書いたり、ニュースを見たり、気の合った仲間同士でグループを作成したり、チャットしたり、趣味のコミュニティを検索したり、などの活動を行う。
【００３２】
Ｗｅｂサーバ１０２にはまた、パケット通信網１０８を介して、スマート・フォン１１０ａ、・・・１１０ｋなどのモバイル端末が接続される。ユーザは、与えられたユーザＩＤと、それに関連付けられたパスワードがあれば、スマート・フォンに導入されているＷｅｂブラウザを通じて、同様にＷｅｂサーバ１０２のＳＮＳにアクセスできる。
【００３３】
次に、図２を参照して、図１で参照番号１０６ａ、１０６ｂ・・・１０６ｚのように示されているクライアント・コンピュータのハードウェア・ブロック図について、説明する。図２において、クライアント・コンピュータは、典型的にはパーソナル・コンピュータであり、メイン・メモリ２０６、ＣＰＵ２０４、ＩＤＥコントローラ２０８をもち、これらは、バス２０２に接続されている。バス２０２には更に、ディスプレイ・コントローラ２１４と、通信インターフェース２１８と、ＵＳＢインターフェース２２０と、オーディオ・インターフェース２２２と、キーボード・マウス・コントローラ２２８が接続されている。ＩＤＥコントローラ２０８には、ハードディスク・ドライブ（ＨＤＤ）２１０と、ＤＶＤドライブ２１２が接続されている。ＤＶＤドライブ２１２は、必要に応じて、ＣＤ−ＲＯＭやＤＶＤから、プログラムを導入するために使用する。ディスプレイ・コントローラ２１４には、好適には、ＬＣＤ画面をもつディスプレイ装置２１６が接続されている。ディスプレイ装置２１６には、Ｗｅｂブラウザを通じて、ＳＮＳの画面が表示される。
【００３４】
ＵＳＢインターフェース２２０には、必要に応じて、専用コントローラなどのデバイスを接続をすることができる。これらのデバイスは、ＳＮＳ内での操作性を向上するために使用することができる。
【００３５】
キーボード・マウス・コントローラ２２８には、キーボード２３０と、マウス２３２が接続されている。キーボード２３０は、典型的には、ＳＮＳ内で、チャットのメッセージを書いたり、検索したいコミュニティ内容を記述したりするために使用される。マウス２３２は、ＳＮＳ内で、リンクをクリックしてニュースを読んだり、メニューから動作を選択し実行したり、読みたいブログを選んだりするために使用される。
【００３６】
ＣＰＵ２０４は、例えば、３２ビット・アーキテクチャまたは６４ビット・アーキテクチャに基づく任意のものでよく、インテル社のＰｅｎｔｉｕｍ（インテル・コーポレーションの商標）４、Ｃｏｒｅ（商標）２  Ｄｕｏ、ＡＭＤ社のＡｔｈｌｏｎ（商標）などを使用することができる。
【００３７】
ハードディスク・ドライブ２１０には、少なくとも、オペレーティング・システムと、オペレーティング・システム上で動作するＷｅｂブラウザ（図示しない）が格納されており、システムの起動時に、オペレーティング・システムは、メインメモリ２０６にロードされる。オペレーティング・システムは、Windows XP(マイクロソフト・コーポレーションの商標)、Windows(マイクロソフト・コーポレーションの商標)7、Linux（Linus Torvaldsの商標）、Mac OS Xなどを使用することができる。
【００３８】
ハードディスク・ドライブ２１０にはさらに、クライアント側で本発明の機能を実施するためのプログラムが導入されている。このプログラムはＷｅｂブラウザのプラグインの形で、予め、Ｗｅｂサーバ１０２などからダウンロードすることにより導入される。このプラグインでは、JavaScript(R)が動作し、Ｗｅｂサーバ１０２側のREST APIを呼び出す。従って、この実施例では、Ｗｅｂブラウザは、JavaScript(R)をサポートするものとして、これには限定されないが、Internet Explorer、FireFox、Google Chromeなどを使用することができる。なお、JavaScript(R)が動作可能であることは必須ではなく、HTTPプロトコルに基づいた通信が可能であり、REST APIを呼び出すことができるなら、任意のプログラムでよい。特にスマート・フォンの場合、HTTPプロトコル通信を発生するネイティブ・アプリケーションによる実装も可能である。
【００３９】
通信インターフェース２１８は、オペレーティング・システムが提供するＴＣＰ／ＩＰ通信機能を利用して、イーサネット（商標）・プロトコルなどにより、Ｗｅｂサーバ１０２と通信する。
【００４０】
以上、クライアント・コンピュータ１０６ａ、１０６ｂ・・・１０６ｚの構成について説明したが、スマート・フォン１１０ａ、・・・、１１０ｋの構成については、この実施例の文脈ではクライアント・コンピュータ１０６ａ、１０６ｂ・・・１０６ｚとほぼ等価な構成であるので、説明を省略する。好適には、スマート・フォン１１０ａ、・・・、１１０ｋのＷｅｂブラウザにも、JavaScript(R)が動作し、Ｗｅｂサーバ１０２側のREST APIを呼び出すプラグインが導入されることに留意されたい。
【００４１】
図３は、ＳＮＳ側のハードウェア構成の概要ブロック図である。図３に示すように、クライアント・コンピュータと通信するためのインターネット１０４と、スマート・フォンと通信するためのパケット通信網１０８が、Ｗｅｂサーバ１０２の通信インターフェース３０２に接続される。通信インターフェース３０２はさらに、バス３０４に接続され、バス３０４には、ＣＰＵ３０６、主記憶（ＲＡＭ）３０８、及びハードディスク・ドライブ（ＨＤＤ）３１０が接続されている。
【００４２】
図示しないが、Ｗｅｂサーバ１０２にはさらに、キーボード、マウス、及びディスプレイが接続され、これらによって、Ｗｅｂサーバ１０２全体の管理やメンテナンス作業を行うようにしてもよい。
【００４３】
Ｗｅｂサーバ１０２のハードディスク・ドライブ３１０には、オペレーティング・システム、クライアント・コンピュータクライアント・コンピュータ１０６ａ、１０６ｂ・・・１０６ｚのログイン管理のための、ユーザＩＤとパスワードの対応テーブルが保存されている。ハードディスク・ドライブ３１０にはさらに、Ｗｅｂサーバ１０２をＷｅｂサーバとして機能させるためのApacheなどのソフトウェアが保存され、Ｗｅｂサーバ１０２の立ち上げ時に、主記憶３０８にロードされて、動作する。これによって、クライアント・コンピュータ１０６ａ、１０６ｂ・・・１０６ｚが、ＴＣＰ／ＩＰのプロトコルで、Ｗｅｂサーバ１０２にアクセスすることが可能となる。
【００４４】
また、図示しないが、Ｗｅｂサーバ１０２のハードディスク・ドライブ３１０には、パケット通信網１０８を介してスマート・フォンと通信するための通信モジュールも格納されている。
【００４５】
Ｗｅｂサーバ１０２のハードディスク・ドライブ３１０にはさらに、このＳＮＳの各ユーザのメッセージ、ブログ、掲示板などの情報と、ＳＮＳの情報が、好適には、ＨＴＭＬファイルなどのテキスト形式、あるいはグラフィック・イメージ、動画ファイル、音楽ファイルなどのマルチメディア形式で、保存されている。
【００４６】
ブログ、及び掲示板には、当該ユーザが書き込むことができ、他のユーザは、許された権限に応じて、ブログ、掲示板を読んだり、コメントを付けたりすることができる。
【００４７】
ハードディスク・ドライブ３１０にはさらに、図４の機能ブロック図に関連して後述するソーシャル・ネットワーク・グラフ（ＳＮＳグラフとも呼ぶ）４０２、ノード参照ルーチン４０４、ＳＮＳのメンバーであるユーザの、ＩＤ、趣味、嗜好などのプロファイル情報などを含むユーザ情報のファイル４０６、カード推薦ルーチン４０８、ユーザ・インターフェース・モジュール４１２、及び、エッジ追加・更新ルーチン４１４が格納されている。
【００４８】
尚、上記Ｗｅｂサーバ１０２として、インターナョナル・ビジネス・マシーンズ・コーポレーションから購入可能な、ＩＢＭ（インターナョナル・ビジネス・マシーンズ・コーポレーションの商標）System X、System i、System pなどの機種のサーバを使うことができる。その際、使用可能なオペレーティング・システムは、AIX(インターナョナル・ビジネス・マシーンズ・コーポレーションの商標)、UNIX(The Open Groupの商標)、Linux(Linus Torvaldsの商標)、Windows(商標)2003 Serverなどがある。特にこの実施例では、オペレーティング・システムとしてLinux（Linus Torvaldsの商標）を採用し、その上にJava(R) EEを導入し、サーバサイドJava(R)が導入され、本発明の処理プログラムであるノード参照ルーチン４０４、カード推薦ルーチン４０８、ユーザ・インターフェース・モジュール４１２、及び、エッジ追加・更新ルーチン４１４等は好適には、その上で動くJava(R)のプログラム、あるいはServletの形式で実装される。
【００４９】
次に、図４の機能ブロック図を参照して、本発明を実施するための処理要素について説明する。図４において、ソーシャル・ネットワーク・グラフ（ＳＮＳグラフ）４０２は、対象とするユーザとアイテムの関係をあらわすグラフであり、これを構築するために例えば、特開２０１１−１７０４７１号公報記載の技法を使用することができるが、ソーシャル・ネットワーク・グラフを作成すること自体はこの発明の要旨ではないので、詳しくは説明しない。
【００５０】
図６は、ソーシャル・ネットワーク・グラフの例を図式的に示す図である。図６において、P1、P2、P3は人であり、i1、i2は、タグ、著作物、ブログポストなどの人以外のアイテムである。P1、P2、P3、i1、i2を併せて、エンティティと呼ぶ。また、エンティティ間にはエッジタイプtが複数存在しえる。
【００５１】
この例では、t = {s,f}で、fはfamiliarity、すなわち、直接知っている関係をあらわす。組織では例えば、上司・部下の関係である。sはsimilarity、すなわち、タグをつけた、共著がある、ブログにコメントした、などの関係である。さらに、どのノード間にどのエッジタイプが許されるかは決まっており、２ノード間の同一タイプのエッジは高々１本であり、エッジの長さは関連の強さをあらわす。すなわち、小さいほど関連が強い。これらは、使用可能な関係の一例であり、本発明ではその他の任意の関係も使用することができる。
【００５２】
また、f(4)における4という数字は、関連度の逆数をあらわす。すなわち、この数字が大きいほど、距離が大きい。ノードN1,N2間の距離を最短パスの長さd(N1,N2)であわらす。例えば、図６では、d(i1,P2) = 6となる。
【００５３】
図４に戻って、ノード参照ルーチン４０４は、カード要求を出したクライアント（ユーザ）に対応する、ソーシャル・ネットワーク・グラフ４０２上のノードを参照する。なお、この実施例では、クライアント・コンピュータ、またはスマートフォンなどのユーザ端末は、導入されているプラグインの働きで、ユーザ端末上でのユーザの操作に応答してＷｅｂサーバ１０２にカード要求を送信するだけでなく、一定時間カード要求がないと自動的にカード要求をＷｅｂサーバ１０２に送る。なお、カード及びカード要求については、後述する。通常、クライアントは1回の要求で1枚のカードを要求するが、複数枚のカードを要求してもよい。
【００５４】
ユーザ情報４０６は、登録されている各ユーザのＩＤ、組織、趣味、その他の情報を保存する。ユーザがカードを使って、自分あるいは他のユーザにタグをつけた場合も、そのタグの情報はユーザ情報４０６として保存される。
【００５５】
カード推薦ルーチン４０８は、ノード参照ルーチン４０４からの情報及びユーザ情報４０６に基づき、カード・テンプレート４１０からカードを生成し、優先度に従って１つまたは複数のカードを提示する。以下、カード候補の作成方法の一例を示す。
【００５６】
＜カード候補の作成方法＞
すなわち、あるユーザに提示するカードの候補を、以下のようにして作成する。
そのユーザの対応する、ソーシャルネットワーク上の、人を表すノードをNとする。
アイテムノード(I)と言う場合、人ノード以外の全てを指す。すなわちこれは、タグノードを含む。N1がソーシャルネットワーク上Nに近い、とは、エッジの重み (=関係性の強さ) に対し、その逆数またはそれに準ずるものをエッジの長さとして、NからのN1へ至る最短パスにおけるエッジの長さの総和が、他と比較してより小さいこと、の意味とする。
【００５７】
以下に、カード・テンプレートの例を示す。
A1. Nに対するタグをフリーテキストで入力させるカード(コスト高、距離0)
A2. 他のユーザがNに付けたタグを修正、削除するカード(コスト中、距離0)
A3. ソーシャルネットワーク上Nに近いユーザに付けられたタグを提示し、Nのタグとして採用、または修正して採用するカード(コスト中)
A4. ソーシャルネットワーク上Nに近いユーザに結び付けられている、アイテムを表すノードIに対してのNの関心や評価をテキストで入力するカード(コスト高)
B1. ある固定のタグがあてはまる人を入力するか、または当てはまる人の候補から選択するカード。このとき、優先度付けのアルゴリズムにより、Nから近いノードの表現するタグが優先して選ばれる(コスト低)
Z. A1-A3, B1において、「N」を「ソーシャルネットワーク上Nに近いユーザN1」に置き換えたカード。つまり第三者に関する情報を入力・編集させるカード。好ましくは、付いているタグの少ないユーザN1に関するカードを優先して作成する(コスト中)。
B2. 複数のアイテムノードI1, I2, …, Inに対して、それらの関連の強さを入力させるカード (例: タグのクラスタリング)。特に、ある人ノードN1に接続しているタグノードの集まりに対する場合と、互いにソーシャルネットワーク上、近いタグノードの集まりに対する場合を含む(コスト中)。
B3. アイテムノードI1に対してタグを付加するカード(コスト中)
C1. ソーシャルネットワーク上Nに近いユーザN1を知っているかどうか入力するカード(コスト中)
C2. ソーシャルネットワーク上Nに近いユーザN1をどの程度知っているか入力するカード(コスト中)
なお、上記A1-C2のカードの複数を1つにまとめたカードを作成してもよい。
ここで「距離0」というのは、自分自身のノードのことを示す。
【００５８】
また、カード推薦アルゴリズムの詳細は、図５のフローチャートを参照して後述する。カード推薦アルゴリズムのために、コスト高、中、低はそれぞれ、具体的な数字であらわされる。コストの種類は、より細かく分けてもよい。
【００５９】
ユーザ・インターフェース・モジュール４１２は、ネットワークを通じてユーザの端末に、カード推薦ルーチン４０８によって推薦された１つまたは複数のカードに関する情報を送信し、また、カード上でのユーザの操作に従って入力されたデータを受け取る機能をもつ。
【００６０】
エッジ追加・更新ルーチン４１４は、ユーザ・インターフェース・モジュール４１２から受け取ったユーザからの応答に従い、ソーシャル・ネットワーク・グラフ４０２の対応するエッジを追加、または更新する。エッジ追加・更新ルーチン４１４の処理の詳細は、図５のフローチャートを参照して後述する。
【００６１】
次に図５のフローチャートを参照して、この実施例の動作について説明する。本発明はまず、全てのユーザをノードとして含み、図７(a)に示すような、少なくとも一部のユーザの間にエッジを張った初期ソーシャル・ネットワーク・グラフから処理を出発する。
【００６２】
このような初期ソーシャル・ネットワーク・グラフは、企業や組織なら、組織図に従い構成する。そのような手がかりがない場合は、もし個人情報が得られるのであるなら、組織名、職種名などから手掛かりを得て、初期ソーシャル・ネットワーク・グラフを構築する。それが困難なら、ユーザに、親しいユーザを直接指定してもらうカード（質問）を出す。それも難しいなら、ユーザをランダムに結びつけるようなカード（質問）を出す。
【００６３】
このような初期ソーシャル・ネットワーク・グラフが、ソーシャル・ネットワーク・グラフ４０２として用意された段階で、ステップ５０２では、ユーザ・インターフェース・モジュール４１２がユーザから、そのユーザのユーザＩＤとカード要求を受け取る。このようなカード要求は、ユーザ端末でのユーザ操作、または、ユーザ端末でのプラグインの動作による自動的な定期的なトリガによりなされる。
【００６４】
これに応答して、ステップ５０４で、ノード参照ルーチン４０４が、ユーザＩＤを基に、ソーシャル・ネットワーク・グラフ（ＳＮＳグラフ）４０２の位置（ノード）を特定する。
【００６５】
ステップ５０６では、グラフ上の位置をもとに、上記「カード候補の作成方法」に基づいて、カードの候補を作成する。好適には「カード候補の作成方法」にリストされている全てのカードを生成する。以下では、N2に出すカードを選ぶものとする。このとき、N1の範囲はユーザから定数ホップ内に限る、などしてカード候補の枚数を限定してもよい。また、ホップ数は、グラフのエッジを１つ辿る度に１を加えることでえられる数である。
【００６６】
図８(a)は、自分から近い人（ノード）に関するエッジ（カード）であるほど優先度が高い、というものである。
【００６７】
図８(b)は、そのエッジを導入することによって縮まる距離の総和が大きいほど優先度が高い、というものである。
【００６８】
図８(c)は、作業コストの低いカードであるほど優先度が高い、というものである。
【００６９】
ここで使う距離は、２つのノードを結ぶパスのうち最小のものである。この距離は普通は辿ったエッジの距離の和であるが、次のように距離に指数関数的な重みをつけてもよい。すなわち、ノードAからみて、パス上のエッジの距離が順にd1,d2,d3,...となっているとき、適当な正の定数aを使って、パスの距離をd1 + d2*exp(a) + d3*exp(2a) + ...とする。
【００７０】
ステップ５０６では、カード推薦ルーチン４０８は、各カードに対して優先度を付与する。この時の優先度は、図８(a)、(b)及び(c)のどれかを使う。そして、ステップ５０８では、カード推薦ルーチン４０８は、図８にある３つの基準のうち、どれか１つの基準だけを使って優先度を計算してもよいし、３つの基準のうちの２つ、または３つ全ての基準を使って優先度を計算してもよい。例えば3つの基準を利用した優先度付けとして、(エッジの導入によって縮まる距離の総和)/[(N2とN3の距離+1) * (作業コスト)] で優先度を計算することができる。2つの基準のみ用いる場合は、前述の式のいずれかの項を常に1であるとして優先度を計算することができる。また、複数の基準を適用する場合のその他の計算方法としては、例えば、１つの基準で、生成された各カードに優先度１をつけ、別の基準で、生成された各カードに優先度２をつけて、優先度１＋優先度２として加算された優先度で判断するなどの優先度計算方法を用いる。３つの基準全てを用いる場合も同様である。
【００７１】
ステップ５１０では、カード推薦ルーチン４０８は、優先度の一番高いカードをクライアントに返す、または優先度の高い方から順に、クライアントから要求された枚数のカードを返す、または優先度の高いカードを複数選んで、その中から優先度で確率的に重み付けして1枚またはクライアントから要求された枚数だけ選んだカードを、ユーザ・インターフェース・モジュール４１２を介してユーザに返す。
【００７２】
ステップ５１２では、ユーザ端末が画面にカードを表示し、カードに対するユーザからの反応を受け付ける。そのような一例として、図９は、ユーザ端末のＷｅｂブラウザの画面９０２で、カード推薦ルーチン４０８から、受け取ったカード９０４を示す例を示す図である。クライアント・コンピュータまたはスマート・フォンであるユーザ端末には、好適には、JavaScript(R)を呼び出すＷｅｂブラウザのプラグインが導入され、プラグインの機能により、Ｗｅｂブラウザの画面９０２の一角にカード９０４が表示される。
【００７３】
カード９０４が表示された後、一定時間、カード９０４にユーザが入力しないとか、ボタン９０４a、９０４ｂをクリックしないなど、ユーザの反応がないなら、ステップ５１４での判断が否定的になって、処理は終る。
【００７４】
ユーザがカード９０４に対して操作したならステップ５１６に進み、それがユーザによる「Next」ボタン９０４ｂのクリックであったり、例えば「あなたは彼を知っていますか」というカードに対して「知らない」というボタンのクリックであったりするなら、ステップ５１６での判断が否定的になって、処理は終る。
【００７５】
操作がユーザによる「Ok」ボタン９０４ａのクリックであるなら、ステップ５１６での判断が肯定的になり、その応答データが、ユーザ・インターフェース・モジュール４１２を介して、エッジ追加・変更ルーチン４１４に伝えられる。応答データは、後述する、ユーザにより入力された１つまたは複数のタグなどの情報を含む。
【００７６】
エッジ追加・変更ルーチン４１４は、ステップ５１８で、ユーザ・インターフェース・モジュール４１２を介して受け取ったデータと目下のソーシャル・ネットワーク・グラフ上の位置に基づき、必要に応じて新しい非人物ノードをソーシャル・ネットワーク・グラフ４０２上に追加するとともに、カード９０４の質問の対象となった２ノード間に、質問の答えに対応する距離をもったエッジを追加する。もしエッジがそれらのノードの間にすでに存在するなら、その距離を答えに対応して更新する。
【００７７】
このような処理を繰り返すと、図７(a)で示した初期ソーシャル・ネットワーク・グラフが、図７(b)で示す、より多くの非人物ノードを持ち、豊富でかつ、より距離の短いエッジをもつ拡張されたソーシャル・ネットワーク・グラフに発展する。
【００７８】
次に、提示するカードのいくつかの例を示す。まず、１つのパターンとして、自分にタグをつける、というものがある。このとき：
・ユーザについているタグの集合を取得
1.職種に関するタグを取得
2. スキルエリアに関するタグを取得
3. 1.および2.以外で業務に関するタグを取得
4. 趣味やプライベートに関するタグを取得
5. ユーザが1.〜3.を持っていない場合、それらを持っているfamiliarity距離で最も近い人から取得 (または何らかの方法で推測)
以上の「職種」「スキルエリア」「業務関連」について、
上記の方法でタグが取得できればそれをユーザに提示し、誤りがあれば修正させるカードを構築。取得できなければフリーテキストで入力させるカードを構築する。
【００７９】
図１０は、そのようなカードの例を示す。図１０(a)、図１０(b)、図１０(c)はそれぞれ別のカードであって、「Next >」をクリックすることで、何か別のカードを表示することになる。
【００８０】
図１１は、他人が入力した項目や自動収集された項目を自分に提示し、誤っていれば修正を促すカードを示す。このように自分で入力したタグは、ユーザ情報４０６として、Ｗｅｂサーバ１０２に保存される。
【００８１】
このように各人がタグを予め入力し保存しておくと、図１２のカードに示すように、Brian Johnsonが、Hiroshi Nakamuraに対して、タグの一致度を問い合わせることが可能となる。タグの一致度は、図６に示した、二人のユーザの間のsimilarityの計算に使用することができる。
【００８２】
別のパターンとして、他人 (知り合い) にタグをつけるということがある。
この場合、ユーザからfamiliarity距離で近い人で、あまりタグがついていない人 (Qとする) を選択する。好ましくは、Qは多数のノードとグラフ上結びついている「影響力のある人」を選択する。カードの例は次のとおりである。
- Qのタグをフリーテキストで入力させるカード
- Qの周りの人から集めてきたタグ、もしくは自然言語処理を用いて抽出したキーワードのうち、Qに最も適するものを選択させるカード
- ユーザの積極的な参加を促すため、わざと適当なタグを出してもいい。
【００８３】
図１３は、このようなカードの例を示す。
【００８４】
さらに別のパターンとして、既存のエッジを強化するということがある。
・ユーザからfamiliarity距離が近く、かつユーザが確実に知っている人(たち)を取得
- n人を表示して、ユーザと最も関わりの強い人を選択させるカード
- 1人を表示して、彼のことをどの程度知っているか尋ねるカード
・ユーザからfamiliarity距離が近く、かつユーザが知っているか不明なユーザを取得
彼のことを知っているか尋ねるカード
【００８５】
図１４は、このようなカードの例を示す。
【００８６】
さらに別のパターンとして、コンテンツの推薦がある。
・人以外のentity (blog, paper, general news) に関するカード
・ユーザによらないカード推薦
- ランダムに選んだコンテンツを評価するカード
- 作成時期が新しいコンテンツを評価するカード
- hotな話題のコンテンツを評価するカード
・ユーザに依存するカード推薦
- ユーザとsimilarityの高いコンテンツを評価するカード
- ユーザとのsimilarityの高いユーザが高く評価したコンテンツを評価するカード
- その他、協調フィルタリングなどの手法による、ユーザにおける予測評価値の高いコンテンツを評価するカード
- ユーザのwebページ閲覧履歴が取得できる場合、履歴に含まれるページに関連するコンテンツを評価するカード
「コンテンツを評価するカード」の他、上記のコンテンツの一部をただ見せるだけのカードも提示してよい
「Read more」をクリックするか否かtrackする。
【００８７】
こちらのカードは図示は省略する。
【００８８】
以上、Java(R)ベースのクライアント・サーバ・システムとして構築された例で説明してきたが、本発明は特定のプラットフォームに限定されず、任意のハードウェア、オペレーティング・システム、プログラミング処理系、あるいはネットワーク環境の下で実現可能である。
【００８９】
また、図示されているカードは一例であって、本発明は、ユーザの注意を喚起し、あるいはユーザに入力を促す任意のカードが発明の想定範囲であることを理解されたい。
【符号の説明】
【００９０】
１０２・・・Ｗｅｂサーバ
１０６・・・クライアント・コンピュータ
１１０・・・スマート・フォン
４０２・・・ソーシャル・ネットワーク・グラフ
４０４・・・ノード参照ルーチン
４０６・・・ユーザ情報
４０８・・・カード推薦ルーチン
４１０・・・カード・テンプレート
４１４・・・エッジ追加・更新ルーチン
【図１】
2014016916.tif 000003
【図２】
2014016916.tif 000004
【図３】
2014016916.tif 000005
【図４】
2014016916.tif 000006
【図５】
2014016916.tif 000007
【図６】
2014016916.tif 000008
【図７】
2014016916.tif 000009
【図８】
2014016916.tif 000010
【図９】
2014016916.tif 000011
【図１０】
2014016916.tif 000012
【図１１】
2014016916.tif 000013
【図１２】
2014016916.tif 000014
【図１３】
2014016916.tif 000015
【図１４】
2014016916.tif 000016