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

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

▶ トヨタ自動車株式会社の特許一覧 ▶ 国立大学法人 東京大学の特許一覧

特開2023-56190欠損値推定方法、機械学習方法および欠損値推定装置
<>
  • 特開-欠損値推定方法、機械学習方法および欠損値推定装置 図1
  • 特開-欠損値推定方法、機械学習方法および欠損値推定装置 図2
  • 特開-欠損値推定方法、機械学習方法および欠損値推定装置 図3
  • 特開-欠損値推定方法、機械学習方法および欠損値推定装置 図4
  • 特開-欠損値推定方法、機械学習方法および欠損値推定装置 図5
  • 特開-欠損値推定方法、機械学習方法および欠損値推定装置 図6
  • 特開-欠損値推定方法、機械学習方法および欠損値推定装置 図7
  • 特開-欠損値推定方法、機械学習方法および欠損値推定装置 図8
  • 特開-欠損値推定方法、機械学習方法および欠損値推定装置 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023056190
(43)【公開日】2023-04-19
(54)【発明の名称】欠損値推定方法、機械学習方法および欠損値推定装置
(51)【国際特許分類】
   G06N 20/00 20190101AFI20230412BHJP
【FI】
G06N20/00
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2021165372
(22)【出願日】2021-10-07
(71)【出願人】
【識別番号】000003207
【氏名又は名称】トヨタ自動車株式会社
(71)【出願人】
【識別番号】504137912
【氏名又は名称】国立大学法人 東京大学
(74)【代理人】
【識別番号】100105924
【弁理士】
【氏名又は名称】森下 賢樹
(74)【代理人】
【識別番号】100109047
【弁理士】
【氏名又は名称】村田 雄祐
(74)【代理人】
【識別番号】100109081
【弁理士】
【氏名又は名称】三木 友由
(72)【発明者】
【氏名】大西 健史
(72)【発明者】
【氏名】杉山 将
(57)【要約】
【課題】データの欠損値をより簡便に推定できる技術を提供する。
【解決手段】欠損値推定方法は、対象の特徴を表現するための複数のカテゴリ特徴量の一部を欠損した入力データを取得するステップと、複数のカテゴリ特徴量に対応する複数の特徴量ベクトルであって、次元が等しい複数の特徴量ベクトルを記憶している記憶部から、入力データに含まれる欠損していない複数のカテゴリ特徴量の複数の特徴量ベクトルを取得するステップと、マスクされたカテゴリ特徴量を含む学習用データに基づいて機械学習された学習モデルを用いて、取得された複数の特徴量ベクトルから入力データの欠損値を推定するステップとを含む。
【選択図】図6
【特許請求の範囲】
【請求項1】
対象の特徴を表現するための複数のカテゴリ特徴量の一部を欠損した入力データを取得する第1取得ステップと、
複数のカテゴリ特徴量に対応する複数の特徴量ベクトルであって、次元が等しい複数の特徴量ベクトルを記憶している記憶部から、前記入力データに含まれる欠損していない複数のカテゴリ特徴量の複数の特徴量ベクトルを取得する第2取得ステップと、
マスクされたカテゴリ特徴量を含む学習用データに基づいて機械学習された学習モデルを用いて、取得された複数の特徴量ベクトルから前記入力データの欠損値を推定する推定ステップと、
を備えることを特徴とする欠損値推定方法。
【請求項2】
前記入力データが前記対象の特徴を表現するための連続値をさらに含む場合、前記第2取得ステップにおいて、当該連続値をベクトル表現した特徴量ベクトルを取得し、当該連続値の特徴量ベクトルの複数の成分は、それぞれ周期が異なる複数の周期関数に基づいて当該連続値を変換した複数の値である、
ことを特徴とする請求項1に記載の欠損値推定方法。
【請求項3】
対象の特徴を表現するための複数のカテゴリ特徴量を含む入力データを取得する第1取得ステップと、
前記入力データに含まれる複数のカテゴリ特徴量の一部をマスクするマスクステップと、
複数のカテゴリ特徴量に対応する複数の特徴量ベクトルであって、次元が等しい複数の特徴量ベクトルを記憶している記憶部から、マスクされた前記入力データに含まれるマスクされていない複数のカテゴリ特徴量の複数の特徴量ベクトルを取得する第2取得ステップと、
学習モデルを用いて、マスクされていない複数のカテゴリ特徴量の複数の特徴量ベクトルから、マスクされたカテゴリ特徴量の特徴量ベクトルを推定する推定ステップと、
前記推定ステップで推定された特徴量ベクトルに基づいて、前記記憶部に記憶されている前記入力データに含まれる複数のカテゴリ特徴量の複数の特徴量ベクトルと、前記学習モデルのパラメータとを更新する更新ステップと、
を備えることを特徴とする機械学習方法。
【請求項4】
前記入力データが前記対象の特徴を表現するための連続値をさらに含む場合、前記第2取得ステップにおいて、当該連続値をベクトル表現した特徴量ベクトルを取得し、当該連続値の特徴量ベクトルの複数の成分は、それぞれ周期が異なる複数の周期関数に基づいて当該連続値を変換した複数の値である、
ことを特徴とする請求項3に記載の機械学習方法。
【請求項5】
前記入力データが前記連続値を含む場合、前記更新ステップにおいて、当該連続値の特徴量ベクトルを更新しない、
ことを特徴とする請求項4に記載の機械学習方法。
【請求項6】
対象の特徴を表現するための複数のカテゴリ特徴量の一部を欠損した入力データを取得する第1取得部と、
複数のカテゴリ特徴量に対応する複数の特徴量ベクトルであって、次元が等しい複数の特徴量ベクトルを記憶している記憶部から、前記入力データに含まれる欠損していない複数のカテゴリ特徴量の複数の特徴量ベクトルを取得する第2取得部と、
マスクされたカテゴリ特徴量を含む学習用データに基づいて機械学習された学習モデルを用いて、取得された複数の特徴量ベクトルから前記入力データの欠損値を推定する推定部と、
を備えることを特徴とする欠損値推定装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データの欠損値を推定するための技術に関する。
【背景技術】
【0002】
特許文献1は、各次元の背景知識となるクラス階層構造であるタクソノミを入力とし、各次元のタクソノミに基づき各次元のクラスの粒度を調整し、粒度調整された結果から欠損値を推定する欠損値予測装置を開示する。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2014-096118号
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1の技術では、タクソノミを人が設計し、入力する必要があり、多大な労力と時間を要する。
【0005】
本発明の目的は、データの欠損値をより簡便に推定できる技術を提供することにある。
【課題を解決するための手段】
【0006】
上記課題を解決するために、本発明のある態様の欠損値推定方法は、対象の特徴を表現するための複数のカテゴリ特徴量の一部を欠損した入力データを取得する第1取得ステップと、複数のカテゴリ特徴量に対応する複数の特徴量ベクトルであって、次元が等しい複数の特徴量ベクトルを記憶している記憶部から、前記入力データに含まれる欠損していない複数のカテゴリ特徴量の複数の特徴量ベクトルを取得する第2取得ステップと、マスクされたカテゴリ特徴量を含む学習用データに基づいて機械学習された学習モデルを用いて、取得された複数の特徴量ベクトルから前記入力データの欠損値を推定する推定ステップと、を備える。
【0007】
本発明の別の態様は、機械学習方法である。この方法は、対象の特徴を表現するための複数のカテゴリ特徴量を含む入力データを取得する第1取得ステップと、前記入力データに含まれる複数のカテゴリ特徴量の一部をマスクするマスクステップと、複数のカテゴリ特徴量に対応する複数の特徴量ベクトルであって、次元が等しい複数の特徴量ベクトルを記憶している記憶部から、マスクされた前記入力データに含まれるマスクされていない複数のカテゴリ特徴量の複数の特徴量ベクトルを取得する第2取得ステップと、学習モデルを用いて、マスクされていない複数のカテゴリ特徴量の複数の特徴量ベクトルから、マスクされたカテゴリ特徴量の特徴量ベクトルを推定する推定ステップと、前記推定ステップで推定された特徴量ベクトルに基づいて、前記記憶部に記憶されている前記入力データに含まれる複数のカテゴリ特徴量の複数の特徴量ベクトルと、前記学習モデルのパラメータとを更新する更新ステップと、を備える。
【0008】
本発明のさらに別の態様は、欠損値推定装置である。この装置は、対象の特徴を表現するための複数のカテゴリ特徴量の一部を欠損した入力データを取得する第1取得部と、複数のカテゴリ特徴量に対応する複数の特徴量ベクトルであって、次元が等しい複数の特徴量ベクトルを記憶している記憶部から、前記入力データに含まれる欠損していない複数のカテゴリ特徴量の複数の特徴量ベクトルを取得する第2取得部と、マスクされたカテゴリ特徴量を含む学習用データに基づいて機械学習された学習モデルを用いて、取得された複数の特徴量ベクトルから前記入力データの欠損値を推定する推定部と、を備える。
【発明の効果】
【0009】
本発明によれば、データの欠損値をより簡便に推定可能な技術を提供できる。
【図面の簡単な説明】
【0010】
図1】実施の形態の欠損値推定装置の構成を示す図である。
図2】実施の形態のカテゴリ特徴量のベクトル表現を説明するための図である。
図3図1の欠損値推定装置における学習処理を説明するための図である。
図4図3の学習処理で推定された特徴量ベクトルと、特徴量ベクトル記憶部に記憶された複数の特徴量ベクトルの一部との関係の一例を概略的に示す図である。
図5図1の欠損値推定装置の機械学習処理を示すフローチャートである。
図6図1の欠損値推定装置の欠損値推定および補完処理を示すフローチャートである。
図7図1の欠損値推定装置における連続値のベクトル表現を説明するための図である。
図8】実施の形態の商品推薦システムの構成を示す図である。
図9図8の商品推薦システムの処理を示すフローチャートである。
【発明を実施するための形態】
【0011】
実施の形態を具体的に説明する前に、本開示の基礎となった知見を説明する。機械学習モデルを用いて、顧客であるユーザが企業のウェブサイトなどに入力したカスタマーデータ(以下、ユーザデータとも呼ぶ)などを分析したり、そのデータをもとにユーザの好みの商品を推定したりすることが望まれる。カスタマーデータは、例えば、性別、趣味などの複数のカテゴリ特徴量を含む。しかし、ユーザが一部のカテゴリ特徴量を未入力であること、または、通信エラーなどにより、カスタマーデータは欠損値を含むことが多い。機械学習モデルは欠損値を扱うことができないため、前処理として欠損値を適当な値で補完する必要がある。補完された値が妥当でない場合、機械学習に悪影響を与えるため、より正確に欠損値を補完することが望まれる。
【0012】
また、深層学習モデルを用いて、カテゴリ特徴量の欠損値を補完する技術が知られている。カテゴリ特徴量を深層学習モデルに投入する際、カテゴリ特徴量はone-hotベクトルで表現されるが、one-hotベクトルはカテゴリ特徴量の意味情報を表現できない。例えば、趣味に関するカテゴリ特徴量として、「読書」、「サッカー」、「ゴルフ」などが挙げられる。「サッカー」と「テニス」は類似していると考えられるが、「読書」、「サッカー」、「ゴルフ」を表すone-hotベクトルのそれぞれの距離は等しいため、類似度を表現できない。そのため、one-hotベクトルを利用した場合、カテゴリ特徴量の類似度を考慮して欠損値を補完することは困難である。
【0013】
そこで、実施の形態では、カテゴリ特徴量の意味情報を表現するようにカテゴリ特徴量をベクトル表現し、機械学習により最適なベクトル表現を自動獲得する。
【0014】
図1は、実施の形態の欠損値推定装置1の構成を示す。欠損値推定装置1は、例えば既知のBERT(Bidirectional Encoder Representations from Transformers)を利用して、ユーザデータのカテゴリ特徴量のベクトル表現と欠損値推定モデルのパラメータを機械学習し、学習済みのベクトル表現と欠損値推定モデルを用いてユーザデータの欠損値を推定および補完する。
【0015】
欠損値推定装置1は、処理部10、欠損ユーザデータ記憶部30、特徴量ベクトル記憶部32、および、補完済みユーザデータ記憶部34を備える。処理部10は、第1取得部12、マスク部14、第2取得部16、推定部18、更新部22、および、補完部24を有する。推定部18は、欠損値推定モデル20を有する。
【0016】
処理部10の構成は、ハードウエア的には、任意のコンピュータのCPU、メモリ、その他のLSIで実現でき、ソフトウエア的にはメモリにロードされたプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
【0017】
欠損ユーザデータ記憶部30は、複数のユーザの欠損ユーザデータを記憶している。欠損ユーザデータは、複数のユーザのそれぞれの欠損レコードを含む。欠損レコードは、例えば、ユーザが入力したカスタマーデータであり、ユーザの特徴を表現するための複数のカテゴリ特徴量の一部を欠損している。欠損しているカテゴリ特徴量を欠損値と呼ぶ。カテゴリ特徴量は、例えば、性別、年齢層、婚姻状況、趣味などのカテゴリに関する特徴量を含み、カテゴリカル特徴量またはカテゴリ変数とも呼ばれる。
【0018】
欠損ユーザデータは、学習用データセットとして処理部10における機械学習に利用される。機械学習が完了すると、処理部10により、欠損ユーザデータのそれぞれの欠損レコードの欠損値が推定および補完される。
【0019】
欠損ユーザデータ記憶部30は、複数のユーザの欠損していないユーザデータを記憶していてもよい。欠損していないユーザデータも機械学習に利用することで、学習用データを増やすことができる。
【0020】
特徴量ベクトル記憶部32は、複数のカテゴリ特徴量に対応する複数の特徴量ベクトルを記憶している。カテゴリ特徴量と特徴量ベクトルは、1対1に対応している。特徴量ベクトルは、対応するカテゴリ特徴量をベクトル表現したものである。複数の特徴量ベクトルは、機械学習により最適化される。特徴量ベクトル記憶部32は、欠損値推定モデル20のパラメータも記憶している。パラメータも機械学習により最適化される。
【0021】
図2は、実施の形態のカテゴリ特徴量のベクトル表現を説明するための図である。例えば、ユーザのレコードが[男、30代、独身、...]である場合を説明する。「男」はカテゴリ「性別」のカテゴリ特徴量であり、「30代」はカテゴリ「年齢層」のカテゴリ特徴量であり、「独身」はカテゴリ「婚姻状況」のカテゴリ特徴量である。ユーザのレコードは、これら以外の複数のカテゴリ特徴量も含むことができる。
【0022】
e(男)、e(30代)、e(独身)等は、それぞれ、特徴量ベクトルであり、d次元の行ベクトルである。例えば、e(男)は、カテゴリ特徴量「男」の特徴量ベクトルを表す。特徴量ベクトルは、one-hotベクトルとは異なり、複数の成分が0以外の値であってよく、各成分が0と1以外の値であってよい。複数の特徴量ベクトルのそれぞれの次元は等しい。そのため、任意の2つの特徴量ベクトルは、対応する2つのカテゴリ特徴量の類似度を表すことができる。dは、例えば、100以上であってよく、シミュレーションにより適宜定めることができる。dは、欠損値推定装置1の利用者などにより機械学習前に予め設定される。
【0023】
このユーザのレコードに対応するベクトルのシーケンスxiを[e(男);e(30代);e(独身);...]というd行E列の行列で表現する。ベクトルのシーケンスxiには、転置された複数の特徴量ベクトルが埋め込まれている。Eは、各レコードのカテゴリ特徴量の数である。このベクトルのシーケンスxiを欠損値推定モデル20に入力して、学習または推定が実行される。
【0024】
図1と共に図3を参照して、欠損値推定装置1における学習処理を説明する。学習処理は、学習用データの複数のカテゴリ特徴量の一部をマスクして実行され、Masked Learningとも呼べる。
【0025】
図3は、図1の欠損値推定装置1における学習処理を説明するための図である。第1取得部12は、あるユーザの欠損レコードを欠損ユーザデータ記憶部30から入力データとして取得し、取得した欠損レコードをマスク部14と更新部22に供給する。欠損レコードは、[NA、50代、独身、読書、...]である一例を説明する。「NA」は欠損値を表し、この場合、性別に関するカテゴリ特徴量が欠損している。既述のように、欠損ユーザデータ記憶部30が欠損していないユーザデータも含む場合、第1取得部12は、欠損値を含まないレコードを入力データとして取得してもよい。
【0026】
マスク部14は、第1取得部12で取得された欠損レコードに含まれる欠損していない複数のカテゴリ特徴量の一部をマスクし、マスクされたレコードを第2取得部16に供給する。図3の例では、マスク部14は、欠損レコードの趣味に関するカテゴリ特徴量「読書」をマスクしており、マスクされたレコードにおいて、マスクされた特徴量を「MASK」と表す。マスク部14は、欠損していない複数のカテゴリ特徴量をマスクしてもよい。
【0027】
第2取得部16は、特徴量ベクトル記憶部32から、マスクされたレコードに含まれるマスクされておらず欠損していない複数のカテゴリ特徴量に対応する複数の特徴量ベクトルを取得する。これら複数の特徴量ベクトルは、前回までの学習で更新されたものである。
【0028】
第2取得部16は、取得した複数の特徴量ベクトルに基づいて、マスクされたレコードに対応するベクトルのシーケンスを生成する。このとき第2取得部16は、マスクされたカテゴリ特徴量と欠損値のそれぞれに関して、図3で「e(mask)」と表す予め定められたベクトルを埋め込み、ベクトルのシーケンスを生成する。つまりベクトルのシーケンスにおいて、マスクされたカテゴリ特徴量に対応する列ベクトルと欠損値に対応する列ベクトルは同一である。ベクトルのシーケンスは、マスクされたカテゴリ特徴量「読書」の特徴量ベクトルを含まない。第2取得部16は、生成したベクトルのシーケンスを推定部18に供給する。なお、欠損レコードの複数のカテゴリ特徴量の順番に意味がないため、複数のカテゴリ特徴量の順番を特定するためのベクトルを推定部18に供給する必要はない。
【0029】
第2取得部16は、欠損値推定モデル20用のパラメータも特徴量ベクトル記憶部32から取得し、推定部18に供給する。このパラメータは、前回の学習で更新されたものである。
【0030】
欠損値推定モデル20は、深層学習モデルである。深層学習モデルの例として、Transformerが挙げられる。
【0031】
推定部18は、供給されたパラメータと欠損値推定モデル20を用いて、供給されたベクトルのシーケンスから、マスクされたカテゴリ特徴量の特徴量ベクトルhを推定する。この処理は、推定部18が、供給されたパラメータと欠損値推定モデル20を用いて、マスクされていない複数のカテゴリ特徴量の複数の特徴量ベクトルから、マスクされたカテゴリ特徴量の特徴量ベクトルhを推定することに相当する。推定部18は、マスクされたカテゴリ特徴量以外の複数のカテゴリ特徴量の複数の特徴量ベクトルから、マスクされたカテゴリ特徴量の特徴量ベクトルhを推定するとも言える。マスク部14において欠損レコードの複数のカテゴリ特徴量がマスクされた場合、推定部18は、マスクされた複数のカテゴリ特徴量の特徴量ベクトルhを推定する。
【0032】
図3の例では、推定部18は、ベクトルのシーケンスに含まれる「NA」の特徴量ベクトル、「50代」の特徴量ベクトル、「独身」の特徴量ベクトル等から、マスクされた「読書」の特徴量ベクトルhを推定する。
【0033】
図4は、図3の学習処理で推定された特徴量ベクトルhと、特徴量ベクトル記憶部32に記憶された複数の特徴量ベクトルの一部との関係の一例を概略的に示す。特徴量ベクトルの次元は、既述のように例えば100次元以上であるが、図4では、複数の特徴量ベクトルの類似度を理解しやすくするために2次元に簡略化している。図4は、複数回の学習後の状況を示し、推定された特徴量ベクトルh以外の複数の特徴量ベクトルは、前回までの学習で更新されたものである。
【0034】
推定された特徴量ベクトルhは、趣味に関する「サッカー」と「ゴルフ」の現在の特徴量ベクトルと比較して、趣味に関する「読書」の現在の特徴量ベクトルに近い。
【0035】
更新部22は、特徴量ベクトル記憶部32から、欠損レコードの欠損していない複数のカテゴリ特徴量の複数の現在の特徴量ベクトルおよびマスクされたカテゴリ特徴量と同じカテゴリの1以上のカテゴリ特徴量の1以上の現在の特徴量ベクトルを取得する。更新部22は、推定された特徴量ベクトルhと、欠損レコードの欠損していない複数のカテゴリ特徴量の複数の現在の特徴量ベクトルおよびマスクされたカテゴリ特徴量と同じカテゴリの1以上のカテゴリ特徴量の1以上の現在の特徴量ベクトルとに基づいて、特徴量ベクトル記憶部32に記憶されている当該複数の現在の特徴量ベクトルと欠損値推定モデル20のパラメータを更新する。
【0036】
具体的には、更新部22は、推定された特徴量ベクトルhと、欠損レコードの欠損していない複数のカテゴリ特徴量の複数の現在の特徴量ベクトルおよびマスクされたカテゴリ特徴量と同じカテゴリの1以上のカテゴリ特徴量の1以上の現在の特徴量ベクトルのそれぞれとを比較し、比較結果に基づいて、当該複数の現在の特徴量ベクトルを更新する。図4の例では、更新部22は、マスクされたカテゴリ特徴量「読書」の特徴量ベクトルを特徴量ベクトルhに近づけ、マスクされたカテゴリ特徴量「読書」と同じカテゴリ「趣味」の「サッカー」と「ゴルフ」の各特徴量ベクトルを特徴量ベクトルhから遠ざけるように更新する。更新部22は、例えば、マスクされたカテゴリ特徴量「読書」の特徴量ベクトルを、推定された特徴量ベクトルhに一致させる。更新部22は、欠損レコードに含まれる「50代」、「独身」の特徴量ベクトルも、推定された特徴量ベクトルhを基準として移動させて更新する。特徴量ベクトルと欠損値推定モデル20のパラメータの更新には、公知のBERTの処理を利用できる。
【0037】
各特徴量ベクトルとパラメータが更新されると、マスク部14は、取得された欠損レコードにおいて、マスク対象のカテゴリ特徴量を変更し、欠損していないカテゴリ特徴量の別の一部をマスクする。例えば、マスク部14は、「読書」のマスクを解除し、「独身」をマスクする。そして、推定部18はマスクされたカテゴリ特徴量の特徴量ベクトルhを推定し、更新部22は、特徴量ベクトルhに基づいて各特徴量ベクトルとパラメータを更新する。処理部10は、現在の欠損レコードによる学習の終了条件が満たされるまで、これらの処理を繰り返す。現在の欠損レコードによる学習の終了条件は、例えば、現在の欠損レコードの欠損していないカテゴリ特徴量のそれぞれが少なくとも1回マスクされたことであってよい。現在の欠損レコードによる学習の終了条件が満たされた場合、第1取得部12は、別の欠損レコードを欠損ユーザデータ記憶部30から取得し、取得された欠損レコードを学習用データとして、既述の処理を繰り返す。
【0038】
複数回の学習により、学習に用いた複数の欠損レコードの内容に応じて複数のカテゴリ特徴量のベクトル表現を最適化でき、最適化されたベクトル表現を自動的に獲得できる。学習が適切に進むと、例えば、「読書」がマスクされた場合、推定された特徴量ベクトルhと「読書」の現在の特徴量ベクトルとの差が小さくなる。複数の特徴量ベクトルの次元が等しいので、カテゴリ特徴量の類似度を表現できる。
【0039】
機械学習が終了すると、欠損値推定装置1は、欠損値推定処理を実行する。第1取得部12は、欠損値推定対象のユーザの欠損レコードを欠損ユーザデータ記憶部30から入力データとして取得し、取得した欠損レコードを第2取得部16と補完部24に供給する。欠損レコードは、学習に用いられたものでもよいし、学習に用いられていないものでもよい。
【0040】
第2取得部16は、第1取得部12から供給された欠損レコードに含まれる欠損していない複数のカテゴリ特徴量の複数の特徴量ベクトルを特徴量ベクトル記憶部32から取得し、取得した複数の特徴量ベクトルに基づいて、欠損レコードに対応するベクトルのシーケンスを生成する。このとき第2取得部16は、欠損値に関して、図3で「e(mask)」と表す予め定められたベクトルを埋め込み、ベクトルのシーケンスを生成する。第2取得部16は、生成したベクトルのシーケンスを推定部18に供給する。
【0041】
推定部18は、機械学習された欠損値推定モデル20を用い、供給されたベクトルのシーケンスから欠損値を推定する。この処理は、推定部18が、マスクされたカテゴリ特徴量を含む学習用データに基づいて機械学習された欠損値推定モデル20を用いて、取得された複数の特徴量ベクトルから入力データの欠損値を推定することに相当する。欠損レコードが複数の欠損値を含む場合、推定部18は、複数の欠損値を推定する。推定部18は、推定した欠損値であるカテゴリ特徴量を補完部24に供給する。
【0042】
補完部24は、推定部18から供給されたカテゴリ特徴量で欠損レコードの欠損値を補完し、補完済みレコードを生成する。補完部24は、補完済みレコードを補完済みユーザデータ記憶部34に格納する。処理部10は、これらの処理を繰り返し、欠損ユーザデータ記憶部30の複数の欠損レコードのそれぞれの欠損値を補完し、複数の補完済みレコードを補完済みユーザデータ記憶部34に格納する。
【0043】
機械学習で最適化された次元が等しい複数の特徴量ベクトルでカテゴリ特徴量の類似度を表現でき、機械学習された学習モデルを用いて複数の特徴量ベクトルから欠損値を推定するので、人が行う作業を減らすことができ、より高精度な欠損値を自動で推定できる。よって、データの欠損値をより簡便に推定できる。
【0044】
図5は、図1の欠損値推定装置1の機械学習処理を示すフローチャートである。欠損レコードを学習用データとする一例を示す。第1取得部12は、欠損ユーザデータ記憶部30から1つの欠損レコードを取得し(S10)、マスク部14は、欠損レコードの欠損していない複数のカテゴリ特徴量の一部をマスクする(S12)。このとき、マスク部14は、既存のマスクがあれば、マスク対象のカテゴリ特徴量を変更する。
【0045】
第2取得部16は、欠損レコードのマスクされていない複数のカテゴリ特徴量の複数の特徴量ベクトルを特徴量ベクトル記憶部32から取得し(S14)、推定部18は、欠損値推定モデル20を用い、取得された複数の特徴量ベクトルから、マスクされたカテゴリ特徴量の特徴量ベクトルhを推定する(S16)。
【0046】
更新部22は、推定された特徴量ベクトルhと、欠損レコードおよびマスクされたカテゴリ特徴量に応じて定まる複数の特徴量ベクトルのそれぞれとを比較し(S18)、比較結果に基づいて、当該複数の特徴量ベクトルと欠損値推定モデル20のパラメータを特徴量ベクトル記憶部32において更新する(S20)。現在の欠損レコードによる学習を終了しない場合(S22のN)、S12に戻る。現在の欠損レコードによる学習を終了し(S22のY)、学習を終了しない場合(S24のN)、S10に戻る。学習を終了する場合(S24のY)、処理を終了する。
【0047】
図6は、図1の欠損値推定装置1の欠損値推定および補完処理を示すフローチャートである。図6の処理は、繰り返し実行されてよい。第1取得部12は、対象ユーザの欠損レコードを取得し(S30)、第2取得部16は、欠損レコードの欠損していない複数のカテゴリ特徴量の複数の特徴量ベクトルを特徴量ベクトル記憶部32から取得する(S32)。
【0048】
推定部18は、機械学習された欠損値推定モデル20を用い、取得された複数の特徴量ベクトルから欠損値を推定し(S34)、補完部24は、欠損レコードの欠損値を補完し、補完済みレコードを補完済みユーザデータ記憶部34に格納し(S36)、処理を終了する。
【0049】
次に、レコードがユーザの特徴を表現するための連続値をさらに含む場合について、既述の処理と異なる点を中心に説明する。
【0050】
図7は、図1の欠損値推定装置1における連続値のベクトル表現を説明するための図である。例えば、ユーザのレコードが[男、30代、独身、68kg、...]である場合を説明する。「68kg」は、体重を表し、カテゴリ特徴量ではなく連続値である。つまり、ユーザは、体重に関して任意の数値を入力できるとする。他の連続値として、例えば、年齢、身長などが挙げられる。
【0051】
体重に対応する特徴量ベクトルは、d次元の行ベクトルであり、その成分は、cos(π0.68)、cos(2π0.68)、cos(3π0.68)等を含む。つまり、連続値の特徴量ベクトルの複数の成分は、それぞれ周期が異なる複数の周期関数に基づいて当該連続値を変換した複数の値である。周期関数と周期は予め定められている。周期関数のそれぞれの周期は、シミュレーションにより適宜定めることができる。
【0052】
このユーザのレコードに対応するベクトルのシーケンスxiも、d行E列の行列で表現され、体重に対応する行ベクトルを転置した列ベクトルを含む。
【0053】
まず、学習について説明する。入力データである欠損レコードまたは欠損値を含まないレコードが、カテゴリ特徴量と連続値を含む場合、第2取得部16は、連続値を上述の複数の周期関数で変換して複数の成分を導出することで、連続値をベクトル表現した上述の特徴量ベクトルを取得し、ベクトルのシーケンスを生成する。連続値の特徴量ベクトルは、特徴量ベクトル記憶部32に記憶されていなくてよい。
【0054】
マスク部14は、連続値をマスクしてもよい。連続値がマスクされた場合、推定部18は、供給されたパラメータと欠損値推定モデル20を用いて、供給されたベクトルのシーケンスから、マスクされた連続値の特徴量ベクトルhを推定する。
【0055】
更新部22は、推定された特徴量ベクトルhと、欠損レコードの欠損していない複数のカテゴリ特徴量および欠損していない連続値の複数の現在の特徴量ベクトルならびにマスクされたカテゴリ特徴量と同じカテゴリの1以上のカテゴリ特徴量の1以上の現在の特徴量ベクトルとに基づいて、特徴量ベクトル記憶部32に記憶されている当該複数のカテゴリ特徴量の複数の現在の特徴量ベクトルと欠損値推定モデル20のパラメータを更新する。一方、更新部22は、マスクの対象が連続値であるかカテゴリ特徴量であるかによらず、連続値を表現する特徴量ベクトルを更新しない。つまり、連続値に対応する特徴量ベクトルは、上述の複数の周期関数で規定される連続値に固有の固定のベクトルであり、学習により更新されない。連続値と関連性のあるカテゴリ特徴量の特徴量ベクトルは、連続値の特徴量ベクトルとの関連性を表すように更新される。
【0056】
学習の終了後、欠損値を推定するとき、入力データである欠損レコードがカテゴリ特徴量と連続値を含む場合、第2取得部16は、連続値をベクトル表現した上述の特徴量ベクトルも取得し、ベクトルのシーケンスを生成する。
【0057】
推定部18は、機械学習された欠損値推定モデル20を用い、供給されたベクトルのシーケンスから欠損値を推定する。これにより、連続値が欠損している場合、連続値である欠損値を推定できる。また、カテゴリ特徴量が欠損している場合、欠損値と連続値との関連性の度合いも反映させて欠損値を推定できる。
【0058】
次に、欠損値推定装置1の適用例を説明する。
図8は、実施の形態の商品推薦システム100の構成を示す。商品推薦システム100は、機械学習された商品推薦モデルを用い、ユーザがウェブサイトに入力したユーザデータにもとづいて、このユーザが興味を持つ確率が高い商品を推定し、推定した推薦商品をこのユーザに提示する。
【0059】
商品推薦システム100は、図1の欠損値推定装置1、および、商品推薦装置40を備える。欠損値推定装置1では、既述の機械学習が完了しているとする。商品推薦装置40は、受付部42、決定部44、および、提示部48を備える。
【0060】
商品推薦装置40の構成は、ハードウエア的には、任意のコンピュータのCPU、メモリ、その他のLSIで実現でき、ソフトウエア的にはメモリにロードされたプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
【0061】
受付部42は、ユーザがブラウザを介してウェブサイトに入力したユーザデータを受け付ける。ユーザデータは、例えば、図2のレコードの複数のカテゴリ特徴量を含む。ユーザデータの少なくとも1つのカテゴリ特徴量が欠損している場合、受付部42は、欠損レコードであるユーザデータを欠損値推定装置1に供給する。欠損値推定装置1は、供給されたユーザデータに基づいて、既述のように欠損値を推定および補完し、補完済みのユーザデータを商品推薦装置40に返す。
【0062】
一方、受付部42は、受け付けたユーザデータのカテゴリ特徴量が欠損していない場合、そのユーザデータを決定部44に供給する。
【0063】
決定部44は、機械学習された商品推薦モデル46を含む。決定部44は、学習済みの商品推薦モデル46を用いて、欠損値推定装置1から供給された補完済みのユーザデータ、または、受付部42から供給されたユーザデータから、ユーザへの推薦商品を決定し、決定した推薦商品の情報を提示部48に供給する。
【0064】
商品推薦モデル46は、複数のユーザのそれぞれに関する、当該ユーザのユーザデータと、当該ユーザが購入した商品または興味を持った商品との組み合わせのデータを学習用データとして、予め機械学習されている。商品推薦モデル46は、あるユーザのユーザデータが与えられると、このユーザが興味を持つ確率が高い商品を推定するように構成されている。商品推薦モデル46は、公知の技術を用いて構成できる。
【0065】
機械学習モデルである商品推薦モデル46は、カテゴリ特徴量が欠損しているユーザデータを扱うことができないが、ユーザが入力したユーザデータが欠損値を含む場合、欠損値推定装置1でユーザデータの欠損値が補完され、ユーザの情報がより正確に表現されるため、より正確に推薦商品を決定できる。
【0066】
提示部48は、例えば、ブラウザを介して、画像、動画、文字、音声の少なくともいずれかを用いて、供給された推薦商品の情報をユーザに提示する。
【0067】
図9は、図8の商品推薦システム100の処理を示すフローチャートである。受付部42は、ユーザからユーザデータを受け付け(S50)、ユーザデータに欠損がなければ(S52のN)、S56に移る。ユーザデータに欠損があれば(S52のY)、欠損値推定装置1は欠損値を推定し、補完する(S54)。決定部44は、商品推薦モデル46を用い、欠損のないユーザデータから、ユーザへの推薦商品を決定する(S56)。提示部48は、決定された推薦商品の情報をユーザに提示する(S58)。
【0068】
以上、実施の形態をもとに本発明を説明した。実施の形態はあくまでも例示であり、各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【0069】
たとえば、欠損値推定装置1は、既述の機械学習のみを実行し、欠損値の推定と補完を実行しない機械学習装置として構成されてもよい。この場合、欠損値推定装置1は、補完部24と補完済みユーザデータ記憶部34を備えなくてよい。また、欠損値推定装置1は、学習済みの特徴量ベクトルと欠損値推定モデル20を用いて欠損値の推定と補完のみを実行し、機械学習を実行しないように構成されてもよい。この場合、欠損値推定装置1は、マスク部14と更新部22を備えなくてよい。
【0070】
また、入力データは、対象の特徴を表現するための複数のカテゴリ特徴量を含むデータであればよく、ユーザデータに限らない。例えば、入力データは、車両や商品などの物の特徴を表現するための複数のカテゴリ特徴量を含むデータであってもよい。
【符号の説明】
【0071】
1…欠損値推定装置、10…処理部、12…第1取得部、14…マスク部、16…第2取得部、18…推定部、20…欠損値推定モデル、22…更新部、24…補完部、30…欠損ユーザデータ記憶部、32…特徴量ベクトル記憶部、34…補完済みユーザデータ記憶部。
図1
図2
図3
図4
図5
図6
図7
図8
図9