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

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

▶ ヤフー株式会社の特許一覧

<>
  • 特許-学習装置、学習方法及び学習プログラム 図1
  • 特許-学習装置、学習方法及び学習プログラム 図2
  • 特許-学習装置、学習方法及び学習プログラム 図3
  • 特許-学習装置、学習方法及び学習プログラム 図4
  • 特許-学習装置、学習方法及び学習プログラム 図5
  • 特許-学習装置、学習方法及び学習プログラム 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-06-27
(45)【発行日】2022-07-05
(54)【発明の名称】学習装置、学習方法及び学習プログラム
(51)【国際特許分類】
   G06F 16/9035 20190101AFI20220628BHJP
【FI】
G06F16/9035
【請求項の数】 10
(21)【出願番号】P 2018140429
(22)【出願日】2018-07-26
(65)【公開番号】P2020017126
(43)【公開日】2020-01-30
【審査請求日】2020-08-19
【前置審査】
(73)【特許権者】
【識別番号】319013263
【氏名又は名称】ヤフー株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】特許業務法人酒井国際特許事務所
(72)【発明者】
【氏名】鍜治 伸裕
【審査官】早川 学
(56)【参考文献】
【文献】特許第6059314(JP,B2)
【文献】米国特許出願公開第2017/0017886(US,A1)
【文献】米国特許第08924993(US,B1)
【文献】米国特許出願公開第2002/0107853(US,A1)
【文献】米国特許出願公開第2012/0209795(US,A1)
【文献】米国特許出願公開第2010/0191689(US,A1)
【文献】特開2008-273497(JP,A)
【文献】特開2005-157535(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
(57)【特許請求の範囲】
【請求項1】
プッシュ通知である第1の配信対象のタイトルに含まれる単語に対応する分散表現である配信対象ベクトルと、第1の利用者のデモグラフィック属性に対応する分散表現である利用者ベクトルと、当該第1の利用者が当該第1の配信対象を選択したかを示す選択情報とを取得する取得部と、
前記配信対象ベクトルと前記利用者ベクトルとを、訓練データの入力として用い、前記選択情報を、訓練データの出力として用いて、第2の利用者がプッシュ通知である第2の配信対象を選択するかを判定するモデルを学習する学習部と
を有し、
前記学習部は、
次元数が削減されるように、前記配信対象ベクトルと前記利用者ベクトルとを連結した連結ベクトルを徐々に畳み込むことで、当該配信対象ベクトルと対応する配信対象が、当該利用者ベクトルと対応する利用者と対応するか否かを判定するモデルを学習する
ことを特徴する学習装置。
【請求項2】
前記取得部は、
前記第1の利用者が有するデモグラフィック属性と対応する次元に所定の値が格納された利用者ベクトルを取得する
ことを特徴とする請求項1に記載の学習装置。
【請求項3】
前記取得部は、
配信対象となる文章に含まれる単語と対応する次元に所定の値が格納された配信対象ベクトルを取得する
ことを特徴とする請求項1または2に記載の学習装置。
【請求項4】
前記学習部は、
前記利用者ベクトルの末尾に前記配信対象ベクトルを連結した連結ベクトルから、前記配信対象が前記利用者と対応するか否かを判定するモデルを学習する
ことを特徴とする請求項1~3のうちいずれか1つに記載の学習装置。
【請求項5】
前記学習部は、
前記配信対象ベクトルから、当該配信対象ベクトルが示す配信対象に含まれる情報の特徴を示す特徴ベクトルの平均ベクトルを生成し、生成された平均ベクトルに基づいて、前記第2の利用者と前記第2の配信対象とが対応するか否かを判定するモデルを学習する
ことを特徴とする請求項1~4のうちいずれか1つに記載の学習装置。
【請求項6】
前記学習部は、
前記利用者ベクトルと、当該利用者ベクトルが示す利用者が選択した配信対象を示す配信対象ベクトルとが入力された際に、当該利用者ベクトルが示す利用者と当該配信対象ベクトルが示す配信対象とが対応する旨を出力し、前記利用者ベクトルと、当該利用者ベクトルが示す利用者が選択しなかった配信対象を示す配信対象ベクトルとが入力された際に、当該利用者ベクトルが示す利用者と当該配信対象ベクトルが示す配信対象とが対応しない旨が出力されるように、前記モデルを学習する
ことを特徴とする請求項1~5のうちいずれか1つに記載の学習装置。
【請求項7】
配信対象の候補となる配信対象に含まれる情報と対応する次元に所定の値が格納された候補ベクトルと、当該配信対象の候補の配信先となる利用者を示す配信先ベクトルとを生成する生成部と、
前記学習部により学習されたモデルを用いて、前記候補ベクトルと前記配信先ベクトルとから、前記配信対象の候補を前記配信先となる利用者に配信するか否かを判定する判定部と
を有することを特徴とする請求項1~6のうちいずれか1つに記載の学習装置。
【請求項8】
前記判定部は、
前記候補ベクトルと前記配信先ベクトルとが入力された際に、当該候補ベクトルが示す配信候補が、前記配信先ベクトルが示す利用者と対応する旨を前記モデルが出力した場合は、当該配信候補を当該利用者に配信すると判定する
ことを特徴とする請求項に記載の学習装置。
【請求項9】
学習装置が実行する方法であって、
プッシュ通知である第1の配信対象のタイトルに含まれる単語に対応する分散表現である配信対象ベクトルと、第1の利用者のデモグラフィック属性に対応する分散表現である利用者ベクトルと、当該第1の利用者が当該第1の配信対象を選択したかを示す選択情報とを取得する取得工程と、
前記配信対象ベクトルと前記利用者ベクトルとを、訓練データの入力として用い、前記選択情報を、訓練データの出力として用いて、第2の利用者がプッシュ通知である第2の配信対象を選択するかを判定するモデルを学習する学習工程と
を含み、
前記学習工程は、
次元数が削減されるように、前記配信対象ベクトルと前記利用者ベクトルとを連結した連結ベクトルを徐々に畳み込むことで、当該配信対象ベクトルと対応する配信対象が、当該利用者ベクトルと対応する利用者と対応するか否かを判定するモデルを学習する
ことを特徴とする学習方法。
【請求項10】
プッシュ通知である第1の配信対象のタイトルに含まれる単語に対応する分散表現である配信対象ベクトルと、第1の利用者のデモグラフィック属性に対応する分散表現である利用者ベクトルと、当該第1の利用者が当該第1の配信対象を選択したかを示す選択情報とを取得する取得手順と、
前記配信対象ベクトルと前記利用者ベクトルとを、訓練データの入力として用い、前記選択情報を、訓練データの出力として用いて、第2の利用者がプッシュ通知である第2の配信対象を選択するかを判定するモデルを学習する学習手順と
をコンピュータに実行させ、
前記学習手順は、
次元数が削減されるように、前記配信対象ベクトルと前記利用者ベクトルとを連結した連結ベクトルを徐々に畳み込むことで、当該配信対象ベクトルと対応する配信対象が、当該利用者ベクトルと対応する利用者と対応するか否かを判定するモデルを学習する
ことを特徴とする学習プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、学習装置、学習方法及び学習プログラムに関する。
【背景技術】
【0002】
従来、各種の情報を利用者に対して提供する技術が知られている。このような技術の一例として、利用者が過去に選択した情報と関連する情報に基づいて、利用者と関連性が高い情報や利用者が興味を有する情報等、利用者と対応する情報を推定し、推定した情報を利用者に提供する技術が知られている。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2012-150561号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上述した従来技術では、利用者と対応する情報を適切に推定できない恐れがある。
【0005】
例えば、上述した従来技術では、新規の利用者等、過去に情報を選択していない利用者に対しては、利用者と対応する情報を適切に推定できない。
【0006】
本願は、上記に鑑みてなされたものであって、利用者と対応する情報の推定精度を向上させることを目的とする。
【0007】
本願に係る学習装置は、配信対象を示すベクトルであって、当該配信対象に含まれる情報と対応する次元に所定の値が格納された配信対象ベクトルと、利用者を示す利用者ベクトルとを取得する取得部と、前記配信対象ベクトルと前記利用者ベクトルとに基づいて、当該配信対象ベクトルと対応する配信対象が、当該利用者ベクトルと対応する利用者と対応するか否かを判定するモデルを学習する学習部とを有することを特徴とする。
【発明の効果】
【0008】
実施形態の一態様によれば、利用者と対応する情報の推定精度を向上させることができるという効果を奏する。
【図面の簡単な説明】
【0009】
図1図1は、実施形態に係るネットワークシステムの構成例を示す図である。
図2図2は、実施形態に係る学習処理の一例を示す図である。
図3図3は、実施形態に係る学習装置の構成例を示す図である。
図4図4は、実施形態に係る訓練データ記憶部の一例を示す図である。
図5図5は、実施形態に係る学習装置による学習処理手順を示すフローチャートである。
図6図6は、ハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【0010】
以下に、本願に係る学習装置、学習方法及び学習プログラムを実施するための形態(以下、「実施形態」と呼ぶ)について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る学習装置、学習方法及び学習プログラムが限定されるものではない。また、各実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略する。
【0011】
〔1.ネットワークシステムの構成〕
まず、図1を参照して、実施形態に係るネットワークシステム1の構成について説明する。図1は、実施形態に係るネットワークシステム1の構成例を示す図である。図1に示すように、実施形態に係るネットワークシステム1には、端末装置10と、提供装置20と、学習装置100とが含まれる。端末装置10、提供装置20および学習装置100は、それぞれネットワークNと有線又は無線により接続される。
【0012】
図1中では図示していないが、ネットワークシステム1は、端末装置10~10を含んでもよい。本明細書では、端末装置10~10を区別する必要がない場合は、端末装置10~10を「端末装置10」と総称する。また、ネットワークシステム1は、複数台の提供装置20や、複数台の学習装置100を含んでもよい。
【0013】
端末装置10は、ユーザによって利用される情報処理装置である。端末装置10は、スマートフォン、デスクトップ型PC(Personal Computer)、ノート型PC、タブレット型PC、PDA(Personal Digital Assistant)を含む、任意のタイプの情報処理装置であってもよい。
【0014】
提供装置20は、端末装置10および学習装置100に、各種情報を提供するサーバ装置である。例えば、提供装置20は、端末装置10に対して、コンテンツ(例えば、プッシュ通知)を提供する。また、例えば、提供装置20は、学習装置100に対して、コンテンツに関連する判定モデルを生成するための訓練データを提供する。
【0015】
学習装置100は、ユーザに適合する情報を判定するモデルを学習するサーバ装置である。学習装置100は、ネットワークNを介して、有線又は無線により端末装置10および提供装置20と通信を行う。
【0016】
〔2.学習処理〕
次に、図2を参照して、実施形態に係る学習処理の一例について説明する。図2は、実施形態に係る学習処理の一例を示す図である。
【0017】
図2の例では、提供装置20は、「ユーザU1」によって利用される端末装置10に対して、プッシュ型で「通知N1」を送信する。「プッシュ型」という語は、情報が、情報を提供する装置のトリガに基づいて送信される仕組みを指す。言い換えると、提供装置20は、端末装置10に、通知N1を、プッシュ通知として送信する。
【0018】
図2の例では、提供装置20は、通知N1に対する応答を受信する。一例では、提供装置20は、通知N1が選択されたことを示す選択情報を、端末装置10から受信する。この場合、通知N1は、ユーザU1に適合すると考えられる。別の例では、提供装置20は、通知N1が選択されなかったことを示す選択情報を、端末装置10から受信する。この場合、通知N1は、ユーザU1に適合しないと考えられる。
【0019】
図2の例では、提供装置20は、訓練データを、学習装置100に送信する。訓練データは、ユーザU1の属性情報AI1(例えば、ユーザU1のデモグラフィック属性)と、通知N1の通知情報NI1(例えば、通知N1のタイトル)と、ユーザU1が通知N1を選択したか否かを示す選択情報SI1(例えば、選択フラグ)とを含む。
【0020】
図2の例では、学習装置100は、提供装置20から受信された訓練データを用いて、所定の通知がユーザに適合するか否かを判定する順伝播型ニューラルネットを学習する。より具体的には、学習装置100は、ユーザU1の属性情報AI1と通知N1の通知情報NI1とを、訓練データの入力として用いる。また、学習装置100は、通知N1が選択されたか否か示す選択情報SI1を、訓練データの出力として用いる。
【0021】
図2の例では、ユーザU1の属性情報AI1は、ユーザU1に対応するワンホットベクトル(one hot vector)OV1を含む。ワンホットベクトルOV1の複数の成分のうちゼロでない1つの成分は、ユーザU1のユーザIDに対応する。一例では、ワンホットベクトルOV1の次元数は、ユーザIDの数と同一である。また、ユーザU1の属性情報AI1は、ワンホットベクトルOV1に対応する埋め込みベクトルUE1を含む。一例では、埋め込みベクトルUE1は、ユーザU1のデモグラフィック属性に対応する。例えば、ユーザU1の属性が「30代」の場合に、埋め込みベクトルUE1は、ユーザ属性「30代」に対応する分散表現である。
【0022】
図2の例では、通知N1の通知情報NI1は、BoWベクトル(bag of words vector)BV1を含む。BoWベクトルBV1の複数の成分のうちゼロでない少なくとも1つの成分は、通知N1の通知情報NI1に含まれる少なくとも1つの単語に対応する。また、通知情報NI1は、BoWベクトルBV1に対応する埋め込みベクトルNE1を含む。一例では、BoWベクトルBV1は、通知N1のタイトルに対応する。例えば、通知N1のタイトルが、単語「今夜」、「映画」、「テレビ」を含む場合に、埋め込みベクトルNE1は、単語「今夜」、「映画」、「テレビ」にそれぞれ対応する3つの分散表現の平均ベクトルである。
【0023】
図2の例では、通知N1が選択されたか否か示す選択情報SI1は、0または1の選択フラグを含む。一例では、通知N1が選択されたことを示す選択フラグは、「1」である。この例では、通知N1が選択されなかったことを示す選択フラグは、「0」である。
【0024】
はじめに、学習装置100は、提供装置20から受信された訓練データを参照し、ユーザU1のワンホットベクトルOV1に対応する埋め込みベクトルUE1を取得する。
【0025】
次いで、学習装置100は、訓練データを参照し、通知N1のBoWベクトルBV1に対応する埋め込みベクトルNE1を取得する。
【0026】
次いで、学習装置100は、埋め込みベクトルUE1と埋め込みベクトルNE1とを連結(concatenate)することで、ベクトルCV1を生成する。埋め込みベクトルUE1が次元n(nは、任意の自然数)を持ち、埋め込みベクトルNE1が次元m(mは、任意の自然数)を持つ場合に、生成されたベクトルCV1は、次元(n+m)を持つ。この場合、ベクトルCV1は、(n+m)次元の分散表現である。
【0027】
次いで、学習装置100は、第1の重み行列にベクトルCV1を乗ずることで、ベクトル(図示せず)を算出する。そして、学習装置100は、算出されたベクトルを活性化関数(例えば、ReLU(Rectified Linear unit)関数)に代入することで、隠れ状態ベクトルHV1を生成する。
【0028】
次いで、学習装置100は、第2の重み行列に隠れ状態ベクトルHV1を乗ずることで、関連度RS1を算出する。
【0029】
次いで、学習装置100は、選択情報SI1に含まれる選択フラグの値と、算出された関連度RS1とを用いて、所定の通知がユーザU1に適合するか否かを判定する順伝播型ニューラルネットを学習する。例えば、学習装置100は、誤差逆伝播法を用いて、選択情報SI1に含まれる選択フラグの値および算出された関連度RS1に対応する目的関数(例えば、交差エントロピー損失関数)が最小化されるように、順伝播型ニューラルネットを学習する。
【0030】
通知N1以外の通知についても、学習装置100は、同様の学習処理で、順伝播型ニューラルネットを学習することができる。学習装置100は、かかる学習処理を繰り返すことで、汎化誤差が最小化されるように、順伝播型ニューラルネットを学習することができる。
【0031】
その後、学習装置100は、学習された順伝播型ニューラルネットを用いて、ユーザU1と通知との間の関連性を示す関連性スコアを出力する。より具体的には、学習装置100は、ユーザU1に対応する埋め込みベクトルUE1と、所定の通知に対応する埋め込みベクトルとを、判定モデルに入力することで、ユーザU1が所定の通知を選択する事後確率を、ユーザU1と通知との間の関連性スコアとして出力する。
【0032】
上述のように、実施形態に係る学習装置100は、ユーザに対応する埋め込みベクトルと、通知に対応する埋め込みベクトルとを、訓練データの入力として用いる。また、学習装置100は、通知の選択フラグの値を、訓練データの出力として用いる。そして、学習装置100は、汎化誤差が最小化されるように、順伝播型ニューラルネットを学習する。これにより、学習装置100は、所定の通知がユーザに適合するか否かを判定する判定モデルを学習することができる。
【0033】
ところで、図2の例では、提供装置20は、端末装置10に、通知をプッシュ通知として送信している。一般的に、プッシュ通知は、季節性のある情報である。例えば、提供装置20は、速報性の高い情報(例えば、今夜の番組)を1回だけプッシュ通知として送信する。したがって、このようなプッシュ通知に対応する配信履歴が存在しない場合がある。このような状況は、コールドスタート問題(cold start problem)に関連する。この点に関し、プッシュ通知に対応する配信履歴が存在しない場合でも、学習装置100は、上述の判定モデルを用いて、プッシュ通知がユーザに適合するか否かを判定することができる。このため、学習装置100は、ユーザが、ユーザが関心のあるプッシュ通知をタイムリーに受け取ることを可能にする。以下、このような学習処理を実現する学習装置100について詳細に説明する。
【0034】
〔3.学習装置の構成〕
次に、図3を参照して、実施形態に係る学習装置100の構成例について説明する。図3は、実施形態に係る学習装置100の構成例を示す図である。図3に示すように、学習装置100は、通信部110と、記憶部120と、制御部130とを有する。なお、学習装置100は、学習装置100を利用する管理者等から各種操作を受け付ける入力部(例えば、キーボードやマウス等)や、各種情報を表示するための表示部(液晶ディスプレイ等)を有してもよい。
【0035】
(通信部110)
通信部110は、例えば、NIC(Network Interface Card)等によって実現される。通信部110は、ネットワーク網と有線又は無線により接続され、ネットワーク網を介して、端末装置10および提供装置20との間で情報の送受信を行う。
【0036】
(記憶部120)
記憶部120は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。図3に示すように、記憶部120は、訓練データ記憶部121と、判定モデル記憶部122とを有する。
【0037】
(訓練データ記憶部121)
図4は、実施形態に係る訓練データ記憶部121の一例を示す図である。訓練データ記憶部121は、コンテンツに関連する予測モデルを生成するための訓練データを記憶する。予測モデルは、例えば、所定の通知がユーザに適合するか否かを判定する判定モデルである。一例では、判定モデルは、順伝播型ニューラルネットである。
【0038】
訓練データ記憶部121は、例えば、受信部131によって受信された訓練データを記憶する。図4の例では、訓練データ記憶部121には、「訓練データ」が「ユーザID」ごとに記憶される。例示として、「訓練データ」には、項目「属性情報」、「通知ID」、「通知情報」および「選択情報」が含まれる。
【0039】
「ユーザID」は、ユーザを識別するための識別子を示す。「属性情報」は、ユーザの属性に関する情報を示す。ユーザの属性は、例えば、ユーザのデモグラフィック属性や、サイコグラフィック属性等である。
【0040】
属性情報は、ユーザに対応するワンホットベクトルを含む。ワンホットベクトルの複数の成分のうちゼロでない1つの成分が、ユーザのユーザIDに対応する。一例では、ワンホットベクトルの次元数は、ユーザIDの数と同一である。また、属性情報は、ワンホットベクトルに対応する埋め込みベクトル(例えば、分散表現)を含む。埋め込みベクトルは、例えば、ユーザのデモグラフィック属性や、サイコグラフィック属性等に対応する。例えば、ユーザの属性が「女性」の場合に、埋め込みベクトルは、ユーザ属性「女性」に対応する分散表現である。ユーザ属性に対応する分散表現は、所定のコーパスと、ニューラル言語モデルによって獲得され得る。
【0041】
「通知ID」は、通知を識別するための識別子を示す。「通知情報」は、通知の内容に関する情報を示す。通知の内容は、例えば、通知のタイトルや、通知のボディ(例えば、本文のテキスト)や、通知が選択された場合のアクション(例えば、リンク先への画面遷移)等である。
【0042】
通知情報は、通知に対応するBoWベクトル(BoW表現とも呼ばれる)を含む。BoWベクトルの複数の成分のうちゼロでない少なくとも1つの成分は、通知の通知情報に含まれる少なくとも1つの単語に対応する。また、通知情報は、BoWベクトルに対応する埋め込みベクトルを含む。一例では、BoWベクトルは、通知のタイトルに対応する。例えば、通知のタイトルが「ジムに行く?」場合に、埋め込みベクトルは、単語「ジム」、「行く」にそれぞれ対応する2つの分散表現の平均ベクトルである。
【0043】
「選択情報」は、通知の選択に関する情報を示す。例えば、選択情報は、通知が選択されたか否か示す。例えば、選択情報は、通知が選択されたか否か示す選択フラグを含む。図4の例では、通知が選択されたことを示す選択フラグは、「1」である。この例では、通知が選択されなかったことを示す選択フラグは、「0」である。
【0044】
例えば、図4は、ユーザID「U1」で識別されるユーザが、属性情報AI1に対応することを示している。また、例えば、図4は、通知ID「N1」で識別される通知が、通知情報NI1に対応することを示している。また、例えば、図4は、ユーザID「U1」で識別されるユーザが、通知ID「N1」で識別される通知を選択したことを示している。
【0045】
(判定モデル記憶部122)
図3に戻ると、判定モデル記憶部122は、配信対象に関連する判定モデルを記憶する。判定モデル記憶部122は、例えば、学習部133によって学習されたモデルであって、配信対象ベクトルと対応する配信対象が、利用者ベクトルと対応する利用者と対応するか否かを判定するモデルを記憶する。
【0046】
(制御部130)
制御部130は、コントローラ(controller)であり、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)等のプロセッサによって、学習装置100内部の記憶装置に記憶されている各種プログラムがRAM等を作業領域として実行されることにより実現される。また、制御部130は、コントローラ(controller)であり、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現されてもよい。
【0047】
(受信部131)
受信部131は、提供装置20から、コンテンツに関連する判定モデルを生成するための訓練データを受信する。訓練データは、ユーザの属性情報と、通知の通知情報と、ユーザが通知を選択したか否かを示す選択情報とを含む。受信部131は、受信された訓練データを、訓練データ記憶部121に格納してもよい。
【0048】
受信部131は、提供装置20から、配信対象を示すベクトルであって、かかる配信対象に含まれる情報と対応する次元に所定の値が格納された配信対象ベクトルを受信する。例えば、受信部131は、配信対象となる文章に含まれる単語と対応する次元に所定の値が格納された配信対象ベクトルを受信する。一例では、受信部131は、通知に対応する埋め込みベクトルを受信する。上述の通知情報は、配信対象を示すベクトルであって、かかる配信対象に含まれる情報と対応する次元に所定の値が格納された配信対象ベクトルを含んでもよい。受信部131は、受信された配信対象ベクトルを、訓練データ記憶部121に格納してもよい。受信部131は、配信対象に含まれる情報を受信してもよい。
【0049】
上述の配信対象は、例えば、通知(例えば、プッシュ通知)、ニュース記事、テキストベースのメッセージ(例えば、レコメント情報)等である。配信対象がプッシュ通知である場合に、上述の配信対象ベクトルは、例えば、プッシュ通知のタイトルに含まれる単語と対応する次元に所定の値が格納されたベクトル(例えば、分散表現)である。
【0050】
受信部131は、提供装置20から、利用者を示す利用者ベクトルを受信する。例えば、受信部131は、利用者が有する属性と対応する次元に所定の値が格納された利用者ベクトルを受信する。一例では、受信部131は、ユーザに対応する埋め込みベクトルを受信する。上述の属性情報は、利用者を示す利用者ベクトルを含んでもよい。受信部131は、受信された利用者ベクトルを、訓練データ記憶部121に格納してもよい。受信部131は、利用者が有する属性に関する情報を受信してもよい。
【0051】
(取得部132)
取得部132は、コンテンツに関連する判定モデルを生成するための訓練データを取得する。取得部132は、例えば、受信部131によって受信された訓練データを取得する。取得部132は、訓練データ記憶部121から訓練データを取得してもよい。
【0052】
取得部132は、配信対象を示すベクトルであって、かかる配信対象に含まれる情報と対応する次元に所定の値が格納された配信対象ベクトルを取得する。例えば、受信部131は、配信対象となる文章に含まれる単語と対応する次元に所定の値が格納された配信対象ベクトルを取得する。
【0053】
取得部132は、例えば、受信部131によって受信された配信対象ベクトルを取得する。取得部132は、訓練データ記憶部121から配信対象ベクトルを取得してもよい。
【0054】
取得部132は、利用者を示す利用者ベクトルを取得する。例えば、取得部132は、利用者が有する属性と対応する次元に所定の値が格納された利用者ベクトルを取得する。
【0055】
取得部132は、例えば、受信部131によって受信された利用者ベクトルを取得する。取得部132は、訓練データ記憶部121から利用者ベクトルを取得してもよい。
【0056】
(学習部133)
学習部133は、配信対象ベクトルと利用者ベクトルとに基づいて、配信対象ベクトルと対応する配信対象が、利用者ベクトルと対応する利用者と対応するか否かを判定するモデルを学習する。例えば、学習部133は、利用者に配信された配信対象と対応する配信対象ベクトルと、利用者の利用者ベクトルとの共起性をモデルに学習させる。
【0057】
より具体的には、学習部133は、利用者に配信された配信対象が選択されたか否か示す選択情報(例えば、選択フラグ)に基づいて、配信対象ベクトルと利用者ベクトルとの共起性をモデルに学習させる。例えば、学習部133は、利用者ベクトルおよび配信対象ベクトルを訓練データの入力として用い、かつ利用者に配信された配信対象が選択されたか否か示す選択情報を訓練データの出力として用いることで、配信対象ベクトルと利用者ベクトルとの共起性に関する距離をモデルに学習させる。
【0058】
一例では、モデルは、ニューラルネットである。この例では、配信対象ベクトルは、配信対象(例えば、プッシュ通知)に対応する埋め込みベクトル(例えば、分散表現)である。また、この例では、利用者ベクトルは、利用者(例えば、ユーザ)に対応する埋め込みベクトルである。
【0059】
学習部133は、配信対象ベクトルと利用者ベクトルとを連結した連結ベクトルから、配信対象ベクトルと対応する配信対象が、利用者ベクトルと対応する利用者と対応するか否かを判定するモデルを学習する。言い換えれば、学習部133は、配信対象ベクトルと利用者ベクトルとの連結(concatenation)であるベクトルから、モデルを学習する。例えば、学習部133は、利用者ベクトルの末尾に配信対象ベクトルを連結した連結ベクトルから、配信対象が利用者と対応するか否かを判定するモデルを学習する。例えば、学習部133は、次元数が削減されるように連結ベクトルを徐々に畳み込むことで、配信対象が利用者と対応するか否かを示す値を生成するモデルを学習する。
【0060】
一例では、学習部133は、配信対象に対応する埋め込みベクトルと利用者に対応する埋め込みベクトルとを連結することで、第1のベクトルを生成する。そして、学習部133は、生成された第1のベクトルに対応する中間層を含むニューラルネットであって、配信対象が利用者と対応するか否かを判定するニューラルネットを学習する。
【0061】
例えば、学習部133は、第1の重み行列に第1のベクトルを乗ずることで、第2のベクトルを算出する。次いで、学習部133は、算出された第2のベクトルを活性化関数に代入することで、隠れ状態ベクトルを生成する。次いで、学習部133は、第2の重み行列に隠れ状態ベクトを乗ずることで、関連度を算出する。その後、学習部133は、配信対象が選択されたか否か示す選択情報(例えば、選択フラグ)と、算出された関連度とを用いて、所定の配信対象が利用者に適合するか否かを判定するニューラルネットを学習する。
【0062】
学習部133は、配信対象ベクトルから、配信対象ベクトルが示す配信対象に含まれる情報の特徴を示す特徴ベクトルの平均値の和となるベクトルを生成し、生成されたベクトルに基づいて、利用者と配信対象とが対応するか否かを判定するモデルを学習する。
【0063】
一例では、情報の特徴を示す特徴ベクトルは、分散表現である。この例では、配信対象に含まれる情報が、第1~3の特徴を含む場合に、配信対象に対応する埋め込みベクトルは、第1~3の特徴にそれぞれ対応する3つの分散表現の平均ベクトルである。
【0064】
学習部133は、利用者ベクトルと、利用者ベクトルが示す利用者が選択した配信対象を示す配信対象ベクトルとが入力された際に、利用者ベクトルが示す利用者と配信対象ベクトルが示す配信対象とが対応する旨を出力し、利用者ベクトルと、利用者ベクトルが示す利用者が選択しなかった配信対象を示す配信対象ベクトルとが入力された際に、利用者ベクトルが示す利用者と配信対象ベクトルが示す配信対象とが対応しない旨が出力されるように、モデルを学習する。
【0065】
例えば、学習部133は、利用者ベクトルと、利用者が選択した配信対象を示す配信対象ベクトル(例えば、テストデータである配信対象ベクトル)とが入力された際に、モデルによって出力される値が、配信対象が選択されたことを示す値(例えば、選択フラグの選択に対応する値「1」)に近づくように、訓練用のデータである配信対象ベクトルを用いてモデルを訓練する。また、例えば、学習部133は、正則化手法(例えば、L2正則化等)を用いて、汎化誤差が最小化されるようにモデルを学習する。
【0066】
学習部133は、例えば、配信対象が選択されたか否か示す選択情報およびモデルの出力に対応する目的関数が最小化されるように、モデルを学習する。一例では、学習部133は、誤差逆伝播法を用いて、選択情報に含まれる選択フラグの値およびニューラルネットワークの出力(例えば、上述の関連度)に対応する目的関数が最小化されるように、ニューラルネットを学習する。
【0067】
(生成部134)
生成部134は、配信対象の候補となる配信対象に含まれる情報と対応する次元に所定の値が格納された候補ベクトルと、配信対象の候補の配信先となる利用者を示す配信先ベクトルとを生成する。例えば、生成部134は、所定のサーバから、配信対象の候補となる配信対象に含まれる情報に含まれるキーワードに対応する少なくとも1つのベクトル(例えば、分散表現)を取得する。また、例えば、生成部134は、所定のサーバから、配信対象の候補の配信先となる利用者の特徴に対応する少なくとも1つのベクトル(例えば、分散表現)を取得する。そして、生成部134は、情報に含まれるキーワードに対応する少なくとも1つのベクトルに基づいて、候補ベクトルを生成する。また、生成部134は、利用者の特徴に対応する少なくとも1つのベクトルに基づいて、配信先ベクトルを生成する。
【0068】
生成部134は、配信対象に含まれる情報を用いて、配信対象を示すベクトルであって、かかる配信対象に含まれる情報と対応する次元に所定の値が格納された配信対象ベクトルを生成してもよい。また、生成部134は、利用者が有する属性に関する情報を用いて、利用者が有する属性と対応する次元に所定の値が格納された利用者ベクトルを生成してもよい。
【0069】
生成部134は、配信対象に含まれる情報を用いて、配信対象に対応するBoWベクトルを生成してもよい。また、生成部134は、利用者が有する属性に関する情報を用いて、利用者に対応するワンホットベクトルを生成してもよい。
【0070】
(判定部135)
判定部135は、学習部133により学習されたモデルを用いて、候補ベクトルと配信先ベクトルとから、配信対象の候補を配信先となる利用者に配信するか否かを判定する。また、判定部135は、候補ベクトルと配信先ベクトルとが入力された際に、候補ベクトルが示す配信候補が、配信先ベクトルが示す利用者と対応する旨をモデルが出力した場合は、配信候補を利用者に配信すると判定する。
【0071】
一例では、判定部135は、学習されたモデル(例えば、ニューラルネット)を用いて、利用者と配信対象の候補との間の関連性を示す関連性スコアを出力する。より具体的には、判定部135は、配信対象の候補の配信先に対応する配信先ベクトルと、配信対象の候補に対応する候補ベクトルとを、モデルに入力することで、利用者が配信対象の候補を選択する確率を、利用者と配信対象の候補との間の関連性スコアとして出力する。
【0072】
(提供部136)
提供部136は、学習部133により学習されたモデルを提供する。例えば、提供部136は、学習されたモデルを提供装置20に提供する。提供部136は、判定部135による判定結果を、提供装置20に提供してもよい。
【0073】
〔4.学習処理のフロー〕
次に、実施形態に係る学習装置100による学習処理の手順について説明する。図5は、実施形態に係る学習装置100による学習処理手順を示すフローチャートである。
【0074】
図5に示すように、はじめに、学習装置100は、配信対象を示すベクトルであって、配信対象に含まれる情報と対応する次元に所定の値が格納された配信対象ベクトルと、利用者を示す利用者ベクトルとを取得する(ステップS101)。例えば、学習装置100は、利用者が有する属性と対応する次元に所定の値が格納された利用者ベクトルを取得する。また、例えば、学習装置100は、信対象となる文章に含まれる単語と対応する次元に所定の値が格納された配信対象ベクトルと取得する。
【0075】
次いで、学習装置100は、配信対象ベクトルと利用者ベクトルとに基づいて、配信対象ベクトルと対応する配信対象が、利用者ベクトルと対応する利用者と対応するか否かを判定するモデルを学習する(ステップS102)。例えば、学習装置100は、利用者に配信された配信対象と対応する配信対象ベクトルと、利用者の利用者ベクトルとの共起性を前記モデルに学習させる。
【0076】
より具体的には、学習装置100は、利用者ベクトルおよび配信対象ベクトルを訓練データの入力として用い、かつ利用者に配信された配信対象が選択されたか否か示す選択情報を訓練データの出力として用いることで、配信対象ベクトルと利用者ベクトルとの共起性に関する距離をモデルに学習させる。
【0077】
〔5.その他〕
また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の一部を手動的に行うこともできる。あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
【0078】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【0079】
例えば、図3に示した記憶部120の一部又は全部は、学習装置100によって保持されるのではなく、ストレージサーバ等に保持されてもよい。この場合、学習装置100は、ストレージサーバにアクセスすることで、訓練データ等の各種情報を取得する。
【0080】
〔6.ハードウェア構成〕
また、上述してきた実施形態に係る学習装置100は、例えば図6に示すような構成のコンピュータ1000によって実現される。図6は、ハードウェア構成の一例を示す図である。コンピュータ1000は、出力装置1010、入力装置1020と接続され、演算装置1030、一次記憶装置1040、二次記憶装置1050、出力IF(Interface)1060、入力IF1070、ネットワークIF1080がバス1090により接続された形態を有する。
【0081】
演算装置1030は、一次記憶装置1040や二次記憶装置1050に格納されたプログラムや入力装置1020から読み出したプログラム等に基づいて動作し、各種の処理を実行する。一次記憶装置1040は、RAM等、演算装置1030が各種の演算に用いるデータを一時的に記憶するメモリ装置である。また、二次記憶装置1050は、演算装置1030が各種の演算に用いるデータや、各種のデータベースが登録される記憶装置であり、ROM(Read Only Memory)、HDD、フラッシュメモリ等により実現される。
【0082】
出力IF1060は、モニタやプリンタといった各種の情報を出力する出力装置1010に対し、出力対象となる情報を送信するためのインタフェースであり、例えば、USB(Universal Serial Bus)やDVI(Digital Visual Interface)、HDMI(登録商標)(High Definition Multimedia Interface)といった規格のコネクタにより実現される。また、入力IF1070は、マウス、キーボード、およびスキャナ等といった各種の入力装置1020から情報を受信するためのインタフェースであり、例えば、USB等により実現される。
【0083】
なお、入力装置1020は、例えば、CD(Compact Disc)、DVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等から情報を読み出す装置であってもよい。また、入力装置1020は、USBメモリ等の外付け記憶媒体であってもよい。
【0084】
ネットワークIF1080は、ネットワークNを介して他の機器からデータを受信して演算装置1030へ送り、また、ネットワークNを介して演算装置1030が生成したデータを他の機器へ送信する。
【0085】
演算装置1030は、出力IF1060や入力IF1070を介して、出力装置1010や入力装置1020の制御を行う。例えば、演算装置1030は、入力装置1020や二次記憶装置1050からプログラムを一次記憶装置1040上にロードし、ロードしたプログラムを実行する。
【0086】
例えば、コンピュータ1000が学習装置100として機能する場合、コンピュータ1000の演算装置1030は、一次記憶装置1040上にロードされたプログラムを実行することにより、制御部130の機能を実現する。
【0087】
〔7.効果〕
上述してきたように、実施形態に係る学習装置100は、取得部132と、学習部133とを有する。取得部132は、配信対象を示すベクトルであって、配信対象に含まれる情報と対応する次元に所定の値が格納された配信対象ベクトルと、利用者を示す利用者ベクトルとを取得する。学習部133は、配信対象ベクトルと利用者ベクトルとに基づいて、配信対象ベクトルと対応する配信対象が、利用者ベクトルと対応する利用者と対応するか否かを判定するモデルを学習する。
【0088】
また、実施形態に係る学習装置100において、取得部132は、利用者が有する属性と対応する次元に所定の値が格納された利用者ベクトルを取得する。
【0089】
また、実施形態に係る学習装置100において、取得部132は、配信対象となる文章に含まれる単語と対応する次元に所定の値が格納された配信対象ベクトルを取得する。
【0090】
また、実施形態に係る学習装置100において、学習部133は、利用者に配信された配信対象と対応する配信対象ベクトルと、利用者の利用者ベクトルとの共起性をモデルに学習させる。
【0091】
また、実施形態に係る学習装置100において、学習部133は、配信対象ベクトルと利用者ベクトルとを連結した連結ベクトルから、配信対象ベクトルと対応する配信対象が、利用者ベクトルと対応する利用者と対応するか否かを判定するモデルを学習する。
【0092】
また、実施形態に係る学習装置100において、学習部133は、利用者ベクトルの末尾に配信対象ベクトルを連結した連結ベクトルから、配信対象が利用者と対応するか否かを判定するモデルを学習する。
【0093】
また、実施形態に係る学習装置100において、学習部133は、次元数が削減されるように連結ベクトルを徐々に畳み込むことで、配信対象が利用者と対応するか否かを示す値を生成するモデルを学習する。
【0094】
また、実施形態に係る学習装置100において、学習部133は、配信対象ベクトルから、配信対象ベクトルが示す配信対象に含まれる情報の特徴を示す特徴ベクトルの平均値の和となるベクトルを生成し、生成されたベクトルに基づいて、利用者と配信対象とが対応するか否かを判定するモデルを学習する。
【0095】
また、実施形態に係る学習装置100において、学習部133は、利用者ベクトルと、利用者ベクトルが示す利用者が選択した配信対象を示す配信対象ベクトルとが入力された際に、利用者ベクトルが示す利用者と配信対象ベクトルが示す配信対象とが対応する旨を出力し、利用者ベクトルと、利用者ベクトルが示す利用者が選択しなかった配信対象を示す配信対象ベクトルとが入力された際に、利用者ベクトルが示す利用者と配信対象ベクトルが示す配信対象とが対応しない旨が出力されるように、モデルを学習する。
【0096】
また、実施形態に係る学習装置100は、配信対象の候補となる配信対象に含まれる情報と対応する次元に所定の値が格納された候補ベクトルと、配信対象の候補の配信先となる利用者を示す配信先ベクトルとを生成する生成部134を有する。また、実施形態に係る学習装置100は、学習部133により学習されたモデルを用いて、候補ベクトルと配信先ベクトルとから、配信対象の候補を配信先となる利用者に配信するか否かを判定する判定部135を有する。
【0097】
また、実施形態に係る学習装置100において、判定部135は、候補ベクトルと配信先ベクトルとが入力された際に、候補ベクトルが示す配信候補が、配信先ベクトルが示す利用者と対応する旨をモデルが出力した場合は、配信候補を利用者に配信すると判定する。
【0098】
上述した各処理により、学習装置100は、所定の通知がユーザに適合するか否かを判定する判定モデルを学習することができる。
【0099】
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
【0100】
また、上述した学習装置100は、複数のサーバコンピュータで実現してもよく、また、機能によっては外部のプラットフォーム等をAPI(Application Programming Interface)やネットワークコンピューティングなどで呼び出して実現するなど、構成は柔軟に変更できる。
【0101】
また、上述してきた「部(section、module、unit)」は、「手段」や「回路」などに読み替えることができる。例えば、受信部は、受信手段や受信回路に読み替えることができる。
【符号の説明】
【0102】
1 ネットワークシステム
10 端末装置
20 提供装置
100 学習装置
120 記憶部
121 訓練データ記憶部
122 判定モデル記憶部
130 制御部
131 受信部
132 取得部
133 学習部
134 生成部
135 判定部
136 提供部
図1
図2
図3
図4
図5
図6