(57)【要約】【課題】利用者と対応する情報の推定精度を向上させること。【解決手段】本願に係る学習装置は、取得部と、学習部とを有する。取得部は、配信対象を示すベクトルであって、配信対象に含まれる情報と対応する次元に所定の値が格納された配信対象ベクトルと、利用者を示す利用者ベクトルとを取得する。学習部は、配信対象ベクトルと利用者ベクトルとに基づいて、配信対象ベクトルと対応する配信対象が、利用者ベクトルと対応する利用者と対応するか否かを判定するモデルを学習する。【選択図】図３
2020017126.tif 000002
【特許請求の範囲】
【請求項１】
配信対象を示すベクトルであって、当該配信対象に含まれる情報と対応する次元に所定の値が格納された配信対象ベクトルと、利用者を示す利用者ベクトルとを取得する取得部と、
前記配信対象ベクトルと前記利用者ベクトルとに基づいて、当該配信対象ベクトルと対応する配信対象が、当該利用者ベクトルと対応する利用者と対応するか否かを判定するモデルを学習する学習部と
を有することを特徴する学習装置。
【請求項２】
前記取得部は、
前記利用者が有する属性と対応する次元に所定の値が格納された利用者ベクトルを取得する
ことを特徴とする請求項１に記載の学習装置。
【請求項３】
前記取得部は、
配信対象となる文章に含まれる単語と対応する次元に所定の値が格納された配信対象ベクトルを取得する
ことを特徴とする請求項１または２に記載の学習装置。
【請求項４】
前記学習部は、
前記利用者に配信された配信対象と対応する配信対象ベクトルと、当該利用者の利用者ベクトルとの共起性を前記モデルに学習させる
ことを特徴とする請求項１〜３のうちいずれか１つに記載の学習装置。
【請求項５】
前記学習部は、
前記配信対象ベクトルと前記利用者ベクトルとを連結した連結ベクトルから、当該配信対象ベクトルと対応する配信対象が、当該利用者ベクトルと対応する利用者と対応するか否かを判定するモデルを学習する
ことを特徴とする請求項１〜４のうちいずれか１つに記載の学習装置。
【請求項６】
前記学習部は、
前記利用者ベクトルの末尾に前記配信対象ベクトルを連結した連結ベクトルから、前記配信対象が前記利用者と対応するか否かを判定するモデルを学習する
ことを特徴とする請求項５に記載の学習装置。
【請求項７】
前記学習部は、
次元数が削減されるように前記連結ベクトルを徐々に畳み込むことで、前記配信対象が前記利用者と対応するか否かを示す値を生成するモデルを学習する
ことを特徴とする請求項５または６に記載の学習装置。
【請求項８】
前記学習部は、
前記配信対象ベクトルから、当該配信対象ベクトルが示す配信対象に含まれる情報の特徴を示す特徴ベクトルの平均値の和となるベクトルを生成し、生成されたベクトルに基づいて、前記利用者と前記配信対象とが対応するか否かを判定するモデルを学習する
ことを特徴とする請求項１〜７のうちいずれか１つに記載の学習装置。
【請求項９】
前記学習部は、
前記利用者ベクトルと、当該利用者ベクトルが示す利用者が選択した配信対象を示す配信対象ベクトルとが入力された際に、当該利用者ベクトルが示す利用者と当該配信対象ベクトルが示す配信対象とが対応する旨を出力し、前記利用者ベクトルと、当該利用者ベクトルが示す利用者が選択しなかった配信対象を示す配信対象ベクトルとが入力された際に、当該利用者ベクトルが示す利用者と当該配信対象ベクトルが示す配信対象とが対応しない旨が出力されるように、前記モデルを学習する
ことを特徴とする請求項１〜８のうちいずれか１つに記載の学習装置。
【請求項１０】
配信対象の候補となる配信対象に含まれる情報と対応する次元に所定の値が格納された候補ベクトルと、当該配信対象の候補の配信先となる利用者を示す配信先ベクトルとを生成する生成部と、
前記学習部により学習されたモデルを用いて、前記候補ベクトルと前記配信先ベクトルとから、前記配信対象の候補を前記配信先となる利用者に配信するか否かを判定する判定部と
を有することを特徴とする請求項１〜９のうちいずれか１つに記載の学習装置。
【請求項１１】
前記判定部は、
前記候補ベクトルと前記配信先ベクトルとが入力された際に、当該候補ベクトルが示す配信候補が、前記配信先ベクトルが示す利用者と対応する旨を前記モデルが出力した場合は、当該配信候補を当該利用者に配信すると判定する
ことを特徴とする請求項１０に記載の学習装置。
【請求項１２】
学習装置が実行する方法であって、
配信対象を示すベクトルであって、当該配信対象に含まれる情報と対応する次元に所定の値が格納された配信対象ベクトルと、利用者を示す利用者ベクトルとを取得する取得工程と、
前記配信対象ベクトルと前記利用者ベクトルとに基づいて、当該配信対象ベクトルと対応する配信対象が、当該利用者ベクトルと対応する利用者と対応するか否かを判定するモデルを学習する学習工程と
を含むことを特徴とする学習方法。
【請求項１３】
配信対象を示すベクトルであって、当該配信対象に含まれる情報と対応する次元に所定の値が格納された配信対象ベクトルと、利用者を示す利用者ベクトルとを取得する取得手順と、
前記配信対象ベクトルと前記利用者ベクトルとに基づいて、当該配信対象ベクトルと対応する配信対象が、当該利用者ベクトルと対応する利用者と対応するか否かを判定するモデルを学習する学習手順と
をコンピュータに実行させるための学習プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、学習装置、学習方法及び学習プログラムに関する。
【背景技術】
【０００２】
従来、各種の情報を利用者に対して提供する技術が知られている。このような技術の一例として、利用者が過去に選択した情報と関連する情報に基づいて、利用者と関連性が高い情報や利用者が興味を有する情報等、利用者と対応する情報を推定し、推定した情報を利用者に提供する技術が知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−１５０５６１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述した従来技術では、利用者と対応する情報を適切に推定できない恐れがある。
【０００５】
例えば、上述した従来技術では、新規の利用者等、過去に情報を選択していない利用者に対しては、利用者と対応する情報を適切に推定できない。
【０００６】
本願は、上記に鑑みてなされたものであって、利用者と対応する情報の推定精度を向上させることを目的とする。
【０００７】
本願に係る学習装置は、配信対象を示すベクトルであって、当該配信対象に含まれる情報と対応する次元に所定の値が格納された配信対象ベクトルと、利用者を示す利用者ベクトルとを取得する取得部と、前記配信対象ベクトルと前記利用者ベクトルとに基づいて、当該配信対象ベクトルと対応する配信対象が、当該利用者ベクトルと対応する利用者と対応するか否かを判定するモデルを学習する学習部とを有することを特徴とする。
【発明の効果】
【０００８】
実施形態の一態様によれば、利用者と対応する情報の推定精度を向上させることができるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施形態に係るネットワークシステムの構成例を示す図である。
【図２】図２は、実施形態に係る学習処理の一例を示す図である。
【図３】図３は、実施形態に係る学習装置の構成例を示す図である。
【図４】図４は、実施形態に係る訓練データ記憶部の一例を示す図である。
【図５】図５は、実施形態に係る学習装置による学習処理手順を示すフローチャートである。
【図６】図６は、ハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【００１０】
以下に、本願に係る学習装置、学習方法及び学習プログラムを実施するための形態（以下、「実施形態」と呼ぶ）について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る学習装置、学習方法及び学習プログラムが限定されるものではない。また、各実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略する。
【００１１】
〔１．ネットワークシステムの構成〕
まず、図１を参照して、実施形態に係るネットワークシステム１の構成について説明する。図１は、実施形態に係るネットワークシステム１の構成例を示す図である。図１に示すように、実施形態に係るネットワークシステム１には、端末装置１０と、提供装置２０と、学習装置１００とが含まれる。端末装置１０、提供装置２０および学習装置１００は、それぞれネットワークＮと有線又は無線により接続される。
【００１２】
図１中では図示していないが、ネットワークシステム１は、端末装置１０１〜１０ｎを含んでもよい。本明細書では、端末装置１０１〜１０ｎを区別する必要がない場合は、端末装置１０１〜１０ｎを「端末装置１０」と総称する。また、ネットワークシステム１は、複数台の提供装置２０や、複数台の学習装置１００を含んでもよい。
【００１３】
端末装置１０は、ユーザによって利用される情報処理装置である。端末装置１０は、スマートフォン、デスクトップ型ＰＣ（Personal  Computer）、ノート型ＰＣ、タブレット型ＰＣ、ＰＤＡ（Personal  Digital  Assistant）を含む、任意のタイプの情報処理装置であってもよい。
【００１４】
提供装置２０は、端末装置１０および学習装置１００に、各種情報を提供するサーバ装置である。例えば、提供装置２０は、端末装置１０に対して、コンテンツ（例えば、プッシュ通知）を提供する。また、例えば、提供装置２０は、学習装置１００に対して、コンテンツに関連する判定モデルを生成するための訓練データを提供する。
【００１５】
学習装置１００は、ユーザに適合する情報を判定するモデルを学習するサーバ装置である。学習装置１００は、ネットワークＮを介して、有線又は無線により端末装置１０および提供装置２０と通信を行う。
【００１６】
〔２．学習処理〕
次に、図２を参照して、実施形態に係る学習処理の一例について説明する。図２は、実施形態に係る学習処理の一例を示す図である。
【００１７】
図２の例では、提供装置２０は、「ユーザＵ１」によって利用される端末装置１０１に対して、プッシュ型で「通知Ｎ１」を送信する。「プッシュ型」という語は、情報が、情報を提供する装置のトリガに基づいて送信される仕組みを指す。言い換えると、提供装置２０は、端末装置１０１に、通知Ｎ１を、プッシュ通知として送信する。
【００１８】
図２の例では、提供装置２０は、通知Ｎ１に対する応答を受信する。一例では、提供装置２０は、通知Ｎ１が選択されたことを示す選択情報を、端末装置１０１から受信する。この場合、通知Ｎ１は、ユーザＵ１に適合すると考えられる。別の例では、提供装置２０は、通知Ｎ１が選択されなかったことを示す選択情報を、端末装置１０１から受信する。この場合、通知Ｎ１は、ユーザＵ１に適合しないと考えられる。
【００１９】
図２の例では、提供装置２０は、訓練データを、学習装置１００に送信する。訓練データは、ユーザＵ１の属性情報ＡＩ１（例えば、ユーザＵ１のデモグラフィック属性）と、通知Ｎ１の通知情報ＮＩ１（例えば、通知Ｎ１のタイトル）と、ユーザＵ１が通知Ｎ１を選択したか否かを示す選択情報ＳＩ１（例えば、選択フラグ）とを含む。
【００２０】
図２の例では、学習装置１００は、提供装置２０から受信された訓練データを用いて、所定の通知がユーザに適合するか否かを判定する順伝播型ニューラルネットを学習する。より具体的には、学習装置１００は、ユーザＵ１の属性情報ＡＩ１と通知Ｎ１の通知情報ＮＩ１とを、訓練データの入力として用いる。また、学習装置１００は、通知Ｎ１が選択されたか否か示す選択情報ＳＩ１を、訓練データの出力として用いる。
【００２１】
図２の例では、ユーザＵ１の属性情報ＡＩ１は、ユーザＵ１に対応するワンホットベクトル（one  hot  vector）ＯＶ１を含む。ワンホットベクトルＯＶ１の複数の成分のうちゼロでない１つの成分は、ユーザＵ１のユーザＩＤに対応する。一例では、ワンホットベクトルＯＶ１の次元数は、ユーザＩＤの数と同一である。また、ユーザＵ１の属性情報ＡＩ１は、ワンホットベクトルＯＶ１に対応する埋め込みベクトルＵＥ１を含む。一例では、埋め込みベクトルＵＥ１は、ユーザＵ１のデモグラフィック属性に対応する。例えば、ユーザＵ１の属性が「３０代」の場合に、埋め込みベクトルＵＥ１は、ユーザ属性「３０代」に対応する分散表現である。
【００２２】
図２の例では、通知Ｎ１の通知情報ＮＩ１は、ＢｏＷベクトル（bag  of  words  vector）ＢＶ１を含む。ＢｏＷベクトルＢＶ１の複数の成分のうちゼロでない少なくとも１つの成分は、通知Ｎ１の通知情報ＮＩ１に含まれる少なくとも１つの単語に対応する。また、通知情報ＮＩ１は、ＢｏＷベクトルＢＶ１に対応する埋め込みベクトルＮＥ１を含む。一例では、ＢｏＷベクトルＢＶ１は、通知Ｎ１のタイトルに対応する。例えば、通知Ｎ１のタイトルが、単語「今夜」、「映画」、「テレビ」を含む場合に、埋め込みベクトルＮＥ１は、単語「今夜」、「映画」、「テレビ」にそれぞれ対応する３つの分散表現の平均ベクトルである。
【００２３】
図２の例では、通知Ｎ１が選択されたか否か示す選択情報ＳＩ１は、０または１の選択フラグを含む。一例では、通知Ｎ１が選択されたことを示す選択フラグは、「１」である。この例では、通知Ｎ１が選択されなかったことを示す選択フラグは、「０」である。
【００２４】
はじめに、学習装置１００は、提供装置２０から受信された訓練データを参照し、ユーザＵ１のワンホットベクトルＯＶ１に対応する埋め込みベクトルＵＥ１を取得する。
【００２５】
次いで、学習装置１００は、訓練データを参照し、通知Ｎ１のＢｏＷベクトルＢＶ１に対応する埋め込みベクトルＮＥ１を取得する。
【００２６】
次いで、学習装置１００は、埋め込みベクトルＵＥ１と埋め込みベクトルＮＥ１とを連結（concatenate）することで、ベクトルＣＶ１を生成する。埋め込みベクトルＵＥ１が次元ｎ（ｎは、任意の自然数）を持ち、埋め込みベクトルＮＥ１が次元ｍ（ｍは、任意の自然数）を持つ場合に、生成されたベクトルＣＶ１は、次元（ｎ＋ｍ）を持つ。この場合、ベクトルＣＶ１は、（ｎ＋ｍ）次元の分散表現である。
【００２７】
次いで、学習装置１００は、第１の重み行列にベクトルＣＶ１を乗ずることで、ベクトル（図示せず）を算出する。そして、学習装置１００は、算出されたベクトルを活性化関数（例えば、ＲｅＬＵ（Rectified  Linear  unit）関数）に代入することで、隠れ状態ベクトルＨＶ１を生成する。
【００２８】
次いで、学習装置１００は、第２の重み行列に隠れ状態ベクトルＨＶ１を乗ずることで、関連度ＲＳ１を算出する。
【００２９】
次いで、学習装置１００は、選択情報ＳＩ１に含まれる選択フラグの値と、算出された関連度ＲＳ１とを用いて、所定の通知がユーザＵ１に適合するか否かを判定する順伝播型ニューラルネットを学習する。例えば、学習装置１００は、誤差逆伝播法を用いて、選択情報ＳＩ１に含まれる選択フラグの値および算出された関連度ＲＳ１に対応する目的関数（例えば、交差エントロピー損失関数）が最小化されるように、順伝播型ニューラルネットを学習する。
【００３０】
通知Ｎ１以外の通知についても、学習装置１００は、同様の学習処理で、順伝播型ニューラルネットを学習することができる。学習装置１００は、かかる学習処理を繰り返すことで、汎化誤差が最小化されるように、順伝播型ニューラルネットを学習することができる。
【００３１】
その後、学習装置１００は、学習された順伝播型ニューラルネットを用いて、ユーザＵ１と通知との間の関連性を示す関連性スコアを出力する。より具体的には、学習装置１００は、ユーザＵ１に対応する埋め込みベクトルＵＥ１と、所定の通知に対応する埋め込みベクトルとを、判定モデルに入力することで、ユーザＵ１が所定の通知を選択する事後確率を、ユーザＵ１と通知との間の関連性スコアとして出力する。
【００３２】
上述のように、実施形態に係る学習装置１００は、ユーザに対応する埋め込みベクトルと、通知に対応する埋め込みベクトルとを、訓練データの入力として用いる。また、学習装置１００は、通知の選択フラグの値を、訓練データの出力として用いる。そして、学習装置１００は、汎化誤差が最小化されるように、順伝播型ニューラルネットを学習する。これにより、学習装置１００は、所定の通知がユーザに適合するか否かを判定する判定モデルを学習することができる。
【００３３】
ところで、図２の例では、提供装置２０は、端末装置１０に、通知をプッシュ通知として送信している。一般的に、プッシュ通知は、季節性のある情報である。例えば、提供装置２０は、速報性の高い情報（例えば、今夜の番組）を１回だけプッシュ通知として送信する。したがって、このようなプッシュ通知に対応する配信履歴が存在しない場合がある。このような状況は、コールドスタート問題（cold  start  problem）に関連する。この点に関し、プッシュ通知に対応する配信履歴が存在しない場合でも、学習装置１００は、上述の判定モデルを用いて、プッシュ通知がユーザに適合するか否かを判定することができる。このため、学習装置１００は、ユーザが、ユーザが関心のあるプッシュ通知をタイムリーに受け取ることを可能にする。以下、このような学習処理を実現する学習装置１００について詳細に説明する。
【００３４】
〔３．学習装置の構成〕
次に、図３を参照して、実施形態に係る学習装置１００の構成例について説明する。図３は、実施形態に係る学習装置１００の構成例を示す図である。図３に示すように、学習装置１００は、通信部１１０と、記憶部１２０と、制御部１３０とを有する。なお、学習装置１００は、学習装置１００を利用する管理者等から各種操作を受け付ける入力部（例えば、キーボードやマウス等）や、各種情報を表示するための表示部（液晶ディスプレイ等）を有してもよい。
【００３５】
（通信部１１０）
通信部１１０は、例えば、ＮＩＣ（Network  Interface  Card）等によって実現される。通信部１１０は、ネットワーク網と有線又は無線により接続され、ネットワーク網を介して、端末装置１０および提供装置２０との間で情報の送受信を行う。
【００３６】
（記憶部１２０）
記憶部１２０は、例えば、ＲＡＭ（Random  Access  Memory)、フラッシュメモリ（Flash  Memory）等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。図３に示すように、記憶部１２０は、訓練データ記憶部１２１と、判定モデル記憶部１２２とを有する。
【００３７】
（訓練データ記憶部１２１）
図４は、実施形態に係る訓練データ記憶部１２１の一例を示す図である。訓練データ記憶部１２１は、コンテンツに関連する予測モデルを生成するための訓練データを記憶する。予測モデルは、例えば、所定の通知がユーザに適合するか否かを判定する判定モデルである。一例では、判定モデルは、順伝播型ニューラルネットである。
【００３８】
訓練データ記憶部１２１は、例えば、受信部１３１によって受信された訓練データを記憶する。図４の例では、訓練データ記憶部１２１には、「訓練データ」が「ユーザＩＤ」ごとに記憶される。例示として、「訓練データ」には、項目「属性情報」、「通知ＩＤ」、「通知情報」および「選択情報」が含まれる。
【００３９】
「ユーザＩＤ」は、ユーザを識別するための識別子を示す。「属性情報」は、ユーザの属性に関する情報を示す。ユーザの属性は、例えば、ユーザのデモグラフィック属性や、サイコグラフィック属性等である。
【００４０】
属性情報は、ユーザに対応するワンホットベクトルを含む。ワンホットベクトルの複数の成分のうちゼロでない１つの成分が、ユーザのユーザＩＤに対応する。一例では、ワンホットベクトルの次元数は、ユーザＩＤの数と同一である。また、属性情報は、ワンホットベクトルに対応する埋め込みベクトル（例えば、分散表現）を含む。埋め込みベクトルは、例えば、ユーザのデモグラフィック属性や、サイコグラフィック属性等に対応する。例えば、ユーザの属性が「女性」の場合に、埋め込みベクトルは、ユーザ属性「女性」に対応する分散表現である。ユーザ属性に対応する分散表現は、所定のコーパスと、ニューラル言語モデルによって獲得され得る。
【００４１】
「通知ＩＤ」は、通知を識別するための識別子を示す。「通知情報」は、通知の内容に関する情報を示す。通知の内容は、例えば、通知のタイトルや、通知のボディ（例えば、本文のテキスト）や、通知が選択された場合のアクション（例えば、リンク先への画面遷移）等である。
【００４２】
通知情報は、通知に対応するＢｏＷベクトル（ＢｏＷ表現とも呼ばれる）を含む。ＢｏＷベクトルの複数の成分のうちゼロでない少なくとも１つの成分は、通知の通知情報に含まれる少なくとも１つの単語に対応する。また、通知情報は、ＢｏＷベクトルに対応する埋め込みベクトルを含む。一例では、ＢｏＷベクトルは、通知のタイトルに対応する。例えば、通知のタイトルが「ジムに行く？」場合に、埋め込みベクトルは、単語「ジム」、「行く」にそれぞれ対応する２つの分散表現の平均ベクトルである。
【００４３】
「選択情報」は、通知の選択に関する情報を示す。例えば、選択情報は、通知が選択されたか否か示す。例えば、選択情報は、通知が選択されたか否か示す選択フラグを含む。図４の例では、通知が選択されたことを示す選択フラグは、「１」である。この例では、通知が選択されなかったことを示す選択フラグは、「０」である。
【００４４】
例えば、図４は、ユーザＩＤ「Ｕ１」で識別されるユーザが、属性情報ＡＩ１に対応することを示している。また、例えば、図４は、通知ＩＤ「Ｎ１」で識別される通知が、通知情報ＮＩ１に対応することを示している。また、例えば、図４は、ユーザＩＤ「Ｕ１」で識別されるユーザが、通知ＩＤ「Ｎ１」で識別される通知を選択したことを示している。
【００４５】
（判定モデル記憶部１２２）
図３に戻ると、判定モデル記憶部１２２は、配信対象に関連する判定モデルを記憶する。判定モデル記憶部１２２は、例えば、学習部１３３によって学習されたモデルであって、配信対象ベクトルと対応する配信対象が、利用者ベクトルと対応する利用者と対応するか否かを判定するモデルを記憶する。
【００４６】
（制御部１３０）
制御部１３０は、コントローラ（controller）であり、例えば、ＣＰＵ（Central  Processing  Unit）、ＭＰＵ（Micro  Processing  Unit）等のプロセッサによって、学習装置１００内部の記憶装置に記憶されている各種プログラムがＲＡＭ等を作業領域として実行されることにより実現される。また、制御部１３０は、コントローラ（controller）であり、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路により実現されてもよい。
【００４７】
（受信部１３１）
受信部１３１は、提供装置２０から、コンテンツに関連する判定モデルを生成するための訓練データを受信する。訓練データは、ユーザの属性情報と、通知の通知情報と、ユーザが通知を選択したか否かを示す選択情報とを含む。受信部１３１は、受信された訓練データを、訓練データ記憶部１２１に格納してもよい。
【００４８】
受信部１３１は、提供装置２０から、配信対象を示すベクトルであって、かかる配信対象に含まれる情報と対応する次元に所定の値が格納された配信対象ベクトルを受信する。例えば、受信部１３１は、配信対象となる文章に含まれる単語と対応する次元に所定の値が格納された配信対象ベクトルを受信する。一例では、受信部１３１は、通知に対応する埋め込みベクトルを受信する。上述の通知情報は、配信対象を示すベクトルであって、かかる配信対象に含まれる情報と対応する次元に所定の値が格納された配信対象ベクトルを含んでもよい。受信部１３１は、受信された配信対象ベクトルを、訓練データ記憶部１２１に格納してもよい。受信部１３１は、配信対象に含まれる情報を受信してもよい。
【００４９】
上述の配信対象は、例えば、通知（例えば、プッシュ通知）、ニュース記事、テキストベースのメッセージ（例えば、レコメント情報）等である。配信対象がプッシュ通知である場合に、上述の配信対象ベクトルは、例えば、プッシュ通知のタイトルに含まれる単語と対応する次元に所定の値が格納されたベクトル（例えば、分散表現）である。
【００５０】
受信部１３１は、提供装置２０から、利用者を示す利用者ベクトルを受信する。例えば、受信部１３１は、利用者が有する属性と対応する次元に所定の値が格納された利用者ベクトルを受信する。一例では、受信部１３１は、ユーザに対応する埋め込みベクトルを受信する。上述の属性情報は、利用者を示す利用者ベクトルを含んでもよい。受信部１３１は、受信された利用者ベクトルを、訓練データ記憶部１２１に格納してもよい。受信部１３１は、利用者が有する属性に関する情報を受信してもよい。
【００５１】
（取得部１３２）
取得部１３２は、コンテンツに関連する判定モデルを生成するための訓練データを取得する。取得部１３２は、例えば、受信部１３１によって受信された訓練データを取得する。取得部１３２は、訓練データ記憶部１２１から訓練データを取得してもよい。
【００５２】
取得部１３２は、配信対象を示すベクトルであって、かかる配信対象に含まれる情報と対応する次元に所定の値が格納された配信対象ベクトルを取得する。例えば、受信部１３１は、配信対象となる文章に含まれる単語と対応する次元に所定の値が格納された配信対象ベクトルを取得する。
【００５３】
取得部１３２は、例えば、受信部１３１によって受信された配信対象ベクトルを取得する。取得部１３２は、訓練データ記憶部１２１から配信対象ベクトルを取得してもよい。
【００５４】
取得部１３２は、利用者を示す利用者ベクトルを取得する。例えば、取得部１３２は、利用者が有する属性と対応する次元に所定の値が格納された利用者ベクトルを取得する。
【００５５】
取得部１３２は、例えば、受信部１３１によって受信された利用者ベクトルを取得する。取得部１３２は、訓練データ記憶部１２１から利用者ベクトルを取得してもよい。
【００５６】
（学習部１３３）
学習部１３３は、配信対象ベクトルと利用者ベクトルとに基づいて、配信対象ベクトルと対応する配信対象が、利用者ベクトルと対応する利用者と対応するか否かを判定するモデルを学習する。例えば、学習部１３３は、利用者に配信された配信対象と対応する配信対象ベクトルと、利用者の利用者ベクトルとの共起性をモデルに学習させる。
【００５７】
より具体的には、学習部１３３は、利用者に配信された配信対象が選択されたか否か示す選択情報（例えば、選択フラグ）に基づいて、配信対象ベクトルと利用者ベクトルとの共起性をモデルに学習させる。例えば、学習部１３３は、利用者ベクトルおよび配信対象ベクトルを訓練データの入力として用い、かつ利用者に配信された配信対象が選択されたか否か示す選択情報を訓練データの出力として用いることで、配信対象ベクトルと利用者ベクトルとの共起性に関する距離をモデルに学習させる。
【００５８】
一例では、モデルは、ニューラルネットである。この例では、配信対象ベクトルは、配信対象（例えば、プッシュ通知）に対応する埋め込みベクトル（例えば、分散表現）である。また、この例では、利用者ベクトルは、利用者（例えば、ユーザ）に対応する埋め込みベクトルである。
【００５９】
学習部１３３は、配信対象ベクトルと利用者ベクトルとを連結した連結ベクトルから、配信対象ベクトルと対応する配信対象が、利用者ベクトルと対応する利用者と対応するか否かを判定するモデルを学習する。言い換えれば、学習部１３３は、配信対象ベクトルと利用者ベクトルとの連結（concatenation）であるベクトルから、モデルを学習する。例えば、学習部１３３は、利用者ベクトルの末尾に配信対象ベクトルを連結した連結ベクトルから、配信対象が利用者と対応するか否かを判定するモデルを学習する。例えば、学習部１３３は、次元数が削減されるように連結ベクトルを徐々に畳み込むことで、配信対象が利用者と対応するか否かを示す値を生成するモデルを学習する。
【００６０】
一例では、学習部１３３は、配信対象に対応する埋め込みベクトルと利用者に対応する埋め込みベクトルとを連結することで、第１のベクトルを生成する。そして、学習部１３３は、生成された第１のベクトルに対応する中間層を含むニューラルネットであって、配信対象が利用者と対応するか否かを判定するニューラルネットを学習する。
【００６１】
例えば、学習部１３３は、第１の重み行列に第１のベクトルを乗ずることで、第２のベクトルを算出する。次いで、学習部１３３は、算出された第２のベクトルを活性化関数に代入することで、隠れ状態ベクトルを生成する。次いで、学習部１３３は、第２の重み行列に隠れ状態ベクトを乗ずることで、関連度を算出する。その後、学習部１３３は、配信対象が選択されたか否か示す選択情報（例えば、選択フラグ）と、算出された関連度とを用いて、所定の配信対象が利用者に適合するか否かを判定するニューラルネットを学習する。
【００６２】
学習部１３３は、配信対象ベクトルから、配信対象ベクトルが示す配信対象に含まれる情報の特徴を示す特徴ベクトルの平均値の和となるベクトルを生成し、生成されたベクトルに基づいて、利用者と配信対象とが対応するか否かを判定するモデルを学習する。
【００６３】
一例では、情報の特徴を示す特徴ベクトルは、分散表現である。この例では、配信対象に含まれる情報が、第１〜３の特徴を含む場合に、配信対象に対応する埋め込みベクトルは、第１〜３の特徴にそれぞれ対応する３つの分散表現の平均ベクトルである。
【００６４】
学習部１３３は、利用者ベクトルと、利用者ベクトルが示す利用者が選択した配信対象を示す配信対象ベクトルとが入力された際に、利用者ベクトルが示す利用者と配信対象ベクトルが示す配信対象とが対応する旨を出力し、利用者ベクトルと、利用者ベクトルが示す利用者が選択しなかった配信対象を示す配信対象ベクトルとが入力された際に、利用者ベクトルが示す利用者と配信対象ベクトルが示す配信対象とが対応しない旨が出力されるように、モデルを学習する。
【００６５】
例えば、学習部１３３は、利用者ベクトルと、利用者が選択した配信対象を示す配信対象ベクトル（例えば、テストデータである配信対象ベクトル）とが入力された際に、モデルによって出力される値が、配信対象が選択されたことを示す値（例えば、選択フラグの選択に対応する値「１」）に近づくように、訓練用のデータである配信対象ベクトルを用いてモデルを訓練する。また、例えば、学習部１３３は、正則化手法（例えば、Ｌ２正則化等）を用いて、汎化誤差が最小化されるようにモデルを学習する。
【００６６】
学習部１３３は、例えば、配信対象が選択されたか否か示す選択情報およびモデルの出力に対応する目的関数が最小化されるように、モデルを学習する。一例では、学習部１３３は、誤差逆伝播法を用いて、選択情報に含まれる選択フラグの値およびニューラルネットワークの出力（例えば、上述の関連度）に対応する目的関数が最小化されるように、ニューラルネットを学習する。
【００６７】
（生成部１３４）
生成部１３４は、配信対象の候補となる配信対象に含まれる情報と対応する次元に所定の値が格納された候補ベクトルと、配信対象の候補の配信先となる利用者を示す配信先ベクトルとを生成する。例えば、生成部１３４は、所定のサーバから、配信対象の候補となる配信対象に含まれる情報に含まれるキーワードに対応する少なくとも１つのベクトル（例えば、分散表現）を取得する。また、例えば、生成部１３４は、所定のサーバから、配信対象の候補の配信先となる利用者の特徴に対応する少なくとも１つのベクトル（例えば、分散表現）を取得する。そして、生成部１３４は、情報に含まれるキーワードに対応する少なくとも１つのベクトルに基づいて、候補ベクトルを生成する。また、生成部１３４は、利用者の特徴に対応する少なくとも１つのベクトルに基づいて、配信先ベクトルを生成する。
【００６８】
生成部１３４は、配信対象に含まれる情報を用いて、配信対象を示すベクトルであって、かかる配信対象に含まれる情報と対応する次元に所定の値が格納された配信対象ベクトルを生成してもよい。また、生成部１３４は、利用者が有する属性に関する情報を用いて、利用者が有する属性と対応する次元に所定の値が格納された利用者ベクトルを生成してもよい。
【００６９】
生成部１３４は、配信対象に含まれる情報を用いて、配信対象に対応するＢｏＷベクトルを生成してもよい。また、生成部１３４は、利用者が有する属性に関する情報を用いて、利用者に対応するワンホットベクトルを生成してもよい。
【００７０】
（判定部１３５）
判定部１３５は、学習部１３３により学習されたモデルを用いて、候補ベクトルと配信先ベクトルとから、配信対象の候補を配信先となる利用者に配信するか否かを判定する。また、判定部１３５は、候補ベクトルと配信先ベクトルとが入力された際に、候補ベクトルが示す配信候補が、配信先ベクトルが示す利用者と対応する旨をモデルが出力した場合は、配信候補を利用者に配信すると判定する。
【００７１】
一例では、判定部１３５は、学習されたモデル（例えば、ニューラルネット）を用いて、利用者と配信対象の候補との間の関連性を示す関連性スコアを出力する。より具体的には、判定部１３５は、配信対象の候補の配信先に対応する配信先ベクトルと、配信対象の候補に対応する候補ベクトルとを、モデルに入力することで、利用者が配信対象の候補を選択する確率を、利用者と配信対象の候補との間の関連性スコアとして出力する。
【００７２】
（提供部１３６）
提供部１３６は、学習部１３３により学習されたモデルを提供する。例えば、提供部１３６は、学習されたモデルを提供装置２０に提供する。提供部１３６は、判定部１３５による判定結果を、提供装置２０に提供してもよい。
【００７３】
〔４．学習処理のフロー〕
次に、実施形態に係る学習装置１００による学習処理の手順について説明する。図５は、実施形態に係る学習装置１００による学習処理手順を示すフローチャートである。
【００７４】
図５に示すように、はじめに、学習装置１００は、配信対象を示すベクトルであって、配信対象に含まれる情報と対応する次元に所定の値が格納された配信対象ベクトルと、利用者を示す利用者ベクトルとを取得する（ステップＳ１０１）。例えば、学習装置１００は、利用者が有する属性と対応する次元に所定の値が格納された利用者ベクトルを取得する。また、例えば、学習装置１００は、信対象となる文章に含まれる単語と対応する次元に所定の値が格納された配信対象ベクトルと取得する。
【００７５】
次いで、学習装置１００は、配信対象ベクトルと利用者ベクトルとに基づいて、配信対象ベクトルと対応する配信対象が、利用者ベクトルと対応する利用者と対応するか否かを判定するモデルを学習する（ステップＳ１０２）。例えば、学習装置１００は、利用者に配信された配信対象と対応する配信対象ベクトルと、利用者の利用者ベクトルとの共起性を前記モデルに学習させる。
【００７６】
より具体的には、学習装置１００は、利用者ベクトルおよび配信対象ベクトルを訓練データの入力として用い、かつ利用者に配信された配信対象が選択されたか否か示す選択情報を訓練データの出力として用いることで、配信対象ベクトルと利用者ベクトルとの共起性に関する距離をモデルに学習させる。
【００７７】
〔５．その他〕
また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の一部を手動的に行うこともできる。あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
【００７８】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【００７９】
例えば、図３に示した記憶部１２０の一部又は全部は、学習装置１００によって保持されるのではなく、ストレージサーバ等に保持されてもよい。この場合、学習装置１００は、ストレージサーバにアクセスすることで、訓練データ等の各種情報を取得する。
【００８０】
〔６．ハードウェア構成〕
また、上述してきた実施形態に係る学習装置１００は、例えば図６に示すような構成のコンピュータ１０００によって実現される。図６は、ハードウェア構成の一例を示す図である。コンピュータ１０００は、出力装置１０１０、入力装置１０２０と接続され、演算装置１０３０、一次記憶装置１０４０、二次記憶装置１０５０、出力ＩＦ（Interface）１０６０、入力ＩＦ１０７０、ネットワークＩＦ１０８０がバス１０９０により接続された形態を有する。
【００８１】
演算装置１０３０は、一次記憶装置１０４０や二次記憶装置１０５０に格納されたプログラムや入力装置１０２０から読み出したプログラム等に基づいて動作し、各種の処理を実行する。一次記憶装置１０４０は、ＲＡＭ等、演算装置１０３０が各種の演算に用いるデータを一時的に記憶するメモリ装置である。また、二次記憶装置１０５０は、演算装置１０３０が各種の演算に用いるデータや、各種のデータベースが登録される記憶装置であり、ＲＯＭ(Read  Only  Memory)、ＨＤＤ、フラッシュメモリ等により実現される。
【００８２】
出力ＩＦ１０６０は、モニタやプリンタといった各種の情報を出力する出力装置１０１０に対し、出力対象となる情報を送信するためのインタフェースであり、例えば、ＵＳＢ（Universal  Serial  Bus）やＤＶＩ（Digital  Visual  Interface）、ＨＤＭＩ（登録商標）（High  Definition  Multimedia  Interface）といった規格のコネクタにより実現される。また、入力ＩＦ１０７０は、マウス、キーボード、およびスキャナ等といった各種の入力装置１０２０から情報を受信するためのインタフェースであり、例えば、ＵＳＢ等により実現される。
【００８３】
なお、入力装置１０２０は、例えば、ＣＤ（Compact  Disc）、ＤＶＤ（Digital  Versatile  Disc）、ＰＤ（Phase  change  rewritable  Disk）等の光学記録媒体、ＭＯ（Magneto-Optical  disk）等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等から情報を読み出す装置であってもよい。また、入力装置１０２０は、ＵＳＢメモリ等の外付け記憶媒体であってもよい。
【００８４】
ネットワークＩＦ１０８０は、ネットワークＮを介して他の機器からデータを受信して演算装置１０３０へ送り、また、ネットワークＮを介して演算装置１０３０が生成したデータを他の機器へ送信する。
【００８５】
演算装置１０３０は、出力ＩＦ１０６０や入力ＩＦ１０７０を介して、出力装置１０１０や入力装置１０２０の制御を行う。例えば、演算装置１０３０は、入力装置１０２０や二次記憶装置１０５０からプログラムを一次記憶装置１０４０上にロードし、ロードしたプログラムを実行する。
【００８６】
例えば、コンピュータ１０００が学習装置１００として機能する場合、コンピュータ１０００の演算装置１０３０は、一次記憶装置１０４０上にロードされたプログラムを実行することにより、制御部１３０の機能を実現する。
【００８７】
〔７．効果〕
上述してきたように、実施形態に係る学習装置１００は、取得部１３２と、学習部１３３とを有する。取得部１３２は、配信対象を示すベクトルであって、配信対象に含まれる情報と対応する次元に所定の値が格納された配信対象ベクトルと、利用者を示す利用者ベクトルとを取得する。学習部１３３は、配信対象ベクトルと利用者ベクトルとに基づいて、配信対象ベクトルと対応する配信対象が、利用者ベクトルと対応する利用者と対応するか否かを判定するモデルを学習する。
【００８８】
また、実施形態に係る学習装置１００において、取得部１３２は、利用者が有する属性と対応する次元に所定の値が格納された利用者ベクトルを取得する。
【００８９】
また、実施形態に係る学習装置１００において、取得部１３２は、配信対象となる文章に含まれる単語と対応する次元に所定の値が格納された配信対象ベクトルを取得する。
【００９０】
また、実施形態に係る学習装置１００において、学習部１３３は、利用者に配信された配信対象と対応する配信対象ベクトルと、利用者の利用者ベクトルとの共起性をモデルに学習させる。
【００９１】
また、実施形態に係る学習装置１００において、学習部１３３は、配信対象ベクトルと利用者ベクトルとを連結した連結ベクトルから、配信対象ベクトルと対応する配信対象が、利用者ベクトルと対応する利用者と対応するか否かを判定するモデルを学習する。
【００９２】
また、実施形態に係る学習装置１００において、学習部１３３は、利用者ベクトルの末尾に配信対象ベクトルを連結した連結ベクトルから、配信対象が利用者と対応するか否かを判定するモデルを学習する。
【００９３】
また、実施形態に係る学習装置１００において、学習部１３３は、次元数が削減されるように連結ベクトルを徐々に畳み込むことで、配信対象が利用者と対応するか否かを示す値を生成するモデルを学習する。
【００９４】
また、実施形態に係る学習装置１００において、学習部１３３は、配信対象ベクトルから、配信対象ベクトルが示す配信対象に含まれる情報の特徴を示す特徴ベクトルの平均値の和となるベクトルを生成し、生成されたベクトルに基づいて、利用者と配信対象とが対応するか否かを判定するモデルを学習する。
【００９５】
また、実施形態に係る学習装置１００において、学習部１３３は、利用者ベクトルと、利用者ベクトルが示す利用者が選択した配信対象を示す配信対象ベクトルとが入力された際に、利用者ベクトルが示す利用者と配信対象ベクトルが示す配信対象とが対応する旨を出力し、利用者ベクトルと、利用者ベクトルが示す利用者が選択しなかった配信対象を示す配信対象ベクトルとが入力された際に、利用者ベクトルが示す利用者と配信対象ベクトルが示す配信対象とが対応しない旨が出力されるように、モデルを学習する。
【００９６】
また、実施形態に係る学習装置１００は、配信対象の候補となる配信対象に含まれる情報と対応する次元に所定の値が格納された候補ベクトルと、配信対象の候補の配信先となる利用者を示す配信先ベクトルとを生成する生成部１３４を有する。また、実施形態に係る学習装置１００は、学習部１３３により学習されたモデルを用いて、候補ベクトルと配信先ベクトルとから、配信対象の候補を配信先となる利用者に配信するか否かを判定する判定部１３５を有する。
【００９７】
また、実施形態に係る学習装置１００において、判定部１３５は、候補ベクトルと配信先ベクトルとが入力された際に、候補ベクトルが示す配信候補が、配信先ベクトルが示す利用者と対応する旨をモデルが出力した場合は、配信候補を利用者に配信すると判定する。
【００９８】
上述した各処理により、学習装置１００は、所定の通知がユーザに適合するか否かを判定する判定モデルを学習することができる。
【００９９】
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
【０１００】
また、上述した学習装置１００は、複数のサーバコンピュータで実現してもよく、また、機能によっては外部のプラットフォーム等をＡＰＩ（Application  Programming  Interface）やネットワークコンピューティングなどで呼び出して実現するなど、構成は柔軟に変更できる。
【０１０１】
また、上述してきた「部（section、module、unit）」は、「手段」や「回路」などに読み替えることができる。例えば、受信部は、受信手段や受信回路に読み替えることができる。
【符号の説明】
【０１０２】
１  ネットワークシステム
１０  端末装置
２０  提供装置
１００  学習装置
１２０  記憶部
１２１  訓練データ記憶部
１２２  判定モデル記憶部
１３０  制御部
１３１  受信部
１３２  取得部
１３３  学習部
１３４  生成部
１３５  判定部
１３６  提供部
【図１】
2020017126.tif 000003
【図２】
2020017126.tif 000004
【図３】
2020017126.tif 000005
【図４】
2020017126.tif 000006
【図５】
2020017126.tif 000007
【図６】
2020017126.tif 000008