(57)【要約】【課題】利用者と対応する情報の推定精度を向上させること。【解決手段】本願に係る学習装置は、取得部と、学習部とを有する。取得部は、配信対象を示す複数の配信対象ベクトルを取得する。学習部は、所定の利用者に配信された配信対象を示す複数の配信対象ベクトルと、配信候補を示す配信候補ベクトルとが入力されると、配信候補ベクトルとの類似性に基づく重みが設定された複数の配信対象ベクトルと、配信候補ベクトルとに基づいて、配信候補が所定の利用者と対応するか否かを判定するモデルを、取得部により取得された配信対象ベクトルを用いて学習する。【選択図】図３
2020017089.tif 000002
【特許請求の範囲】
【請求項１】
配信対象を示す複数の配信対象ベクトルを取得する取得部と、
所定の利用者に配信された配信対象を示す複数の配信対象ベクトルと、配信候補を示す配信候補ベクトルとが入力されると、当該配信候補ベクトルとの類似性に基づく重みが設定された複数の配信対象ベクトルと、前記配信候補ベクトルとに基づいて、前記配信候補が前記所定の利用者と対応するか否かを判定するモデルを、前記取得部により取得された配信対象ベクトルを用いて学習する学習部と
を有することを特徴とする学習装置。
【請求項２】
前記取得部は、
配信対象となる文章に含まれる単語と対応する次元に所定の値が格納された配信対象ベクトルを取得する
ことを特徴とする請求項１に記載の学習装置。
【請求項３】
前記学習部は、
前記所定の利用者が選択した配信対象を示す配信対象ベクトルと、前記所定の利用者に配信された配信対象を示す複数の配信対象ベクトルとの共起性を前記モデルに学習させる
ことを特徴とする請求項１または２に記載の学習装置。
【請求項４】
前記学習部は、
前記所定の利用者が選択した配信対象を示す配信対象ベクトルの前記重みによる重み付き平均から、前記配信候補が前記所定の利用者と対応するか否かを判定するモデルを学習する
ことを特徴とする請求項３に記載の学習装置。
【請求項５】
前記学習部は、
前記所定の利用者に配信された配信対象を示す複数の配信対象ベクトルのうちの１つと前記重み付き平均とを連結した連結ベクトルから、前記配信候補が前記所定の利用者と対応するか否かを判定するモデルを学習する
ことを特徴とする請求項４に記載の学習装置。
【請求項６】
前記学習部は、
次元数が削減されるように前記連結ベクトルを徐々に畳み込むことで、前記配信候補が前記所定の利用者と対応するか否かを示す値を生成するモデルを学習する
ことを特徴とする請求項５に記載の学習装置。
【請求項７】
前記学習部は、
前記複数の配信対象ベクトルのうちの１つから、当該複数の配信対象ベクトルのうちの１つが示す配信対象に含まれる情報の特徴を示す特徴ベクトルの平均値の和となるベクトルを生成し、生成されたベクトルに基づいて、前記配信候補が前記所定の利用者と対応するか否かを判定するモデルを学習する
ことを特徴とする請求項１〜６のうちいずれか１つに記載の学習装置。
【請求項８】
前記学習部は、
前記所定の利用者が選択した配信対象を示す配信対象ベクトルと、前記所定の利用者に配信された配信対象を示す複数の配信対象ベクトルのうちの１つであり、かつ前記所定の利用者が選択した配信対象を示す配信対象ベクトルとが入力された際に、前記配信候補が前記所定の利用者と対応する旨を出力し、前記所定の利用者が選択した配信対象を示す配信対象ベクトルと、前記所定の利用者に配信された配信対象を示す複数の配信対象ベクトルのうちの１つであり、かつ前記所定の利用者が選択しなかった配信対象を示す配信対象ベクトルとが入力された際に、前記配信候補が前記所定の利用者と対応しない旨を出力されるように、前記モデルを学習する
ことを特徴とする請求項１〜７のうちいずれか１つに記載の学習装置。
【請求項９】
配信対象の候補となる配信対象に含まれる情報と対応する次元に所定の値が格納された候補ベクトルを生成する生成部と、
前記学習部により学習されたモデルを用いて、前記候補ベクトルから、前記配信対象の候補を前記所定の利用者に配信するか否かを判定する判定部と
を有することを特徴とする請求項１〜８のうちいずれか１つに記載の学習装置。
【請求項１０】
前記判定部は、
前記候補ベクトルが入力された際に、当該候補ベクトルが示す配信候補が、前記所定の利用者と対応する旨を前記モデルが出力した場合は、当該配信候補を前記所定の利用者に配信すると判定する
ことを特徴とする請求項９に記載の学習装置。
【請求項１１】
学習装置が実行する方法であって、
配信対象を示す複数の配信対象ベクトルを取得する取得工程と、
所定の利用者に配信された配信対象を示す複数の配信対象ベクトルと、配信候補を示す配信候補ベクトルとが入力されると、当該配信候補ベクトルとの類似性に基づく重みが設定された複数の配信対象ベクトルと、前記配信候補ベクトルとに基づいて、前記配信候補が前記所定の利用者と対応するか否かを判定するモデルを、前記取得工程により取得された配信対象ベクトルを用いて学習する学習工程と
を含むことを特徴とする学習方法。
【請求項１２】
配信対象を示す複数の配信対象ベクトルを取得する取得手順と、
所定の利用者に配信された配信対象を示す複数の配信対象ベクトルと、配信候補を示す配信候補ベクトルとが入力されると、当該配信候補ベクトルとの類似性に基づく重みが設定された複数の配信対象ベクトルと、前記配信候補ベクトルとに基づいて、前記配信候補が前記所定の利用者と対応するか否かを判定するモデルを、前記取得手順により取得された配信対象ベクトルを用いて学習する学習手順と
をコンピュータに実行させるための学習プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、学習装置、学習方法及び学習プログラムに関する。
【背景技術】
【０００２】
従来、各種の情報を利用者に対して提供する技術が知られている。このような技術の一例として、利用者が過去に選択した情報と関連する情報に基づいて、利用者と関連性が高い情報や利用者が興味を有する情報等、利用者と対応する情報を推定し、推定した情報を利用者に提供する技術が知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−１５０５６１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述した従来技術では、利用者と対応する情報を適切に推定できない恐れがある。
【０００５】
例えば、上述した従来技術では、新規の利用者等、過去に情報を選択していない利用者に対しては、利用者と対応する情報を適切に推定できない。
【０００６】
本願は、上記に鑑みてなされたものであって、利用者と対応する情報の推定精度を向上させることを目的とする。
【０００７】
本願に係る学習装置は、配信対象を示す複数の配信対象ベクトルを取得する取得部と、
所定の利用者に配信された配信対象を示す複数の配信対象ベクトルと、配信候補を示す配信候補ベクトルとが入力されると、当該配信候補ベクトルとの類似性に基づく重みが設定された複数の配信対象ベクトルと、前記配信候補ベクトルとに基づいて、前記配信候補が前記所定の利用者と対応するか否かを判定するモデルを、前記取得部により取得された配信対象ベクトルを用いて学習する学習部とを有することを特徴とする。
【発明の効果】
【０００８】
実施形態の一態様によれば、利用者と対応する情報の推定精度を向上させることができるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施形態に係るネットワークシステムの構成例を示す図である。
【図２】図２は、実施形態に係る学習処理の一例を示す図である。
【図３】図３は、実施形態に係る学習装置の構成例を示す図である。
【図４】図４は、実施形態に係る訓練データ記憶部の一例を示す図である。
【図５】図５は、実施形態に係る学習装置による学習処理手順を示すフローチャートである。
【図６】図６は、ハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【００１０】
以下に、本願に係る学習装置、学習方法及び学習プログラムを実施するための形態（以下、「実施形態」と呼ぶ）について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る学習装置、学習方法及び学習プログラムが限定されるものではない。また、各実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略する。
【００１１】
〔１．ネットワークシステムの構成〕
まず、図１を参照して、実施形態に係るネットワークシステム１の構成について説明する。図１は、実施形態に係るネットワークシステム１の構成例を示す図である。図１に示すように、実施形態に係るネットワークシステム１には、端末装置１０と、提供装置２０と、学習装置１００とが含まれる。端末装置１０、提供装置２０および学習装置１００は、それぞれネットワークＮと有線又は無線により接続される。
【００１２】
図１中では図示していないが、ネットワークシステム１は、端末装置１０１〜１０ｎを含んでもよい。本明細書では、端末装置１０１〜１０ｎを区別する必要がない場合は、端末装置１０１〜１０ｎを「端末装置１０」と総称する。また、ネットワークシステム１は、複数台の提供装置２０や、複数台の学習装置１００を含んでもよい。
【００１３】
端末装置１０は、ユーザによって利用される情報処理装置である。端末装置１０は、スマートフォン、デスクトップ型ＰＣ（Personal  Computer）、ノート型ＰＣ、タブレット型ＰＣ、ＰＤＡ（Personal  Digital  Assistant）を含む、任意のタイプの情報処理装置であってもよい。
【００１４】
提供装置２０は、端末装置１０および学習装置１００に、各種情報を提供するサーバ装置である。例えば、提供装置２０は、端末装置１０に対して、コンテンツ（例えば、プッシュ通知）を提供する。また、例えば、提供装置２０は、学習装置１００に対して、コンテンツに関連する判定モデルを生成するための訓練データを提供する。
【００１５】
学習装置１００は、ユーザに適合する情報を判定するモデルを学習するサーバ装置である。学習装置１００は、ネットワークＮを介して、有線又は無線により端末装置１０および提供装置２０と通信を行う。
【００１６】
〔２．学習処理〕
次に、図２を参照して、実施形態に係る学習処理の一例について説明する。図２は、実施形態に係る学習処理の一例を示す図である。
【００１７】
図２の例では、提供装置２０は、「ユーザＵ１」によって利用される端末装置１０１に対して、プッシュ型で複数の「通知Ｎ１〜Ｎｎ（ｎは、任意の自然数）」および「通知ＮＭ１〜ＮＭｍ（ｍは、任意の自然数）」を送信する。「プッシュ型」という語は、情報が、情報を提供する装置のトリガに基づいて送信される仕組みを指す。言い換えると、提供装置２０は、端末装置１０１に、通知Ｎ１〜Ｎｎおよび通知ＮＭ１〜ＮＭｍを、プッシュ通知として送信する。
【００１８】
図２の例では、提供装置２０は、通知Ｎ１〜Ｎｎおよび通知ＮＭ１〜ＮＭｍに対する応答を受信する。一例では、提供装置２０は、通知Ｎ１が選択されたことを示す選択情報を、端末装置１０１から受信する。この場合、通知Ｎ１は、ユーザＵ１に適合すると考えられる。別の例では、提供装置２０は、通知Ｎ１が選択されなかったことを示す選択情報を、端末装置１０１から受信する。この場合、通知Ｎ１は、ユーザＵ１に適合しないと考えられる。
【００１９】
図２の例では、提供装置２０は、訓練データを、学習装置１００に送信する。訓練データは、通知Ｎ１〜Ｎｎおよび通知ＮＭ１〜ＮＭｍの通知情報（例えば、通知Ｎ１〜Ｎｎおよび通知ＮＭ１〜ＮＭｍのタイトル）と、ユーザが通知Ｎ１〜Ｎｎおよび通知ＮＭ１〜ＮＭｍを選択したか否かを示す選択情報（例えば、選択フラグ）とを含む。
【００２０】
図２の例では、学習装置１００は、提供装置２０から受信された訓練データを用いて、所定の通知がユーザに適合するか否かを判定する、注意機構（attention  mechanism）付きのモデル（アテンションモデルとも呼ばれる）を学習する。より具体的には、学習装置１００は、通知Ｎ１〜Ｎｎおよび通知ＮＭ１〜ＮＭｍの通知情報を、訓練データの入力として用いる。また、学習装置１００は、通知Ｎ１〜Ｎｎが選択されたか否か示す選択情報を、訓練データの出力として用いる。
【００２１】
図２の例では、通知Ｎ１〜Ｎｎおよび通知ＮＭ１〜ＮＭｍの通知情報は、「ＢｏＷベクトル（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）」は、「手段」や「回路」などに読み替えることができる。例えば、受信部は、受信手段や受信回路に読み替えることができる。
【符号の説明】
【００９６】
１  ネットワークシステム
１０  端末装置
２０  提供装置
１００  学習装置
１２０  記憶部
１２１  訓練データ記憶部
１２２  判定モデル記憶部
１３０  制御部
１３１  受信部
１３２  取得部
１３３  学習部
１３４  生成部
１３５  判定部
１３６  提供部
【図１】
2020017089.tif 000003
【図２】
2020017089.tif 000004
【図３】
2020017089.tif 000005
【図４】
2020017089.tif 000006
【図５】
2020017089.tif 000007
【図６】
2020017089.tif 000008