(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2024-03-21
(45)【発行日】2024-03-29
(54)【発明の名称】プログラム、情報処理装置、および情報処理方法
(51)【国際特許分類】
G06F 21/31 20130101AFI20240322BHJP
G06Q 20/38 20120101ALI20240322BHJP
【FI】
G06F21/31 360
G06Q20/38 310
(21)【出願番号】P 2023110470
(22)【出願日】2023-07-05
【審査請求日】2023-07-05
【早期審査対象出願】
(73)【特許権者】
【識別番号】519110124
【氏名又は名称】PayPay株式会社
(74)【代理人】
【識別番号】100149548
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100154852
【氏名又は名称】酒井 太一
(74)【代理人】
【識別番号】100181124
【氏名又は名称】沖田 壮男
(74)【代理人】
【識別番号】100194087
【氏名又は名称】渡辺 伸一
(72)【発明者】
【氏名】東海林 勝進
【審査官】田上 隆一
(56)【参考文献】
【文献】特開2020-166329(JP,A)
【文献】特開2021-009571(JP,A)
【文献】特開2019-008369(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/31
G06Q 10/00-99/00
(57)【特許請求の範囲】
【請求項1】
情報処理装置に、
ログインを伴って端末装置を介して提供されるネットワークサービスに対する、第1利用者の操作ログを取得する処理と、
前記ネットワークサービスに対する、複数の第2利用者の操作ログ
であって、どの第2利用者が操作を行ったかが既知の操作ログに基づくデータを学習データ、
前記どの第2利用者が操作を行ったかを示す情報を教師データとして学習された学習済モデルに対して、前記第1利用者の操作ログに基づく入力データを入力することで得られる前記第1利用者の操作特徴ベクトルを取得する処理と、
を繰り返し実行させ、
第1観測期間において前記学習済モデルを用いて取得された前記第1利用者の操作特徴ベクトルに対して統計処理を行った統計処理済ベクトルと、第2観測期間において前記学習済モデルを用いて取得された前記第1利用者の操作特徴ベクトルとを比較することで、前記第2観測期間において前記第1利用者がなりすましによる不正なログインを行っているか否かを表す情報を導出させる、
ためのプログラム。
【請求項2】
前記学習済モデルは、入力層と出力層との間に存在する隠れ層における値を、前記操作特徴ベクトルとして出力するものである、
請求項1記載のプログラム。
【請求項3】
前記隠れ層は、前記出力層の一つ手前の層である、
請求項2記載のプログラム。
【請求項4】
前記情報処理装置に、更に、
前記第1利用者の操作ログを分散表現化することで前記入力データを生成する処理を実行させる、
ための請求項1記載のプログラム。
【請求項5】
前記情報処理装置に、更に、
前記ネットワークサービスに対する、複数の第2利用者の操作ログに基づくデータを学習データ、どの第2利用者が操作を行ったかを示す情報を教師データとして前記学習済モデルを生成する処理を実行させる、
ための請求項1記載のプログラム。
【請求項6】
前記情報処理装置に、更に、
前記複数の第2利用者の操作ログを分散表現化することで前記学習データを生成する処理を実行させる、
ための請求項
5記載のプログラム。
【請求項7】
ログインを伴って端末装置を介して提供されるネットワークサービスに対する、第1利用者の操作ログを取得する操作ログ取得部と、
前記ネットワークサービスに対する、複数の第2利用者の操作ログ
であって、どの第2利用者が操作を行ったかが既知の操作ログに基づくデータを学習データ、
前記どの第2利用者が操作を行ったかを示す情報を教師データとして学習された学習済モデルに対して、前記第1利用者の操作ログに基づく入力データを入力することで得られる前記第1利用者の操作特徴ベクトルを取得する操作特徴ベクトル取得部と、
を備え、
前記操作ログ取得部と前記操作特徴ベクトル取得部は繰り返し処理を行い、
第1観測期間において前記学習済モデルを用いて取得された前記第1利用者の操作特徴ベクトルに対して統計処理を行った統計処理済ベクトルと、第2観測期間において前記学習済モデルを用いて取得された前記第1利用者の操作特徴ベクトルとを比較することで、前記第2観測期間において前記第1利用者がなりすましによる不正なログインを行っているか否かを表す情報を導出する導出部を
更に備える、
情報処理装置。
【請求項8】
情報処理装置が、
ログインを伴って端末装置を介して提供されるネットワークサービスに対する、第1利用者の操作ログを取得する処理と、
前記ネットワークサービスに対する、複数の第2利用者の操作ログ
であって、どの第2利用者が操作を行ったかが既知の操作ログに基づくデータを学習データ、
前記どの第2利用者が操作を行ったかを示す情報を教師データとして学習された学習済モデルに対して、前記第1利用者の操作ログに基づく入力データを入力することで得られる前記第1利用者の操作特徴ベクトルを取得する処理と、
を繰り返し実行し、
第1観測期間において前記学習済モデルを用いて取得された前記第1利用者の操作特徴ベクトルに対して統計処理を行った統計処理済ベクトルと、第2観測期間において前記学習済モデルを用いて取得された前記第1利用者の操作特徴ベクトルとを比較することで、前記第2観測期間において前記第1利用者がなりすましによる不正なログインを行っているか否かを表す情報を導出する、
情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラム、情報処理装置、および情報処理方法に関する。
【背景技術】
【0002】
従来、ネットワークサービスにおける不正な利用を発見するための種々の試みがなされている。これに関連し、金融取引に関連するリスクの解析及び定量化を容易にするためのコンピュータ化されたリスク管理方法及びリスク管理システムの発明が開示されている(特許文献1)。このシステムは、基準に対して適用された重み付けされたアルゴリズムに基づいて、リスク指標又は他の格付けを生成する。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
従来の技術では、なりすましによってネットワークサービスを利用している利用者を精度よく推定するための処理を行うことができない場合があった。
【0005】
本発明は、このような事情を考慮してなされたものであり、なりすましによってネットワークサービスを利用している利用者を精度よく推定するための処理を行うことができるプログラム、情報処理装置、および情報処理方法を提供することを目的の一つとする。
【課題を解決するための手段】
【0006】
本発明の一態様は、情報処理装置に、ログインを伴って端末装置を介して提供されるネットワークサービスに対する、第1利用者の操作ログを取得する処理と、前記ネットワークサービスに対する、複数の第2利用者の操作ログに基づくデータを学習データ、どの第2利用者が操作を行ったかを示す情報を教師データとして学習された学習済モデルに対して、前記第1利用者の操作ログに基づく入力データを入力することで得られる前記第1利用者の操作特徴ベクトルを取得する処理と、前記第1利用者の操作特徴ベクトルに基づいて、前記第1利用者がなりすましによる不正なログインを行っているか否かを表す情報を導出する処理と、を実行させるためのプログラムである。
【発明の効果】
【0007】
本発明の一態様によれば、なりすましによってネットワークサービスを利用している利用者を精度よく推定するための処理を行うことができるプログラム、情報処理装置、および情報処理方法を提供することができる。
【図面の簡単な説明】
【0008】
【
図1】電子決済サービスが実現されるための構成の一例を示す図である。
【
図2】電子決済の大まかな流れを例示したシーケンス図(その1)である。
【
図3】電子決済の大まかな流れを例示したシーケンス図(その2)である。
【
図4】第1実施形態に係る決済サーバ100の構成図である。
【
図5】利用者情報172の内容の一例を示す図である。
【
図6】加盟店/店舗情報176の内容の一例を示す図である。
【
図9】第1前処理部220の処理内容の一例を示す図である。
【
図10】学習済モデル274の一例を示す図である。
【
図11】学習部250の機能について説明するための図である。
【
図12】導出部240が入出力装置260に表示させる画像の一例を示す図である。
【
図13】導出部240が自動的に警告表示を行う処理について説明するための図である。
【発明を実施するための形態】
【0009】
以下、図面を参照し、本発明のプログラム、情報処理装置、および情報処理方法の実施形態について説明する。以下に登場する「サーバ」、「管理装置」「情報提供装置」などの、利用者にサービスを提供したり内部解析を行ったりするための各種装置は、分散化された装置群によって実現されてよく、それぞれの装置を運用する事業者は異なってもよい。また装置のハードウェアの保有者(クラウドサーバの提供者)と実質的な運用を行う事業者も異なってよい。まず、ネットワークサービスの一例である電子決済サービスについて説明する。なお、本発明は、電子決済サービスに限らず、ログインを伴って提供されるネットワークサービスであれば、如何なるネットワークサービスにも適用可能である。
【0010】
[電子決済サービス]
図1は、電子決済サービスが実現されるための構成の一例を示す図である。電子決済サービスは、決済サーバ100を中心として実現される。決済サーバ100は、例えば、一以上の利用者端末装置10、一以上の第1店舗端末装置50、及び一以上の第2店舗端末装置70のそれぞれとネットワークNWを介して通信する。ネットワークNWは、例えば、インターネット、LAN(Local Area Network)、無線基地局、プロバイダ装置などを含む。情報処理装置200は、例えば、決済サーバ100と通信可能である。これに代えて、情報処理装置200は、決済サーバ100の内部機能であってもよい。
【0011】
利用者端末装置10は、例えば、スマートフォンやタブレット端末等の可搬型端末装置である。利用者端末装置10は、少なくとも、光学読取機能、通信機能、表示機能、入力受付機能、プログラム実行機能を有するコンピュータ装置である。以下の説明では、これらの機能を実現するための構成をそれぞれカメラ、通信装置、タッチパネル、CPU(Central Processing Unit)等と称する。利用者端末装置10では、CPU等のプロセッサにより決済アプリ20が実行されることで、決済サーバ100と連携して電子決済サービスを利用者に提供するように動作する。決済アプリ20は、例えば、アプリケーションストアから利用者端末装置10にインストールされ、カメラ、通信装置、タッチパネルなどを制御する。決済アプリ20は、初回の起動時にはアカウントID(電話番号)、およびパスワードを利用者が入力することで電子決済サービスにログインした状態となり、次回以降は利用者端末装置10に保持されたアカウントIDとパスワードで自動的にログインした状態となる。このため、例えば偽のサイトにアカウントIDとパスワードを入力させてそれらの情報を不正に取得する手法(ATO(Account Take Over))によって、アカウントIDとパスワードが盗み取られた場合、なりすましによる不正なログインがなされることがあり得る。特に電子決済サービスのような金融系のネットワークサービスにおいて、送金や買い物など金銭の授受を伴うアクション(イベント)が多く発生するため、不正なログインは可能な限り早期に発見して対処する必要性が高い。なお、新たな利用者端末装置からログインがあった場合にSMS(Short Message Service)認証を行うことで、真の利用者が不正なログインに気付ける可能性はあるが、ショートメッセージ内のワンタイムコードを入力させるフィッシングサイトによって回避される可能性は否定できない。
【0012】
第1店舗端末装置50は、例えば、店舗に設置される。第1店舗端末装置50は、少なくとも、商品価格取得機能、光学読取機能、プログラム実行機能、通信機能を有するコンピュータ装置である。第1店舗端末装置50は、いわゆるPOS(Point of Sale)装置を含み、POS装置によって商品価格取得機能や光学読取機能を実現してもよい。店舗コード画像60は、店舗に置かれ、QRコード(登録商標)等のコード画像が紙やプラスチックの媒体に印刷されたものである。なお、店舗コード画像60は、店舗に置かれたディスプレイ(スマートフォンなどの端末装置のディスプレイでもよい)によって表示されてもよい。
【0013】
第2店舗端末装置70は、加盟店の運営者によって使用される。第2店舗端末装置70は、スマートフォンやタブレット端末、パーソナルコンピュータ等である。第2店舗端末装置70では、加盟店向けインターフェース72が動作する。加盟店向けインターフェース72は、加盟店向けアプリであってもよいし、ブラウザであってもよい。加盟店向けインターフェース72は、加盟店の運営者によるクーポンの設定等を受け付け、決済サーバ100に送信する。スマートフォンである第2店舗端末装置70は、加盟店向けアプリを実行することで、店舗コード画像に相当するコード画像を表示したり、利用者端末装置10が表示するコード画像を読み取ったりする機能を有する。
【0014】
決済サーバ100は、利用者端末装置10または第1店舗端末装置50から受信した決済情報に基づいて電子決済を実現する。第1店舗端末装置50は、POS装置と加盟店サーバを含む場合があり、その場合、POS装置から加盟店サーバを介して決済情報が決済サーバ100に送信される。以下の説明では、これを特に区別せず、第1店舗端末装置50から決済情報が送信されるものとする。
【0015】
図2および
図3は、電子決済の大まかな流れを例示したシーケンス図である。電子決済には、パターン1とパターン2の二つが存在してよい。
【0016】
図2に示すパターン1(以下、ユーザスキャンと称する)の場合、決済アプリ20が起動した状態の利用者端末装置10が、光学読取機能によって店舗コード画像60をデコードする(S1)。店舗コード画像60には、店舗URL(Uniform Resource Locator)の情報が含まれている。この店舗URLは、電子決済サービスのドメインに対して店舗を識別可能な情報が付加されたものであり、決済サーバ100において加盟店IDや店舗ID等との対応付けがなされている(後述)。決済アプリ20は、店舗URLとアカウントIDを含む第1決済情報を決済サーバ100に送信する(S2)。決済サーバ100は、店舗URLに対応する加盟店ID、店舗IDから、店舗情報(後述)を検索して加盟店名と店舗名の情報を取得し(S3)、決済アプリ20に送信する(S4)。利用者は、加盟店名や店舗名が表示された画面において、決済金額を利用者端末装置10に入力する(S5)。そして、利用者端末装置10は、少なくとも決済金額を含む第2決済情報を生成し、決済サーバ100に送信する(S6)。決済サーバ100は、受信した第2決済情報に基づいて電子決済を行う(S7)。そして、決済サーバ100は、決済完了通知(決済完了画面を表示するための情報)を決済アプリ20に送信し(S8)、決済アプリ20は決済完了画面を表示する(S9)。なお、店舗コード画像60が店舗に置かれたディスプレイによって表示される場合、店舗コード画像60には、店舗URLだけでなく決済金額の情報が含まれる場合がある。この場合、利用者が決済金額を入力する手順が省略され、第1決済情報に決済金額の情報が含められて決済サーバ100に送信される。加盟店名や店舗名の情報は、決済完了画面に含めて表示されてよい。
【0017】
図3に示すパターン2(以下、ストアスキャンと称する)の場合、決済アプリ20の起動時、決済アプリ20において支払う操作が行われたとき、自動更新のタイミング(例えば1分おき)になったとき、およびその他のタイミングで、決済アプリ20はワンタイムコードの発行要求を決済サーバ100に送信する(S11)。決済サーバ100はワンタイムコードを生成し(S12)、決済アプリ20に送信する(S13)。決済アプリ20は、ワンタイムコードに基づいて生成した、QRコードやバーコード等のコード画像を表示する(S14)。利用者は利用者端末装置10の表示面を第1店舗端末装置50に翳し(提示し)、第1店舗端末装置50は、光学読取機能によってコード画像をデコードし、ワンタイムコード等を取得する(S15)。そして、第1店舗端末装置50は、ワンタイムコード、決済金額、加盟店ID、店舗ID等を含む決済情報を生成し、決済サーバ100に送信する(S16)。決済金額の情報は、予めバーコード読み取りや手入力等によって取得されている。決済サーバ100は、受信した情報に基づいて、ワンタイムコードに対応する利用者を特定し、電子決済を行う(S17)。そして、決済サーバ100は、決済完了通知を決済アプリ20に送信し(S18)、決済アプリ20は決済完了画面を表示する(S19)。
【0018】
なお、上記のいずれか一方のみのパターンで電子決済が行われてもよい。また、
図2で説明した「アカウントID」は、利用者の識別情報として用いられ得る他の情報(例えば電話番号)であってもよい。また、ストアスキャンにおいてワンタイムコードの発行が省略され、決済アプリ20は、利用者のアカウントIDに基づいて生成したコード画像を表示してもよい。その場合、決済サーバ100は、ワンタイムコードに対応する利用者を特定するのに代えて、アカウントIDに対応する利用者を特定する。
【0019】
[決済サーバ]
図4は、決済サーバ100の構成図である。決済サーバ100は、例えば、通信部110と、決済コンテンツ提供部120と、決済処理部130と、情報管理部140と、記憶部170とを備える。通信部110および記憶部170以外の構成要素は、例えば、CPUなどのハードウェアプロセッサがプログラム(ソフトウェア)を実行することにより実現される。これらの構成要素のうち一部または全部は、LSI(Large Scale Integration)やASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)、GPU(Graphics Processing Unit)などのハードウェア(回路部;circuitryを含む)によって実現されてもよいし、ソフトウェアとハードウェアの協働によって実現されてもよい。プログラムは、予めHDD(Hard Disk Drive)やフラッシュメモリなどの記憶装置(非一過性の記憶媒体を備える記憶装置)に格納されていてもよいし、DVDやCD-ROMなどの着脱可能な記憶媒体(非一過性の記憶媒体)に格納されており、記憶媒体がドライブ装置に装着されることで記憶装置にインストールされてもよい。
【0020】
記憶部170は、HDDやフラッシュメモリ、RAM(Random Access Memory)などである。記憶部170は、決済サーバ100がネットワークを介してアクセス可能なNAS(Network Attached Storage)装置であってもよい。記憶部170には、利用者情報172、決済コンテンツ情報174、加盟店/店舗情報176などの情報が格納される。
【0021】
通信部110は、ネットワークNWに接続するための通信インターフェースである。通信部110は、例えばネットワークインターフェースカードである。
【0022】
決済コンテンツ提供部120は、例えば、Webサーバの機能を有し、電子決済サービスの各種画面を表示するための情報(コンテンツ)を利用者端末装置10に提供する。決済コンテンツ提供部120は、決済コンテンツ情報174から適宜、必要なコンテンツを読み出して利用者端末装置10に提供する。利用者端末装置10は、決済アプリ20によってコンテンツが再生された状態で利用者による各種入力を受け付け、前述した決済情報などを決済サーバ100に送信する。
【0023】
決済処理部130は、利用者端末装置10または第1店舗端末装置50により送信された決済情報に基づいて、決済処理を行う。決済処理部130は、利用者情報172を参照しながら決済処理を行う。
【0024】
図5は、利用者情報172の内容の一例を示す図である。利用者情報172は、利用者の登録情報の一例である。利用者情報172は、例えば、利用者URL、アカウントID、電話番号、パスワードの他、メールアドレス、利用者ID、氏名・住所・生年月日、登録日、チャージ残高、後払い設定、後払い枠、後払い利用額、後払い利用可能額、決済方法設定、銀行口座、クレジットカード番号、チャージ履歴情報、決済履歴情報などの情報が対応付けられたものである。利用者URLは、利用者間の送金処理に使用される。電子決済サービスへの新規登録時には、電話番号およびパスワードの登録が必須となる。アカウントIDは、決済サーバ100によって利用者に発行されるものであり、利用者IDは、利用者が任意に設定できる(設定しなくてもよい)IDである。メールアドレス、および氏名・住所・生年月日も同様に、利用者が任意に設定できる(設定しなくてもよい)情報である。登録日とは利用者が電子決済サービスに登録した日(アカウントを作成した日)である。以下、これらの情報が対応付けられた利用者のインスタンス(電子決済口座)のことをアカウントと称する。
【0025】
チャージ残高は、利用者が予めアカウントに送金することで設定された電子マネーの残高を示す情報である。送金の手段としては、指定業者(銀行)のATM(Automatic Teller Machine)からの送金、登録された銀行口座からの送金などがある。後払い設定は、後払いによる電子決済を可能とするための設定が済んでいるか否かを示す情報であり、「済」と「未」のいずれかに設定される。決済方法設定は、その時点において利用者がチャージ残高による電子決済を行うのか、後払いによる決済を行うのかを示す設定情報である。銀行口座とクレジットカード番号のそれぞれは、電子決済サービスに入金可能な銀行口座またはクレジットカード番号の情報(口座番号、カード番号)である。チャージ履歴情報は、利用者が予め電子決済サービスに送金してチャージ残高を増加させた履歴である。決済履歴情報は、利用者が行った決済の内訳(日時、購買行動が行われた店舗の店舗ID、決済金額、決済方法など)を、決済ごとに示す情報である。
【0026】
図6は、加盟店/店舗情報176の内容の一例を示す図である。加盟店/店舗情報176は、例えば、店舗URLに対して加盟店IDと店舗IDが対応付けられた第1テーブル176Aと、加盟店IDに対して加盟店名と売上金(前述)が対応付けられた第2テーブル176Bと、店舗IDに対して店舗名が対応付けられた第3テーブル176Cとを含む。加盟店/店舗情報176には、これらの情報の他、加盟店または店舗のカテゴリ、店舗の所在地、決済パターン等の情報が含まれてもよい。
【0027】
情報管理部140は、利用者端末装置10や第2店舗端末装置70から取得した情報に基づいて、利用者情報172および加盟店/店舗情報176を管理する。情報管理部140は、利用者情報172および加盟店/店舗情報176について新規レコードの追加、編集、削除などを行う。
【0028】
[電子決済]
決済処理部130は、利用者端末装置10または第1店舗端末装置50から決済情報が取得されると、利用者情報172を参照して当該利用者の「決済方法設定」を取得する。決済処理部130は、「決済方法設定」が「チャージ残高」に設定されている利用者に関して、以下のように電子決済を行う。決済処理部130は、例えば、利用者IDに対応付けて管理しているチャージ残高を減少させ、加盟店の売上金の項目値を増加させることで、電子決済を行う。加盟店の売上金の項目値は、例えば、それ自体が電子マネーとして使用されるものでは無く、加盟店と電子決済サービスとの取り決めに応じたサイクルで、売上金の項目値に対応する金額が銀行口座に送金される。
【0029】
決済処理部130は、「設定情報」が「後払い」に設定されている利用者に関して、以下のように電子決済を行う。後払いとは、電子決済サービスの運営者とは別主体であるクレジットカード会社との連携による「クレジット払い」とは別枠で設定されるものであり、電子決済サービスの運営者が与信者となって、後払い枠の範囲内でチャージ残高に依存しない電子決済を許容するものである。なお後払いサービスを受けるために、電子決済サービスの運営者が提供するクレジットカードの取得が要求されてよい。この場合、決済処理部130は、クレジットカード会社の運営者に当該処理を依頼する。
【0030】
[情報処理装置]
以下、情報処理装置200について説明する。情報処理装置200は、決済サーバ100と同様にCPUなどのプロセッサと、プロセッサが実行するプログラムを記憶した記憶装置を備えるものである。
図7は、情報処理装置200の構成図である。情報処理装置200は、例えば、操作ログ取得部210と、第1前処理部220と、操作特徴ベクトル取得部230と、導出部240と、学習部250とを備える。学習部250は、第2前処理部252を備える。これらの構成要素は、例えば、CPUなどのハードウェアプロセッサがプログラム(ソフトウェア)を実行することにより実現される。また、これらの構成要素は、LSIなどのハードウェアで置換されてもよい。また、情報処理装置200は、入出力装置260と、記憶部270とを備える。入出力装置260は、表示装置、スピーカ、マウス、キーボード、タッチパネルなどである。入出力装置260は、情報処理装置200と通信可能な他のコンピュータ装置であってもよい。記憶部270には、プログラム272、学習済モデル274などの情報が格納される。プログラム272は、情報処理装置200をそれぞれの機能部として機能させるためのものである。
【0031】
操作ログ取得部210は、電子決済サービスに対する利用者の操作ログを取得する。以下、推論段階での利用者を第1利用者、学習段階での利用者を第2利用者と称する。
図8は、操作ログの内容の一例を示す図である。図中、user_idは利用者の識別情報、event_datte_jstは操作が行われた日付、event_time_jstは時刻、screenは操作が行われたアプリ画面、event_nameは操作の大枠、event_categoryは操作のカテゴリ、event_actionは操作内容、action_timeは直前の操作からの経過時間、action_time_logは経過時間の対数値である。
【0032】
第1前処理部220は、第1利用者の操作ログを分散表現化することで、学習済モデル274に入力する入力データを生成する。
図9は、第1前処理部220の処理内容の一例を示す図である。第1前処理部220は、例えば、第1前処理部220からevent_actionとaction_time_logの項目を抜き出し、文章化する。そして、event_action(操作内容)を分散表現化した数百次元のベクトルと、統計値をコンカチネット(結合)したものを入力データとして生成する。操作内容は意味情報が包含されたテキストで記述されているため、既存の分散表現化エンジンを利用することで係る処理を実現可能である。操作内容とaction_time_logの組から導出された分散表現ベクトルが、入力データとなる。
【0033】
操作特徴ベクトル取得部230は、学習済モデル274に対して、第1利用者の操作ログに基づく入力データを入力することで得られる第1利用者の操作特徴ベクトルを取得する。
図10は、学習済モデル274の一例を示す図である。
図10では全結合の形態で学習済モデル274を表しているが、学習済モデル274の形態はこれに限らず、Transformerなどの他の形態であってもよい。また、隠れ層が3つの層を含むように示しているが、あくまで一例であり、隠れ層は任意の数の層を有してよい。
【0034】
学習済モデル274は、入力層ILと、学習段階における出力層OLとの間に存在する隠れ層HL3における値を、操作特徴ベクトルとして出力するものである。隠れ層HL3は、例えば、出力層OLの一つ手前(入力層IL側)の層である。推論段階においては、この隠れ層HL3が出力層として機能し、学習段階における出力層OLは、本来的に各利用者の操作であったか否かを示す確率を出力する筈であったものだが、学習済モデル274の構成からは除外される。
【0035】
ここで、学習部250について説明する。本実施形態では学習部250が情報処理装置200の機能であるものとするが、学習部250は他の装置(学習装置)の機能であってもよい。学習部250は、例えば第1利用者の数(例えば数百~数千万人)に対して少ない人数(例えば数百人)の第2利用者の操作ログに基づいて学習を行う。余り第2利用者の数が多いと、却って操作特徴ベクトルを好適に抽出できない場合があり得るからである。
【0036】
学習部250の第2前処理部252は、複数の第2利用者の操作ログを分散表現化することで学習データを生成する。第2前処理部252の機能は、対象とする利用者が異なるだけで、内容的には第1前処理部220の機能と同様である。
【0037】
図11は、学習部250の機能について説明するための図である。学習部250は、学習済モデル274の元になる機械学習モデル276の入力層ILに、第2前処理部252の処理結果(複数の第2利用者の操作ログに基づくデータ)を学習データとして入力すると共に、機械学習モデル276の出力層OLに、それぞれの学習データに対応して、どの第2利用者が操作を行ったかを示す情報を教師データとして入力してバックプロパゲーションを行い、最後に出力層OLを削除することで、学習済モデル274を生成する。隠れ層HL3は、出力層OLの一つ手前にある層であるため、利用者の操作の特徴(クセ)を最も顕著に表した層であることが期待される。操作特徴ベクトルは、例えば数百次元のベクトルであり、ベクトルの各要素は、例えばマイナス1からプラス1までの値をとり得る。
【0038】
導出部240は、第1利用者の操作特徴ベクトル(第1利用者の操作ログから得られる入力データを学習済モデル274に入力して得られるもの)に基づいて、第1利用者がなりすましによる不正なログインを行っているか否かを表す情報を導出する。導出部240は、第1観測期間において、操作ログ取得部210、第1前処理部220、および操作特徴ベクトル取得部230に第1利用者の操作特徴ベクトルを取得する処理を繰り返し実行させ、第1観測期間(例えば1年間)における操作特徴ベクトル(以下、比較元ベクトル)に対して統計処理を行い、統計処理済ベクトルを算出する。統計処理は、例えばベクトルの各要素の平均を求めて平均ベクトルを算出する処理である。以下では、平均ベクトルと称して説明する。
【0039】
そして、導出部240は、第2観測期間(例えば第1観測期間の直後の所望の期間)において取得された第1利用者の操作特徴ベクトル(以下、比較対象ベクトル)と平均ベクトルを比較することで、第2観測期間において第1利用者がなりすましによる不正なログインを行っているか否かを表す情報を導出する。
【0040】
例えば、導出部240は、平均ベクトルと、複数の比較元ベクトルのそれぞれとのコサイン類似度を求め、コサイン類似度の分布を可視化したグラフを生成して入出力装置260に表示させる。なお、導出部240は、コサイン類似度に代えて、類似度を示す他の指標値を求めてもよい。更に、導出部240は、平均ベクトルと、比較対象ベクトルとのコサイン類似度を求め、上記のグラフに重畳してコサイン類似度の位置をプロットする。
図12は、導出部240が入出力装置260に表示させる画像の一例を示す図である。図示するように、比較元ベクトルは通常、平均ベクトルと同じ傾向を示すため平均ベクトルとのコサイン類似度が1に近いところに多く分布するが、なりすましによって本来の利用者以外の利用者が操作を行った場合、比較対象ベクトルと平均ベクトルとのコサイン類似度は1から遠いところに分布することになる。このようなグラフを視認した監視者は、なりすましによる不正なログインがなされた可能性があることを認識することができる。
【0041】
図12に示したように比較元ベクトル、平均ベクトル、比較対象ベクトルの関係をグラフなどで表示するのに代えて(または、加えて)、導出部240は、なりすましによる不正なログインがなされた可能性が高いことを自動的に検知して警告表示などを行ってもよい。
図13は、導出部240が自動的に警告表示を行う処理について説明するための図である。例えば、導出部240は、1から順に頻度を積算した結果が全体の所定割合(例えば80~90%)になるコサイン類似度の閾値Thを計算し、比較対象ベクトルと平均ベクトルとの類似度が閾値未満であった場合に、警告表示などを行ってもよい。係る手法に限らず、導出部240は、なりすましによる不正なログインがなされた可能性が高いことを粗く検知し、検知した場合に
図12に例示したグラフを表示して最終的には監視者の判断に任せるといった処理を行ってよい。
【0042】
上記説明した平均ベクトルは、利用者の操作のクセを適切に示すものである。本発明の発明者は、利用者の組み合わせを総当たりで変えながら、平均ベクトル同士のコサイン類似度の分布を求める実験(シミュレーション)を行った。
図14は、実験結果を示すヒストグラムである。このように殆どの利用者間で平均ベクトルは類似せず、平均ベクトルのコサイン類似度が0.6以上の利用者の組み合わせは全体の1[%]未満であることが分かった。従って、平均ベクトル同士のコサイン類似度の分布をみることで、なりすましによってネットワークサービスを利用している利用者を精度よく推定することができる。平均ベクトルと比較対象のコサイン類似度も同様に利用者間での相違を有意に示すものであるため、これをみることで、なりすましによってネットワークサービスを利用している利用者を精度よく推定することができる。
【0043】
以上説明した実施形態によれば、なりすましによってネットワークサービスを利用している利用者を精度よく推定するための処理を行うことができる。
【0044】
以上、本発明を実施するための形態について実施形態を用いて説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【符号の説明】
【0045】
10 利用者端末装置
20 決済アプリ
100 決済サーバ
120 決済コンテンツ提供部
130 決済処理部
140 情報管理部
200 情報処理装置
210 操作ログ取得部
220 第1前処理部
230 操作特徴ベクトル取得部
240 導出部
250 学習部
252 第2前処理部
260 入出力装置
270 記憶部
272 プログラム
274 学習済モデル
【要約】
【課題】なりすましによってネットワークサービスを利用している利用者を精度よく推定するための処理を行うことができるプログラム、情報処理装置、および情報処理方法を提供すること。
【解決手段】情報処理装置に、ログインを伴って端末装置を介して提供されるネットワークサービスに対する、第1利用者の操作ログを取得する処理と、前記ネットワークサービスに対する、複数の第2利用者の操作ログに基づくデータを学習データ、どの第2利用者が操作を行ったかを示す情報を教師データとして学習された学習済モデルに対して、前記第1利用者の操作ログに基づく入力データを入力することで得られる前記第1利用者の操作特徴ベクトルを取得する処理と、前記第1利用者の操作特徴ベクトルに基づいて、前記第1利用者がなりすましによる不正なログインを行っているか否かを表す情報を導出する処理と、を実行させるためのプログラム。
【選択図】
図7