(57)【特許請求の範囲】
【請求項１】
ＩＰアドレスと端末ＩＤとタイムスタンプとを対応づけた複数のログデータを取得する取得部と、
前記複数のログデータに基づいて前記ＩＰアドレスの特徴を判定する特徴判定部と、
前記特徴に基づいて、前記ＩＰアドレスの使用用途を判定する用途判定部と、を備え、
前記使用用途は、家庭用ルータでの使用、企業用ルータでの使用、又は、携帯キャリアでの使用であり、
前記ＩＰアドレスの特徴は、所定の期間と前の所定の期間との両期間に使用された端末の割合を含む、
情報処理装置。
【請求項２】
前記ＩＰアドレスの特徴は、時間帯別及び曜日別に使用される頻度、前記ＩＰアドレスを使用する端末の数、又は、端末あたりのログデータの件数、の少なくとも１つである、
前記請求項１に記載の情報処理装置。
【請求項３】
ＩＰアドレスと端末ＩＤとタイムスタンプとを対応づけた複数のログデータを取得し、
前記複数のログデータに基づいて前記ＩＰアドレスの特徴を判定し、
前記特徴に基づいて、前記ＩＰアドレスの使用用途を判定し、
前記使用用途は、家庭用ルータでの使用、企業用ルータでの使用、又は、携帯キャリアでの使用であり、
前記ＩＰアドレスの特徴は、所定の期間と前の所定の期間との両期間に使用された端末の割合を含む、
情報処理方法。
【請求項４】
前記ＩＰアドレスの特徴は、時間帯別及び曜日別に使用される頻度、前記ＩＰアドレスを使用する端末の数、又は、端末あたりのログデータの件数、の少なくとも１つである、
前記請求項３に記載の情報処理方法。
【請求項５】
プロセッサに、ＩＰアドレスと端末ＩＤとタイムスタンプとを対応づけた複数のログデータを取得させるコードと、
前記プロセッサに、前記複数のログデータに基づいて前記ＩＰアドレスの特徴を判定させるコードと、
前記プロセッサに、前記特徴に基づいて、前記ＩＰアドレスの使用用途を判定させるコードと、
を備え、
前記使用用途は、家庭用ルータでの使用、企業用ルータでの使用、又は、携帯キャリアでの使用であり、
前記ＩＰアドレスの特徴は、所定の期間と前の所定の期間との両期間に使用された端末の割合を含む、
プログラム。
【請求項６】
前記ＩＰアドレスの特徴は、時間帯別及び曜日別に使用される頻度、前記ＩＰアドレスを使用する端末の数、又は、端末あたりのログデータの件数、の少なくとも１つである、
前記請求項５に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、同一ユーザによりネットワーク経由で使用される複数のデバイス（以下、クロスデバイスと称する）をマッチングする情報処理装置、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
例えば、広告主は、クロスデバイスのマッチングにより、クロスデバイスへの情報をコントロールすることを考えている。サーバなどの情報処理装置は、ユーザが各端末で同一のＩＤなどを用いてサイトなどにログインしたログデータなどに基づいて、クロスデバイスマッチングを実現する。
【０００３】
しかしながら、このようなＩＤなどによる確定的なクロスデバイスマッチングによると、ログインしないユーザ又はログインＩＤなどを保持しないユーザのデバイスをマッチングすることが難しいという課題がある。さらに、このような確定的なクロスデバイスマッチングによると、あくまでもＩＤなどでログインしている会員などが対象となるため、クロスデバイスに関するボリュームが出せないという課題もある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−１３３７８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記の課題を解決するために、同一ユーザにより使用されている可能性の高い複数の端末をマッチングする情報処理装置、情報処理方法及びプログラムを提供する。
【課題を解決するための手段】
【０００６】
実施形態によれば、情報処理装置は、取得部と、マッチング部と、を備える。取得部は、ＩＰアドレスと端末ＩＤとタイムスタンプとを対応づけた複数のログデータを取得する。マッチング部は、前記複数のログデータに基づいて同一のＩＰアドレスを用いる複数の端末を含む候補セットを特定し、前記ＩＰアドレスに関する前記ログデータに基づいて前記候補セットが含む複数の端末の同一ユーザが使用している可能性を推定し、推定結果に基づき複数の端末をマッチングする。
【発明の効果】
【０００７】
実施形態によれば、マッチングサーバは、ＩＰアドレスに関するログデータから、同時期に同一のＩＰアドレスを用いて広告などを閲覧した複数の端末を特定することができる。マッチングサーバは、特定された複数の端末を同一ユーザの使用と推定し、特定された複数の端末をマッチングすることができる。
【図面の簡単な説明】
【０００８】
【図１】図１は、実施形態に係るサービス提供システムの構成例を示すブロック図である。
【図２】図２は、実施形態に係るマッチングサーバの構成例を示すブロック図である。
【図３】図３は、実施形態に係るマッチング推定の動作例を説明するための図である。
【図４】図４は、実施形態に係るマッチングサーバの動作例を示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下、実施形態について、図面を参照して説明する。  
図１は、サービス提供システム１０の構成例を示す図である。  
サービス提供システム１０は、ユーザ端末４又は５に所定のサービスを提供する。たとえば、サービス提供システム１０は、ユーザ端末４又は５上で実行されるブラウザ、ゲームアプリ、ニュースアプリ又はＳＮＳアプリなどのアプリケーション上で提供されるサービスに関連するデータを配信する。
【００１０】
図１が示すように、サービス提供システム１０は、マッチングサーバ１、サーバ２、ルータ３、及び、ユーザ端末４並びに５などを備える。サービス提供システム１０は、インターネットなどの通信網６を通じて、マッチングサーバ１、サーバ２、ルータ３、及び、ユーザ端末４並びに５を互いに接続する。
【００１１】
マッチングサーバ１は、同一のユーザがネットワークを介して使用するユーザ端末４又は５をマッチングする。即ち、マッチングサーバ１は、いずれの端末が同一のユーザの使用に属するかを判定する。マッチングサーバ１の構成又は動作例については、後述する。
【００１２】
サーバ２は、通信網６を通じて、ユーザ端末４又は５へ所定のサービスを提供する。また、サーバ２は、ユーザ端末４又は５がサーバ２にアクセスしたことを示すログデータを生成する。ログデータについては、後述する。たとえば、サーバ２は、ユーザ端末４又は５からのアクセスに基づいてログデータを生成する。サーバ２は、生成されたログデータを格納する。
【００１３】
ここでは、サーバ２は、通信網６を通じて、ユーザ端末４又は５へ広告を配信するものとする。サーバ２は、広告主が提供する広告を予め格納する。サーバ２は、ユーザ端末４又は５から広告の配信を要求する広告リクエストを受け付ける。サーバ２は、広告リクエストに対するレスポンスとして広告をユーザ端末４又は５へ送信する。また、サーバ２は、ユーザ端末４又は５へ、広告レスポンスとして広告を特定するキャンペーンＩＤなどを送信してもよい。
【００１４】
サーバ２が配信する広告は、たとえば、ｈｔｍｌ、テキスト、画像、又は、それらの組み合わせによって構成される。サーバ２が配信する広告のフォーマット及び内容は、特定の構成に限定されるものではない。サーバ２は、複数の広告を格納してもよい。また、サーバ２は、適宜広告を更新してもよい。
【００１５】
なお、サーバ２は、Ｅコマースを提供するものであってもよいし、Ｗｅｂサイトを提供するＷｅｂサーバであってもよい。また、サーバ２は、ゲームなどのスマートフォンアプリからのリクエストに応じて所定のデータなどを送信するものであってもよい。サーバ２が提供するサービスは、特定の構成に限定されるものではない。
【００１６】
ルータ３は、ローカルネットワークを形成する。ルータ３は、ローカルネットワーク内の端末（たとえば、ユーザ端末４又は５）を通信網６と接続させる。即ち、ルータ３は、ユーザ端末４又は５と通信網６とのデータの送受信を中継する。
【００１７】
ルータ３は、ＩＰアドレスを割り当てられる。ルータ３は、割り当てられたＩＰアドレスからのデータとして、ルータ３が形成するローカルネットワーク内の端末（たとえば、ユーザ端末４又は５）からのデータを通信網６へ送信する。即ち、通信網６において、ルータ３が形成するローカルネットワーク内の端末（たとえば、ユーザ端末４又は５）からのアクセスは、ルータ３に割り当てられたＩＰアドレスからのアクセスとして扱われる。つまり、ルータ３が形成するローカルネットワーク内の端末（たとえば、ユーザ端末４又は５）からのアクセスは、同一のＩＰアドレスからのアクセスとして扱われる。
【００１８】
ユーザ端末４又は５は、ユーザが所持する端末である。ユーザ端末４又は５は、ユーザの操作（入力）に基づいてブラウザなどのアプリケーションを実行する。ユーザ端末４又は５は、アプリケーションの動作に従ってサーバ２が配信する広告を表示する。
【００１９】
ユーザ端末４又は５は、それぞれ端末ＩＤを格納する記憶領域４ａ又は４ｂを備える。記憶領域４ａ又は４ｂは、たとえば、ユーザ端末４又は５が格納する不揮発性メモリなどに形成される。
【００２０】
端末ＩＤは、ユーザ端末４又は５を識別するＩＤである。端末ＩＤは、ユーザ端末４又は５の製造時に格納されたものであってもよい。また、端末ＩＤは、適宜生成されたＩＤであってもよい。
【００２１】
たとえば、端末ＩＤは、ＩＤＦＡ（Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ  Ｆｏｒ  Ａｄｖｅｒｔｉｓｅｒｓ）、又は、Ａｄｖｅｒｔｉｓｉｎｇ  ＩＤなどであってもよい。また、端末ＩＤは、Ｃｏｏｋｉｅなどに設定されたＩＤであってもよい。また、端末ＩＤは、サーバ２が端末毎に発行するＩＤ（たとえば、広告ＩＤなど）であってもよい。また、端末ＩＤは、ｗｅｂサイト内のスクリプトによって生成されるＩＤであってもよい。
【００２２】
ユーザ端末４又は５は、たとえば、ディスクトップＰＣ、ノートＰＣ、タブレットＰＣ、スマートフォン、又は、ウェアラブル端末などであってもよい。ユーザ端末４又は５の構成は、特定の構成に限定されるものではない。
【００２３】
通信網６は、マッチングサーバ１、サーバ２、及び、ルータ３を互いに通信可能に接続する。通信網６は、たとえば、インターネットである。マッチングサーバ１、サーバ２、及び、ルータ３は、有線又は無線で通信網６にアクセスする。
【００２４】
次に、マッチングサーバ１について説明する。  
図２は、マッチングサーバ１の構成例を示すブロック図である。
【００２５】
図２が示す構成例において、マッチングサーバ１（情報処理装置）は、基本的な構成として、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、ＮＶＭ１４、通信部１５、操作部１６、及び、表示部１７などを備える。これらの各部は、データバスを介して互いに接続されている。なお、マッチングサーバ１は、図２が示すような構成の他に必要に応じた構成を具備したり、特定の構成を除外したりしてもよい。
【００２６】
ＣＰＵ１１は、マッチングサーバ１全体の動作を制御する機能を有する。ＣＰＵ１１は、内部キャッシュおよび各種のインターフェースなどを備えても良い。ＣＰＵ１１は、内部メモリ、ＲＯＭ１２あるいはＮＶＭ１４に予め記憶したプログラム（コード）を実行することにより種々の処理を実現する。ＣＰＵ１１は、たとえば、プロセッサである。
【００２７】
なお、ＣＰＵ１１がプログラムを実行することにより実現する各種の機能のうちの一部は、ハードウエア回路により実現されるものであっても良い。この場合、ＣＰＵ１１は、ハードウエア回路により実行される機能を制御する。
【００２８】
ＲＯＭ１２は、予め制御用のプログラム及び制御データなどが記憶された不揮発性のメモリである。ＲＯＭ１２に記憶される制御プログラム及び制御データは、予めマッチングサーバ１の仕様に応じて組み込まれる。ＲＯＭ１２は、たとえば、マッチングサーバ１の回路基板を制御するプログラム（例えば、ＢＩＯＳ）などを格納している。
【００２９】
ＲＡＭ１３は、揮発性のメモリである。ＲＡＭ１３は、ＣＰＵ１１の処理中のデータなどを一時的に格納する。ＲＡＭ１３は、ＣＰＵ１１からの命令に基づき種々のアプリケーションプログラムを格納している。また、ＲＡＭ１３は、アプリケーションプログラムの実行に必要なデータ及びアプリケーションプログラムの実行結果などを格納してもよい。
【００３０】
ＮＶＭ１４は、データの書き込み及び書き換えが可能な不揮発性のメモリである。ＮＶＭ１４は、例えば、ハードディスク、ＳＳＤ、ＥＥＰＲＯＭ（登録商標）又はフラッシュメモリなどにより構成される。ＮＶＭ１４は、マッチングサーバ１の運用用途に応じて制御プログラム、アプリケーション、及び種々のデータを格納する。
【００３１】
ＮＶＭ１４は、ログデータを記憶する記憶領域１４ａを備える。ログデータについては、後述する。
【００３２】
通信部１５は、通信網６を通じてサーバ２又はルータ３などとデータを送受信するためのインターフェースである。通信部１５は、たとえば、ＬＡＮ接続をサポートするインターフェースである。
【００３３】
操作部１６は、マッチングサーバ１の操作者によって、種々の操作指示が入力される。操作部１６は、操作者に入力された操作指示のデータをＣＰＵ１１へ送信する。操作部１６は、たとえば、キーボード、テンキー、及び、タッチパネルなどである。
【００３４】
表示部１７は、ＣＰＵ１１の制御により種々の情報を表示する表示装置である。表示部１７は、たとえば、液晶モニタなどである。なお、操作部１６がタッチパネルなどで構成される場合、表示部１７は、操作部１６と一体的に形成されてもよい。
【００３５】
なお、マッチングサーバ１とサーバ２とは、一体としてひとつのサーバであってもよい。
【００３６】
次に、ログデータについて説明する。  
ログデータは、ユーザ端末４又は５が通信網６にアクセスした（たとえば、広告などを閲覧した）ログである。ログデータは、ＩＰアドレス、端末ＩＤ及びタイムスタンプを対応付けて格納する。
【００３７】
ＩＰアドレスは、ユーザ端末４又は５に割り振られたＩＰアドレスである。たとえば、ＩＰアドレスは、ユーザ端末４又は５が所属するローカルネットワークを形成するルータ３に割り振られたＩＰアドレスである。
【００３８】
端末ＩＤは、通信網６にアクセスした端末を示す。  
タイムスタンプは、ユーザ端末４又は５が通信網６にアクセスした日時を示す。
【００３９】
ここでは、ログデータは、広告配信に関するものである。即ち、ログデータは、ユーザ端末４又は５へ広告を配信した際に生成されるものである。
【００４０】
なお、ログデータは、広告配信、Ｗｅｂ閲覧、Ｅコマース又はスマートフォンアプリに関するアクセスから生成されてもよい。ログデータは、上記の構成を備えていれば、いずれのサービスに関するものであってもよい。
【００４１】
なお、ログデータは、ユーザ端末４又は５で動作するＯＳ又はＯＳのバージョンなどを示すＯＳ情報を備えてもよい。
【００４２】
たとえば、マッチングサーバ１は、サーバ２からログデータを取得し、記憶領域１４ａに格納する。また、マッチングサーバ１は、操作者の操作に従って他のインターフェース（たとえば、ＵＳＢをサポートするインターフェース）などからログデータを取得してもよい。
【００４３】
次に、ＣＰＵ１１が実現する機能について説明する。  
ＣＰＵ１１は、複数個のログデータを取得する機能を有する（取得部）。たとえば、ＣＰＵ１１は、記憶領域１４ａからログデータを取得する。また、ＣＰＵ１１は、外部装置からログデータを取得してもよい。
【００４４】
ＣＰＵ１１は、取得された複数個のログデータが備えるＩＰアドレスをクラスタに分類する機能を有する（分類部）。たとえば、ＣＰＵ１１は、ＩＰアドレスの特徴に基づいてＩＰアドレスをクラスタに分類する。たとえば、ＣＰＵ１１は、ＩＰアドレスを、家庭用ルータで使用されるＩＰアドレス、企業用ルータで使用されるＩＰアドレス、又は、携帯キャリアで使用されるＩＰアドレスのいずれの特徴を有するかに基づいてクラスタに分類する。
【００４５】
たとえば、ＣＰＵ１１は、ログデータに基づいてＩＰアドレスの特徴を判定する（特徴判定部）。たとえば、ＣＰＵ１１は、ＩＰアドレスに対応するタイムスタンプに基づいてＩＰアドレスの特徴を判定する。たとえば、ＣＰＵ１１は、時間帯別及び曜日別に使用される頻度（使用頻度）の特徴を判定する。たとえば、ＣＰＵ１１は、時間帯別及び曜日別の使用頻度を示す波形を生成して、当該波形に基づいて使用頻度の特徴を判定する。
【００４６】
ＣＰＵ１１は、たとえば、以下のように使用頻度の特徴を判定する。  
ＣＰＵ１１は、平日及び休日とも使用頻度が低く平日と休日とで使用頻度に大きな差はないが休日の日中の方がやや使用頻度が高い場合には、ＩＰアドレスの使用頻度が家庭用ルータに使用されるＩＰアドレスの特徴を備えると判定する（モデルＡ）。
【００４７】
また、ＣＰＵ１１は、平日及び休日ともに使用頻度が高い、休日は平日よりも使用頻度が高い、かつ、平日の１２時前後に使用頻度が高い場合には、ＩＰアドレスの使用頻度が携帯キャリアで使用されるＩＰアドレスの特徴を備えると判定する（モデルＢ）。
【００４８】
また、ＣＰＵ１１は、平日の夜に使用頻度が高く休日の方が平日よりも使用頻度が高い場合には、ＩＰアドレスの使用頻度が家庭用ルータに使用されるＩＰアドレスの特徴を備えると判定する（モデルＣ）。
【００４９】
また、ＣＰＵ１１は、平日の日中に使用頻度が極めて高く休日の使用頻度が低い場合には、ＩＰアドレスの使用頻度が企業用ルータに使用されるＩＰアドレスの特徴を備えると判定する（モデルＤ）。
【００５０】
ＣＰＵ１１は、モデルＡ乃至Ｄに対応するモデル波形とＩＰアドレスの使用頻度を示す波形とを比較して、各モデル波形との統計的距離を算出する。ＣＰＵ１１は、統計的距離に基づいて、使用頻度の特徴を判定する。
【００５１】
なお、ＣＰＵ１１は、モデルＡ乃至Ｄ以外のモデルを用いて使用頻度の特徴を判定してもよい。ＣＰＵ１１が使用頻度の特徴を判定するモデルは、特定のモデルに限定されるものではない。
【００５２】
また、ＣＰＵ１１は、ＩＰアドレスの特徴としてＩＰアドレスを使用する端末の数（密集度）の特徴を判定する。  
たとえば、ＣＰＵ１１は、ＩＰアドレスを使用する端末が５０を超えた場合には、ＩＰアドレスの密集度がキャリア回線に使用されるＩＰアドレスの特徴を備えると判定する。
【００５３】
また、ＣＰＵ１１は、ＩＰアドレスを使用する端末が２０を超え５０未満である場合には、ＩＰアドレスの密集度が企業用ルータに使用されるＩＰアドレスの特徴を備えると判定する。
【００５４】
また、ＣＰＵ１１は、ＩＰアドレスを使用する端末が１０未満である場合には、ＩＰアドレスの密集度が家庭用ルータに使用されるＩＰアドレスの特徴を備えると判定する。
【００５５】
また、ＣＰＵ１１は、ＩＰアドレスの特徴として同一の端末にどの程度継続して使用されるかに基づいてＩＰアドレスの特徴を判定する。即ち、ＣＰＵ１１は、直近の所定の期間（たとえば、直近の１０日間）とその前の所定の期間（たとえば、２０日前から１１日前までの１０日間）との両期間に使用した端末の割合（継続使用率）の特徴を判定する。
【００５６】
たとえば、ＣＰＵ１１は、両期間に使用した端末の割合が５％以下である場合、ＩＰアドレスの継続利用率がキャリア回線に使用されるＩＰアドレスの特徴を備えると判定する。
【００５７】
また、ＣＰＵ１１は、両期間に使用した端末の割合が３０％以上５０％以下である場合、ＩＰアドレスの継続利用率が会社用ルータで使用されるＩＰアドレスの特徴を備えると判定する。
【００５８】
また、ＣＰＵ１１は、両期間に使用した端末の割合が７０％以上である場合、ＩＰアドレスの継続利用率が家庭用ルータで使用されるＩＰアドレスの特徴を備えると判定する。
【００５９】
また、ＣＰＵ１１は、ＩＰアドレスの特徴として端末あたりのログデータの件数（活動量）の特徴を判定する。
【００６０】
たとえば、ＣＰＵ１１は、端末当たりのログデータの件数が４０件以下である場合（即ち、１ユーザあたりの使用が少ない場合）には、ＩＰアドレスの活動量がキャリア回線で使用されるＩＰアドレスの特徴を備えると判定する。
【００６１】
ＣＰＵ１１は、端末当たりのログデータの件数が４１件以上７０件以下である場合には、ＩＰアドレスの活動量が会社用ルータで使用されるＩＰアドレスの特徴を備えると判定する。
【００６２】
ＣＰＵ１１は、端末当たりのログデータの件数が１００件以上である場合（即ち、１ユーザあたりの使用が多い場合）には、ＩＰアドレスの活動量が家庭用ルータで使用されるＩＰアドレスの特徴を備えると判定する。
【００６３】
ＣＰＵ１１は、以上のような特徴に基づいてＩＰアドレスをクラスタに分類する。ＣＰＵ１１は、ＩＰアドレスの特徴を元に、種々の統計手法又は機械学習によりＩＰアドレスの特徴が最大化するようにＩＰアドレスをクラスタに分類する。なお、ＣＰＵ１１がＩＰアドレスの特徴を判定するための各閾値は、上記の値に限定されるものではない。ＣＰＵ１１は、統計的観点から適宜閾値を変更してもよい。
【００６４】
また、ＣＰＵ１１は、ＩＰアドレスの特徴に基づいて、ＩＰアドレスの使用用途を判定する（用途判定部）。たとえば、ＣＰＵ１１は、ＩＰアドレスの各特徴から算出される使用用途の尤度を合算して、所定の閾値を超えた尤度に対応する使用用途をＩＰアドレスの使用用途と判定する。また、ＣＰＵ１１は、ＩＰアドレス毎に使用用途の確からしさを示す確信度を算定してもよい。
【００６５】
たとえば、ＣＰＵ１１は、あるＩＰアドレスに関して活動量がかなり多い上に密集度も高く企業用ルータに使用されるＩＰアドレスの特徴が現れているが、使用頻度が平日夜に高く休日が平日より高く家庭用ルータに使用されるＩＰアドレスの特徴も現れている場合、家庭用ルータに使用されるＩＰアドレスと分類するが確信度を低く算出する（たとえば、分類＝家庭用ルータに使用されるＩＰアドレス、確信度＝０．５５）。
【００６６】
また、ＣＰＵ１１は、あるＩＰアドレスに関して平日の日中に使用が集中し密集度がやや高く継続使用率が高い場合、企業用ルータに使用されるＩＰアドレスと分類し、確信度を高く算出する（たとえば、分類＝企業量ルータに使用されるＩＰアドレス、確信度＝０．９８）。
【００６７】
なお、ＣＰＵ１１は、各特徴の傾向、又は尤度などを定点観測し、自動的に分類方法に補正してもよい。  
ＣＰＵ１１がＩＰアドレスをクラスタに分類する方法は、特定の方法に限定されるものではない。
【００６８】
また、ＣＰＵ１１は、クロスデバイスマッチングに使用するクラスタ（第１のクラスタ）を選択する機能を有する（選択部）。たとえば、ＣＰＵ１１は、密集度が小さく継続使用率が高く活動量が多く、所定の時間帯（たとえば、平日の夜又は休日など）に集中的に使用されるＩＰアドレスを選択する。
【００６９】
また、ＣＰＵ１１は、選択されたクラスタのＩＰアドレスのログデータを取得する機能を有する。たとえば、ＣＰＵ１１は、記憶領域１４ａからログデータを取得する。
【００７０】
また、ＣＰＵ１１は、取得されたログデータに基づいてマッチングを推定する機能を有する（マッチング部）。  
ＣＰＵ１１は、複数の端末ＩＤが同一の時間帯に同一のＩＰアドレスのログデータに頻繁に出現する場合に当該複数の端末ＩＤを同一ユーザが所持する複数の端末の端末ＩＤであると推定する。
【００７１】
図３は、マッチング推定の動作例を示す。  
図３が示す例では、端末ＩＤ１２３が示す端末Ａと端末ＩＤ４５６が示す端末Ｂとは、ＩＰアドレス１１：２２：３３：４４を用いて通信網６にアクセスする。
【００７２】
同一ユーザが端末Ａと端末Ｂとを使用する場合、端末Ａと端末Ｂとは、同時期に同一のネットワーク下にある可能性が高い。従って、端末Ａと端末Ｂとが同時期に同一のネットワーク下にある（即ち、同一のＩＰアドレスからアクセスする）場合、端末Ａと端末Ｂとは、同一ユーザの使用に属する可能性が高い。
【００７３】
ＣＰＵ１１は、ログデータから同時期に同一のＩＰアドレスを用いる端末の組み合わせを同一ユーザの使用に属すると推定し、推定結果に基づき（同一ユーザの使用可能性が高いとの推定結果に基づき）これら端末をマッチングする。
【００７４】
たとえば、ＣＰＵ１１は、ログデータに基づいて、同一のＩＰアドレスを用いる２つの端末を含む候補セットを特定する。ＣＰＵ１１は、候補セットに対して同一ユーザが使用している可能性を示すスコアを算出する。
【００７５】
たとえば、ＣＰＵ１１は、所定の時間内に候補セットの両端末が同一のＩＰアドレスを使用した場合に、候補セットのスコアを加算する。たとえば、ＣＰＵ１１は、候補セットのある端末がＩＰアドレスを使用してから他の端末が同一のＩＰアドレスを使用するまでの間隔に応じてスコアを加算する。たとえば、ＣＰＵ１１は、１時間以内に候補セットの両端末が同一のＩＰアドレスを使用した場合、１．０点を加算する。また、ＣＰＵ１１は、１時間を超えて８時間以内である場合、０．１点を加算する。
【００７６】
また、ＣＰＵ１１は、候補セットの両端末が同時間帯に使用される場合に、候補セットのスコアを加算する。たとえば、ＣＰＵ１１は、時間帯を区分する（たとえば、月〜木曜日ＰＭ２２〜翌朝ＡＭ７、平日ＡＭ９〜ＰＭ１７、及び、金曜日ＰＭ２２〜月曜日ＡＭ７）。ＣＰＵ１１は、同一の時間区分に候補セットの両端末が使用される場合に、スコアを加算する。なお、ＣＰＵ１１は、候補セットの両端末が同一の時間区分に使用される割合などに応じてスコアを調整してもよい。
【００７７】
また、ＣＰＵ１１は、候補セットの両端末が重複して使用される時間（重複使用時間）に基づいて、候補セットのスコアを加算する。たとえば、ＣＰＵ１１は、候補セットの両端末の端末ＩＤを含むログデータに基づいて両端末の起動期間を特定する。たとえば、ＣＰＵ１１は、端末の複数のログデータが示す日時が互いに所定の時間内である場合に、ログデータが示す日時の間を端末の起動期間と特定する。
【００７８】
ＣＰＵ１１は、端末毎の起動期間が互いに重複する期間の長さを重複使用時間と特定する。  
たとえば、ＣＰＵ１１は、重複使用時間が所定の閾値よりも大きい場合に、候補セットのスコアを加算する。また、ＣＰＵ１１は、重複使用時間に応じてスコアを加算してもよい。たとえば、ＣＰＵ１１は、重複使用時間が多くなるほど大きなスコアを加算する。また、ＣＰＵ１１は、重複使用時間が所定の閾値よりも大きく重複使用時間以外の時間において両端末が他のＩＰアドレスを使用していない場合に、スコアを加算してもよい。たとえば、ＣＰＵ１１は、両端末が１時間ずつ起動し３０分間重複していて重複していない３０分に他のＩＰアドレスを使用していない場合に、スコアを加算する。
【００７９】
また、ＣＰＵ１１は、異なる使用用途の各ＩＰアドレスにおいて候補セットの両端末のログデータがある場合には、候補セットのスコアを加算する。たとえば、ＣＰＵ１１は、異なる使用用途の各ＩＰアドレスにおいて重複使用時間がある場合に、候補セットのスコアを加算してもよい。
【００８０】
ＣＰＵ１１は、候補セットのスコアに基づいて、当該候補セットが含む２つの端末を同一ユーザの使用に属する端末としてマッチングする。たとえば、ＣＰＵ１１は、候補セットのスコアが所定の閾値を超えた場合に、当該候補セットが含む２つの端末を同一ユーザの使用に属する端末としてマッチングする。即ち、ＣＰＵ１１は、候補セットから同一ユーザが使用する候補セットを特定する。ＣＰＵ１１は、マッチされた端末同士を紐付けてＮＶＭ１４などに格納する。また、ＣＰＵ１１は、端末Ａと端末Ｂとがマッチングされ、端末Ｂと端末Ｃとがマッチングされた場合、端末Ａ乃至Ｃを同一人の使用に属するとしてマッチングしてもよい。
【００８１】
また、ＣＰＵ１１は、３つ以上の端末を含む候補セットを生成して、スコアを算出してもよい。
【００８２】
次に、サービス提供システム１０の各部の動作例について説明する。  
まず、ユーザ端末４又は５の動作例について説明する。ここでは、例としてユーザ端末４の動作例を説明する。ユーザ端末５も同様の動作を行う。
【００８３】
ユーザ端末４は、ユーザからの操作に基づいてアプリケーションを起動する。ここでは、アプリケーションは、サーバ２から提供される広告を表示するものである。
【００８４】
アプリケーションを起動すると、ユーザ端末４は、アプリケーションの動作に従って、端末ＩＤを含む広告リクエストをサーバ２へ送信する。なお、広告リクエストは、ユーザ端末４上で動作するＯＳ又はＯＳのバージョンを示すＯＳ情報を備えてもよい。
【００８５】
ユーザ端末４は、サーバ２から、広告リクエストに対するレスポンスとして広告を受信する。広告を受信すると、ユーザ端末４は、表示部などに広告を表示する。広告を表示すると、ユーザ端末４は、動作を終了する。
【００８６】
なお、広告ＩＤが端末ＩＤである場合、ユーザ端末４は、広告ＩＤを格納しているかを判定する。広告ＩＤを格納していないと判定した場合、ユーザ端末４は、広告リクエストをサーバ２へ送信し、レスポンスに含まれる広告ＩＤを端末ＩＤとして格納する。広告ＩＤを格納していると判定した場合（たとえば、サーバ２へ２回目以降にアクセスする場合など）、ユーザ端末４は、格納された広告ＩＤを含む広告リクエストをサーバ２へ送信する。
【００８７】
次に、サーバ２の動作例について説明する。  
サーバ２は、ユーザ端末４又は５から広告リクエストを受信する。広告リクエストを受信すると、サーバ２は、広告リクエストに応じた広告をレスポンスとしてユーザ端末４又は５へ送信する。
【００８８】
また、サーバ２は、ログデータを生成する。たとえば、サーバ２は、広告リクエストから端末ＩＤを抽出する。また、サーバ２は、広告リクエストの送信元のＩＰアドレスを取得する。また、サーバ２は、広告リクエストを受信した日時又は広告を送信した日時を示すタイムスタンプを生成する。サーバ２は、端末ＩＤ、ＩＰアドレス及びタイムスタンプを対応付けてログデータを生成する。なお、広告リクエストがＯＳ情報を含む場合、サーバ２は、さらにＯＳ情報も対応付けてログデータとして格納する。
【００８９】
なお、サーバ２は、広告をユーザ端末４又は５に送信してからログデータを生成してもよいし、ログデータを生成してから広告をユーザ端末４又５へ送信してもよい。
【００９０】
サーバ２は、生成されたログデータを不揮発性メモリに格納する。なお、サーバ２は、随時ログデータをマッチングサーバ１へ送信してもよい。また、サーバ２は、所定の間隔でログデータをマッチングサーバ１へ送信してもよい。
【００９１】
次に、マッチングサーバ１の動作例について説明する。  
図４は、マッチングサーバ１の動作例を説明するためのフローチャートである。
【００９２】
ここでは、マッチングサーバ１の記憶領域１４ａは、複数個のログデータを格納しているものとする。
【００９３】
まず、マッチングサーバ１のＣＰＵ１１は、記憶領域１４ａが格納するログデータに基づいて、ログデータに含まれるＩＰアドレスをクラスタに分類する（Ｓ１１）。  
ＩＰアドレスをクラスタに分類すると、ＣＰＵ１１は、分類したクラスタからマッチング推定に使用するクラスタを選択する（Ｓ１２）。
【００９４】
クラスタを選択すると、ＣＰＵ１１は、選択されたクラスタのＩＰアドレスに対応するログデータを取得する（Ｓ１３）。  
ログデータを取得すると、ＣＰＵ１１は、マッチングを推定する（Ｓ１４）。
【００９５】
マッチングを推定すると、ＣＰＵ１１は、動作を終了する。
【００９６】
ＣＰＵ１１は、たとえば、サーバ２へ、マッチングされた２つの端末ＩＤを送信する。
【００９７】
サーバ２は、マッチングされた２つの端末ＩＤを受信すると、不揮発性メモリなどに格納する。  
サーバ２は、マッチングされた２つの端末ＩＤが示す端末に対して関連する広告を提供することができる。
【００９８】
以下、サーバ２がマッチングされた２つの端末に関連する広告を配信する動作例について説明する。ここでは、端末Ａと端末Ｂとがマッチングされたものとする。  
まず、サーバ２は、端末Ａからの広告リクエストに応じて所定の広告に配信する。  
端末Ａに所定の広告を配信すると、サーバ２は、端末Ｂからの広告リクエストを受信するまで待機する。
【００９９】
端末Ｂから広告リクエストを受信すると、サーバ２は、広告リクエストから端末Ｂの端末ＩＤを抽出する。端末Ｂの端末ＩＤを抽出すると、サーバ２は、抽出された端末ＩＤにマッチングする端末ＩＤを検索する。ここでは、サーバ２は、端末Ａの端末ＩＤを発見する。なお、サーバ２は、端末Ｂとマッチングされる端末をマッチングサーバ１から取得してもよい。
【０１００】
端末Ａの端末ＩＤを発見すると、サーバ２は、端末Ａに配信した広告に関連する広告を取得する。たとえば、端末Ａがスマートフォンであり端末ＢがＰＣである場合、サーバ２は、端末Ａへ配信したスマートフォン向けの広告に対応するＰＣ向けの広告を取得する。なお、端末Ａと端末Ｂとが共にＰＣ（又はスマートフォン）である場合、サーバ２は、端末Ａへ配信した広告と同じ広告を取得してもよい。
【０１０１】
広告を取得すると、サーバ２は、広告リクエストのレスポンスとして端末Ｂに取得された広告を配信する。広告を配信すると、サーバ２は、動作を終了する。
【０１０２】
以上のように構成されるマッチングサーバは、ＩＰアドレスを分類することができる。また、マッチングサーバは、ＩＰアドレスの使用用途を推定することができる。そのため、マッチングサーバは、ＩＰアドレスの使用用途に応じて、使用者が端末を使用する状態を推定することができる。たとえば、マッチングサーバは、端末が使用するＩＰアドレスが家庭用ルータに使用されるＩＰアドレスである場合、端末の使用者が家庭で端末を使用していることを認識することができる。また、マッチングサーバは、端末が使用するＩＰアドレスが企業用ルータに使用されるＩＰアドレスである場合、端末の使用者が会社の休憩中などに端末を使用していることを認識することができる。また、マッチングサーバは、端末が使用するＩＰアドレスが携帯キャリアに使用されるＩＰアドレスである場合、端末の使用者が電車などで移動しながら端末を使用していることを認識することができる。
【０１０３】
たとえば、スマートデバイス向けサービス（たとえば、ゲームアプリなど）において、サービス提供者は、使用者の状況毎にサービスの使用時間（たとえば、プレイ時間）が変化するかを分析することができる。
【０１０４】
また、マッチングサーバは、同一ユーザの使用に属する複数の端末をマッチングすることができる。その結果、広告サーバは、マッチング結果に基づいて、同一ユーザが使用する異なる端末に関連する広告を配信することができる。たとえば、広告サーバは、スマートフォンに広告を配信した後に、スマートフォンの使用者のＰＣに対して関連する広告を配信することができる。その結果、広告サーバは、効果的に広告を配信し、使用者に効果的にコンバージョンを促すことができる。
【０１０５】
また、所定のサービス（ＥＣサイトなど）を提供する管理サーバは、マッチング結果を用いて、端末を横断してパーソナライズ（たとえば、顧客ごとのデザイン又は商品の提示）を行うことができる。たとえば、管理サーバは、共通のＩＤでログインされなくとも、ＰＣでのサービス使用に対して行われたパーソナライズと同様のパーソナライズをスマートフォンでのサービス使用に適用することができる。その結果、管理サーバは、使用者の体験を向上させることができる。
【０１０６】
また、マッチングサーバは、タイムスタンプに基づいて複数の端末をマッチングする。マッチングサーバは、所定の時間内に複数の端末が同一のアドレスを使用した場合に、複数の端末が同一ユーザの使用に属する可能性が高いと判定する。その結果、マッチングサーバは、当該時間の長さを調整することで、マッチング精度とボリュームとのバランスを調整することができる。
【０１０７】
また、マッチングサーバは、同一の時間帯に複数の端末が使用された場合に、複数の端末が同一ユーザの使用に属する可能性が高いと判定する。その結果、マッチングサーバは、ユーザが複数の端末を併用する時間帯が固定化している場合にマッチングの精度を向上させることができる。
【０１０８】
また、マッチングサーバは、重複使用時間が長い場合に複数の端末が同一ユーザの使用に属する可能性が高いと判定する。その結果、マッチングサーバは、ユーザが複数の端末を同時に使用する場合にマッチングの精度を向上させることができる。
【０１０９】
また、マッチングサーバは、異なる使用用途の各ＩＰアドレスにおいて複数の端末のログデータがある場合に複数の端末が同一ユーザの使用に属する可能性が高いと判定する。その結果、マッチングサーバは、家庭と企業とで使用される複数の端末をマッチングさせることができる。従って、マッチングサーバは、ユーザの家族が使用する端末とマッチングされることを防止することができる。
【０１１０】
なお、本発明は、上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。また、各実施形態は可能な限り適宜組み合わせて実施してもよく、その場合組み合わせた効果が得られる。更に、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適当な組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
以下に本件出願当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
ＩＰアドレスと端末ＩＤとタイムスタンプとを対応づけた複数のログデータを取得する取得部と、
前記複数のログデータに基づいて同一のＩＰアドレスを用いる複数の端末を含む候補セットを特定し、前記ＩＰアドレスに関する前記ログデータに基づいて前記候補セットが含む複数の端末の同一ユーザが使用している可能性を推定し、推定結果に基づき複数の端末をマッチングするマッチング部と、
を備える情報処理装置。
［Ｃ２］
前記マッチング部は、前記ログデータに基づいて前記候補セットに対して同一ユーザが使用している可能性を示すスコアを算出し、前記スコアに基づいて複数の端末をマッチングする、
前記Ｃ１に記載の情報処理装置。
［Ｃ３］
前記マッチング部は、所定の時間内に前記候補セットの複数の端末が同一のＩＰアドレスを使用した場合に、前記候補セットのスコアを加算する、
前記Ｃ２に記載の情報処理装置。
［Ｃ４］
前記マッチング部は、前記候補セットの複数の端末が同一の時間帯に使用される場合に、前記候補セットのスコアを加算する、
前記Ｃ２又は３に記載の情報処理装置。
［Ｃ５］
前記マッチング部は、前記候補セットの複数の端末が重複して使用される時間に基づいて、前記候補セットのスコアを加算する、
前記Ｃ２乃至４の何れか１項に記載の情報処理装置。
［Ｃ６］
ＩＰアドレスの特徴に基づいて前記複数のログデータが含むＩＰアドレスを複数のクラスタに分類する分類部と、
前記複数のクラスタから第１のクラスタを選択する選択部と、
をさらに備え、
前記マッチング部は、前記選択部が選択した前記第１のクラスタのＩＰアドレスに関するログデータに基づいて同一のＩＰアドレスを用いる複数の端末を含む候補セットを特定する、
前記Ｃ１乃至５の何れか１項に記載の情報処理装置。
［Ｃ７］
前記分類部は、ＩＰアドレスの使用頻度、密集度、継続使用率又は活動量の少なくとも１つに基づいて、ＩＰアドレスをクラスタに分類する、
前記Ｃ６に記載の情報処理装置。
［Ｃ８］
前記分類部は、ＩＰアドレスの使用用途を判定し、
前記マッチング部は、異なる使用用途のＩＰアドレスにおいて前記候補セットの複数の端末のログデータがある場合、前記候補セットのスコアを加算する、
前記Ｃ６又は７に記載の情報処理装置。
［Ｃ９］
ＩＰアドレスと端末ＩＤとタイムスタンプとを対応づけた複数のログデータを取得し、
前記複数のログデータに基づいて同一のＩＰアドレスを用いる複数の端末を含む候補セットを特定し、
前記ＩＰアドレスに関する前記ログデータに基づいて前記候補セットが含む複数の端末の同一ユーザが使用している可能性を推定し、推定結果に基づき複数の端末をマッチングする、
情報処理方法。
［Ｃ１０］
プロセッサに、ＩＰアドレスと端末ＩＤとタイムスタンプとを対応づけた複数のログデータを取得させるコードと、
前記プロセッサに、前記複数のログデータに基づいて同一のＩＰアドレスを用いる複数の端末を含む候補セットを特定させるコードと、
前記プロセッサに、前記ＩＰアドレスに関する前記ログデータに基づいて前記候補セットが含む複数の端末の同一ユーザが使用している可能性を推定し、推定結果に基づき複数の端末をマッチングさせるコードと、
を備えるプログラム。
［Ｃ１１］
ＩＰアドレスと端末ＩＤとタイムスタンプとを対応づけた複数のログデータを取得する取得部と、
前記複数のログデータに基づいて前記ＩＰアドレスの使用頻度、密集度、継続使用率又は活動量の少なくとも１つの特徴を判定する特徴判定部と、
前記特徴に基づいて、前記ＩＰアドレスの使用用途を判定する用途判定部と、
を備える情報処理装置。
［Ｃ１２］
ＩＰアドレスと端末ＩＤとタイムスタンプとを対応づけた複数のログデータを取得し、
前記複数のログデータに基づいて前記ＩＰアドレスの使用頻度、密集度、継続使用率又は活動量の少なくとも１つの特徴を判定し、
前記特徴に基づいて、前記ＩＰアドレスの使用用途を判定する、
情報処理方法。
［Ｃ１３］
プロセッサに、ＩＰアドレスと端末ＩＤとタイムスタンプとを対応づけた複数のログデータを取得させるコードと、
前記プロセッサに、前記複数のログデータに基づいて前記ＩＰアドレスの使用頻度、密集度、継続使用率又は活動量の少なくとも１つの特徴を判定させるコードと、
前記プロセッサに、前記特徴に基づいて、前記ＩＰアドレスの使用用途を判定させるコードと、
を備えるプログラム。
【符号の説明】
【０１１１】
１…マッチングサーバ、２…サーバ、３…ルータ、４及び５…ユーザ端末、４ａ及び５ａ…記憶領域、６…通信網、１１…ＣＰＵ、１４…ＮＶＭ、１４ａ…記憶領域、１５…通信部。
【図１】
0006275108.tif 000002
【図２】
0006275108.tif 000003
【図３】
0006275108.tif 000004
【図４】
0006275108.tif 000005