(58)【調査した分野】(Int.Cl.,DB名)
複数のコンテンツそれぞれを提供したコンテンツ提供者を示す提供者情報と、属性推定対象のコンテンツ利用者の端末において再生された前記コンテンツを示すログデータとを用いて、前記属性推定対象のコンテンツ利用者の端末における前記コンテンツの再生回数を前記コンテンツ提供者毎に計数する再生回数計数部と、
コンテンツ利用者の年代別に集計された前記コンテンツの再生回数に基づいた前記コンテンツ提供者のランキングの上位の前記コンテンツ提供者毎の再生回数を入力してコンテンツ利用者の属性が各属性値である確率を表す値を出力するニューラルネットワークである推定モデルに、前記再生回数計数部が計数したコンテンツ提供者毎の再生回数を示す入力データを入力するモデル適用部と、
前記入力データの入力に応じて前記推定モデルが出力した結果に基づいて、前記属性推定対象のコンテンツ利用者について属性値を推定する推定部と、
を備える属性推定装置。
前記提供者情報及び学習用の複数のコンテンツ利用者それぞれの前記ログデータを用いて、学習用の複数の前記コンテンツ利用者それぞれの前記端末における前記コンテンツの再生回数をコンテンツ利用者の年代別に前記コンテンツ提供者毎に計数する学習用再生回数計数部と、
学習用の複数の前記コンテンツ利用者それぞれの正解の属性値と、学習用の複数の前記コンテンツ利用者の年代別の前記コンテンツ提供者毎の再生回数を示す入力データとを用いて前記推定モデルを学習する学習処理部とをさらに備える、
請求項1から4のいずれか1項に記載の属性推定装置。
【発明を実施するための形態】
【0019】
以下、図面を参照しながら本発明の実施形態を詳細に説明する。本実施形態の属性推定装置は、コンテンツ配信業者が提供するコンテンツ配信サービスを利用しているユーザの属性を推定する。以下では、コンテンツ配信業者が配信するコンテンツは動画データ(以下、単に「動画」と記載)であり、推定するユーザの属性は年齢である場合を例に説明する。
【0020】
図1は、本実施形態による属性推定システム1の構成図である。属性推定システム1は、動画視聴端末3と、動画視聴サーバ4と、データ収集サーバ5と、ディープラーニング用サーバ6とを備える。動画視聴端末3、動画視聴サーバ4及びデータ収集サーバ5は、ネットワーク9に接続される。ネットワーク9は、例えば、インターネットである。同図では、動画視聴サーバ4及びデータ収集サーバ5をそれぞれ1台ずつ示しているが、動画視聴サーバ4及びデータ収集サーバ5はそれぞれ複数台でもよい。また、同図では、データ収集サーバ5とディープラーニング用サーバ6とが直接接続されているが、ネットワーク9を介して接続されてもよい。また、動画視聴サーバ4、データ収集サーバ5及びディープラーニング用サーバ6の一部又は全てが、同一のコンピュータサーバにより実現されてもよい。
【0021】
図2は、動画視聴端末3の構成を示すブロック図である。動画視聴端末3は、動画視聴者が利用するパーソナルコンピュータ、タブレット端末、スマートフォンなどのコンピュータ端末である。動画視聴者は、動画配信サービスを利用するユーザである。動画視聴端末3は、入力部31と、動画視聴機能部32と、出力部33とを備える。入力部31は、動画視聴者の操作を入力する。動画視聴機能部32は、入力部31を用いた動画視聴者の操作に従って、端末ID及び動画配信要求を動画視聴サーバ4に送信する。端末IDは、動画視聴端末3を一意に識別する情報である。端末IDには、動画視聴端末3に割り当てられたアドレス情報を用いることができる。また、端末IDとして、ユーザIDを用いてもよい。ユーザIDは、動画視聴者を一意に識別する情報である。動画配信要求は、動画視聴者が配信を要求する対象の動画を特定する情報を含む。動画視聴機能部32は、動画配信要求に対応して動画視聴サーバ4から配信された動画を出力部33に出力する。出力部33は、ディスプレイ及びスピーカである。
【0022】
図3は、動画視聴サーバ4の構成を示すブロック図である。動画視聴サーバ4は、動画配信業者が提供する動画配信サービスに用いられる。動画視聴サーバ4は、記憶部41と、配信部42と、ログ生成部43とを備える。
【0023】
記憶部41は、投稿動画情報を記憶する。投稿動画情報は、動画IDと、動画と、動画投稿者情報と、動画付加情報とを含む。動画IDは、動画を一意に特定する情報である。動画投稿者情報は、動画投稿者ID、動画投稿者名などの情報を含む。動画投稿者IDは、動画投稿者を一意に特定する情報である。動画投稿者は、動画配信サービスにおいて配信する動画を提供した個人、企業、団体等である。動画投稿者名と動画投稿者IDとが同一であってもよい。動画付加情報は、動画に関する情報を示す。動画付加情報は、動画のタイトル、検索に用いられる動画の説明やキーワードなどを含む。
【0024】
配信部42は、動画視聴端末3から端末ID及び動画配信要求を受信する。配信部42は、動画配信要求により配信が要求された動画を記憶部41から読み出し、動画配信要求の送信元の動画視聴端末3へ配信する。
ログ生成部43は、動画視聴ログを生成する。動画視聴ログは、動画視聴端末3の端末IDと、動画視聴端末3に配信した動画の動画投稿者情報に含まれる動画ID、動画投稿者情報及び動画のタイトルと、視聴日、視聴開始時刻及び視聴終了時刻とを含むデータである。視聴日は、曜日のみを示す七曜形式の情報であってもよく、又は、日付を示す年月日形式の情報であってもよい。なお、学習データに使用される動画視聴ログは、さらに動画視聴者の年齢を含むデータである。動画視聴者の年齢は、動画視聴者の年代であってもよい。
ログ生成部43は、生成した動画視聴ログをデータ収集サーバ5に送信する。
【0025】
図4は、データ収集サーバ5の構成を示すブロック図である。データ収集サーバ5は、動画視聴ログを収集し、ディープラーニング用サーバ6に提供する。データ収集サーバ5は、ログ収集機能部51と、ログ抽出機能部52とを備える。ログ収集機能部51は、動画視聴サーバ4から動画視聴ログを収集し、記憶する。ログ抽出機能部52は、ログ収集機能部51が記憶している動画視聴ログを読み出し、ディープラーニング用サーバ6へ出力する。
【0026】
図5は、ディープラーニング用サーバ6の構成を示すブロック図である。ディープラーニング用サーバ6は、ディープラーニング(deep learning、深層学習)により学習した推定モデルを用いて、動画視聴者の年代を推定する。推定モデルは、隠れ層が多段のニューラルネットワークである。入力層の各ノードは、全ての動画視聴端末3における動画視聴者の年代ごとの動画視聴回数の順に、動画視聴者の年代別に動画投稿者を並べたときの順位に対応する。さらには、視聴日別(例えば曜日別)や視聴時間帯別に入力層のノードを設けてもよい。出力層の各ノードは、年代に対応する。
【0027】
ディープラーニング用サーバ6は、ランキング作成処理部61と、学習データ作成処理部62と、ディープラーニング学習処理部63と、学習モデル機能部64と、年代推定機能部65とを備える。
ランキング作成処理部61は、全ての動画視聴端末3の動画視聴ログに基づいて、動画視聴者の年代別に、全ての動画視聴端末3において各動画投稿者の動画が再生された回数である再生回数を計数する。なお、ランキング作成処理部61は、全ての動画視聴端末3のうち一部をサンプリングし、サンプリングした動画視聴端末3の動画視聴ログに基づいて動画視聴者の年代別に各動画投稿者の再生回数を計数してもよい。ランキング作成処理部61は、動画視聴者の年代別に、再生回数が多い順に動画投稿者に順位を付与する。この順位を「ランキング」と記載する。ランキング作成処理部61は、動画視聴者の年代ごとの学習データ量に応じて、各年代の動画投稿者ランキングから学習対象にする動画投稿者を選出する。各年代の動画投稿者ランキングから選出される動画投稿者数は、動画視聴者の年代間の学習データ量の不均衡を是正するように決定される。例えば、各年代の動画投稿者ランキングから選出される動画投稿者数は、各年代の学習データ量に対して反比例するように決定してもよい。又は、各年代の動画投稿者ランキングから選出される動画投稿者数は、当該年代の学習データ量に対して二乗の反比例するように決定してもよい。
学習データ作成処理部62は、推定モデルのディープラーニングに用いるための学習データを作成する。
ディープラーニング学習処理部63は、学習データ作成処理部62が作成した学習データを用いてディープラーニングにより推定モデルを学習する。学習モデル機能部64は、年代推定対象の動画視聴者の入力データを生成し、学習済みの推定モデルに入力する。年代推定機能部65は、推定モデルの出力結果に基づいて動画視聴者の年代を推定し、推定結果を出力する。
【0028】
ディープラーニング用サーバ6を、ネットワークに接続される複数のコンピュータ装置により実現してもよい。この場合、ディープラーニング用サーバ6の各機能部を、これら複数のコンピュータ装置のいずれにより実現するかは任意とすることができる。例えば、ランキング作成処理部61、学習データ作成処理部62及びディープラーニング学習処理部63と、学習モデル機能部64及び年代推定機能部65とをそれぞれ異なるコンピュータ装置により実現してもよい。
【0029】
図6は、推定モデルの例を示す図である。推定モデルとして用いられるニューラルネットワークは、入力層、隠れ層及び出力層からなる。
図6に示す隠れ層は3層であるが、隠れ層の層の数は2層又は4層以上でもよい。
【0030】
入力層はM個のノードからなる。入力層の各ノードは、動画視聴者の年代別に、選出された学習対象の動画投稿者に対応するラベルが付与される。ある年代のラベルmのノードに入力される値は、当該年代の動画視聴者がラベルmに対応するランキングの動画投稿者の動画を視聴した回数である。また、入力層の最終ノードは、学習対象の動画投稿者以外の全ての動画投稿者をまとめるラベルが付与される。入力層の最終ノードに入力される値は、動画視聴者が学習対象の動画投稿者以外の全ての動画投稿者の動画を視聴した回数である。さらには、視聴日別(例えば視聴曜日別)や視聴時間帯別に入力層のノードを設けてもよい。
【0031】
出力層はK個のノードからなる。出力層の各ノードは年代に対応する。例えば、出力層の各ノードは、10歳未満、10代、20代、…、に対応する。なお、出力層の1つのノードが対応する年齢の幅は、1歳、2歳、5歳など任意とすることができる。また、各ノードが対応する年齢の幅は同じでもよく、一部又は全部が異なってもよい。出力層の各ノードの値は、ノードに対応する年代である確率を表す。
【0032】
図6に示す推定モデルにおいて、隠れ層の各層及び出力層は、全結合層である。入力層を第1層、隠れ層を第2〜4層、出力層を5層とした場合、l層(lは2以上5以下の整数)の各ノードは(l−1)層の全てのノード全てと結合している。ディープラーニングによる推定モデルの学習では、l層の各ノードと、(l−1)層の各ノードとの間の結合強度(重み)を決定する。
【0033】
図7は、推定モデルへの入力データの例を示す図である。ランキング作成処理部61は、全ての動画視聴端末3の動画視聴ログを参照して、動画視聴者の年代別に、動画投稿者別の動画再生回数を集計する。ランキング作成処理部61は、動画視聴者の年代別に、動画再生回数が多い順に動画投稿者にランキングを付与する。
図7の例では、20代の動画視聴者の動画投稿者ランキングと、30代の動画視聴者の動画投稿者ランキングと、40代の動画視聴者の動画投稿者ランキングとが作成される。ランキング作成処理部61は、動画視聴者の年代ごとの学習データ量に応じて、各年代の動画投稿者ランキングから学習対象にする動画投稿者を選出する。各年代の動画投稿者ランキングから選出される動画投稿者数は、動画視聴者の年代間の学習データ量の不均衡を是正するように決定される。ここでの例として、各年代の動画投稿者ランキングから選出される動画投稿者数は、各年代の学習データ量に対して反比例するように決定される。
図7の例では、各年代の学習データ量が「20代:30代:40代=1:2:2」の比率である。また、学習対象の動画投稿者に選出される総選出数は100人である。これにより、各年代の動画投稿者ランキングから選出される動画投稿者の選出数は、「20代:30代:40代=50人:25人:25人」となる。ランキング作成処理部61は、各年代の動画投稿者ランキングの上位から各年代の選出数分の動画投稿者を選出する。これにより、20代の動画視聴者の動画投稿者ランキングから上位50人の動画投稿者が20代の学習対象の動画投稿者として選出される。また、30代の動画視聴者の動画投稿者ランキングから上位25人の動画投稿者が30代の学習対象の動画投稿者として選出される。また、40代の動画視聴者の動画投稿者ランキングから上位25人の動画投稿者が40代の学習対象の動画投稿者として選出される。
学習データ作成処理部62は、動画視聴者の年代別に、学習対象に選出された動画投稿者をランキングの順に並べる。ある年代の各動画投稿者に対応する入力データは、当該年代の動画視聴者が各動画投稿者の動画を視聴した回数である。
図7の例では、20代の学習対象の各動画投稿者に対応する入力データは、20代の動画視聴者が各動画投稿者の動画を視聴した回数である。また、30代の学習対象の各動画投稿者に対応する入力データは、30代の動画視聴者が各動画投稿者の動画を視聴した回数である。また、40代の学習対象の各動画投稿者に対応する入力データは、40代の動画視聴者が各動画投稿者の動画を視聴した回数である。
なお、入力データとして、全ての動画投稿者それぞれの動画視聴回数を用いることが好ましいが、動画投稿者の数が大多数の場合、ディープラーニング用サーバ6のリソースが大量に消費されてしまう。また、動画視聴回数が多い動画投稿者の情報は主に大衆識別に有用であるが、動画視聴回数が少ない動画投稿者の情報はニッチな嗜好に密接に関係しており、個人識別に有用であると考えられる。そこで、学習データ作成処理部62は、推定モデルの学習に用いる入力データを生成する際、学習対象の動画投稿者以外の全ての動画投稿者をまとめ(
図7中、「その他」で示される)、「その他」の入力データとして、学習対象の動画投稿者以外の全ての動画投稿者の動画を視聴した回数とする。
【0034】
図8から
図10は、推定モデルへの入力データの他の例を示す図である。
図8に示される入力データの例では、
図7に示される動画視聴者の年代別の動画投稿者ランキングから選出された学習対象の動画投稿者(
図8中、AさんからJさんまで)及び「その他」に対して、さらに視聴時間帯別に入力層のノードが設けられる。
図8(1)の例では、視聴時間帯が「0−11時」と「12−23時」の2つに区切られる。
図8(2)の例では、視聴時間帯が「0−5時」と「6−11時」と「12−17時」と「18−23時」の42つに区切られる。なお、視聴時間帯の区切り方は任意でよい。視聴時間帯の区切り方は、例えば、2、4、6、8、12、24個などに区切ってもよい。
【0035】
図9に示される入力データの例では、
図7に示される動画視聴者の年代別の動画投稿者ランキングから選出された学習対象の動画投稿者(
図9中、AさんからJさんまで)及び「その他」に対して、さらに視聴曜日別に入力層のノードが設けられる。
図9(1)の例では、視聴曜日が「平日(月曜−金曜)」と「休日(土曜と日曜)」の2つに区切られる。
図9(2)の例では、視聴曜日が各曜日の7つに区切られる。なお、視聴曜日の区切り方は任意でよい。また、祝日や大型連休(ゴールデンウェークや盆休みや正月休み)など特別な休日を区切りに加えてもよい。
【0036】
図10に示される入力データの例では、
図7に示される動画視聴者の年代別の動画投稿者ランキングから選出された学習対象の動画投稿者(
図10中、AさんからJさんまで)及び「その他」に対して、さらに視聴曜日別と視聴時間帯別に入力層のノードが設けられる。
図10の例では、視聴曜日が各曜日の7つに区切られ、また、視聴時間帯が毎時の24個に区切られる。
【0037】
上述したように、推定モデルへの入力データは、動画視聴者が各年代の学習対象の各動画投稿者の動画を視聴した視聴回数および「その他」にまとめられた動画投稿者の動画を視聴した視聴回数である。さらには、視聴日別(例えば視聴曜日別)や視聴時間帯別に区切られた視聴回数である。学習データ作成処理部62及び学習モデル機能部64は、動画視聴者の動画視聴ログに基づいて得られた各年代の動画投稿者ランキングの各動画投稿者の動画視聴回数を取得し、入力データとして用いる。
【0038】
図11は、入力データに用いる動画視聴回数の取得方法を示す図である。
図11(a)は、過去に動画視聴者が視聴した動画の動画投稿者を示す図である。同図では、実際には動画を視聴していない期間であっても、動画視聴者が同一の動画投稿者の動画を視聴した時間に挟まれている期間については、その動画投稿者の動画を視聴した期間に含めている。一般的に、動画視聴者は、同じ動画投稿者の動画を連続して見る傾向にある。例えば、動画視聴者は、10話分の動画からなるドラマを視聴する場合、それら動画を連続して1日〜数日かけて連続して視聴することがある。そのため、動画視聴ログから過去1日〜数日分の動画視聴回数を取得して入力データを生成した場合、特定の動画投稿者の動画視聴回数が多くなってしまい、年代推定の精度が低下する可能性がある。
【0039】
そこで、ディープラーニング学習処理部63及び学習モデル機能部64は、例えば、長期間(期間T1とする)における動画視聴ログを、動画視聴回数を得る対象期間(期間T2<期間T1)の単位にシャッフルする。
図11(b)は、シャッフル後の動画視聴ログを示す図である。シャッフルとは、期間T1の動画視聴ログに基づいて各動画投稿者の動画視聴回数の割合を算出し、算出した割合を維持したまま各動画投稿者の動画視聴回数を期間T2毎に分配することである。換言すれば、シャッフルとは、長期間(例えば、1年、半年、数か月などの期間T1)における各動画投稿者の動画視聴回数を、対象期間(例えば、1日、1週間などの期間T2)あたりの動画視聴回数に変換することである。
【0040】
例えば、動画投稿者A及びCの動画を多く視聴する人は30代、動画投稿者Bの動画を多く視聴する人が20代であるとする。このとき、
図11(a)に示すシャッフル前の動画視聴ログから過去1日分の期間(期間T2)に動画視聴者が視聴した動画の情報をランダムに所定回数分取得し、その取得した動画の情報に基づいて入力データを作成したとする。この場合、実際には、動画視聴者は、動画投稿者Bの動画を多く視聴しているにもかかわらず、入力データでは動画投稿者Aの動画の動画視聴回数が多くなってしまう。その結果、正解は30代であるにも関わらず、20代と推定されることがある。
【0041】
一方、
図11(b)に示すシャッフル後、過去1日分の動画視聴ログは、過去の長期間(期間T1)にわたる動画視聴回数の割合を反映したものとなる。よって、シャッフル後の動画視聴ログから過去1日分の期間(期間T2)に動画視聴者が視聴した動画の情報をランダムに所定回数分取得すると、動画投稿者Aの動画の動画視聴回数よりも動画投稿者Bの動画の動画視聴回数が多くなる。この取得した動画の情報に基づいて入力データを作成すると、入力データは長期の視聴傾向を表したものとなるために20代と推定される。このように、入力データの生成の際に、動画視聴ログの時間的なシャッフルを行うことで、入力データの偏りを失くし、推定精度を向上させることができる。
【0042】
図12及び
図13は、属性推定システム1における推定モデル学習処理を示すフロー図である。
図12には学習データ作成処理のフロー図が示される。学習データ作成処理において、ログ抽出機能部52は、ログ収集機能部51が収集し、記憶している全ての(又はサンプリングした)動画視聴端末3の動画視聴ログを取得する。このとき、ログ抽出機能部52は、過去の所定期間分の動画視聴ログを取得してもよい。ログ抽出機能部52は、取得した動画視聴ログをディープラーニング用サーバ6に出力する(ステップS105)。
【0043】
ディープラーニング用サーバ6のランキング作成処理部61は、ログ抽出機能部52から受信した全ての動画視聴ログを参照して、動画視聴者の年代別に、各動画投稿者の動画が動画視聴端末3で視聴された回数を計数する。ランキング作成処理部61は、動画視聴者の年代別に、計数した動画視聴回数が多い順に動画投稿者に順位を付与して動画投稿者ランキングを作成する(ステップS110)。ランキング作成処理部61は、動画視聴者の年代ごとの学習データ量に応じて、各年代の動画投稿者ランキングから学習対象にする動画投稿者を選出する(ステップS112)。ランキング作成処理部61は、各年代の動画投稿者ランキングについて、動画投稿者の動画投稿者IDとランキングの順位と学習対象の動画投稿者であるか否かを示すフラグとを対応付けて学習データ作成処理部62に出力する。
【0044】
学習データ作成処理部62は、動画視聴ログに対してディープラーニング用のデータ加工を行う(ステップS115)。例えば、学習データ作成処理部62は、動画視聴ログからディープラーニングに不要なデータ(例えば、動画のタイトルなど)を削除する。学習データ作成処理部62は、教師データとなる動画視聴端末3の端末IDに、正解となる年代を表す情報を対応付ける(ステップS120)。各動画視聴端末3の正解の年代の情報は、ディープラーニング用サーバ6の図示しない入力部により入力されてもよい。あるいは、学習データ作成処理部62は、各動画視聴端末3の正解の年代の情報を、例えば、会員情報を記憶するデータベースサーバなどの他の装置から読み出してもよい。
【0045】
学習データ作成処理部62は、動画視聴端末3毎に、動画ログ取得期間(例えば、1年、半年、数か月など)における動画投稿者別の動画再生回数を動画視聴者の年代別に集計する。さらには、視聴日別(例えば視聴曜日別)や視聴時間帯別に集計してもよい。
学習データ作成処理部62は、動画視聴者の年代別に、学習対象に選出された動画投稿者をランキングの順に並べ、最後に「その他」を追加し、各動画投稿者及び「その他」に対応する入力データを付加し、ディープラーニング用に加工された動画視聴ログと共に学習データとして生成する(ステップS125)。ある年代の各動画投稿者に対応する入力データは、当該年代の動画視聴者が各動画投稿者の動画を視聴した回数である。「その他」に対応する入力データは、学習対象の動画投稿者以外の全ての動画投稿者の動画を視聴した回数である。さらには、視聴日別(例えば視聴曜日別)や視聴時間帯別に、各動画投稿者及び「その他」に対応する入力データを区分けしてもよい。
学習データ作成処理部62は、生成した学習データをディープラーニング学習処理部63に出力する。
【0046】
図13にはモデル作成処理のフロー図が示される。モデル作成処理において、ディープラーニング学習処理部63は、処理に必要な情報の初期化を行う(ステップS205)。まず、ディープラーニング学習処理部63は、変数i及び変数jを値0により初期化する。変数iは推定モデルの学習回数を示す。変数jは、モデルの精度を表す値である。さらに、ディープラーニング学習処理部63は、上限の学習回数N回、推定モデルの精度のしきい値p%を取得する。ディープラーニング学習処理部63は、ディープラーニング用サーバ6の図示しない入力部により入力された上限の学習回数N回、推定モデルの精度のしきい値p%を取得してもよく、図示しない記憶部から読み出してもよい。
【0047】
ディープラーニング学習処理部63は、各年代の動画投稿者ランキングにおいてランキングが下位の動画投稿者の足切りを行う(ステップS210)。動画投稿者の足切り方法として、各年代の動画投稿者ランキングにおいてランキングが上位の所定割合又は所定数の動画投稿者を残し、それ以外の動画投稿者を「その他」に移行する処理を行う。
【0048】
ディープラーニング学習処理部63は、学習データに含まれる長期間の動画視聴ログを動画視聴者毎にシャッフルし、動画視聴回数を取得する対象期間における偏りをなくす(ステップS215)。ディープラーニング学習処理部63は、動画視聴者毎に、シャッフルされた動画視聴ログに基づいて入力データを生成する(ステップS220)。すなわち、ディープラーニング学習処理部63は、動画視聴者毎に、シャッフルされた動画視聴ログの対象期間から視聴された動画の動画IDをランダムに所定の視聴回数分取得し、取得した動画IDに対応付けられた動画投稿者IDを特定する。ディープラーニング学習処理部63は、動画視聴者毎に、特定された動画投稿者ID毎に動画視聴回数を計数して当該動画投稿者IDに対応する入力データとする。この動画視聴者ごとに生成される入力データの形式は、
図7から
図10を参照して上述した形式である。つまり、動画視聴者の年代別に、学習対象の動画投稿者がランキングの順に並べられ、最後に「その他」が追加された形式である。さらには、視聴日別(例えば視聴曜日別)や視聴時間帯別に、各動画投稿者及び「その他」に対応する入力データが区分けされてもよい。
【0049】
ディープラーニング学習処理部63は、教師データのデータ量が各年代で均一か否かを判断する(ステップS225)。例えば、ディープラーニング学習処理部63は、教師データから各端末IDに対応した年代の情報を読み出して年代別に端末IDの数を計数し、教師データ数とする。ディープラーニング学習処理部63は、年代別の教師データ数を比較し、他の年代よりも所定以上少ない年代があれば、均一ではないと判断する。
【0050】
ディープラーニング学習処理部63は、均一ではないと判断した場合(ステップS225:NO)、教師データのデータ量を調整する(ステップS230)。このデータ量の調整方法として、オーバーサンプリングとアンダーサンプリングとがある。オーバーサンプリングとアンダーサンプリングのうち、いずれか一方を使用してもよく又は両方を使用してもよい。オーバーサンプリングは、他の年代と比較して教師データ数が所定以上少ない年代の教師データを増やす処理である。オーバーサンプリングでは、少数の教師データを元にして不足分の教師データを補完する。アンダーサンプリングは、他の年代と比較して教師データ数が所定以上多い年代の教師データを減らす処理である。
【0051】
図15は、オーバーサンプリングの例を示す図である。本実施形態では、統計手法を使用して均等に不足分の教師データを補完する。
図15(a)は、オーバーサンプリング前の教師データ(年代が既知の入力データ)のプロットを示す。なお
図15では、簡単のため2次元で示しているが、実際にはM次元にプロットされる。
図15(a)に示すように、年代Aの教師データ数よりも、年代B、C、Dの教師データ数が所定以上少ない。そこで、ディープラーニング学習処理部63は、年代B、C、Dそれぞれについて教師データを補完する。
【0052】
例えば、年代Bの教師データを補完する場合、ディープラーニング学習処理部63は、年代Bの教師データのうち一つの教師データを選択し、選択した教師データの近傍にある年代Bの他の教師データとの間でランダムに入力データを生成する。この生成した入力データを年代Bの補完した教師データとする。ディープラーニング学習処理部63は、補完前の年代Bの教師データ数及び補完した教師データの数の合計と、年代Aの教師データ数との差が所定以内になるまで、補完前の年代Bの教師データを選択して、教師データの補完を行う。ディープラーニング学習処理部63は、この処理を、年代C及び年代Dのそれぞれについて行う。
図15(b)は、オーバーサンプリング後の教師データのプロットを示す。
【0053】
なお、上述したステップS210(動画投稿者の足切り)、S215(動画視聴ログのシャッフル)及びS230(年代間の教師データ数が不均一である場合におけるデータ量の調整)は、必須ではない。ステップS210,S215,S230のうち、いずれか若しくは全てを実施してもよく、又は、全てを実施しなくてもよい。
【0054】
説明を
図13に戻す。ディープラーニング学習処理部63は、ステップS225において教師データのデータ量が各年代で均一と判断した場合(ステップS225:YES)又は教師データのデータ量の調整を行った後(ステップS230)、ステップS235の処理を行う。すなわち、ディープラーニング学習処理部63は、教師データを1つ選択すると、選択した教師データを用いてディープラーニング手法により推定モデルを学習する(ステップS235)。具体的には、ディープラーニング学習処理部63は、選択した教師データが示す入力データを現在の推定モデルに入力し、出力層の各ノードの値を推定結果として得る。ディープラーニング学習処理部63は、推定結果と、教師データが示す年代が正解であるときの出力層の値との差分を損失関数により算出する。教師データが示す年代が正解であるときの出力層の値は、正解の年代に対応したノードの値が100%であり、正解ではない年代に対応したノードの値が0%である。ディープラーニング学習処理部63は、データ量に応じて損失関数による算出結果を重み付けする重み付け損失関数を用いて、推定モデルのノード間の結合強度を更新する。
【0055】
ディープラーニング学習処理部63は、学習回数iに1を加算し、損失関数の値jに直前のステップS235において算出された損失関数の値p’を設定する(ステップS240)。ディープラーニング学習処理部63は、学習回数iが上限の学習回数Nに達した、又は、損失関数の値jが精度のしきい値p%以上となったかを判断する(ステップS245)。なお、ここでは、損失関数の値が大きいほど精度が良いことを表す。損失関数の値が小さいほど精度が良いことを表す場合、「損失関数の値jが精度のしきい値p%以上となったか」に代えて、「損失関数の値jが精度のしきい値p%以下となったか」を判定条件とする。
【0056】
ディープラーニング学習処理部63は、学習回数iが上限の学習回数Nに達しておらず、かつ、損失関数の値jが精度のしきい値p%に満たないと判断した場合(ステップS245:NO)、ステップS250の半教師学習を行う(ステップS250)。すなわち、ディープラーニング学習処理部63は、ステップS220において生成した入力データのうち、教師データではない(正解の年代が付与されていない)入力データを学習中の現在の推定モデルに入力し、出力層の値を推定結果として得る。ディープラーニング学習処理部63は、出力層のノードのうち、いずれか一つのノードのみが所定の確率以上であることを示す推定結果が得られた場合、その推定結果が得られたときの入力データを教師データとして追加する。追加した教師データの正解の年代は、所定の確率以上の値が得られたノードに対応する年代である。例えば、推定モデルの出力層が10代以下、20代、30代、40代、50代、60代以上のそれぞれに対応した6ノードからなり、各ノードの値として99%、0.1%、0.5%、0.2%、0.1%、0.1%が得られたとする。この場合、ディープラーニング学習処理部63は、入力データを教師データに追加し、所定の確率以上の99%が得られたノードに対応した10代以下を正解の年代とする。ディープラーニング学習処理部63は、ステップS225からの処理を繰り返す。
【0057】
ディープラーニング学習処理部63は、学習回数iが上限の学習回数Nに達したか、損失関数の値jが精度のしきい値p%以上であると判断した場合(ステップS245:YES)、学習した推定モデルを学習モデル機能部64に出力する(ステップS255)。学習モデル機能部64は、学習済みの推定モデルを保存する(ステップS260)。
【0058】
図14は、属性推定システム1における推定処理を示すフロー図である。動画視聴端末3は、ネットワーク9を経由して動画視聴サーバ4にアクセスする(ステップS305)。動画視聴端末3の動画視聴機能部32は、動画視聴者が入力部31により行った操作に従って、動画配信要求を動画視聴サーバ4に送信する。動画視聴サーバ4の配信部42は、動画配信要求により配信が要求された動画を記憶部41から読み出し、動画視聴端末3へ配信する。動画視聴端末3の動画視聴機能部32は、動画視聴サーバ4から配信された動画を再生し、出力部33に出力する。動画視聴サーバ4のログ生成部43は、動画視聴端末3の端末IDと、動画視聴端末3に配信した動画の動画IDと、配信した動画の動画投稿者情報及び動画のタイトルと、視聴日、視聴開始時刻及び視聴終了時刻とを含む動画視聴ログを生成し、データ収集サーバ5に転送する(ステップS310)。視聴日は、曜日のみを示す七曜形式の情報であってもよく、又は、日付を示す年月日形式の情報であってもよい。データ収集サーバ5のログ収集機能部51は、転送された動画視聴ログを記憶する。
【0059】
ディープラーニング用サーバ6の学習モデル機能部64は、データ収集サーバ5のログ収集機能部51が収集した、年代推定対象の動画視聴者の動画視聴ログを参照し、年代推定が可能な程度の動画視聴ログが収集されたことを検出する(ステップS315)。例えば、動画視聴回数が所定以上に達した場合に年代推定可能となる。
【0060】
学習モデル機能部64は、年代推定対象の動画視聴者の動画視聴ログを用いて、ディープラーニング学習処理部63と同様の処理により入力データを生成する。すなわち、学習モデル機能部64は、動画ログ取得期間における動画投稿者別の動画再生回数を集計すると、動画視聴ログをシャッフルする。学習モデル機能部64は、視聴された動画の動画IDをランダムに所定の視聴回数分、シャッフルされた動画視聴ログの対象期間から取得し、取得した動画IDに対応付けられた動画投稿者IDを特定する。学習モデル機能部64は、特定された動画投稿者ID毎に動画視聴回数を計数して当該動画投稿者IDに対応する入力データとする(ステップS320)。この動画視聴者ごとに生成される入力データの形式は、ディープラーニング学習処理部63によるモデル作成処理における形式と同じである。学習モデル機能部64は、入力データを学習済みの推定モデルの入力層に入力し、推定結果を算出する(ステップS325)。
【0061】
年代推定機能部65は、ステップS325において得られた算出結果に基づいて、動画視聴者の年代を推定する(ステップS330)。すなわち、年代推定機能部65は、出力層の各ノードの値のうち、最も大きな値のノードに対応した年代を推定結果とする。年代推定機能部65は、推定結果の年代を出力する。出力は、ディスプレイへの表示でもよく、ネットワークにより接続される装置への送信でもよく、記録媒体への記録でもよい。
【0062】
なお、上記では、動画視聴サーバ4が動画視聴ログを生成しているが、動画視聴端末3が動画視聴ログを生成可能である場合、データ収集サーバ5は、各動画視聴端末3から直接又は動画視聴サーバ4を介して動画視聴ログを収集してもよい。
【0063】
上述したように、属性推定システム1は、動画視聴者の動画視聴ログを蓄積する基盤を有している。属性推定システム1は、ディープラーニングを用いて動画視聴ログを解析し、動画視聴者の年代を推定する。ディープラーニングにより年代を推定する際には、動画視聴ログを入力データとして適した形にしなければならない。また、ディープラーニングでは教師データの学習の仕方も重要である。そこで、属性推定システム1は、全ての動画視聴ログに基づいて、動画視聴者の年代別に、動画投稿者ランキングを算出する。属性推定システム1は、過去の動画視聴ログにおける動画投稿者の名前又は動画投稿者IDをランキングの順位に置き換える。属性推定システム1は、年代推定対象の動画視聴者の動画投稿者別の動画視聴回数を、全動画視聴者の視聴ログに基づく動画視聴者の年代別の動画投稿者ランキング順に並べて推定モデルに入力する。このとき、属性推定システム1は、動画視聴ログをシャッフルして得られた動画視聴回数を推定モデルに入力してもよい。属性推定システム1は、推定モデルを用いて推定した年代を表示する。
【0064】
属性推定システム1は、ディープラーニングにより学習した推定モデルを用いることで、動画視聴者の年代を推定することができる。また、属性推定システム1は、動画視聴ログを動画視聴者の年代別にランキング形式で集計し、精度に影響を与える上位動画投稿者については個別の動画視聴回数を入力データに用い、それ以外の動画投稿者については動画視聴回数を合計する。各年代の上位動画投稿者(学習対象の動画投稿者)の選出数は、動画視聴者の年代間の学習データ量の不均衡を是正するように決定される。例えば、各年代の動画投稿者ランキングから選出される動画投稿者数は、各年代の学習データ量に対して反比例するように決定してもよい。又は、各年代の動画投稿者ランキングから選出される動画投稿者数は、当該年代の学習データ量に対して二乗の反比例するように決定してもよい。これにより、動画視聴者の年代間の学習データ量に不均衡がある場合にも適応することができる。
また、属性推定システム1が動画視聴ログを入力時にシャッフルすることにより、入力データの偏りを失くし、動画視聴者の年代を推定する精度を高めることができる。
このように、動画配信サービスを提供している事業者は、動画視聴端末への動画配信のログを利用して、動画視聴者の年代を推定することが可能となる。
【0065】
以上説明した実施形態によれば、属性推定装置は、再生回数計数部と、モデル適用部と、推定部とを備える。例えば、属性推定装置はディープラーニング用サーバ6であり、再生回数計数部及びモデル適用部は学習モデル機能部64であり、推定部は年代推定機能部65である。再生回数計数部は、複数のコンテンツそれぞれを提供したコンテンツ提供者を示す提供者情報と、属性推定対象のコンテンツ利用者の端末において再生されたコンテンツを示すログデータとを用いて、属性推定対象のコンテンツ利用者の端末におけるコンテンツの再生回数をコンテンツ提供者毎に計数する。モデル適用部は、コンテンツ利用者の年代別に集計されたコンテンツの再生回数に基づいたコンテンツ提供者のランキングの上位のコンテンツ提供者毎の再生回数を入力してコンテンツ利用者の属性が各属性値である確率を表す値を出力するニューラルネットワークである推定モデルに、再生回数計数部が計数したコンテンツ提供者毎の再生回数を示す入力データを入力する。推定部は、入力データの入力に応じて推定モデルが出力した結果に基づいて、属性推定対象のコンテンツ利用者について属性値を推定する。
【0066】
例えば、コンテンツは動画であり、コンテンツ提供者は動画投稿者であり、コンテンツ利用者は動画視聴者であり、提供者情報は動画投稿者情報であり、コンテンツ利用者の端末は動画視聴端末3であり、ログデータは動画視聴ログである。また、例えば、属性は年齢であり、属性値は年代である。
【0067】
なお、上位のコンテンツ提供者は、コンテンツ利用者の年代ごとの学習データ量に応じて、各年代の前記コンテンツ提供者のランキングから選出されたものであってもよい。また、コンテンツ利用者の年代ごとの上位のコンテンツ提供者の選出数は、コンテンツ利用者の年代間の学習データ量の不均衡を是正するように決定されたものであってもよい。
【0068】
また、推定モデルへの入力データは、コンテンツ利用日とコンテンツ利用時間帯とのうち少なくとも一方の別に、コンテンツ提供者毎の再生回数が区分けされてもよい。推定モデルへの入力データは、コンテンツ利用日別に、コンテンツ提供者毎の再生回数が区分けされてもよい。推定モデルへの入力データは、コンテンツ利用時間帯別に、コンテンツ提供者毎の再生回数が区分けされてもよい。推定モデルへの入力データは、コンテンツ利用日別且つコンテンツ利用時間帯別に、コンテンツ提供者毎の再生回数が区分けされてもよい。コンテンツ利用日別は、曜日別であってもよい。
【0069】
属性推定装置は、学習用再生回数計数部と、学習処理部とをさらに備えてもよい。例えば、学習用再生回数計数部及び学習処理部は、学習データ作成処理部62及びディープラーニング学習処理部63である。学習用再生回数計数部は、提供者情報及び学習用の複数のコンテンツ利用者それぞれのログデータを用いて、学習用の複数のコンテンツ利用者それぞれの端末におけるコンテンツの再生回数をコンテンツ利用者の年代別にコンテンツ提供者毎に計数する。学習処理部は、学習用の複数のコンテンツ利用者それぞれの正解の属性値と、学習用の複数のコンテンツ利用者の年代別のコンテンツ提供者毎の再生回数を示す入力データとを用いて推定モデルを学習する。
【0070】
上述した実施形態における動画視聴端末3、動画視聴サーバ4、データ収集サーバ5及びディープラーニング用サーバ6の機能は、コンピュータで実現される。その場合、これらの機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよい。
【0071】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【解決手段】ディープラーニング用サーバ6において、ランキング作成処理部61は、動画視聴者の年代別に、各動画投稿者の動画が再生された回数である再生回数を計数する。学習データ作成処理部62は、推定モデルのディープラーニングに用いるための学習データを作成する。ディープラーニング学習処理部63は、学習データ作成処理部62が作成した学習データを用いてディープラーニングにより推定モデルを学習する。学習モデル機能部64は、年代推定対象の動画視聴者の入力データを生成し、学習済みの推定モデルに入力する。年代推定機能部65は、推定モデルの出力結果に基づいて動画視聴者の年代を推定し、推定結果を出力する。