IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社Geolocation Technologyの特許一覧

<>
  • 特開-地域特定システム 図1
  • 特開-地域特定システム 図2
  • 特開-地域特定システム 図3
  • 特開-地域特定システム 図4
  • 特開-地域特定システム 図5
  • 特開-地域特定システム 図6
  • 特開-地域特定システム 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024125650
(43)【公開日】2024-09-19
(54)【発明の名称】地域特定システム
(51)【国際特許分類】
   G06Q 50/10 20120101AFI20240911BHJP
【FI】
G06Q50/10
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2023033608
(22)【出願日】2023-03-06
(71)【出願人】
【識別番号】503295518
【氏名又は名称】株式会社Geolocation Technology
(74)【代理人】
【識別番号】100105784
【弁理士】
【氏名又は名称】橘 和之
(72)【発明者】
【氏名】岩津 良哉
【テーマコード(参考)】
5L049
5L050
【Fターム(参考)】
5L049CC12
5L050CC12
(57)【要約】
【課題】動的IPアドレスについても、それが使用されている地域を特定することができるようにする。
【解決手段】丸めの無いIPアドレスまたはこれをサブネットマスクにより数ビットを丸めたIPアドレスと、当該IPアドレスの使用地域に関する紐付情報との組み合わせから成る学習用データを用いた機械学習処理により、IPアドレスが入力された際に地域情報が出力されるように構成された特定モデルを生成するモデル生成部11と、地域特定対象のIPアドレスを特定モデルに入力し、IPアドレスに対応する地域情報を特定モデルから出力する地域特定部12とを備え、モデル生成部11が機械学習処理を繰り返し実行することによって特定モデルを逐次更新し、更新した直近の特定モデルを用いてIPアドレスから地域情報を特定することにより、動的IPアドレスが使用されている地域を特定することを可能にする。
【選択図】図1
【特許請求の範囲】
【請求項1】
丸めの無いIPアドレスまたはこれをサブネットマスクにより数ビットを丸めたIPアドレスと、当該IPアドレスの使用地域に関する紐付情報との組み合わせから成る学習用データを用いた機械学習処理により、上記IPアドレスが入力された際に地域情報が出力されるように構成された特定モデルを生成するモデル生成部と、
地域特定対象のIPアドレスを上記特定モデルに入力し、上記IPアドレスに対応する地域情報を上記特定モデルから出力する地域特定部とを備え、
上記モデル生成部は、上記機械学習処理を繰り返し実行することによって上記特定モデルを逐次更新する
ことを特徴とする地域特定システム。
【請求項2】
上記モデル生成部は、上記丸めの無いIPアドレスについて、当該IPアドレスの使用地域を表す地域情報を上記紐付情報として、上記丸めの無いIPアドレスと上記地域情報との組み合わせから成る学習用データを用いた機械学習処理により上記特定モデルを生成することを特徴とする請求項1に記載の地域特定システム。
【請求項3】
上記モデル生成部は、上記サブネットマスクにより数ビットが丸められたIPアドレスと、当該IPアドレスの使用地域を表す地域情報との複数の組み合わせに基づいて、上記丸められたIPアドレスがどの地域情報に該当するかの確率的統計情報を生成し、上記確率的統計情報を上記紐付情報として、上記丸められたIPアドレスと上記確率的統計情報との組み合わせから成る学習用データを用いた機械学習処理により上記特定モデルを生成することを特徴とする請求項1に記載の地域特定システム。
【請求項4】
上記モデル生成部は、
上記丸めの無いIPアドレスについて、当該IPアドレスの使用地域を表す地域情報を上記紐付情報として、上記丸めの無いIPアドレスと上記地域情報との組み合わせから成る学習用データを用いた機械学習処理によりマスク非対応の特定モデルを生成する機能と、
上記サブネットマスクにより数ビットが丸められたIPアドレスについて、上記丸められたIPアドレスと、当該IPアドレスの使用地域を表す地域情報との複数の組み合わせに基づいて、上記丸められたIPアドレスがどの地域情報に該当するかの確率的統計情報を生成し、当該確率的統計情報を上記紐付情報として、上記丸められたIPアドレスと上記確率的統計情報との組み合わせから成る学習用データを用いた機械学習処理によりマスク対応の特定モデルを生成する機能とを備え、
上記マスク非対応の特定モデルの学習精度が所定のレベルを超えない場合に上記マスク対応の特定モデルを生成するようにし、
上記地域特定部は、上記マスク非対応の特定モデルまたは上記マスク対応の特定モデルを用いて、上記IPアドレスに対応する地域情報を出力する
ことを特徴とする請求項1に記載の地域特定システム。
【請求項5】
上記モデル生成部は、上記マスク対応の特定モデルの生成に関して、
上記丸められたIPアドレスの有効ビット数をMビットとするサブネットマスク/Mに基づきマスク/M対応の特定モデルを生成する機能と、
上記丸められたIPアドレスの有効ビット数をNビット(ただし、M<N)とするサブネットマスク/Nに基づきマスク/N対応の特定モデルを生成する機能とを備え、
上記マスク/M対応の特定モデルの学習精度が上記所定のレベルを超えない場合に上記マスク/N対応の特定モデルを生成するようにし、
上記地域特定部は、上記マスク非対応の特定モデル、上記マスク/M対応の特定モデルまたは上記マスク/N対応の特定モデルを用いて、上記IPアドレスに対応する地域情報を出力する
ことを特徴とする請求項4に記載の地域特定システム。
【請求項6】
上記モデル生成部は、上記マスク/N対応の特定モデルの生成に関して、
第1の所定期間中に収集されたIPアドレスが丸められたIPアドレスと上記確率的統計情報との組み合わせから成る学習用データを用いた機械学習処理により第1のマスク/N対応の特定モデルを生成する機能と、
上記第1の所定期間より短い第2の所定期間中に収集されたIPアドレスが丸められたIPアドレスと上記確率的統計情報との組み合わせから成る学習用データを用いた機械学習処理により第2のマスク/N対応の特定モデルを生成する機能とを備え、
上記第1のマスク/N対応の特定モデルの学習精度が上記所定のレベルを超えない場合に上記第2のマスク/N対応の特定モデルを生成するようにし、
上記地域特定部は、上記マスク非対応の特定モデル、上記マスク/M対応の特定モデル、上記第1のマスク/N対応の特定モデルまたは上記第2のマスク/N対応の特定モデルを用いて、上記IPアドレスに対応する地域情報を出力する
ことを特徴とする請求項5に記載の地域特定システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、地域特定システムに関し、特に、IPアドレスが使用されている地域を特定するためのシステムに用いて好適なものである。
【背景技術】
【0002】
従来、ユーザ端末のIPアドレスに基づいて、当該ユーザ端末が使用されている地域(つまり、IPアドレスが使用されている地域)を特定する技術が知られている(例えば、特許文献1参照)。特許文献1に記載の地域情報決定システムは、IPアドレスと特定地域との関連性を示す基礎情報を収集し、当該収集した基礎情報を用いてIPアドレスの地域情報を設定する。
【0003】
また、特許文献1に記載の地域情報決定システムは、地域情報を設定することが不可能なIPアドレスの地域情報を推定する。地域情報を設定することが不可能なIPアドレスとは、特定地域との関連性を示す基礎情報がないか不足する場合、または、同一のIPアドレスに対して互いに異なる地域との関連性を意味する基礎情報が複数存在する場合に、地域情報を直接設定することが難しいIPアドレスを意味する。
【0004】
特許文献1に記載の地域情報推定部は、複数のIPアドレスを含むIPアドレスグループ(IP割当基準であるIPサブネット)を用いてIPアドレスの地域情報を推定する。具体的には、IPアドレスグループ別に代表地域を設定し、あるIPアドレスの地域情報を基礎情報から一意に設定できない場合、そのIPアドレスが属するIPアドレスグループに設定された代表地域を、当該あるIPアドレスの地域情報として推定する。
【0005】
ここで、特許文献1では、IPサブネットに基づくIPアドレスのグルーピング方法として、IP MASKを介して分割する方法や、IPアドレスの特定範囲(帯域)の1/2n(nは1より大きい任意の整数)の大きさを有する、連続的なIPアドレスで構成されたIPサブネットに分割する方法、1つのIPサブネットを当該IPサブネットの1/2nの大きさを有する異なるIPサブネッに再分割する方法などを開示している。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特許第6239675号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
ところで、IPアドレスには動的IPアドレスと呼ばれるものがある。動的IPアドレスは、数日から数ヵ月でIPアドレスの値が変化する。このため、IPアドレスと地域情報との対応関係を記録したデータベースを用いて地域情報を特定する場合、当該データベースを常に最新の状態に維持することが必要となる。そのためには、数日から数ヵ月のサイクルで都度分析を行い、IPアドレスと地域情報との適切な関連付けを行う必要がある。
【0008】
しかしながら、IPアドレスの数が膨大であり、ドメインによってIPアドレスの性質が異なるためドメインごとに分析を実施する必要もある。そのため、全ての分析を数日単位の周期で行うことは困難である。また、実務的にはアクセスの多いドメインから優先して分析を行うことになり、アクセスの少ないドメインの分析まで手が回らないことが多くなるという問題もあった。
【0009】
上記特許文献1に記載の技術では、あるIPアドレスから地域情報を一意に特定できない場合でも、そのIPアドレスが属するIPアドレスグループ(IPサブネット)にあらかじめ設定された代表地域を、当該あるIPアドレスの地域情報として推定することが可能である。しかしながら、特許文献1に記載の技術では、IPアドレスグループとそれに関連付ける代表地域との組み合わせをあらかじめ決めておく必要がある。そのため、数日から数ヵ月でIPアドレスの値が変化する動的IPアドレスには必ずしも有効な方法とは言えない。
【0010】
本発明は、このような問題を解決するために成されたものであり、動的IPアドレスについても、当該動的IPアドレスが使用されている地域を特定することができるようにすることを目的とする。
【課題を解決するための手段】
【0011】
上記した課題を解決するために、本発明では、丸めの無いIPアドレスまたはこれをサブネットマスクにより数ビットを丸めたIPアドレスと、当該IPアドレスの使用地域に関する紐付情報との組み合わせから成る学習用データを用いた機械学習処理を繰り返し実行することにより、IPアドレスが入力された際に地域情報が出力されるように構成された特定モデルを逐次更新する。そして、地域特定対象のIPアドレスを特定モデルに入力し、IPアドレスに対応する地域情報を特定モデルから出力するようにしている。
【発明の効果】
【0012】
上記のように構成した本発明によれば、丸めの無いIPアドレスまたはこれをサブネットマスクにより数ビットを丸めたIPアドレスとそのIPアドレスの使用地域との関係性を反映して生成される特定モデルが逐次更新され、更新された直近の特定モデルを用いてIPアドレスから地域情報が特定されるので、動的IPアドレスについても、それが使用されている地域を特定することが可能である。また、サブネットマスクにより数ビットが丸められたIPアドレスに対して代表地域をあらかじめ決めておく必要がなく、丸められたIPアドレスを含む学習用データを用いた機械学習処理により生成された特定モデルを用いることで、丸められたIPアドレスに対する地域情報を特定することも可能となる。
【図面の簡単な説明】
【0013】
図1】本実施形態による地域特定システムの機能構成例を示すブロック図である。
図2】IPアドレス記憶部に格納される履歴情報の例を模式的に示す図である。
図3】本実施形態のモデル生成部による第1の機能で学習されるIPレンジの例を模式的に示す図である。
図4】本実施形態のモデル生成部によりマスク/M対応の特定モデルを生成する第2の機能の処理内容を説明するための模式図である。
図5】本実施形態のモデル生成部によりマスク/N対応の特定モデルを生成する第2の機能の処理内容を説明するための模式図である。
図6】本実施形態の地域特定システムによる特定モデル生成に関する動作例を示すフローチャートである。
図7】本実施形態の地域特定システムによる地域特定に関する動作例を示すフローチャートである。
【発明を実施するための形態】
【0014】
以下、本発明の一実施形態を図面に基づいて説明する。図1は、本実施形態による地域特定システム10の機能構成例を示すブロック図である。図1に示すように、本実施形態の地域特定システム10は、その機能構成として、モデル生成部11、特定対象IP取得部12、マスク処理部13および地域特定部14を備えている。モデル生成部11は、具体的な機能構成として、学習用データ生成部11Aおよび学習部11Bを備えている。また、地域特定部14はモデル記憶部14Aを備えている。
【0015】
上記機能ブロック11~14は、ハードウェア、DSP(Digital Signal Processor)、ソフトウェアの何れによっても構成することが可能である。例えばソフトウェアによって構成する場合、上記機能ブロック11~14は、実際にはコンピュータのCPU、RAM、ROMなどを備えて構成され、RAMやROM、ハードディスクまたは半導体メモリ等の記憶媒体に記憶されたプログラムが動作することによって実現される。
【0016】
また、本実施形態の地域特定システム10は、インターネットまたは携帯電話網などの通信ネットワークを介してIPアドレスログ収集サーバ100と接続され、相互にデータ通信を行うことができるように構成されている。IPアドレスログ収集サーバ100は、図示しないユーザ端末から通信ネットワークを介して通信が行われるときに使用されるIPアドレスを取得し、IPアドレス記憶部101に格納する。
【0017】
通信ネットワーク上では、各地にいる多くのユーザが、それぞれのユーザ端末から所望のタイミングで所望のウェブサイトにアクセスしてコンテンツを閲覧したり、他のユーザ端末またはサーバなどとの間でコミュニケーションやデータ取得などの各種通信を行ったりしている。IPアドレスログ収集サーバ100は、これらの通信に使用されるIPアドレスを都度取得し、IPアドレスを取得した日時情報と共に履歴情報としてIPアドレス記憶部101に逐次格納する。
【0018】
また、IPアドレスログ収集サーバ100は、履歴情報としてIPアドレス記憶部101に格納されたIPアドレスが使用されている地域を特定し、IPアドレスに関連付けて地域情報をIPアドレス記憶部101に格納する。本実施形態では、地域情報として都道府県を表すコード情報(以下、都道府県コードという)を用いる。ここで、IPアドレスログ収集サーバ100は、使用地域を明確に特定することができたIPアドレスについてのみ地域情報をIPアドレス記憶部101に格納するようにしてもよい。なお、IPアドレスに対する地域情報の特定をIPアドレスログ収集サーバ100とは別のサーバにより行ってもよい。
【0019】
図2は、IPアドレス記憶部101に格納される履歴情報の例を模式的に示す図である。図2に示すように、IPアドレス記憶部101は、収集されたIPアドレスと、収集日時を表す日付情報と、IPアドレスから特定された地域情報(都道府県コード)とを関連付けてレコードを構成し、複数のレコードを履歴情報として記憶する。ここでは、使用地域を明確に特定することができたIPアドレスのレコードのみを図示している。
【0020】
IPアドレスの使用地域を特定する方法として、いくつかの公知技術を適用することが可能である。例えば、全世界のドメインを管理する機関であるNIC(Network Information Center)や、日本のドメインを管轄するJPNICなどで得られる情報をもとに複数のIPアドレスを地域別に分類した地域別アドレス分類データベースを利用することが可能である。
【0021】
また、インターネット・サービス・プロバイダ(ISP)が多数の地域に設置しているアクセスポイントごとのIPアドレスと、当該アクセスポイントの設置地域とを関連付けて構成した地域別ISPアドレス分類データベースを利用することも可能である。
【0022】
また、IPアドレスに対応するドメインネームを取得し、ドメインネームを構成する文字列からネットワーク名を抽出してプロバイダ名を判定するとともに、ドメインネームを構成する文字列からホストネームを抽出する。そして、プロバイダごとにホストネームを地域別に分類した地域別ホストネーム分類データベースを参照して、抽出したホストネームから地域情報を取得するようにすることも可能である。
【0023】
さらに、IPアドレスに対して経路探索コマンド(Unix(登録商標)ではtracerouteコマンド、Windows(登録商標)ではtracertコマンド)を実行し、これにより得られたネットワーク経路上のルータのドメイン名などから地域情報を取得することも可能である。ここでいうネットワーク経路は、ある通信がインターネット上で行われたときにおける送信元ホストと送信先ホストとの間を接続する複数のルータの経由情報である。その経由情報の中に地域を識別可能な文字列が含まれている場合に、その文字列から地域情報を取得することも可能である。
【0024】
モデル生成部11は、丸めの無いIPアドレスまたはこれをサブネットマスクにより数ビットを丸めたIPアドレスと、当該IPアドレスの使用地域に関する紐付情報との組み合わせから成る学習用データを用いた機械学習処理により、IPアドレスが入力された際に地域情報が出力されるように構成された特定モデルを生成する。そして、生成した特定モデルを地域特定部14のモデル記憶部14Aに格納する。モデル生成部11は、この機械学習処理を繰り返し実行することにより、地域特定部14の特定モデルを逐次更新する。例えば、モデル生成部11は、1週間に1回の頻度で特定モデルを更新する。
【0025】
ここで、モデル生成部11は、IPアドレスログ収集サーバ100からIPアドレス記憶部101に記憶されている複数のIPアドレスと地域情報とのデータセットを取得し、取得したデータセットを学習用データとして機械学習処理を行うことによって特定モデルを生成する。
【0026】
IPアドレスログ収集サーバ100から取得する複数のデータセットは、特定モデルの更新タイミングから遡って所定期間中に収集されたIPアドレスとそれに対応する地域情報とする。例えば、モデル生成部11は、特定モデルの更新タイミングが属する日から数日前まで、数週間前まで、あるいは数ヵ月前までの日付情報と紐づけられているIPアドレスと地域情報とをIPアドレスログ収集サーバ100から取得する。
【0027】
本実施形態において、モデル生成部11は、特定モデルを生成する機能として複数の機能を有する。モデル生成部11は、第1の機能として、IPアドレスログ収集サーバ100から取得されるIPアドレス(サブネットマスクによる丸めが無い状態のIPアドレス)と地域情報との組み合わせを学習用データとして用い、当該学習用データを用いた機械学習処理により特定モデル(以下、マスク非対応の特定モデルという)を生成する。この場合、IPアドレスログ収集サーバ100から取得される地域情報そのものが、IPアドレスの使用地域に関する紐付情報に相当する。
【0028】
第1の機能による機械学習では、モデル生成部11は、丸めの無いIPアドレスを特徴量とし、目的変数を都道府県コードとして機械学習を実行することにより、都道府県コードが切り替わるIPアドレスのレンジ(以下、IPレンジという)を学習する。ここでは、例えば特定モデルの更新タイミングが属する日から数週間前まであるいは数ヵ月前までの日付情報と紐づけられているIPアドレスと都道府県コードとを用いて機械学習を行う。ここで使用する学習モデルは、例えば決定木系のモデルであるが、これに限定されるものではない。
【0029】
図3は、第1の機能で学習されるIPレンジの例を模式的に示す図である。図3では、異なる都道府県コードに対するIPレンジが互いに重複しない状態を示しているが、IPアドレスログ収集サーバ100から取得するデータセットの内容次第では重複することもある。例えば、1つの動的IPアドレスの使用地域が複数の都道府県にまたがる場合は、IPレンジに重複が生じる。IPレンジに重複がある特定モデルを使ってIPアドレスの使用地域を予測すると、予測精度は低下する。例えば、IPレンジが3県にまたがっている場合、予測の正解率は33%程度となる。
【0030】
また、モデル生成部11は、第2~第4の機能として、IPアドレスログ収集サーバ100から取得されるIPアドレスに対してサブネットマスクをかけるとともに、当該サブネットマスクにより数ビットが丸められたIPアドレスがどの地域情報(都道府県コード)に該当するかの確率的統計情報を生成する。そして、当該丸められたIPアドレスと確率的統計情報との組み合わせを学習用データとして用い、当該学習用データを用いた機械学習処理により特定モデル(以下、マスク対応の特定モデルという)を生成する。この場合、IPアドレスログ収集サーバ100から取得されるデータセットに基づいて生成される確率的統計情報が、IPアドレスの使用地域に関する紐付情報に相当する。
【0031】
第2~第4の機能によりマスク対応の特定モデルを生成する場合、モデル生成部11の学習用データ生成部11Aは、IPアドレスログ収集サーバ100から取得されるIPアドレスに対してサブネットマスクをかけることにより、IPアドレスの下位数ビットを丸める。また、学習用データ生成部11Aは、サブネットマスクにより数ビットが丸められたIPアドレスと、当該IPアドレスの使用地域を表す地域情報(IPアドレスログ収集サーバ100から取得される地域情報)との複数の組み合わせに基づいて、丸められたIPアドレスがどの地域情報に該当するかの確率的統計情報を生成する。学習部11Bは、丸められたIPアドレスと確率的統計情報との組み合わせを学習用データとして用い、当該学習用データを用いた機械学習処理によりマスク対応の特定モデルを生成する。
【0032】
上述の特許文献1に開示されている従来技術では、ある決められた特定のサブネットマスクごとに代表となる地域情報を決めている。これに対し、本実施形態では、特定のサブネットマスクで丸められたIPアドレスに対して、所定期間での各都道府県コードの含有率を確率的統計情報として算出し、この確率的統計情報を用いて機械学習を行うようにしている。確率的統計情報を用いることにより、代表地域をあらかじめ決めておくことが不要であり、また機械学習の学習精度が向上しやすくなるというメリットもある。なお、確率的統計情報と併せてIPアドレスそのものを機械学習に用いるようにしてもよい。このようにすることで、機械学習の精度を高めることが可能である。
【0033】
本実施形態において、モデル生成部11は、まず第1の機能によりマスク非対応の特定モデルを生成し、その学習精度が所定のレベルを超えない場合に、第2~4の機能によりマスク対応の特定モデルを生成する。第2~4の機能については以下に詳しく説明するが、モデル生成部11は、まず第2の機能によりマスク対応の特定モデルを生成し、その学習精度が所定のレベルを超えない場合に、第3の機能によりマスク対応の特定モデルを生成する。また、第3の機能により生成されたマスク対応の特定モデルの学習精度が所定のレベルを超えない場合に、第4の機能によりマスク対応の特定モデルを生成する。モデル生成部11は、第1~第4の機能のどの段階まで進んだかを示す段階情報をマスク処理部13に格納する。
【0034】
特定モデルの学習精度が所定のレベルを超えるか否かの判定は、例えば以下のようにして行うことが可能である。すなわち、生成された特定モデルに対し、学習用データとして使用したIPアドレスを入力することにより、地域情報(都道府県コード)を特定モデルから出力する。そして、特定モデルから出力された地域情報と、学習用データとして使用したIPアドレスに関連付けられている地域情報とが一致する場合に正解とし、全体数に対する正解数の割合を正解率として算出する。その正解率が所定の閾値(例えば80%)を超えるか否かを判定し、正解率が閾値を超える場合に学習精度が所定のレベルを超えるとする。
【0035】
なお、IPアドレスログ収集サーバ100から取得したデータセットを学習用と検証用とに分けて、学習用のデータセットを用いて特定モデル生成した後、検証用のデータセットを用いて正解率を算出するようにしてもよい。
【0036】
以下に、第2の~第4の機能について詳しく説明する。モデル生成部11は、第2の機能として、丸められたIPアドレスの有効ビット数をMビットとするサブネットマスク/Mに基づきマスク対応の特定モデル(以下、マスク/M対応の特定モデルという)を生成する。この場合、学習用データ生成部11Aは、IPアドレスログ収集サーバ100から取得されるIPアドレスに対してサブネットマスク/Mをかけることにより、IPアドレスの下位数ビットを丸めて有効ビット数が上位MビットのIPアドレスを生成する。
【0037】
また、学習用データ生成部11Aは、サブネットマスク/Mにより数ビットが丸められたIPアドレスと、当該IPアドレスの使用地域を表す地域情報との複数の組み合わせに基づいて、丸められたIPアドレスがどの地域情報に該当するかの確率的統計情報を生成する。学習部11Bは、丸められたIPアドレスと確率的統計情報との組み合わせを学習用データとして用い、当該学習用データを用いた機械学習処理によりマスク/M対応の特定モデルを生成する。
【0038】
図4は、マスク/M対応の特定モデルを生成する第2の機能の処理内容を説明するための模式図である。図4(a)は、IPアドレスに対してサブネットマスク/Mをかける処理の例を示している。図4(a)において、一番左の列は都道府県コード、真ん中の列はサブネットマスクによる丸めが無い状態のIPアドレス(10進数)であり、これらはIPアドレスログ収集サーバ100から取得された情報である。ここでは、例えば特定モデルの更新タイミングが属する日から数週間前まであるいは数ヵ月前までの日付情報と紐づけられているIPアドレスと都道府県コードとを用いる。
【0039】
一番右の列は、サブネットマスク/Mにより下位数ビットが丸められたIPアドレスを示している。ここでは、M=24とし、32ビットのIPアドレスに対して下位8ビットを丸めることによって有効ビット数が上位24ビットのIPアドレス(以下、IPアドレス/24またはIP/24と記す)を生成した例を示している。
【0040】
図4(b)は、図4(a)の情報から生成される確率的統計情報の例を示している。ここでは、図4(a)の一番右の列に示すIPアドレス/24と、図4(a)の一番左の列に示す都道府県コードとの複数の組み合わせに基づいて、IPアドレス/24がどの地域情報に該当するかの確率的統計情報を生成する。
【0041】
例えば、図4(b)の一番上のIPアドレス/24=“1.66.100.0”については、都道府県コード“3”に該当する可能性が33%(都道府県コード“3”に該当するIPアドレス/24が他に2つあることを意味する)、都道府県コード“47”に該当する可能性が33%であることが示されている。その次のIPアドレス/24=“1.66.101.0”については、都道府県コード“2”に該当する可能性が33%であることが示されている。なお、他のIPアドレス/24については確率の図示を省略している。
【0042】
学習部11Bは、図4(b)の一番左の列に示すIPアドレス/24と、図4(b)の2列目以降に示す確率的統計情報との組み合わせを学習用データとして用い、当該学習用データを用いた機械学習処理によりマスク/24対応の特定モデルを生成する。上述したように、図4(a)の真ん中の列に示すIPアドレスを更に組み合わせて学習用データを構成するようにしてもよい。
【0043】
モデル生成部11は、第3の機能として、丸められたIPアドレスの有効ビット数をNビット(ただし、M<N)とするサブネットマスク/Nに基づきマスク対応の特定モデル(以下、マスク/N対応の特定モデルという)を生成する。この場合、学習用データ生成部11Aは、IPアドレスログ収集サーバ100から取得されるIPアドレスに対してサブネットマスク/Nをかけることにより、IPアドレスの下位数ビットを丸めて有効ビット数が上位NビットのIPアドレスを生成する。
【0044】
また、学習用データ生成部11Aは、サブネットマスク/Nにより数ビットが丸められたIPアドレスと、当該IPアドレスの使用地域を表す地域情報との複数の組み合わせに基づいて、丸められたIPアドレスがどの地域情報に該当するかの確率的統計情報を生成する。学習部11Bは、丸められたIPアドレスと確率的統計情報との組み合わせを学習用データとして用い、当該学習用データを用いた機械学習処理によりマスク/N対応の特定モデルを生成する。
【0045】
図5は、マスク/N対応の特定モデルを生成する第3の機能の処理内容を説明するための模式図である。図5(a)は、IPアドレスに対してサブネットマスク/Nをかける処理の例を示している。図5(a)において、一番左の列は都道府県コード、真ん中の列はサブネットマスクによる丸めが無い状態のIPアドレス(10進数)であり、これらはIPアドレスログ収集サーバ100から取得された情報である。ここでは、例えば特定モデルの更新タイミングが属する日から数週間前まであるいは数ヵ月前までの日付情報と紐づけられているIPアドレスと都道府県コードとを用いる。
【0046】
一番右の列は、サブネットマスク/Nにより下位数ビットが丸められたIPアドレスを示している。ここでは、N=25とし、32ビットのIPアドレスに対して下位7ビットを丸めることによって有効ビット数が上位25ビットのIPアドレス(以下、IPアドレス/25またはIP/25と記す)を生成した例を示している。
【0047】
図5(b)は、図5(a)の情報から生成される確率的統計情報の例を示している。ここでは、図5(a)の一番右の列に示すIPアドレス/25と、図5(a)の一番左の列に示す都道府県コードとの複数の組み合わせに基づいて、IPアドレス/25がどの地域情報に該当するかの確率的統計情報を生成する。IPアドレスの有効ビット数を増やすことにより、確率的統計情報で示される確率分布のバラツキは小さくなる。
【0048】
例えば、IPアドレス/24において確率が33%と示されていた都道府県コード“3”に関して、IPアドレス/25においては“1.66.100.0”が33%で、“1.66.100.125”が0%であることが示されている。また、IPアドレス/24において確率が33%と示されていた都道府県コード“47”に関して、IPアドレス/25においては“1.66.100.0”が0%で、“1.66.100.125”が33%であることが示されている。なお、他のIPアドレス/25については確率の図示を省略している。
【0049】
学習部11Bは、図5(b)の一番左の列に示すIPアドレス/25と、図5(b)の2列目以降に示す確率的統計情報との組み合わせを学習用データとして用い、当該学習用データを用いた機械学習処理によりマスク/25対応の特定モデルを生成する。上述したように、図5(a)の真ん中の列に示すIPアドレスを更に組み合わせて学習用データを構成するようにしてもよい。
【0050】
モデル生成部11は、第4の機能として、第3の機能によりマスク/N対応の特定モデルを生成する場合に使用するIPアドレスの収集期間よりも短い収集期間のIPアドレスを使用して、第3の機能と同様にマスク/N対応の特定モデルを生成する。上述した第3の機能では、第1の所定期間中に収集されたIPアドレス(例えば、特定モデルの更新タイミングが属する日から数週間前まであるいは数ヵ月前までの日付情報と紐づけられているIPアドレス)が丸められたIPアドレスと確率的統計情報との組み合わせから成る学習用データを用いた機械学習処理により第1のマスク/N対応の特定モデルを生成する。
【0051】
これに対し、第4の機能では、第1の所定期間より短い第2の所定期間中に収集されたIPアドレス(例えば、特定モデルの更新タイミングが属する日から数日前までの日付情報と紐づけられているIPアドレス)が丸められたIPアドレスと確率的統計情報との組み合わせから成る学習用データを用いた機械学習処理により第2のマスク/N対応の特定モデルを生成する。
【0052】
学習用データに使用するIPアドレスの対象収集期間を短くすることにより、確率的統計情報で示される確率分布のバラツキは小さくなる。モバイル系の端末で使用されるIPアドレスは数日ですぐ変わってしまうことが多いので、短期間のIPアドレスを対象として学習用データを生成することによって確率分布のバラツキを小さくすることは、モバイル系の端末で使用されるIPアドレスの使用地域を特定するための特定モデルを生成するという点で有効である。
【0053】
特定対象IP取得部12は、使用地域を特定したいIPアドレス(以下、地域特定対象のIPアドレスという)を取得する。例えば、特定対象IP取得部12は、IPアドレスログ収集サーバ100からIPアドレス記憶部101に記憶されている複数のIPアドレスを地域特定対象のIPアドレスとして取得する。例えば、特定対象IP取得部12は、学習用データとして使われていない直近のIPアドレスをIPアドレスログ収集サーバ100から取得する。
【0054】
なお、地域特定対象のIPアドレスの取得元は、学習用データに用いるIPアドレスの取得元と同じであることを要するものではない。すなわち、特定対象IP取得部12は、IPアドレスログ収集サーバ100とは異なる別のルートから地域特定対象のIPアドレスを取得するようにしてもよい。この場合、取得するIPアドレスは、任意の日付情報と紐づけられているIPアドレスとしてよい。
【0055】
マスク処理部13は、特定対象IP取得部12により取得された地域特定対象のIPアドレスに対してサブネットマスクをかける処理を行う。ここで、マスク処理部13は、モデル生成部11によりマスク/M対応の特定モデルが生成されてそれがモデル記憶部14Aに記憶された場合は、特定対象IP取得部12により取得された地域特定対象のIPアドレスに対してサブネットマスク/Mをかけることにより、有効ビット数が上位MビットのIPアドレスを生成する。また、マスク処理部13は、モデル生成部11により第1のマスク/N対応の特定モデルまたは第2のマスク/N対応の特定モデルが生成されてそれがモデル記憶部14Aに記憶された場合は、地域特定対象のIPアドレスに対してサブネットマスク/Nをかけることにより、有効ビット数が上位NビットのIPアドレスを生成する。
【0056】
地域特定部14は、地域特定対象のIPアドレス(特定対象IP取得部12により取得された丸めの無いIPアドレスまたはマスク処理部13により下位数ビットが丸められたIPアドレス)をモデル記憶部14Aの特定モデルに入力し、地域特定対象のIPアドレスに対応する地域情報を特定モデルから出力する。ここで、モデル記憶部14Aには、マスク非対応の特定モデル、マスク/M対応の特定モデル、第1のマスク/N対応の特定モデルまたは第2のマスク/N対応の特定モデルの何れかが記憶されており、地域特定部14はこの何れかの特定モデルを用いて、IPアドレスに対応する地域情報を出力する。
【0057】
すなわち、モデル生成部11により生成されたマスク非対応の特定モデルについて学習精度が所定のレベルを超えたために、マスク対応の特定モデルが生成されなかった場合、地域特定部14は、モデル記憶部14Aに記憶されたマスク非対応の特定モデルを用いて、IPアドレスに対応する地域情報を出力する。一方、モデル生成部11により生成されたマスク非対応の特定モデルについて学習精度が所定のレベルを超えなかったために、マスク対応の特定モデルが生成された場合、地域特定部14は、モデル記憶部14Aに記憶されたマスク対応の特定モデルを用いて、IPアドレスに対応する地域情報を出力する。
【0058】
マスク対応の特定モデルに関して、モデル生成部11により生成されたマスク/M対応の特定モデルについて学習精度が所定のレベルを超えたために、マスク/N対応の特定モデルが生成されなかった場合、地域特定部14は、モデル記憶部14Aに記憶されたマスク/M対応の特定モデルを用いて、IPアドレスに対応する地域情報を出力する。一方、モデル生成部11により生成されたマスク/M対応の特定モデルについて学習精度が所定のレベルを超えなかったために、マスク/N対応の特定モデルが生成された場合、地域特定部14は、モデル記憶部14Aに記憶されたマスク/N対応の特定モデルを用いて、IPアドレスに対応する地域情報を出力する。
【0059】
マスク/N対応の特定モデルに関して、モデル生成部11により生成された第1のマスク/N対応の特定モデルについて学習精度が所定のレベルを超えたために、第2のマスク/N対応の特定モデルが生成されなかった場合、地域特定部14は、モデル記憶部14Aに記憶された第1のマスク/N対応の特定モデルを用いて、IPアドレスに対応する地域情報を出力する。一方、モデル生成部11により生成された第1のマスク/N対応の特定モデルについて学習精度が所定のレベルを超えなかったために、第2のマスク/N対応の特定モデルが生成された場合、地域特定部14は、モデル記憶部14Aに記憶された第2のマスク/N対応の特定モデルを用いて、IPアドレスに対応する地域情報を出力する。
【0060】
図6は、上記のように構成した本実施形態の地域特定システム10による特定モデル生成に関する動作例を示すフローチャートである。図6に示すフローチャートは、特定モデルの更新タイミング(例えば、1週間に1回のタイミング)になったときに、バッチ処理として自動的に、あるいはユーザからの指示に応じて開始する。
【0061】
まず、モデル生成部11は、第1の機能によりマスク非対応の特定モデルを生成する(ステップS1)。すなわち、モデル生成部11は、IPアドレスログ収集サーバ100から取得した第1の所定期間中のデータセット(サブネットマスクによる丸めが無い状態のIPアドレスと地域情報との組み合わせ)を学習用データとして用い、当該学習用データを用いた機械学習処理によりマスク非対応の特定モデルを生成する。そして、モデル生成部11は、生成したマスク非対応の特定モデルにIPアドレスを入力した場合に正解の地域情報が得られる正解率を算出し、学習精度が所定のレベルを超えるか否かを判定する(ステップS2)。
【0062】
ここで、学習精度が所定のレベルを超える場合、モデル生成部11は生成したマスク非対応の特定モデルを地域特定部14のモデル記憶部14Aに記憶するとともに(ステップS14)、第1の機能による特定モデルの生成で終了したことを示す段階情報をマスク処理部13に格納し(ステップS15)、図6に示すフローチャートの処理を終了する。一方、学習精度が所定のレベルを超えない場合、モデル生成部11は、第2の機能によりマスク/M対応の特定モデルを生成する(ステップS3~S5)。
【0063】
すなわち、学習用データ生成部11Aは、IPアドレスログ収集サーバ100から第1の所定期間中のデータセットとして取得したIPアドレスに対してサブネットマスク/Mをかけることにより、IPアドレスの下位数ビットを丸めて有効ビット数が上位MビットのIPアドレスを生成する(ステップS3)。また、学習用データ生成部11Aは、数ビットが丸められたIPアドレスと、当該IPアドレスの使用地域を表す地域情報との複数の組み合わせに基づいて、丸められたIPアドレスがどの地域情報に該当するかの確率的統計情報を生成する(ステップS4)。
【0064】
そして、学習部11Bは、丸められたIPアドレスと確率的統計情報との組み合わせを学習用データとして用い、当該学習用データを用いた機械学習処理によりマスク/M対応の特定モデルを生成する(ステップS5)。次いで、モデル生成部11は、生成したマスク/M対応の特定モデルにIPアドレスを入力した場合に正解の地域情報が得られる正解率を算出し、学習精度が所定のレベルを超えるか否かを判定する(ステップS6)。
【0065】
学習精度が所定のレベルを超える場合、モデル生成部11は生成したマスク/M対応の特定モデルを地域特定部14のモデル記憶部14Aに記憶するとともに(ステップS14)、第2の機能による特定モデルの生成で終了したことを示す段階情報をマスク処理部13に格納し(ステップS15)、図6に示すフローチャートの処理を終了する。一方、学習精度が所定のレベルを超えない場合、モデル生成部11は、第3の機能により第1のマスク/N対応の特定モデルを生成する(ステップS7~S9)。
【0066】
すなわち、学習用データ生成部11Aは、IPアドレスログ収集サーバ100から第1の所定期間中のデータセットとして取得したIPアドレスに対してサブネットマスク/Nをかけることにより、IPアドレスの下位数ビットを丸めて有効ビット数が上位NビットのIPアドレスを生成する(ステップS7)。また、学習用データ生成部11Aは、数ビットが丸められたIPアドレスと、当該IPアドレスの使用地域を表す地域情報との複数の組み合わせに基づいて、丸められたIPアドレスがどの地域情報に該当するかの確率的統計情報を生成する(ステップS8)。
【0067】
そして、学習部11Bは、丸められたIPアドレスと確率的統計情報との組み合わせを学習用データとして用い、当該学習用データを用いた機械学習処理により第1のマスク/N対応の特定モデルを生成する(ステップS9)。次いで、モデル生成部11は、生成した第1のマスク/N対応の特定モデルにIPアドレスを入力した場合に正解の地域情報が得られる正解率を算出し、学習精度が所定のレベルを超えるか否かを判定する(ステップS10)。
【0068】
学習精度が所定のレベルを超える場合、モデル生成部11は生成した第1のマスク/N対応の特定モデルを地域特定部14のモデル記憶部14Aに記憶するとともに(ステップS14)、第3の機能による特定モデルの生成で終了したことを示す段階情報をマスク処理部13に格納し(ステップS15)、図6に示すフローチャートの処理を終了する。一方、学習精度が所定のレベルを超えない場合、モデル生成部11は、第4の機能により第2のマスク/N対応の特定モデルを生成する(ステップS11~S13)。
【0069】
すなわち、学習用データ生成部11Aは、IPアドレスログ収集サーバ100から第2の所定期間中のデータセットとして取得したIPアドレスに対してサブネットマスク/Nをかけることにより、IPアドレスの下位数ビットを丸めて有効ビット数が上位NビットのIPアドレスを生成する(ステップS14)。なお、ここでは、ステップS7において第1の所定期間中のデータセットから生成した上位NビットのIPアドレスの中から、第2の所定期間中の上位NビットのIPアドレスを抽出するようにしてもよい。
【0070】
また、学習用データ生成部11Aは、数ビットが丸められたIPアドレスと、当該IPアドレスの使用地域を表す地域情報との複数の組み合わせに基づいて、丸められたIPアドレスがどの地域情報に該当するかの確率的統計情報を生成する(ステップS12)。
【0071】
そして、学習部11Bは、丸められたIPアドレスと確率的統計情報との組み合わせを学習用データとして用い、当該学習用データを用いた機械学習処理により第2のマスク/N対応の特定モデルを生成する(ステップS13)。次いで、モデル生成部11は、生成した第2のマスク/N対応の特定モデルを地域特定部14のモデル記憶部14Aに記憶するとともに(ステップS14)、第4の機能による特定モデルの生成で終了したことを示す段階情報をマスク処理部13に格納し(ステップS15)、図6に示すフローチャートの処理を終了する。
【0072】
図7は、上記のように構成した本実施形態の地域特定システム10による地域特定に関する動作例を示すフローチャートである。図7に示すフローチャートは、バッチ処理として任意のタイミング(例えば、毎日の所定時刻)になったときに自動的に、あるいは任意のタイミングでユーザからの指示に応じて開始する。
【0073】
まず、特定対象IP取得部12は、使用地域を特定したい地域特定対象のIPアドレスを取得する(ステップS21)。次に、マスク処理部13は、モデル生成部11により格納された段階情報を参照することにより、特定モデルの生成処理が第1~第4の機能のどの段階まで進んだかを確認する。ここで、特定モデルの生成処理が第2~第4の機能の段階まで進んだか否かを判定し(ステップS22)、進んでいた場合には、ステップS21で取得された地域特定対象のIPアドレスに対してサブネットマスクをかける(ステップS23)。一方、特定モデルの生成処理が第1の機能の段階で終わっていた場合、処理はステップS24にジャンプする。
【0074】
次いで、地域特定部14は、地域特定対象のIPアドレス(ステップS21で特定対象IP取得部12により取得された丸めの無いIPアドレス、またはステップS22でマスク処理部13により下位数ビットが丸められたIPアドレス)をモデル記憶部14Aの特定モデルに入力し、地域特定対象のIPアドレスに対応する地域情報を特定モデルから出力する(ステップS24)。これにより、図7に示すフローチャートの処理が終了する。
【0075】
以上詳しく説明したように、本実施形態では、IPアドレスと当該IPアドレスの使用地域を示す地域情報との組み合わせ、または、IPアドレスをサブネットマスクにより数ビット丸めたIPアドレスと、当該丸めたIPアドレスの使用地域に関する確率的統計情報との組み合わせから成る学習用データを用いた機械学習処理を繰り返し実行することにより、IPアドレスが入力された際に地域情報が出力されるように構成された特定モデルを逐次更新する。そして、地域特定対象のIPアドレスを特定モデルに入力し、IPアドレスに対応する地域情報を特定モデルから出力するようにしている。
【0076】
このように構成した本実施形態によれば、IPアドレスまたはこれをサブネットマスクにより数ビットを丸めたIPアドレスとそのIPアドレスの使用地域との関係性を反映して生成される特定モデルが逐次更新され、更新された直近の特定モデルを用いてIPアドレスから地域情報が特定されるので、動的IPアドレスについても、当該動的IPアドレスが使用されている地域を特定することが可能である。
【0077】
また、本実施形態によれば、サブネットマスクにより数ビットが丸められたIPアドレスに対して代表地域をあらかじめ決めておく必要がなく、丸められたIPアドレスを含む学習用データを用いた機械学習処理により生成された特定モデルを用いることで、丸められたIPアドレスに対する地域情報を特定することも可能となる。
【0078】
また、本実施形態によれば、マスク非対応の特定モデルで地域情報ができない場合でも、マスク対応の特定モデルを用いることで、地域情報を特定することも可能となる。また、本実施形態によれば、IPアドレスの対象収集期間を短くして構成した学習用データを用いてマスク対応の特定モデルを生成することにより、数日単位で変更されることの多いモバイル系の端末で使用されるIPアドレスの使用地域を正しく特定できる可能性を高めることも可能となる。
【0079】
なお、上記実施形態では、モデル生成部11が特定モデルの生成に関して第1の機能~第4の機能の4つの機能を備え、4タイプの特定モデルを生成する例について説明したが、これらのうち何れか1つ、2つまたは3つの機能を備える構成としてもよい。また、上記実施形態では、サブネットマスクのビット数M,NとしてM=24,N=25の例を示したが、この数値は一例であり、これに限定されるものではない。また、サブネットマスクのビット数として3種類以上を用いるか、学習用データに使用するIPアドレスの所定期間として3種類以上の期間を用いるか、またはそれらを組み合わせることにより、5タイプ以上の特定モデルを生成するようにしてもよい。
【0080】
また、上記実施形態では、特定モデルの生成と、生成した特定モデルを用いた地域情報の特定とを非同期のタイミングで行う例について説明したが、同じタイミングで行うようにしてもよい。例えば、モデル生成部11が1週間に1回の頻度で特定モデルを更新し、更新が終わった後に引き続いて地域特定部14が地域情報の特定を行うようにしてもよい。
【0081】
また、上記実施形態では、地域情報として都道府県コードを用いる例について説明したが、本発明はこれに限定されない。例えば、市区町村コードを用いるようにしてもよい。
【0082】
また、上記実施形態では、サブネットマスクをかけたIPアドレスを用いた機械学習処理により特定モデルを生成した場合に、地域特定対象のIPアドレスについてもサブネットマスクをかけて特定モデルに入力する構成について説明したが、本発明はこれに限定されない。例えば、地域特定対象のIPアドレスについてはサブネットマスクをかけずに特定モデルに入力するようにしてもよい。
【0083】
その他、上記実施形態は、何れも本発明を実施するにあたっての具体化の一例を示したものに過ぎず、これによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその要旨、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【0084】
10 地域特定システム
11 モデル生成部
11A 学習用データ生成部
11B 学習部
12 特定対象IP取得部
13 マスク処理部
14 地域特定部
14A モデル記憶部
図1
図2
図3
図4
図5
図6
図7