(57)【要約】【課題】ユーザにとって関心興味の高いと想定されるコンテンツを精度良く推薦することができる情報提供装置、情報提供方法、およびプログラムを提供することである。【解決手段】情報提供装置は、ユーザによって閲覧されたコンテンツの特徴に基づいて、前記ユーザの特徴を導出する導出部と、前記導出部により導出されたユーザの特徴と、配信対象の複数のコンテンツの其々の特徴とに基づいて、前記配信対象の複数のコンテンツの中から前記ユーザに推薦するコンテンツを決定する決定部と、を備え、前記導出部が、前記ユーザの特徴を導出する際に、前記ユーザによって閲覧された一以上のコンテンツの特徴のうち、時間経過に応じた閲覧回数の変化が小さいコンテンツの特徴ほど大きく前記ユーザの特徴に反映させる。【選択図】図２
2019113943.tif 000002
【特許請求の範囲】
【請求項１】
ユーザによって閲覧されたコンテンツの特徴に基づいて、前記ユーザの特徴を導出する導出部と、
前記導出部により導出されたユーザの特徴と、配信対象の複数のコンテンツの其々の特徴とに基づいて、前記配信対象の複数のコンテンツの中から前記ユーザに推薦するコンテンツを決定する決定部と、を備え、
前記導出部は、前記ユーザの特徴を導出する際に、前記ユーザによって閲覧された一以上のコンテンツの特徴のうち、時間経過に応じた閲覧回数の変化が小さいコンテンツの特徴ほど大きく前記ユーザの特徴に反映させる、
情報提供装置。
【請求項２】
前記導出部は、入力された一以上のコンテンツの特徴に重みを付与し、前記重みを付与した一以上のコンテンツの特徴に基づいて、前記コンテンツを閲覧したユーザの特徴を出力するように構成された学習器に、前記コンテンツの特徴を入力することで、前記ユーザの特徴を導出する、
請求項１に記載の情報提供装置。
【請求項３】
前記コンテンツの時間経過に応じた閲覧回数の変化が小さいコンテンツの特徴ほど大きい重みを付与するように前記学習器を学習させる学習処理部を更に備える、
請求項２に記載の情報提供装置。
【請求項４】
前記決定部は、
前記導出部により導出されたユーザの特徴と、前記配信対象の複数のコンテンツの其々の特徴との類似度を導出し、
前記配信対象の複数のコンテンツの其々の特徴ごとに導出した類似度と、前記配信対象の複数のコンテンツの其々の閲覧回数に基づく指標値とに基づいて、前記配信対象の複数のコンテンツの中から前記ユーザに推薦するコンテンツを決定する、
請求項１から３のうちいずれか１項に記載の情報提供装置。
【請求項５】
コンテンツの時間経過に応じた閲覧回数の変化に応じて、前記指標値を機械学習によって決定する学習処理部を更に備える、
請求項４に記載の情報提供装置。
【請求項６】
前記学習処理部は、前記指標値を、コンテンツの時間経過に応じた閲覧回数の変化が大きいほど小さくし、コンテンツの時間経過に応じた閲覧回数の変化が小さいほど大きくするように決定する、
請求項５に記載の情報提供装置。
【請求項７】
コンピュータが、
ユーザによって閲覧されたコンテンツの特徴に基づいて、前記ユーザの特徴を導出し、
前記導出したユーザの特徴と、配信対象の複数のコンテンツの其々の特徴とに基づいて、前記配信対象の複数のコンテンツの中から前記ユーザに推薦するコンテンツを決定し、
前記ユーザの特徴を導出する際に、前記ユーザによって閲覧された一以上のコンテンツの特徴のうち、時間経過に応じた閲覧回数の変化が小さいコンテンツの特徴ほど大きく前記ユーザの特徴に反映させる、
情報提供方法。
【請求項８】
コンピュータに、
ユーザによって閲覧されたコンテンツの特徴に基づいて、前記ユーザの特徴を導出する処理と、
前記導出したユーザの特徴と、配信対象の複数のコンテンツの其々の特徴とに基づいて、前記配信対象の複数のコンテンツの中から前記ユーザに推薦するコンテンツを決定する処理と、
前記ユーザの特徴を導出する際に、前記ユーザによって閲覧された一以上のコンテンツの特徴のうち、時間経過に応じた閲覧回数の変化が小さいコンテンツの特徴ほど大きく前記ユーザの特徴に反映させる処理と、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報提供装置、情報提供方法、およびプログラムに関する。
【背景技術】
【０００２】
インターネットを介して、ニュース記事や広告画像などのコンテンツを配信する技術が知られている。これに関連し、コンテンツの重要度を推定し、この重要度が高いコンテンツほど、ユーザに推薦する際の優先度を高くする技術が知られている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１７−５９０５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の技術では、重要度が高いと推定されたコンテンツが、ユーザにとって関心興味の低いコンテンツである場合があった。この結果、ユーザの興味関心の低いと想定されるコンテンツが優先的に推薦されてしまう場合があった。
【０００５】
本発明は、上記の課題に鑑みてなされたものであり、ユーザにとって関心興味の高いと想定されるコンテンツを精度良く推薦することができる情報提供装置、情報提供方法、およびプログラムを提供することを目的としている。
【課題を解決するための手段】
【０００６】
本発明の一態様は、ユーザによって閲覧されたコンテンツの特徴に基づいて、前記ユーザの特徴を導出する導出部と、前記導出部により導出されたユーザの特徴と、配信対象の複数のコンテンツの其々の特徴とに基づいて、前記配信対象の複数のコンテンツの中から前記ユーザに推薦するコンテンツを決定する決定部と、を備え、前記導出部が、前記ユーザの特徴を導出する際に、前記ユーザによって閲覧された一以上のコンテンツの特徴のうち、時間経過に応じた閲覧回数の変化が小さいコンテンツの特徴ほど大きく前記ユーザの特徴に反映させる情報提供装置である。
【発明の効果】
【０００７】
本発明の一態様によれば、ユーザにとって関心興味の高いと想定されるコンテンツを精度良く推薦することができる。
【図面の簡単な説明】
【０００８】
【図１】実施形態における情報提供装置１００を含む情報提供システム１の一例を示す図である。
【図２】実施形態における情報提供装置１００の構成の一例を示す図である。
【図３】コンテンツ情報１３２の一例を示す図である。
【図４】コンテンツベクトル情報１３４の一例を示す図である。
【図５】ユーザ情報１３６の一例を示す図である。
【図６】行動ログ１３８の一例を示す図である。
【図７】ユーザベクトル情報１４０の一例を示す図である。
【図８】情報提供装置１００による一連の処理の流れを示すフローチャートである。
【図９】情報提供装置１００による一連の処理の流れを示すフローチャートである。
【図１０】パラメータｂｐｖとコンテンツの閲覧回数の時間変化との関係の一例を示す図である。
【図１１】学習器のパラメータを決定する際の処理の内容を模式的に示す図である。
【図１２】学習器のパラメータを決定する際の処理の内容を模式的に示す図である。
【図１３】実施形態の情報提供装置１００のハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【０００９】
以下、本発明を適用した情報提供装置、情報提供方法、およびプログラムを、図面を参照して説明する。
【００１０】
［概要］
情報提供装置は、一以上のプロセッサにより実現される。情報提供装置は、基本的には、ユーザによって閲覧されたコンテンツの特徴に基づいてユーザの特徴を導出し、導出したユーザの特徴と、配信対象の複数のコンテンツの其々の特徴とに基づいて、配信対象の複数のコンテンツの中からユーザに推薦するコンテンツを決定する。更に、情報提供装置は、ユーザの特徴を導出する際に、ユーザによって閲覧された一以上のコンテンツの特徴のうち、時間経過に応じた閲覧回数の変化が小さいコンテンツの特徴ほど大きくユーザの特徴に反映させる。これによって、例えば、一時的に不特定多数のユーザによって閲覧されたゴシップ記事のようなコンテンツを対象のユーザが閲覧した場合であっても、そのユーザの特徴にゴシップ記事の特徴を反映させにくくすることができる。この結果、ゴシップ記事のような、瞬間的に不特定多数のユーザによって閲覧されたコンテンツが推薦されにくくなり、ユーザにとって関心興味の高いと想定されるコンテンツを精度よく推薦することができる。
【００１１】
本実施形態におけるコンテンツは、例えば、ブログやウェブサイトなどに掲載される記事であり、テキストを含むコンテンツである。また、コンテンツは、例えば、ウェブサイトなどの媒体に広告として掲載されるテキスト、静止画像、動画像、または音声などであってもよい。
【００１２】
［全体構成］
図１は、実施形態における情報提供装置１００を含む情報提供システム１の一例を示す図である。実施形態における情報提供システム１は、例えば、一以上の端末装置１０と、情報提供装置１００とを備える。これらの装置は、ネットワークＮＷを介して接続される。
【００１３】
図１に示す各装置は、ネットワークＮＷを介して種々の情報を送受信する。ネットワークＮＷは、例えば、インターネット、ＷＡＮ（Wide Area Network）、ＬＡＮ（Local Area Network）、プロバイダ端末、無線通信網、無線基地局、専用回線などを含む。なお、図１に示す各装置の全ての組み合わせが相互に通信可能である必要はなく、ネットワークＮＷは、一部にローカルなネットワークを含んでもよい。
【００１４】
端末装置１０は、例えば、スマートフォンなどの携帯電話、タブレット端末、各種パーソナルコンピュータなどの、入力装置、表示装置、通信装置、記憶装置、および演算装置を備える端末装置である。通信装置は、ＮＩＣ（Network Interface Card）などのネットワークカード、無線通信モジュールなどを含む。端末装置１０では、ウェブブラウザやアプリケーションプログラムなどのＵＡ（User Agent）が起動し、ユーザの入力する内容に応じたリクエストを情報提供装置１００に送信する。また、ＵＡが起動された端末装置１０は、情報提供装置１００から取得した情報に基づいて、表示装置に各種画像を表示させる。
【００１５】
情報提供装置１００は、例えば、ウェブブラウザからのリクエストに応じてウェブページを端末装置１０に提供するウェブサーバである。ウェブページには、上述したコンテンツが掲載される。また、情報提供装置１００は、アプリケーションプログラムからのリクエストに応じて画像や音声などのコンテンツを端末装置１０に提供するアプリサーバであってもよい。例えば、情報提供装置１００は、文書検索や画像検索といった、あるデータベースから所望のコンテンツを検索するサービス（以下、検索サービスと称する）を、ウェブサイトやアプリケーションを介して、端末装置１０を利用するユーザに提供する。
【００１６】
［情報提供装置の構成］
図２は、実施形態における情報提供装置１００の構成の一例を示す図である。図示のように、情報提供装置１００は、例えば、通信部１０２と、制御部１１０と、記憶部１３０とを備える。
【００１７】
通信部１０２は、例えば、ＮＩＣ等の通信インターフェースを含む。通信部１０２は、ネットワークＮＷを介して、端末装置１０と通信し、端末装置１０から各種情報を取得する。例えば、通信部１０２は、端末装置１０からログイン情報を取得する。ログイン情報とは、検索サービスを利用するためのアカウントに対応付けられたユーザＩＤ（アカウントＩＤ）やパスワードなどを含む情報である。
【００１８】
制御部１１０は、例えば、コンテンツベクトル生成部１１２と、ユーザベクトル生成部１１４と、レコメンドコンテンツ決定部１１６と、コンテンツ配信部１１８と、情報更新部１２０と、学習処理部１２２とを備える。ユーザベクトル生成部１１４は、「導出部」の一例であり、レコメンドコンテンツ決定部１１６は、「決定部」の一例である。
【００１９】
これらの構成要素は、例えば、ＣＰＵ（Central Processing Unit）などのプロセッサが記憶部１３０に格納されたプログラムを実行することにより実現される。また、制御部１１０の構成要素の一部または全部は、ＬＳＩ（Large Scale Integration）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＦＰＧＡ（Field-Programmable Gate Array）、またはＧＰＵ（Graphics Processing Unit）などのハードウェア（回路部；circuitry）により実現されてもよいし、ソフトウェアとハードウェアの協働によって実現されてもよい。
【００２０】
記憶部１３０は、例えば、ＨＤＤ（Hard Disc Drive）、フラッシュメモリ、ＥＥＰＲＯＭ（Electrically Erasable Programmable Read Only Memory）、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）などの記憶装置により実現される。記憶部１３０には、ファームウェアやアプリケーションプログラムなどの各種プログラムの他に、コンテンツ情報１３２、コンテンツベクトル情報１３４、ユーザ情報１３６、行動ログ１３８、ユーザベクトル情報１４０、学習器情報１４２などが記憶される。
【００２１】
コンテンツ情報１３２は、各種コンテンツを含む情報である。例えば、コンテンツがニュース記事である場合、コンテンツ情報１３２は、ニュース記事に含まれるテキスト情報、画像、音声等の内容、ニュース記事の配信元や著者等の情報を含んでよい。
【００２２】
図３は、コンテンツ情報１３２の一例を示す図である。図示の例のように、コンテンツ情報１３２は、各コンテンツを識別するためのコンテンツＩＤに対して、所定の周期Ｔｉごとの総閲覧数が対応付けられた情報であってよい。所定の周期Ｔｉは、例えば、分、時間、日、週、月、年などの任意の期間であってよい。また、コンテンツ情報１３２は、各種コンテンツを含む情報であってよく、例えば、コンテンツがニュース記事である場合、ニュース記事に含まれるテキスト情報、画像等の内容、ニュース記事の配信元や著者等の情報を含んでよい。
【００２３】
図４は、コンテンツベクトル情報１３４の一例を示す図である。コンテンツベクトル情報１３４は、コンテンツ情報１３２に含まれる各コンテンツの特徴がベクトル化された情報であり、例えば、各コンテンツＩＤに対して、コンテンツがベクトル化されたコンテンツベクトルが対応付けられた情報である。
【００２４】
図５は、ユーザ情報１３６の一例を示す図である。ユーザ情報１３６は、例えば、各ユーザを識別するためのユーザＩＤ（アカウントＩＤ）に対して、ログイン時に照合されるパスワードやユーザ属性などが対応付けられた情報である。ユーザ属性には、例えば、性別、年齢、居住地域、収入、職業、学歴などの、そのユーザのもつ人口統計学的な属性（デモグラフィック属性）が含まれる。これらの人口統計学的な属性は、例えば、アカウント作成時に予め登録されるものとする。また、ユーザ属性には、例えば、ユーザがログイン時に利用した端末装置１０が、スマートフォンなどの携帯電話であるのか、タブレット端末であるのか、パーソナルコンピュータであるのか、といったことを表す端末装置１０の種類や、ログイン時の曜日や時間帯などの各種情報が属性として含まれてもよい。
【００２５】
図６は、行動ログ１３８の一例を示す図である。行動ログ１３８は、ユーザによるコンテンツの閲覧履歴に基づく情報であり、例えば、各ユーザＩＤに対して、ユーザが閲覧したコンテンツのコンテンツＩＤと、所定期間におけるコンテンツの閲覧回数とが対応付けられた情報である。所定期間は、例えば、ユーザがログインしてから数周期Ｔｉ或いは数十周期Ｔｉ程度が経過するまでの期間である。また、所定期間は、例えば、ユーザがログインしてからログアウトするまでの期間であってもよい。
【００２６】
図７は、ユーザベクトル情報１４０の一例を示す図である。ユーザベクトル情報１４０は、ユーザ情報１３６が示す各ユーザの特徴がベクトル化された情報であり、例えば、ユーザＩＤに対して、ユーザがベクトル化されたユーザベクトルが対応付けられた情報である。
【００２７】
学習器情報１４２は、学習器（学習モデル）を規定する情報である。学習器は、例えば、ＧＲＵ（Gated Recurrent Unit）やＬＳＴＭ（Long short-term memory）といった種類の再帰型ニューラルネットワーク（Reccurent Neural Network：ＲＮＮ）によって実現されてよい。これらの再帰型ニューラルネットワークによって学習器が実現される場合、学習器情報１４２には、再帰型ニューラルネットワークを構成する入力層と、一以上の中間層（隠れ層）と、出力層との其々に含まれるニューロン（ユニット）が互いにどのように結合されるのかという結合情報や、結合されたニューロン間で入出力されるデータに付与される結合係数などの各種情報が含まれる。結合情報とは、例えば、各層に含まれるニューロン数や、各ニューロンの結合先のニューロンを指定する情報、各ニューロンを実現する活性化関数、隠れ層のニューロン間に設けられたゲートなどの情報を含む。ニューロンを実現する活性化関数は、例えば、正規化線形関数（ＲｅＬＵ関数）であってもよいし、シグモイド関数や、ステップ関数、その他の関数などであってもよい。ゲートは、例えば、活性化関数によって返される値（例えば１または０）に応じて、ニューロン間で伝達されるデータを選択的に通過させる。結合係数は、活性化関数のパラメータであり、例えば、ニューラルネットワークの隠れ層において、ある層のニューロンから、より深い層のニューロンにデータが出力される際に、出力データに対して付与される重みを含む。また、結合係数は、各層の固有のバイアス成分などを含んでもよい。
【００２８】
コンテンツベクトル生成部１１２は、コンテンツ情報１３２に含まれる各コンテンツの特徴をベクトル化し、コンテンツベクトルを生成する。例えば、コンテンツベクトル生成部１１２は、コンテンツがニュース記事である場合、そのニュース記事をコーパスとして、Countinuous Bag-of-Wordsおよび／またはSkip-gramの学習モデルに基づいて、ニュース記事をベクトル化する。例えば、コンテンツベクトル生成部１１２は、ニュース記事を複数の形態素に分割し、その複数の形態素のうち、特定の品詞（名詞など）を、Countinuous Bag-of-WordsおよびSkip-gramの双方の学習モデルを適用したニューラルネットワーク（例えばword2vec）に単語として入力することで、そのニューラルネットワークから出力される各単語の単語ベクトルを取得する。そして、コンテンツベクトル生成部１１２は、各単語に対応した複数の単語ベクトルの和を正規化（例えば単語数で除算）した値を、単語の抽出元であるニュース記事のベクトル（コンテンツベクトルの一例）として導出する。すなわち、コンテンツベクトル生成部１１２は、複数の単語ベクトルによって分散表現されたニュース記事のベクトルを生成する。このニュース記事のベクトルは、複数の単語ベクトルの其々を次元（基底ベクトル）とした多次元ベクトルである。
【００２９】
また、コンテンツベクトル生成部１１２は、Bag-of-Words単体によって構成された学習モデルや、Global Vector Prediction（GloVe）などの他の学習モデルを利用して、各ニュース記事をベクトル化してもよい。また、コンテンツベクトル生成部１１２は、コンテンツが静止画像や動画像である場合、例えば、畳み込みニューラルネットワークを利用して、それらコンテンツをベクトル化してよい。
【００３０】
コンテンツベクトル生成部１１２は、生成したコンテンツベクトルと、そのコンテンツベクトルの元となったコンテンツのコンテンツＩＤとを対応付けて、これをコンテンツベクトル情報１３４として記憶部１３０に記憶させる。なお、コンテンツの特徴をベクトル化する処理は、コンテンツベクトル生成部１１２が自ら行う代わりに、外部装置に処理を依頼することで実現されてもよい。
【００３１】
ユーザベクトル生成部１１４は、コンテンツベクトル情報１３４および行動ログ１３８を基に、ユーザ情報１３６に含まれる各ユーザの特徴をベクトル化し、ユーザベクトルを生成する。例えば、ユーザベクトル生成部１１４は、学習器情報１４２を参照して、学習器の一例である再帰型ニューラルネットワークを生成（構築）する。一方で、ユーザベクトル生成部１１４は、行動ログ１３８を参照し、ユーザＩＤごとに、ユーザが閲覧したコンテンツのコンテンツＩＤを記憶部１３０から取得してから、コンテンツベクトル情報１３４を参照し、取得したコンテンツＩＤに対応したコンテンツベクトルを記憶部１３０から取得する。そして、ユーザベクトル生成部１１４は、ユーザが閲覧したコンテンツのコンテンツＩＤに対応した各コンテンツベクトルを、生成した再帰型ニューラルネットワークの入力層に入力することで、再帰型ニューラルネットワークの出力層からユーザの特徴がベクトル化されたユーザベクトルを取得する。すなわち、ユーザベクトル生成部１１４は、複数のコンテンツベクトルによって分散表現されたユーザベクトルを生成する。このユーザベクトルは、複数のコンテンツベクトルの其々を次元（基底ベクトル）とした多次元ベクトルである。ユーザベクトルは、「ユーザの特徴」の一例である。
【００３２】
図６の例の場合、行動ログ１３８によって、ユーザＩＤが「ＵＳＥＲ＿２」のユーザが、コンテンツＩＤが「ＣＯＮＴ＿６」、「ＣＯＮＴ＿１４」といったコンテンツを閲覧したことが表されている。このような場合、ユーザベクトル生成部１１４は、コンテンツベクトル情報１３４を参照し、コンテンツＩＤが「ＣＯＮＴ＿６」のコンテンツに対応したコンテンツベクトルＶ（ＣＯＮＴ＿６）と、コンテンツＩＤが「ＣＯＮＴ＿１４」のコンテンツに対応したコンテンツベクトルＶ（ＣＯＮＴ＿１４）とを少なくも取得し、これらのコンテンツベクトルを少なくとも含むベクトル集合を再帰型ニューラルネットワークに入力する。再帰型ニューラルネットワークは、入力された各コンテンツベクトルを、隠れ層において結合係数（重み）を付与し、出力層に至るまでに平均化（例えば加重平均化）する。そして、ユーザベクトル生成部１１４は、再帰型ニューラルネットワークによって複数のコンテンツベクトルが平均化された一つのベクトルを、ユーザＩＤが「ＵＳＥＲ＿２」のユーザのユーザベクトルとして導出する。
【００３３】
ユーザベクトル生成部１１４は、生成したユーザベクトルと、そのユーザベクトルの元となったユーザのユーザＩＤとを対応付けて、これをユーザベクトル情報１４０として記憶部１３０に記憶させる。
【００３４】
レコメンドコンテンツ決定部１１６は、ユーザベクトル生成部１１４により生成された複数のユーザベクトルのうち、対象ユーザがベクトル化されたユーザベクトル（以下、対象ユーザベクトルと称する）と、コンテンツベクトル生成部１１２により生成された一以上のコンテンツベクトルの其々との類似度に基づくスコア（指標値）を導出し、導出したスコアに応じて、対象ユーザに閲覧を推薦するコンテンツ（以下、レコメンドコンテンツと称する）を決定する。対象ユーザは、例えば、ログイン後に検索サービスを利用して所望の情報を検索する際に、検索窓などにクエリを入力したユーザである。
【００３５】
例えば、レコメンドコンテンツ決定部１１６は、スコアが最も大きい一つのコンテンツベクトルに対応したコンテンツを、レコメンドコンテンツに決定する。また、レコメンドコンテンツ決定部１１６は、スコアが大きい上位所定数のコンテンツベクトルの其々に対応したコンテンツの集合を、レコメンドコンテンツに決定してもよいし、スコアが閾値以上の全てのコンテンツベクトルの其々に対応したコンテンツの集合を、レコメンドコンテンツに決定してもよい。
【００３６】
コンテンツ配信部１１８は、通信部１０２を用いて、レコメンドコンテンツ決定部１１６によりレコメンドコンテンツとして決定された一つまたは複数のコンテンツを、対象ユーザがクエリを入力するのに利用した端末装置１０に配信する。
【００３７】
情報更新部１２０は、例えば、コンテンツ配信部１１８により配信されたレコメンドコンテンツが対象ユーザによって閲覧された場合、行動ログ１３８において、対象ユーザのユーザＩＤに、レコメンドコンテンツのコンテンツＩＤを新たに加えたり、閲覧時刻の古いコンテンツのコンテンツＩＤと置き換えたりすることで、行動ログ１３８を更新する。この際、ユーザベクトル生成部１１４は、ユーザベクトル情報１４０において、対象ユーザベクトルが存在しない場合、更新された行動ログ１３８に基づき、対象ユーザベクトルを新たに生成してよい。また、ユーザベクトル生成部１１４は、ユーザベクトル情報１４０において、対象ユーザベクトルが既に存在する場合、更新された行動ログ１３８に基づき、対象ユーザベクトルを更新してよい。
【００３８】
なお、情報更新部１２０は、行動ログ１３８において、対象ユーザのユーザＩＤにコンテンツＩＤが存在する場合、すなわち、対象ユーザベクトルが既に存在する場合に、対象ユーザが所定期間内にいずれのコンテンツも閲覧しなかった場合、対象ユーザの行動ログ１３８において、ユーザＩＤに対応付けられた全てのコンテンツＩＤを消去し、閲覧履歴を初期化してよい。この場合、ユーザベクトル生成部１１４は、例えば、既に生成した対象ユーザベクトルを消去してよい。
【００３９】
学習処理部１２２は、行動ログ１３８に基づいて、学習器情報１４２によって規定される学習器を学習させる。例えば、学習器が再帰型ニューラルネットワークである場合、学習処理部１２２は、一周期Ｔｉが経過するまでの間の各ユーザのコンテンツの閲覧履歴を基に、再帰型ニューラルネットワークの結合係数（活性化関数のパラメータ）を機械学習する。学習器の学習手法の詳細については後述する。
【００４０】
［運用時の処理フロー］
以下、情報提供装置１００の運用時の一連の処理の流れをフローチャートに即して説明する。運用時とは、学習処理部１２２によってある程度学習された学習器を利用する状態である。図８は、情報提供装置１００による一連の処理の流れを示すフローチャートである。本フローチャートの処理は、例えば、通信部１０２によってログイン情報が取得された端末装置１０から、更に、コンテンツを検索するためのクエリが取得された場合に行われる。
【００４１】
まず、ユーザベクトル生成部１１４は、コンテンツベクトル情報１３４および行動ログ１３８を参照し、記憶部１３０から、対象ユーザによって閲覧されたコンテンツのコンテンツベクトルベクトルを取得する（Ｓ１００）。
【００４２】
次に、ユーザベクトル生成部１１４は、学習器情報１４２が示す学習器に、取得した複数のコンテンツベクトルを入力することで、対象ユーザの特徴が複数のコンテンツベクトルによって分散表現された対象ユーザベクトルを生成する（Ｓ１０２）。
【００４３】
次に、レコメンドコンテンツ決定部１１６は、数式（１）に基づいて、ユーザベクトル生成部１１４により生成された対象ユーザベクトルと、コンテンツベクトル生成部１１２により生成された一以上のコンテンツベクトルの其々との類似度を基に、レコメンドコンテンツを決定する際に参照するスコアを導出する（Ｓ１０２）。
【００４４】
【数１】
2019113943.tif 000003
【００４５】
数式（１）におけるｕは、行動ログ１３８にユーザＩＤが含まれる複数のユーザのうち対象ユーザを表し、ａは、コンテンツベクトルが生成された複数のコンテンツのうち、スコアの導出対象として選択された一つのコンテンツを表し、ｔは、検索サービスにおいてコンテンツが掲載された時刻（ニュース記事なら入稿された時刻）を表している。Ｒ（ｕ，ａ，ｔ）は、スコアを表し、Ｖｃｏｎｔ（ａ）は、コンテンツａに対応したコンテンツベクトルを表し、Ｖｕｓｅｒ（ｕ）は、対象ユーザｕに対応した対象ユーザベクトルを表している。Ｔは、転置を表している。ｐｖ（ａ，ｔ）は、ある任意の時刻ｔにおけるコンテンツａの所定の周期Ｔｉあたりの閲覧回数に基づく指標値（例えば閲覧回数の対数値など）を表している。ｂｐｖは、ｐｖ（ａ，ｔ）に乗算されるバイアス成分を表している。ｐｖ（ａ，ｔ）は、変数にｕを含まないため、数式（１）の右辺の第１項から見て、第２項（ｂｐｖ・ｐｖ（ａ，ｔ））は、第１項を加算または減算する定数項として扱われる。パラメータｂｐｖは、学習処理部１２２によって、再帰型ニューラルネットワークの結合係数が学習される際に併せて学習される。パラメータｂｐｖは、スコアの導出対象として選択されたコンテンツａの時間経過に応じた閲覧回数の変化（例えば閲覧回数の時間微分値）が小さいほど、その値が大きくなるように学習される。
【００４６】
例えば、レコメンドコンテンツ決定部１１６は、数式（１）の右辺の第１項として、コンテンツベクトルＶｃｏｎｔ（ａ）ごとに、対象ユーザベクトルＶｕｓｅｒ（ｕ）とのコサイン類似度を導出する。一方で、レコメンドコンテンツ決定部１１６は、数式（１）の右辺の第２項として、コンテンツａの時刻ｔにおける閲覧回数に基づく指標値ｐｖ（ａ，ｔ）とバイアス値ｂｐｖとの積を導出する。そして、レコメンドコンテンツ決定部１１６は、これらの和を、スコアＲ（ｕ，ａ，ｔ）として導出する。数式（１）において、右辺の第１項であるＶｃｏｎｔ（ａ）Ｔ・Ｖｕｓｅｒ（ｕ）は、対象ユーザのこれまでのコンテンツの閲覧履歴に応じて値が変動する項であるのに対して、右辺の第２項であるｂｐｖ・ｐｖ（ａ，ｔ）は、対象ユーザに応じて値が変動せず、時刻ｔにおけるコンテンツの閲覧回数に応じて値が変動する項である。従って、ユーザが頻繁に閲覧するコンテンツに類似し、且つ、時間経過に応じた閲覧回数の変化が小さいコンテンツほど、高いスコアＲ（ｕ，ａ，ｔ）が導出される。なお、数式（１）において、スコアＲ（ｕ，ａ，ｔ）は、第１項と第２項との積として導出されてもよいが、対象ユーザの興味関心のあるコンテンツを推薦する精度を向上させるために、スコアＲ（ｕ，ａ，ｔ）は、第１項と第２項との和として導出されるほうが好ましい。
【００４７】
次に、レコメンドコンテンツ決定部１１６は、導出したスコアに基づいて、各コンテンツベクトルに対応した複数のコンテンツの集合の中から、対象ユーザに閲覧を推薦するレコメンドコンテンツを決定する（Ｓ１０６）。
【００４８】
次に、コンテンツ配信部１１８は、通信部１０２を用いて、レコメンドコンテンツ決定部１１６によりレコメンドコンテンツとして決定された一つまたは複数のコンテンツを、対象ユーザの端末装置１０に配信する（Ｓ１０８）。これによって本フローチャートの処理が終了する。
【００４９】
［学習時の処理フロー］
以下、情報提供装置１００の学習時の一連の処理の流れをフローチャートに即して説明する。学習時とは、運用時に利用される学習器を学習させる状態である。図９は、情報提供装置１００による一連の処理の流れを示すフローチャートである。本フローチャートの処理は、例えば、所定の周期で繰り返し行われてよい。
【００５０】
まず、学習処理部１２２は、数式（１）のスコア導出式に含まれるパラメータｂｐｖを学習する（Ｓ２００）。例えば、学習処理部１２２は、コンテンツａの時間経過に応じた閲覧回数の変化が小さいコンテンツほどパラメータｂｐｖの値が大きくなり、コンテンツａの時間経過に応じた閲覧回数の変化が大きいコンテンツほどパラメータｂｐｖの値が小さくなるように学習する。
【００５１】
図１０は、パラメータｂｐｖとコンテンツの閲覧回数の時間変化との関係の一例を示す図である。例えば、パラメータｂｐｖは、図示のように、コンテンツの閲覧回数の時間変化が大きくなるほど減少するステップ関数によって表されてよい。例えば、図３のコンテンツＩＤが「ＣＯＮＴ＿１」や「ＣＯＮＴ＿３」のコンテンツのように、ある周期だけ突出して閲覧回数が多いコンテンツ（以下、バズコンテンツと称する）の場合、パラメータｂｐｖの値が小さくなりやすい。従って、スコア導出対象のコンテンツａがバズコンテンツであり、パラメータｐｖ（ａ，ｔ）の値が大きくなっても、その値をパラメータｂｐｖが減少させるため、結果として数式（１）の右辺の第２項が小さくなる。例えば、学習処理部１２２は、機械学習によって、閲覧回数に応じたパラメータｂｐｖの下げ幅を決定する。なお、パラメータｂｐｖは、ステップ関数に限られず、コンテンツの閲覧回数の時間変化が大きくなるほど減少する関数であれば如何なる関数であってもよい。
【００５２】
次に、学習処理部１２２は、学習器情報１４２によって規定される学習器のパラメータを学習する（Ｓ２０４）。例えば、学習器によって出力されるユーザベクトルが、学習器に入力された複数のコンテンツベクトルの加重平均で表される場合、学習処理部１２２は、各コンテンツベクトルに付与される重みを学習によって決定する。数式（２）は、ユーザベクトルの導出式の一例である。
【００５３】
【数２】
2019113943.tif 000004
【００５４】
数式（２）は、ｗ１〜ｗｋは、学習器に入力されるコンテンツベクトルＶｃｏｎｔ（１）〜Ｖｃｏｎｔ（ｋ）の其々に対して付与される重みである。これらの重みｗ１〜ｗｋは、学習器が再帰型ニューラルネットワークである場合、ニューラルネットワークの結合係数（活性化関数のパラメータ）となる。例えば、学習処理部１２２は、図６に例示するように、ユーザＩＤが「ＵＳＥＲ＿１」のユーザを対象ユーザとした場合、そのユーザのユーザベクトルＶＵＳＥＲ（１）を導出する際に、コンテンツＩＤが「ＣＯＮＴ＿１」、「ＣＯＮＴ＿２」、「ＣＯＮＴ＿３」であるコンテンツのコンテンツベクトルＶｃｏｎｔ（１）〜Ｖｃｏｎｔ（３）に付与する重みｗ１〜ｗ３を、他のコンテンツベクトルに付与する重みに比して大きくなるように、誤差逆伝搬によって更新する。
【００５５】
この際、学習処理部１２２は、閲覧回数の時間変化が大きいコンテンツほど重みｗを小さくするように学習する。例えば、図３において、コンテンツＩＤが「ＣＯＮＴ＿１」および「ＣＯＮＴ＿３」であるコンテンツは、コンテンツＩＤが「ＣＯＮＴ＿２」のコンテンツに比して、所定の周期Ｔｉごとの閲覧回数の変化が大きいことから、バズコンテンツであることを表している。従って、学習処理部１２２は、本来であれば、ユーザＩＤが「ＵＳＥＲ＿１」であるユーザが、「ＣＯＮＴ＿１」、「ＣＯＮＴ＿２」、「ＣＯＮＴ＿３」のコンテンツを閲覧したため、これらのコンテンツベクトルＶｃｏｎｔ（１）〜Ｖｃｏｎｔ（３）に付与する重みｗ１〜ｗ３が大きくなるように機械学習によって決定するところ、「ＣＯＮＴ＿１」と「ＣＯＮＴ＿３」のコンテンツがバズコンテンツであるため、「ＣＯＮＴ＿１」のコンテンツのコンテンツベクトルＶｃｏｎｔ（１）に付与する重みｗ１と、「ＣＯＮＴ＿３」のコンテンツのコンテンツベクトルＶｃｏｎｔ（３）に付与する重みｗ３との双方が、バズコンテンツでない「ＣＯＮＴ＿２」のコンテンツのコンテンツベクトルＶｃｏｎｔ（２）に付与する重みｗ２に比して小さくなるように機械学習によって決定される。これによって、対象ユーザベクトルを導出する際に、対象ユーザによって閲覧された複数のコンテンツのコンテンツベクトルのうち、閲覧回数の時間変化が小さいコンテンツのコンテンツベクトル（例えばＶｃｏｎｔ（２））ほど、対象ユーザベクトルに対する寄与度を高くし、閲覧回数の時間変化が大きいコンテンツのコンテンツベクトル（例えばＶｃｏｎｔ（１）やＶｃｏｎｔ（２））ほど、対象ユーザベクトルに対する寄与度を低くすることができる。この結果、バズコンテンツに対するユーザベクトルの類似度が小さくなるため、レコメンドコンテンツからバズコンテンツを除外することができる。
【００５６】
次に、学習処理部１２２は、学習器のパラメータを更新した後、記憶部１３０に記憶された学習器情報１４２を更新し（Ｓ２０４）、本フローチャートの処理を終了する。
【００５７】
図１１および図１２は、学習器のパラメータを決定する際の処理の内容を模式的に示す図である。例えば、図１１の例では、ある周期Ｔ１の時点で、「選挙」に関連したコンテンツＡと、「野球」に関連したコンテンツＢとが配信されており、対象ユーザｋがこの２つのコンテンツＡおよびＢを閲覧したとする。また、この周期Ｔ１の時点では、コンテンツＡの閲覧回数の時間変化は０．０１であり、コンテンツＢの閲覧回数の時間変化は０．９であるものとする。このような場合、学習処理部１２２は、対象ユーザｋが閲覧したコンテンツのうち、閲覧回数の時間変化が大きいコンテンツＢのコンテンツベクトルＶｃｏｎｔ（Ｂ）の重みを大きくし、閲覧回数の時間変化が小さいコンテンツＡのコンテンツベクトルＶｃｏｎｔ（Ａ）の重みを小さくするように学習器のパラメータを決定する。
【００５８】
図１２の例では、周期Ｔ１の時点から更に時間が進んだ周期Ｔ２の時点でのコンテンツの配信の様子を表している。周期Ｔ２の時点では、引き続き「選挙」に関連したコンテンツＡと「野球」に関連したコンテンツＢとが配信されており、更に、「災害」に関連したコンテンツＣが新たに配信されている。対象ユーザｋは、これらのコンテンツのうち、コンテンツＢおよびＣを閲覧したとする。また、この周期Ｔ２の時点では、コンテンツＡの閲覧回数の時間変化は０．０１であり、コンテンツＢの閲覧回数の時間変化は０．９であり、コンテンツＣの閲覧回数の時間変化は０．０．３であるものとする。このような場合、学習処理部１２２は、対象ユーザｋが閲覧したコンテンツのうち、閲覧回数の時間変化が大きいコンテンツＢのコンテンツベクトルＶｃｏｎｔ（Ｂ）の重みを大きくし、閲覧回数の時間変化が小さいコンテンツＣのコンテンツベクトルＶｃｏｎｔ（Ｃ）の重みを小さくするように学習器のパラメータを決定する。これによって、「選挙」や「災害」といったコンテンツのように、一時的に閲覧回数が多くなっているバズコンテンツを対象ユーザｋが閲覧した場合、複数のコンテンツベクトルによって分散表現される対象ユーザベクトルにおいて、バズコンテンツの寄与度が他のコンテンツに比して低下する。一方で、「野球」のような閲覧回数が時間に依らず略一定のコンテンツを対象ユーザｋが閲覧した場合、対象ユーザベクトルにおいて、「野球」のようなコンテンツの寄与度が相対的に上昇する。このように、その時期に選挙などの一過性のイベントが開催されるなどして一時的に閲覧回数が多くなったバズコンテンツをユーザが閲覧した場合であっても、その閲覧されたバズコンテンツの寄与度を低下させた上でユーザベクトルを生成することができる。この結果、単に閲覧回数が多いコンテンツのコンテンツベクトルの寄与度を大きくする場合に比べて、ユーザにとって関心興味の高いと想定されるコンテンツをより精度良く推薦することができる。
【００５９】
なお、上述した例では、学習処理部１２２は、ユーザベクトルを生成する際に、コンテンツの閲覧回数の時間変化に応じて各コンテンツベクトルの重みを決定するものとして説明したがこれに限られない。例えば、学習処理部１２２は、ウェブページやアプリケーションなどの媒体にコンテンツが掲載される際に、媒体に対するコンテンツの掲載位置に応じてコンテンツベクトルの重みを決定してもよい。例えば、媒体がウェブページである場合、学習処理部１２２は、ユーザによって閲覧されたコンテンツの掲載位置がウェブページの上方であるほど重みｗを小さくし、コンテンツの掲載位置がウェブページの下方であるほど重みｗを大きくしてよい。これによって、例えば、掲載位置が上方のコンテンツほど閲覧されやすく、掲載位置が下方のコンテンツほど閲覧されにくいことを考慮して適切にユーザベクトルを生成することができる。
【００６０】
以上説明した実施形態によれば、ユーザによって閲覧されたコンテンツの特徴がベクトル化されたコンテンツベクトルに基づいて、ユーザの特徴をベクトル化したユーザベクトルを生成するユーザベクトル生成部１１４と、ユーザベクトル生成部１１４により生成されたユーザベクトルと、配信対象の複数のコンテンツの其々のコンテンツベクトルとに基づいて、配信対象の複数のコンテンツの中からユーザに推薦するレコメンドコンテンツを決定するレコメンドコンテンツ決定部１１６と、を備え、ユーザベクトル生成部１１４が、ユーザベクトルを生成する際に、ユーザによって閲覧された一以上のコンテンツのコンテンツベクトルのうち、時間経過に応じた閲覧回数の変化が小さいコンテンツの特徴ほど大きくユーザベクトルに反映させることによって、ユーザにとって関心興味の高いと想定されるコンテンツを精度良く推薦することができる。
【００６１】
一般的に、自身が興味関心を寄せるコンテンツの他に、世間で良く閲覧されているコンテンツを閲覧したり、広告として掲載されたコンテンツなどを閲覧したりする傾向を有するユーザが存在している。このようなユーザの場合に、単に閲覧回数が多いコンテンツのコンテンツベクトルの寄与度を大きくしてユーザベクトルを生成した場合、そのコンテンツに類似するコンテンツがユーザに推薦されることになる。しかしながら、世間で良く閲覧されているコンテンツや、広告として掲載されたコンテンツなどは、必ずしもユーザが興味関心のあるコンテンツとは限られず、ユーザにとって関心興味の低いコンテンツが推薦されてしまう場合がある。
【００６２】
これに対して、本実施形態では、単に閲覧回数の多い少ないに依らずに、その閲覧回数の時間経過に応じた変化の大きさに応じて、コンテンツベクトルの寄与度を調整するため、閲覧回数が多いコンテンツほどユーザが興味関心を寄せていると一律に判断せずに、閲覧回数が少ないコンテンツであっても閲覧回数の時間経過に応じた変化が小さければ、そのコンテンツはユーザが本質的に興味関心を寄せているコンテンツであると判断することができる。これによって、適切なユーザベクトルを生成することができる。この結果、例えば、ゴシップ記事のような、瞬間的に不特定多数のユーザによって閲覧されたコンテンツをユーザが偶発的に閲覧してしまった場合であっても、そのユーザに対して、ゴシップ記事のようなコンテンツを推薦し難くすることができ、ユーザが本当に関心興味を寄せていると想定されるコンテンツを推薦することができる。
【００６３】
＜ハードウェア構成＞
上述した実施形態の情報提供装置１００は、例えば、図１３に示すようなハードウェア構成により実現される。図１３は、実施形態の情報提供装置１００のハードウェア構成の一例を示す図である。
【００６４】
情報提供装置１００は、ＮＩＣ１００−１、ＣＰＵ１００−２、ＲＡＭ１００−３、ＲＯＭ１００−４、フラッシュメモリやＨＤＤなどの二次記憶装置１００−５、およびドライブ装置１００−６が、内部バスあるいは専用通信線によって相互に接続された構成となっている。ドライブ装置１００−６には、光ディスクなどの可搬型記憶媒体が装着される。二次記憶装置１００−５、またはドライブ装置１００−６に装着された可搬型記憶媒体に格納されたプログラムがＤＭＡコントローラ（不図示）などによってＲＡＭ１００−３に展開され、ＣＰＵ１００−２によって実行されることで、制御部１１０が実現される。制御部１１０が参照するプログラムは、ネットワークＮＷを介して他の装置からダウンロードされてもよい。
【００６５】
以上、本発明を実施するための形態について実施形態を用いて説明したが、本発明はこうした実施形態に何ら限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【符号の説明】
【００６６】
１…情報提供システム、１０…端末装置、１００…情報提供装置、１０２…通信部、１１０…制御部、１１２…コンテンツベクトル生成部、１１４…ユーザベクトル生成部、１１６…レコメンドコンテンツ決定部、１１８…コンテンツ配信部、１２０…情報更新部、１２２…学習処理部、１３０…記憶部
【図１】
2019113943.tif 000005
【図２】
2019113943.tif 000006
【図３】
2019113943.tif 000007
【図４】
2019113943.tif 000008
【図５】
2019113943.tif 000009
【図６】
2019113943.tif 000010
【図７】
2019113943.tif 000011
【図８】
2019113943.tif 000012
【図９】
2019113943.tif 000013
【図１０】
2019113943.tif 000014
【図１１】
2019113943.tif 000015
【図１２】
2019113943.tif 000016
【図１３】
2019113943.tif 000017