(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-22
(45)【発行日】2024-10-30
(54)【発明の名称】時系列データ処理装置
(51)【国際特許分類】
G06F 18/10 20230101AFI20241023BHJP
G06N 20/00 20190101ALI20241023BHJP
G06F 123/02 20230101ALN20241023BHJP
【FI】
G06F18/10
G06N20/00
G06F123:02
(21)【出願番号】P 2023538295
(86)(22)【出願日】2022-05-20
(86)【国際出願番号】 JP2022021017
(87)【国際公開番号】W WO2023007921
(87)【国際公開日】2023-02-02
【審査請求日】2023-11-13
(31)【優先権主張番号】P 2021125359
(32)【優先日】2021-07-30
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】392026693
【氏名又は名称】株式会社NTTドコモ
(74)【代理人】
【識別番号】100088155
【氏名又は名称】長谷川 芳樹
(74)【代理人】
【識別番号】100113435
【氏名又は名称】黒木 義樹
(74)【代理人】
【識別番号】100121980
【氏名又は名称】沖山 隆
(74)【代理人】
【識別番号】100128107
【氏名又は名称】深石 賢治
(72)【発明者】
【氏名】倉沢 央
(72)【発明者】
【氏名】礒田 佳徳
(72)【発明者】
【氏名】柴田 樹
(72)【発明者】
【氏名】浅井 洋樹
【審査官】大倉 崚吾
(56)【参考文献】
【文献】特開2012-108748(JP,A)
【文献】米国特許出願公開第2020/0210895(US,A1)
【文献】米国特許出願公開第2020/0337648(US,A1)
【文献】中国特許出願公開第111729305(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
G06F 18/00-18/40
G06F 123/02
(57)【特許請求の範囲】
【請求項1】
ユーザの行動を示す複数の時系列データを、当該時系列データに関する時間長に基づいて加工するデータ加工部と、
前記加工した複数の時系列データに基づいた機械学習に関する処理を行う処理部と、
を備え
、
前記データ加工部は、
前記時系列データ間の時間間隔に基づいて、区切りを示す行動識別子を、前記時系列データ間に挿入し、
時間間隔の長さに応じた数の行動識別子を挿入する、
時系列データ処理装置。
【請求項2】
前記データ加工部は、
前記時間間隔の長さに応じて挿入数の加算個数が少なくなるよう定義された挿入処理を行う、
請求項1に記載の時系列データ処理装置。
【請求項3】
前記データ加工部は、
前記時間間隔を予め定めた値で対数を取った値に基づいた数の行動識別子を挿入する、
請求項2に記載の時系列データ処理装置。
【請求項4】
前記データ加工部は、前記時系列データが示すユーザの行動の時間長に基づいて、前記時系列データを加工する、
請求項1に記載の時系列データ処理装置。
【請求項5】
前記データ加工部は、
前記時系列データが示す行動の時間長に応じて、当該時間長を示す識別子または当該行動を示す識別子を前記時系列データに付加する、
請求項4に記載の時系列データ処理装置。
【請求項6】
前記処理部は、
前記時系列データに対する機械学習に関する処理を行う、
請求項1に記載の時系列データ処理装置。
【請求項7】
前記処理部は、
前記時系列データ同士のアテンションの重みを、自己注意機能に基づいて算出し、
当該アテンションの重みに基づいて、任意の時系列データに対して関連性の高い一または複数の他の時系列データを取得する、
請求項6に記載の時系列データ処理装置。
【請求項8】
前記処理部は、
前記アテンションの重みに基づいて関連性が高いと判断された前記他の時系列データのうち、所定の時間が経過した一の他の時系列データを特定し、
当該一の他の時系列データ以降に発生した一または複数の時系列データを取得する、
請求項7に記載の時系列データ処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ユーザの行動などを示す時系列データを処理する時系列データ処理装置に関する。
【背景技術】
【0002】
非特許文献1に記載されている自然言語処理を行うBERT(Bidirectional Encoder Representations from Transformers)による機械学習方法が知られている。このBERTは、自己注意(Self-Attention)機構付きのエンコーダデコーダモデルを有しており、自然言語処理および画像処理を行う。
【先行技術文献】
【非特許文献】
【0003】
【文献】Jacob Devlin、他2名、BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding、[online]、掲載日:2019年5月24日、掲載者:arXiv.org、検索日:2021年7月2日、https://arxiv.org/pdf/1810.04805.pdf、英語
【発明の概要】
【発明が解決しようとする課題】
【0004】
顧客体験またはユーザ行動のそれぞれにおける時間経過が、その顧客体験またはユーザ行動を把握する上で重要である。そして、局所的または大局的な時系列データの隣接関係の学習をBERTにおいて適切に行う必要がある。
【0005】
そこで、上述の課題を解決するために、本発明は、ユーザ行動などの時系列データを、BERT等の機械学習処理において適切に扱うことができる時系列データ処理装置を提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明の時系列データ処理装置は、ユーザの行動を示す複数の時系列データを、当該時系列データに関する時間長に基づいて加工するデータ加工部と、前記加工した複数の時系列データに基づいた機械学習に関する処理を行う処理部と、を備える。
【発明の効果】
【0007】
本発明によると、機械学習に関する処理が扱うのに適した時系列データを生成することができる。
【図面の簡単な説明】
【0008】
【
図1】本開示におけるユーザ行動を取得して分析する行動分析装置100を含む通信システムのシステム構成図である。
【
図2】行動分析装置100の機能構成を示すブロック図である。
【
図5】BERTを模式的に示したモデルを示す図である。
【
図6】行動分析装置100の学習処理を示すフローチャートである。
【
図7】、行動分析装置100の処理内容を示すフローチャートである。
【
図8】行動履歴データベース101aを示す図である。
【
図9】全ユーザに対して、分類ごとの発生頻度を集計した図である。
【
図10】ユーザ行動の分類の頻度を、階層ごとに構成された分類ごとに集計した図である。
【
図12】マージされた集計表から、発生頻度が上位12件の分類を取り出した図である。
【
図13】管理テーブル(
図12)に基づいて、行動識別子を一般化した図である。
【
図14】一般化処理された行動履歴データに対して、その行動の間の時間間隔に基づいて区切りを示す行動識別子を挿入した図である。
【
図15】ユーザの行動履歴データベース101aからアテンションの重みの算出および選択処理を模式的に示した図である。
【
図16】、本開示の一実施の形態に係る行動分析装置100のハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【0009】
添付図面を参照しながら本開示の実施形態を説明する。可能な場合には、同一の部分には同一の符号を付して、重複する説明を省略する。
【0010】
図1は、本開示におけるユーザ行動を取得して分析する行動分析装置100を含む通信システムのシステム構成図である。この行動分析装置100は、ユーザがWEBサイトにアクセスした操作履歴を時系列データとして扱う時系列データ処理装置として機能する。また、行動分析装置100は、ユーザがある企業の電話サービス(製品の相談または質問等)を利用した場合に、その利用の状態を時系列データとして扱う。
【0011】
行動分析装置100は、分析対象であるユーザが操作するPC200がWEBサーバ300に対するアクセス履歴を収集して分析する。また、電話サービスを利用したユーザの行動履歴については、そのサービス運営者がその行動履歴を記録しておき、行動分析装置100の行動履歴データベース101aに登録する。
【0012】
PC200は、一般的なパーソナルコンピュータであって、WEBサーバ300にネットワークを介してアクセスする。
【0013】
WEBサーバ300は、PC200に対してWEB情報の提供を行うサーバである。
【0014】
行動分析装置100は、WEBサーバ300におけるどの情報に対してPC200がアクセスしたか、その行動履歴データを収集する。例えば、PC200が携帯電話の通信会社のサイトにアクセスした場合、どのような情報にアクセスしたか、収集する。より具体的には、携帯電話の料金プランの情報、携帯端末の種類の情報を収集する。
【0015】
図2は、行動分析装置100の機能構成を示すブロック図である。この行動分析装置100は、行動履歴データベース101a、時系列データ取得部101、一般化処理部102、データ加工部103、学習部104、学習モデル104a、BERT処理部105、範囲選択部106および出力部107を含んで構成されている。以下各構成について説明する。
【0016】
行動履歴データベース101aは、PC200がWEBサーバ300にアクセスした行動履歴データを記憶する部分である。PC200またはWEBサーバ300は、アクセスする度にまたは定期的に行動履歴データを行動履歴データベース101aに記憶する。また、行動履歴データベース101aは、上述したとおり、WEBアクセス以外のユーザの行動をオペレータによる操作に従って記憶する。本開示においては、WEBサーバ300以外の方法、例えば電話などにより、WEBサーバ300が提供するサービスと同等のサービスをユーザが受けた場合に、そのユーザの行動を電話オペレータ等が登録する。本開示においては、ユーザの行動とは、ユーザがあるサービスを受けようとした場合に、そのサービスを受けることに対する行動を示している。
【0017】
時系列データ取得部101は、行動履歴データベース101aから行動履歴データである時系列データを取得する部分である。
【0018】
一般化処理部102は、時系列データのうち、発生頻度の低い時系列データを一般化処理する部分である。例えば、一般化処理部102は、一般化処理として、発生頻度の低い時系列データの全部または一部を、所定の記号または文字列に置き換える。
【0019】
図3は、一般化処理の具体例を示す模式図である。図では、行動A1、行動A2・・・で示した行動識別子を、WEBサイトに対するアクセス情報として示している。
図3(a)では、あるユーザは、行動A1、行動A2・・・行動B3、行動B4、行動B5を行った。この行動A1等は、行動識別子を示し、WEBサーバ300における一の情報に対してアクセスしたことを示す。また、行動A1と、行動B1とは、異なる行動カテゴリを示す。そして、一般化処理部102は、低頻度の行動を、行動カテゴリ+[UNK]に置き換える。例えば、一般化処理部102は、行動B4の発生頻度が低い場合に、行動B4をB[UNK]に置き換える(
図3(b))。一般化処理部102の更なる詳細な処理内容については、後述する。
【0020】
データ加工部103は、複数あるユーザ行動を示す時系列データに対して、時系列データ間が所定時間以上あいている場合に、各時系列データを区別するための行動識別子を挿入する部分である。
【0021】
図4は、行動識別子の挿入処理を示す模式図である。なお、本図においては、カテゴリの表記を省略している。
図4(a)に示される通り、行動1と行動2との間は6分であり、行動2と行動3との間は26分であるとする。他の行動についても、図に示されたとおりであるとする。このようなユーザの行動において、時間的に連続していて明確な区切りがない場合が多い。また、ユーザの行動間の時間間隔もまちまちである場合が多い。
【0022】
図4(b)に示される通り、データ加工部103は、行動間の間隔を閾値パラメータで対数をとった実数以下の最大の整数の数だけ区切りを表す行動識別子を挿入する。例えば、
図4に示されるように、行動1と行動2との間は6分である。データ加工部103は、閾値パラメータを5とした場合、Log5(6)=1を計算して、間隔が6分である行動1と行動2と間に、1つの区切りを表す行動識別子を挿入する。他の行動においても同様の計算を行う。
【0023】
このように区切りを示す行動識別子を挿入することで、行動の区切りを示すことができる。また、いわゆるログスケールを取って、区切りを示す行動識別子の個数を時間間隔が長いほど多く挿入するとともに、ある程度時間間隔が長くなった場合には、その個数を制限する方向に調整する関数を使う。これにより、時間間隔の長さと、区切りの行動識別子との個数との関係を示すことができる。ユーザの行動によっては、ある程度長く経過した場合には、その行動の意味に変化がない場合が多い。例えば、5分後に行ったユーザの行動と、1年後に行ったユーザの行動と、では、明確に区別する必要があるが、1年後に行ったユーザの行動と、2年後に行ったユーザの行動とは、その行動の意味または行動の内容に区別する必要がない場合がある。
【0024】
なお、データ加工部103は、区切りを示す行動識別子を挿入することに代えて、またはそれに加えて、ユーザの行動の長さに応じて行動識別子を挿入してもよい。例えば、データ加工部103は、ユーザ行動として在宅、外出、または移動があった場合に、在宅時間、外出時間、または移動時間のそれぞれの長さに応じた行動識別子を追加してもよい。例えば在宅を示す行動識別子を1時間であれば1つ、2時間であれば2つとするように、その行動識別子を追加してもよい。また、時間を示す行動識別子をその前後のどちらかに追加してもよい。
【0025】
学習部104は、一般化処理して、データ加工された時系列データを用いて機械学習を行う部分である。本開示においては、自然言語処理の言語モデルに利用されているBERT(Bidirectional Encoder Representations from Transformers)を用いた機械学習を行う。BERTでは、事前学習とファインチューニングとを行うことで学習処理を行う。事前学習では、時系列データを用いて、穴埋め問題処理と隣接予測処理とを行う。通常のBERTによる学習では、文章を入力しているが、本開示においては、上記の通り、一般化処理され、データ加工された時系列データを入力することにより、BERTによる学習モデル104aを生成する。
【0026】
図5は、BERTを模式的に示したモデルを示す図である。このモデルは、ベクトルのシーケンス(E1… EN)を入力とし、ベクトルのシーケンス(T1…TN)が出力されるモデルである。また、入力層と出力層との間に隠れ層(Trm=Transformer)を複数重ねた構造である。この図は、非特許文献1から抜粋した図である。
【0027】
BERT処理部105は、BERTによる学習モデル104aを用いた処理を行う部分である。BERT処理部105は、BERTの学習モデル104aにおけるSelf Attention(自己注意)機能を用いて、入力した複数の時系列データの相互に関連する度合いを示すアテンションの重みを算出する。上記学習部104は、このアテンションの重みを算出するために学習モデル104aを学習する。
【0028】
範囲選択部106は、BERT処理部105が算出したアテンションの重みに基づいて、指定されたユーザの行動に関連する行動を導出する部分である。範囲選択部106は、比較対象となる時系列データを受け付けており、当該比較対象の時系列データとの間のアテンションの重みと、事前に入力された閾値とを比較して、閾値以上のアテンションの重みを有する時系列データを選択する。なお、範囲選択部106は、最も古い時系列データ以降の時系列データを選択してもよい。この場合、アテンションの重みが閾値未満の時系列データを含む場合がある。
【0029】
出力部107は、選択された時系列データを出力する部分である。本開示において、出力部107は、表示部に出力する、または通信部を介して外部に出力することを含む。
【0030】
つぎに、本開示の行動分析装置100の動作について説明する。
図6は、行動分析装置100の学習処理を示すフローチャートである。
【0031】
時系列データ取得部101は、複数のユーザの行動履歴データと、時間間隔の閾値パラメータとを受け付ける(S101)。そして、時系列データ取得部101は、行動履歴データから、行動した日時、ユーザ識別子および行動識別子を取得する(S102)。
【0032】
一般化処理部102は、ユーザ識別子に基づいてユーザごとに取得された行動識別子をソートして、ユーザごとの行動識別子において発生頻度が低頻度の行動識別子に対して、一般化処理を行う。すなわち、低頻度の行動識別子を一般化した記号に置換する(S103)。
【0033】
データ加工部103は、閾値パラメータに基づいて、行動識別子間に、区切りを示す行動識別子を挿入する(S104)。これら処理は、例えば、1000個の時系列データに対して行われる。
【0034】
学習部104は、BERTを用いた学習処理を行い、BERTによる学習モデル104aを生成し、記憶する(S105、S106)。例えば、1000個の時系列データを用いた学習処理が行われる。
【0035】
つぎに、学習した学習モデル104aを用いた処理について説明する。ここでは、学習モデル104aのSelf Attention機能を用いて、指定したユーザの行動に対して関連する他の行動を特定する処理を示す。
図7は、行動分析装置100の処理内容を示すフローチャートである。
【0036】
処理S201~S204は、処理S101~S104と概ね同じである。すなわち、行動分析装置100において、時系列データ取得部101は、ユーザの行動履歴データおよび閾値パラメータを取得する。なお、時系列データ取得部101は、アテンションの重みに対する閾値および比較対象となるユーザの行動対象情報をさらに取得する。そして、時系列データ取得部101は、行動履歴データから行動識別子等を時系列データとして取得し、一般化処理部102は、一般化処理し、データ加工部103は、時系列データの所定条件を満たした箇所に、区切りを示す行動識別子を挿入する。
【0037】
BERT処理部105は、学習モデル104aに、行動識別子および区切り識別子を含んだ時系列データを入力し、時系列データごとのアテンションの重みを取得する(S205)。
【0038】
範囲選択部106は、各時系列データの組み合わせごとのアテンションの重みと、事前に受け付けられたアテンションの重みに対する閾値とに基づいて、全時系列データから、事前に指定されたユーザの時系列データに対応する行動履歴データを選択する(S206)。すなわち、範囲選択部106は、処理S201で受け付けた比較対象となる行動対象情報(一時系列データ)と各時系列データとのアテンションの重みのうち、そのアテンションの重みが閾値以上の時系列データ(行動履歴データ)を選択する。
【0039】
出力部107は、選択された時系列データ(行動履歴データ)およびアテンションの重みを出力する(S207)。
【0040】
このようにして、行動対象情報に関連する他の行動履歴データを選択することができる。
【0041】
つぎに、一般化処理について
図8から
図11を用いて説明する。
図8は、行動履歴データベース101aを示す図である。図に示される通り、行動履歴データベース101aは、ユーザID、日時、および分類1~分類4を対応付けている。ユーザIDは、ユーザを識別するための識別子である。日時は、ユーザが行動した日時を示す。図では、日にちおよび時刻を示しているが、日にちのみでもよい。分類1~分類4は、ユーザの行動の分類カテゴリを示す。分類1は、WEBアクセスか、コールセンタへの電話を示す。分類2は、コーポレートサイトであるか、OLT(オンライン手続き)、総合IC(Information Center)などの分類を示す。分類3は、WEB閲覧であるか、入電であるか(電話)の分類を示す。分類4は、ユーザ行動の具体例の分類を示す。図では、MyPageにアクセスした、ポイントのページにアクセスしたなどを示している。
【0042】
図9は、全ユーザの所定の期間における行動履歴データに対して、分類ごとの発生頻度を集計した図である。例えば、図は、分類1:WEB、分類2:コーポレートサイト、分類3:閲覧、分類4:My_Pageへの行動を起こした頻度は、20であることを示す。この頻度は、行動履歴データベース101aに記載されている各ユーザの行動履歴から集計される情報である。本開示においては、一般化処理部102が、時系列データに対して一般化処理を行う際に、分類ごとの頻度の集計処理を行う。
【0043】
図10は、ユーザ行動の分類の頻度を、階層ごとに構成された分類ごとに集計した図である。すなわち、大分類ごと、中分類ごと、小分類ごと、にそれぞれのユーザ行動の頻度を集計する。本開示においては、分類は、分類1~分類4に分けられている。分類1は、ユーザの行動の最上位概念の分類を示す。分類2~分類4は、その数値が大きくなるにしたがって、その概念が狭くなるよう定義されている。
【0044】
図10(a)は、分類1に含まれるユーザ行動の頻度を集計した図である。分類1は、分類2から分類4を含んだ分類である。図に示される通り、ユーザが、WEBを使ったか、コールセンタを使ったか、それぞれに分類されるユーザ行動の頻度を集計する。
【0045】
図10(b)は、分類2に含まれるユーザ行動の頻度を集計した図である。分類2は、分類3および分類4を含んで分類である。例えば、コーポレートサイトにアクセスした頻度、およびOLTにアクセスした頻度などを集計したことを示す。
【0046】
図10(c)は、分類3に含まれるユーザ行動の頻度を集計した図である。
【0047】
図11は、
図9および
図10(a)~
図10(c)で示される集計表をマージした図である。
図11では、分類は、マージしたのち、頻度の多い順に並び変えられている。なお、本開示においては、同一頻度の分類については、大分類で構成される分類を上位にしている。また、大分類で集計した頻度においては、中分類および小分類の項目が欠損している。この欠損部分には、一般的な情報であることを示す[UNK]という文字列を記述する。なお、[UNK]以外の文字列としてもよい。また、その他の記号としてもよく、一般的な情報であることを示すための文字列または記号とすればよい。
【0048】
図12は、
図11に示されるマージされた集計表から、発生頻度が上位12件の分類を取り出した図である。本開示において、これを管理テーブルと称する。なお、当然ながら12件に限定するものではなく、任意の値としてもよい。
【0049】
図13は、管理テーブル(
図12)に基づいて、行動識別子を一般化した図である。一般化処理部102は、管理テーブルに記述されている各分類に一致する行動履歴レコードを、行動履歴データベース101aから探索する。そして、一致する行動履歴レコードにおける各分類を“/”で連結して、行動識別子として生成する。一般化処理部102は、上位の分類が一致するものの、下位の分類が一致しない行動履歴レコードについては、一致しない下位の分類については、[UNK]に置き換える。そして、各分類を“/”で連結して、行動識別子として生成する。
【0050】
例えば、管理テーブルに記述されているレコードR1(分類1:WEB、分類2:コーポレートサイト、分類3:閲覧、分類4:My_Page)が、行動履歴データベース101aにも記述されていれば、それに基づいて行動識別子が生成される。
【0051】
一方、例えば、管理テーブルに記述されているレコードR2(分類1:WEB、分類2:OLT、分類3:閲覧、分類4:[UNK])のうち、分類1~分類3までが、行動履歴データベース101aにも記述されている場合、分類4の内容に関わらず、分類4:[UNK]を用いて、行動識別子が生成される。
図13では、行動履歴レコードR2の行動識別子として、WEB/OLT/閲覧/[UNK]が生成される(レコードR21参照)。レコードR21においては、分類4として、「料金プラン オプション」が登録されているが、この項目へのアクセスの頻度が低いため、一般化処理される。なお、行動識別子WEB/OLT/閲覧/[UNK]のうち、WEB/OLT/閲覧が行動カテゴリに相当する。
【0052】
このように、全体の発生頻度に対して、各発生頻度が低い場合には、[UNK]という文字列を使って一般化処理する。
図13においては、レコードR31(分類1:WEB、分類2:OLT、分類3:閲覧、分類4:ご契約内容の確認)の行動識別子は、WEB/OLT/閲覧/[UNK]となり、レコードR21の行動識別子と同じとなる。レコードR21とレコードR31とは、ユーザの全体の行動からすると同じ行動として扱われることになる。
【0053】
そして、BERT等のアテンション付きエンコーダモデルにおいて、その関連度を求める場合には、同じ行動として扱われることになる。よって、アテンションの重みを算出する際に、その算出処理を軽減することができる。
【0054】
図14は、一般化処理された行動履歴データに対して、その行動の間の時間間隔に基づいて区切りを示す行動識別子を挿入した図を示す。
【0055】
図に示されるとおり、レコードR41~R43が、ユーザの行動の間に挿入されている。これらレコードR41~R43は、
図4で示した区切りを示す行動識別子を示す。
図14では、“SEP”を挿入することで区切りを示している。よって、ユーザの行動における隣接関係を把握することを容易にする。すなわち、時間間隔が小さい場合には、隣接する行動間においては密接な関係があると考えられる。一方で、時間間隔が大きい場合には、その隣接する行動間においてそれほど関連性はないと考えられる。本開示では、それら隣接する行動の関連性を明確にしている。
【0056】
図14に示される区切りを示す行動識別子の挿入は、時系列データ取得部101により取得された行動履歴データに対して行われ、そして、学習部104によりBERTによる学習処理が行われる。
【0057】
時系列データ取得部101は、全行動履歴データから、例えば1000個の行動履歴データを時系列データとして取得する。そして、その1000個の時系列データに対して、一般化処理部102およびデータ加工部103は、上述した一般化処理および区切りを示す行動識別子の挿入処理を行う。
【0058】
学習部104は、それら処理がなされた時系列データに対して、穴埋め問題処理および隣接予測処理を行う。穴埋め問題は、一または複数の時系列データのレコードのうちランダムでマスクすることにより行う。隣接予測処理は、レコード同士の隣接予測を行う。このようにして、学習モデル104aが学習される。
【0059】
図15は、ユーザの行動履歴データベース101aからアテンションの重みの算出および選択処理を模式的に示した図である。
図15(a)では、便宜上、その行動が発生した日時と行動識別子とを示す。
図4に示されるように行動セグメント対象(行動対象情報)とするレコードが、オペレータによりあらかじめ指定される。
【0060】
図15(b)は、BERT処理部105によるセルフアテンション機構に基づいて算出されたセルフアテンションの重みを対応付けた図である。図では、行動識別子WEB/コーポレートサイト/閲覧/お客様サポートが行動セグメント対象として指定されている。そして、これとの関連度合いがセルフアテンションの重みで表される。
【0061】
図15(c)は、セルフアテンションの重みの閾値が0.3とした場合の範囲選択部106が選択した範囲を示す図である。セルフアテンションの重みが0.3以上のセルフアテンションの重みをもつ行動識別子が選択される。なお、本開示においては、0.3以上のセルフアテンションの重みをもつ行動識別子が選択されているが、これに限らず、0.3以上のセルフアテンションの重みをもつ行動識別子のうち最も古く発生した行動識別子以降に発生する行動識別子を選択してもよい。
【0062】
つぎに、本開示における行動分析装置100の作用効果について説明する。本開示の行動分析装置100は、時系列データを機械学習するのに適した形にするためのデータ加工装置として機能する。
【0063】
本開示の行動分析装置100は、ユーザの行動を示す複数の時系列データを、当該時系列データに関する時間長に基づいて加工するデータ加工部103と、加工した複数の時系列データに基づいた機械学習に関する処理を行う処理部、例えばBERT処理部105と、を備える。
【0064】
これにより、時系列データを機械学習に適した形に加工することができ、適切な機械学習に関する処理を行うことができる。例えば、これら加工した時系列データを使った学習モデル104aの生成、および当該学習モデル104aを利用した予測処理などである。本開示においては、この学習モデル104aにおけるセルフアテンション機能を利用するものである。
【0065】
ここで、データ加工部103は、時系列データ間の時間間隔に基づいて、区切りを示す行動識別子を、時系列データ間に挿入することで、加工を行う。データ加工部103は、時間間隔の長さに応じた数の行動識別子を挿入してもよい。その数は、時系列データ間の時間間隔を予め定めた値で対数を取った値に基づいた数としてもよい。なお、時間間隔の長さに応じて挿入数の加算個数が少なくなるよう定義された関数またはその他の手法であればよい。また、挿入個数の上限値を決めておいてもよく、ある一定以上の時間間隔が空いている場合には、同じ挿入個数としてもよい。
【0066】
また、データ加工部103は、時系列データが示すユーザの行動の時間長に基づいて、時系列データを加工してもよい。例えば、データ加工部103は、時系列データが示す行動の時間長に応じて、当該時間長を示す識別子または当該行動を示す識別子(複製した行動識別子)を時系列データに付加してもよい。
【0067】
この構成により、ユーザの行動の長さ、例えば在宅している時間、外出している時間、移動している時間など、ユーザの行動の長さに応じて時系列データを生成することができる。時系列データを機械学習に適した形に加工することができ、適切な機械学習に関する処理を行うことができる。例えば、在宅している時間が長いほど、在宅を示す時系列データを複製して、長いことを示すようにしてもよい。この場合、対数関数を使って、複製数を調整してもよい。
【0068】
BERT処理部105は、時系列データ同士のアテンションの重みを、自己注意機能に基づいて算出し、当該アテンションの重みに基づいて、任意の時系列データに対して関連性の高い1または複数の他の時系列データを取得する。
【0069】
この構成により、時系列データに適したデータ形態で学習処理を行って得た学習モデルの自己注意機能を用いて関連性の高い時系列データを算出することができる。
【0070】
BERT処理部105は、アテンションの重みが所定値以上の他の時系列データのうち、所定条件を満たした一の他の時系列データ以降に発生した時系列データを取得する。
【0071】
この構成によれば、関連性の高い時系列データの発生以降の他の時系列データを関連したものとして扱うことになる。この中には、関連性の高くない時系列データも含む場合があるが、関連性の高い時系列データに囲まれた時系列データであることから、全く関連性がないわけでもない。このような時系列データをも含ませることができる。
【0072】
上記実施形態の説明に用いたブロック図は、機能単位のブロックを示している。これらの機能ブロック(構成部)は、ハードウェアおよびソフトウェアの少なくとも一方の任意の組み合わせによって実現される。また、各機能ブロックの実現方法は特に限定されない。すなわち、各機能ブロックは、物理的または論理的に結合した1つの装置を用いて実現されてもよいし、物理的または論理的に分離した2つ以上の装置を直接的または間接的に(例えば、有線、無線などを用いて)接続し、これら複数の装置を用いて実現されてもよい。機能ブロックは、上記1つの装置または上記複数の装置にソフトウェアを組み合わせて実現されてもよい。
【0073】
機能には、判断、決定、判定、計算、算出、処理、導出、調査、探索、確認、受信、送信、出力、アクセス、解決、選択、選定、確立、比較、想定、期待、見做し、報知(broadcasting)、通知(notifying)、通信(communicating)、転送(forwarding)、構成(configuring)、再構成(reconfiguring)、割り当て(allocating、mapping)、割り振り(assigning)などがあるが、これらに限られない。たとえば、送信を機能させる機能ブロック(構成部)は、送信部(transmitting unit)や送信機(transmitter)と呼称される。いずれも、上述したとおり、実現方法は特に限定されない。
【0074】
例えば、本開示の一実施の形態における行動分析装置100などは、本開示の行動分析方法の処理を行うコンピュータとして機能してもよい。
図16は、本開示の一実施の形態に係る行動分析装置100のハードウェア構成の一例を示す図である。上述の行動分析装置100は、物理的には、プロセッサ1001、メモリ1002、ストレージ1003、通信装置1004、入力装置1005、出力装置1006、バス1007などを含むコンピュータ装置として構成されてもよい。
【0075】
なお、以下の説明では、「装置」という文言は、回路、デバイス、ユニットなどに読み替えることができる。行動分析装置100のハードウェア構成は、図に示した各装置を1つまたは複数含むように構成されてもよいし、一部の装置を含まずに構成されてもよい。
【0076】
行動分析装置100における各機能は、プロセッサ1001、メモリ1002などのハードウェア上に所定のソフトウェア(プログラム)を読み込ませることによって、プロセッサ1001が演算を行い、通信装置1004による通信を制御したり、メモリ1002およびストレージ1003におけるデータの読み出しおよび書き込みの少なくとも一方を制御したりすることによって実現される。
【0077】
プロセッサ1001は、例えば、オペレーティングシステムを動作させてコンピュータ全体を制御する。プロセッサ1001は、周辺装置とのインターフェース、制御装置、演算装置、レジスタなどを含む中央処理装置(CPU:Central Processing Unit)によって構成されてもよい。例えば、上述の一般化処理部102、データ加工部103などは、プロセッサ1001によって実現されてもよい。
【0078】
また、プロセッサ1001は、プログラム(プログラムコード)、ソフトウェアモジュール、データなどを、ストレージ1003および通信装置1004の少なくとも一方からメモリ1002に読み出し、これらに従って各種の処理を実行する。プログラムとしては、上述の実施の形態において説明した動作の少なくとも一部をコンピュータに実行させるプログラムが用いられる。例えば、一般化処理部102は、メモリ1002に格納され、プロセッサ1001において動作する制御プログラムによって実現されてもよく、他の機能ブロックについても同様に実現されてもよい。上述の各種処理は、1つのプロセッサ1001によって実行される旨を説明してきたが、2以上のプロセッサ1001により同時または逐次に実行されてもよい。プロセッサ1001は、1以上のチップによって実装されてもよい。なお、プログラムは、電気通信回線を介してネットワークから送信されても良い。
【0079】
メモリ1002は、コンピュータ読み取り可能な記録媒体であり、例えば、ROM(Read Only Memory)、EPROM(Erasable Programmable ROM)、EEPROM(Electrically Erasable Programmable ROM)、RAM(Random Access Memory)などの少なくとも1つによって構成されてもよい。メモリ1002は、レジスタ、キャッシュ、メインメモリ(主記憶装置)などと呼ばれてもよい。メモリ1002は、本開示の一実施の形態に係る行動分析方法を実施するために実行可能なプログラム(プログラムコード)、ソフトウェアモジュールなどを保存することができる。
【0080】
ストレージ1003は、コンピュータ読み取り可能な記録媒体であり、例えば、CD-ROM(Compact Disc ROM)などの光ディスク、ハードディスクドライブ、フレキシブルディスク、光磁気ディスク(例えば、コンパクトディスク、デジタル多用途ディスク、Blu-ray(登録商標)ディスク)、スマートカード、フラッシュメモリ(例えば、カード、スティック、キードライブ)、フロッピー(登録商標)ディスク、磁気ストリップなどの少なくとも1つによって構成されてもよい。ストレージ1003は、補助記憶装置と呼ばれてもよい。上述の記憶媒体は、例えば、メモリ1002およびストレージ1003の少なくとも一方を含むデータベース、サーバその他の適切な媒体であってもよい。
【0081】
通信装置1004は、有線ネットワークおよび無線ネットワークの少なくとも一方を介してコンピュータ間の通信を行うためのハードウェア(送受信デバイス)であり、例えばネットワークデバイス、ネットワークコントローラ、ネットワークカード、通信モジュールなどともいう。通信装置1004は、例えば周波数分割複信(FDD:Frequency Division Duplex)および時分割複信(TDD:Time Division Duplex)の少なくとも一方を実現するために、高周波スイッチ、デュプレクサ、フィルタ、周波数シンセサイザなどを含んで構成されてもよい。例えば、上述の出力部107は、通信装置1004によって実現されてもよい。
【0082】
入力装置1005は、外部からの入力を受け付ける入力デバイス(例えば、キーボード、マウス、マイクロフォン、スイッチ、ボタン、センサなど)である。出力装置1006は、外部への出力を実施する出力デバイス(例えば、ディスプレイ、スピーカー、LEDランプなど)である。なお、入力装置1005および出力装置1006は、一体となった構成(例えば、タッチパネル)であってもよい。
【0083】
また、プロセッサ1001、メモリ1002などの各装置は、情報を通信するためのバス1007によって接続される。バス1007は、単一のバスを用いて構成されてもよいし、装置間ごとに異なるバスを用いて構成されてもよい。
【0084】
また、行動分析装置100は、マイクロプロセッサ、デジタル信号プロセッサ(DSP:Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)、FPGA(Field Programmable Gate Array)などのハードウェアを含んで構成されてもよく、当該ハードウェアにより、各機能ブロックの一部または全てが実現されてもよい。例えば、プロセッサ1001は、これらのハードウェアの少なくとも1つを用いて実装されてもよい。
【0085】
情報の通知は、本開示において説明した態様/実施形態に限られず、他の方法を用いて行われてもよい。例えば、情報の通知は、物理レイヤシグナリング(例えば、DCI(Downlink Control Information)、UCI(Uplink Control Information))、上位レイヤシグナリング(例えば、RRC(Radio Resource Control)シグナリング、MAC(Medium Access Control)シグナリング、報知情報(MIB(Master Information Block)、SIB(System Information Block)))、その他の信号またはこれらの組み合わせによって実施されてもよい。また、RRCシグナリングは、RRCメッセージと呼ばれてもよく、例えば、RRC接続セットアップ(RRC Connection Setup)メッセージ、RRC接続再構成(RRC Connection Reconfiguration)メッセージなどであってもよい。
【0086】
本開示において説明した各態様/実施形態の処理手順、シーケンス、フローチャートなどは、矛盾の無い限り、順序を入れ替えてもよい。例えば、本開示において説明した方法については、例示的な順序を用いて様々なステップの要素を提示しており、提示した特定の順序に限定されない。
【0087】
入出力された情報等は特定の場所(例えば、メモリ)に保存されてもよいし、管理テーブルを用いて管理してもよい。入出力される情報等は、上書き、更新、または追記され得る。出力された情報等は削除されてもよい。入力された情報等は他の装置へ送信されてもよい。
【0088】
判定は、1ビットで表される値(0か1か)によって行われてもよいし、真偽値(Boolean:trueまたはfalse)によって行われてもよいし、数値の比較(例えば、所定の値との比較)によって行われてもよい。
【0089】
本開示において説明した各態様/実施形態は単独で用いてもよいし、組み合わせて用いてもよいし、実行に伴って切り替えて用いてもよい。また、所定の情報の通知(例えば、「Xであること」の通知)は、明示的に行うものに限られず、暗黙的(例えば、当該所定の情報の通知を行わない)ことによって行われてもよい。
【0090】
以上、本開示について詳細に説明したが、当業者にとっては、本開示が本開示中に説明した実施形態に限定されるものではないということは明らかである。本開示は、請求の範囲の記載により定まる本開示の趣旨および範囲を逸脱することなく修正および変更態様として実施することができる。したがって、本開示の記載は、例示説明を目的とするものであり、本開示に対して何ら制限的な意味を有するものではない。
【0091】
ソフトウェアは、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語と呼ばれるか、他の名称で呼ばれるかを問わず、命令、命令セット、コード、コードセグメント、プログラムコード、プログラム、サブプログラム、ソフトウェアモジュール、アプリケーション、ソフトウェアアプリケーション、ソフトウェアパッケージ、ルーチン、サブルーチン、オブジェクト、実行可能ファイル、実行スレッド、手順、機能などを意味するよう広く解釈されるべきである。
【0092】
また、ソフトウェア、命令、情報などは、伝送媒体を介して送受信されてもよい。例えば、ソフトウェアが、有線技術(同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線(DSL:Digital Subscriber Line)など)および無線技術(赤外線、マイクロ波など)の少なくとも一方を使用してウェブサイト、サーバ、または他のリモートソースから送信される場合、これらの有線技術および無線技術の少なくとも一方は、伝送媒体の定義内に含まれる。
【0093】
本開示において説明した情報、信号などは、様々な異なる技術のいずれかを使用して表されてもよい。例えば、上記の説明全体に渡って言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、チップなどは、電圧、電流、電磁波、磁界若しくは磁性粒子、光場若しくは光子、またはこれらの任意の組み合わせによって表されてもよい。
【0094】
なお、本開示において説明した用語および本開示の理解に必要な用語については、同一のまたは類似する意味を有する用語と置き換えてもよい。
【0095】
また、本開示において説明した情報、パラメータなどは、絶対値を用いて表されてもよいし、所定の値からの相対値を用いて表されてもよいし、対応する別の情報を用いて表されてもよい。例えば、無線リソースはインデックスによって指示されるものであってもよい。
【0096】
本開示で使用する「判断(determining)」、「決定(determining)」という用語は、多種多様な動作を包含する場合がある。「判断」、「決定」は、例えば、判定(judging)、計算(calculating)、算出(computing)、処理(processing)、導出(deriving)、調査(investigating)、探索(looking up、search、inquiry)(例えば、テーブル、データベースまたは別のデータ構造での探索)、確認(ascertaining)した事を「判断」「決定」したとみなす事などを含み得る。また、「判断」、「決定」は、受信(receiving)(例えば、情報を受信すること)、送信(transmitting)(例えば、情報を送信すること)、入力(input)、出力(output)、アクセス(accessing)(例えば、メモリ中のデータにアクセスすること)した事を「判断」「決定」したとみなす事などを含み得る。また、「判断」、「決定」は、解決(resolving)、選択(selecting)、選定(choosing)、確立(establishing)、比較(comparing)などした事を「判断」「決定」したとみなす事を含み得る。つまり、「判断」「決定」は、何らかの動作を「判断」「決定」したとみなす事を含み得る。また、「判断(決定)」は、「想定する(assuming)」、「期待する(expecting)」、「みなす(considering)」などで読み替えられてもよい。
【0097】
「接続された(connected)」、「結合された(coupled)」という用語、またはこれらのあらゆる変形は、2またはそれ以上の要素間の直接的または間接的なあらゆる接続または結合を意味し、互いに「接続」または「結合」された2つの要素間に1またはそれ以上の中間要素が存在することを含むことができる。要素間の結合または接続は、物理的なものであっても、論理的なものであっても、或いはこれらの組み合わせであってもよい。例えば、「接続」は「アクセス」で読み替えられてもよい。本開示で使用する場合、2つの要素は、1またはそれ以上の電線、ケーブルおよびプリント電気接続の少なくとも一つを用いて、並びにいくつかの非限定的かつ非包括的な例として、無線周波数領域、マイクロ波領域および光(可視および不可視の両方)領域の波長を有する電磁エネルギーなどを用いて、互いに「接続」または「結合」されると考えることができる。
【0098】
本開示において使用する「に基づいて」という記載は、別段に明記されていない限り、「のみに基づいて」を意味しない。言い換えれば、「に基づいて」という記載は、「のみに基づいて」と「に少なくとも基づいて」の両方を意味する。
【0099】
本開示において、「含む(include)」、「含んでいる(including)」およびそれらの変形が使用されている場合、これらの用語は、用語「備える(comprising)」と同様に、包括的であることが意図される。さらに、本開示において使用されている用語「または(or)」は、排他的論理和ではないことが意図される。
【0100】
本開示において、例えば、英語でのa, anおよびtheのように、翻訳により冠詞が追加された場合、本開示は、これらの冠詞の後に続く名詞が複数形であることを含んでもよい。
【0101】
本開示において、「AとBが異なる」という用語は、「AとBが互いに異なる」ことを意味してもよい。なお、当該用語は、「AとBがそれぞれCと異なる」ことを意味してもよい。「離れる」、「結合される」などの用語も、「異なる」と同様に解釈されてもよい。
【符号の説明】
【0102】
100…行動分析装置、200…PC、300…WEBサーバ、101a…行動履歴データベース、101…時系列データ取得部、102…一般化処理部、103…データ加工部、104…学習部、104a…学習モデル、、105…BERT処理部、106…範囲選択部、107…出力部。