(57)【要約】【課題】より効果的にコンテンツを選り分けることができる分類装置、データ構造、分類方法、およびプログラムを提供することである。【解決手段】分類装置は、新規コンテンツを取得する取得部と、前記取得部により前記新規コンテンツが取得された場合、強化学習によって、前記新規コンテンツの分類先とするカテゴリを既存の複数のカテゴリの中から選択するのか、新たなカテゴリを生成して前記生成したカテゴリに分類するのかを決定する学習処理部とを備える。【選択図】図２
2019109662.tif 000002
【特許請求の範囲】
【請求項１】
新規コンテンツを取得する取得部と、
前記取得部により前記新規コンテンツが取得された場合、強化学習によって、前記新規コンテンツの分類先とするカテゴリを既存の複数のカテゴリの中から選択するのか、新たなカテゴリを生成して前記生成したカテゴリに分類するのかを決定する学習処理部と、
を備える分類装置。
【請求項２】
前記学習処理部は、
既存の複数のカテゴリの其々と前記新規コンテンツとの類似度のうち、最も大きい類似度が閾値以上であるか否かを判定し、
前記類似度が閾値以上であると判定した場合、前記既存の複数のカテゴリの中から、前記新規コンテンツとの類似度が最も大きい既存のカテゴリを、前記新規コンテンツの分類先のカテゴリとして選択する、
請求項１に記載の分類装置。
【請求項３】
前記学習処理部は、
前記選択した既存のカテゴリに前記新規コンテンツを分類する場合、カテゴリの状態を評価する価値関数に基づいて、前記新規コンテンツの分類先の既存のカテゴリを消去せずに残しておいた場合の価値が最大となるように、前記既存のカテゴリを更新する、
請求項２に記載の分類装置。
【請求項４】
前記学習処理部は、前記生成したカテゴリを、前記新規コンテンツの分類先のカテゴリに決定した場合、既存の複数のカテゴリの中から一つのカテゴリを消去する、
請求項１から３のうちいずれか１項に記載の分類装置。
【請求項５】
前記学習処理部は、
前記既存の複数のカテゴリの其々と前記新規コンテンツとの類似度のうち、最も大きい類似度が閾値以上であるか否かを判定し、
前記類似度が閾値未満であると判定した場合、カテゴリの状態を評価する価値関数に基づいて、前記既存の複数のカテゴリの中から消去するカテゴリを決定する、
請求項４に記載の分類装置。
【請求項６】
前記学習処理部は、
前記類似度が閾値未満であると判定した場合、前記既存の複数のカテゴリの中から一つのカテゴリを除いて複数のカテゴリを組み合わせ、
前記価値関数に基づいて、前記組み合わせた複数のカテゴリの其々を消去せずに残しておいた場合の価値の総和を導出し、
前記複数のカテゴリの組み合わせごとに導出した価値の総和のうち、最も価値の総和が大きいカテゴリの組み合わせ時に除いた一つのカテゴリを、消去するカテゴリに決定する、
請求項５に記載の分類装置。
【請求項７】
前記学習処理部は、更に、
組み合わせの対象とする複数のカテゴリの中に、前記新規コンテンツを一つのカテゴリとして含め、
前記既存の複数のカテゴリと、一つのカテゴリとした前記新規コンテンツとの集合の中から一つのカテゴリを除いて複数のカテゴリを組み合わせ、
最も価値の総和が大きいカテゴリの組み合わせ時に除いた一つのカテゴリが前記新規コンテンツである場合、前記新規コンテンツを消去することを決定する、
請求項６に記載の分類装置。
【請求項８】
前記学習処理部は、前記新規コンテンツの分類結果に基づいて、カテゴリの状態を評価する価値関数のパラメータを前記強化学習により学習する、
請求項１から７のうちいずれか１項に記載の分類装置。
【請求項９】
前記学習処理部は、ある第１時刻において既存のカテゴリに前記新規コンテンツが分類されたときに与えられる報酬と、前記第１時刻よりも前の第２時刻から、前記第１時刻に至るまでの過程において、既存のカテゴリに前記新規コンテンツが分類されていた場合に前記価値関数により求められる第１価値との和を導出し、
前記報酬および前記第１価値の和と、前記第２時刻において既存のカテゴリに前記新規コンテンツが分類されていた場合に前記価値関数により求められる第２価値との差分に基づいて、前記価値関数のパラメータを学習する、
請求項８に記載の分類装置。
【請求項１０】
前記学習処理部は、前記差分を二乗した値が最小となるように、前記価値関数のパラメータを学習する、
請求項９に記載の分類装置。
【請求項１１】
前記第１時刻および前記第２時刻は、前記取得部により前記新規コンテンツが取得された時刻であり、
前記学習処理部は、前記第２時刻から前記第１時刻までの時間差分に基づいて前記第１価値を減少させる、
請求項９または１０に記載の分類装置。
【請求項１２】
前記価値関数は、前記新規コンテンツの分類先として選択したカテゴリに含まれる既存の一以上のコンテンツと、前記新規コンテンツとの重み付き平均が少なくとも入力されたときに、カテゴリの価値を導出する、
請求項８から１１のうちいずれか１項に記載の分類装置。
【請求項１３】
前記価値関数は、既存の一以上のコンテンツと前記新規コンテンツとの重み付き平均が少なくとも入力されたときに、カテゴリの価値を導出する、
請求項８から１２のうちいずれか１項に記載の分類装置。
【請求項１４】
前記価値関数は、既存の複数のカテゴリの其々と前記新規コンテンツとの類似度が少なくとも入力されたときに、カテゴリの価値を導出する、
請求項８から１３のうちいずれか１項に記載の分類装置。
【請求項１５】
前記価値関数は、既存の複数のカテゴリの其々が生成されてから経過した時間が少なくとも入力されたときに、カテゴリの価値を導出する、
請求項８から１４のうちいずれか１項に記載の分類装置。
【請求項１６】
前記価値関数は、既存の複数のカテゴリの其々にコンテンツが分類されてから経過した時間が少なくとも入力されたときに、カテゴリの価値を導出する、
請求項８から１５のうちいずれか１項に記載の分類装置。
【請求項１７】
前記価値関数は、既存の複数のカテゴリの其々に含まれるコンテンツの数が少なくとも入力されたときに、カテゴリの価値を導出する、
請求項８から１６のうちいずれか１項に記載の分類装置。
【請求項１８】
請求項８から１７のうちいずれか１項に記載の分類装置による前記強化学習によって学習されたパラメータを含むデータ構造。
【請求項１９】
コンピュータが、
新規コンテンツを取得し、
前記新規コンテンツを取得した場合、強化学習によって、前記新規コンテンツの分類先とするカテゴリを既存の複数のカテゴリの中から選択するのか、新たなカテゴリを生成して前記生成したカテゴリに分類するのかを決定する、
分類方法。
【請求項２０】
コンピュータに、
新規コンテンツを取得させ、
前記新規コンテンツが取得された場合、強化学習によって、前記新規コンテンツの分類先とするカテゴリを既存の複数のカテゴリの中から選択するのか、新たなカテゴリを生成して前記生成したカテゴリに分類するのかを決定させる、
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分類装置、データ構造、分類方法、およびプログラムに関する。
【背景技術】
【０００２】
従来、ブログやＷＥＢニュースなどの時間の経過とともに蓄積される大規模テキストストリームからの話題抽出（トピック分析）を行い、過去や新規トピックとの対応関係、トピックの進化過程を抽出する技術が知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−１８７３９５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の技術では、ニュース記事などのコンテンツを保持しておく数には限りがあり、どういったコンテンツであれば残しておくべきなのかが十分に検討されていなかった。
【０００５】
本発明は、上記の課題に鑑みてなされたものであり、より効果的にコンテンツを選り分けることができる分類装置、データ構造、分類方法、およびプログラムを提供することを目的としている。
【課題を解決するための手段】
【０００６】
本発明の一態様は、新規コンテンツを取得する取得部と、前記取得部により前記新規コンテンツが取得された場合、強化学習によって、前記新規コンテンツの分類先とするカテゴリを既存の複数のカテゴリの中から選択するのか、新たなカテゴリを生成して前記生成したカテゴリに分類するのかを決定する学習処理部と、を備える分類装置である。
【発明の効果】
【０００７】
本発明の一態様によれば、より効果的にコンテンツを選り分けることができる分類装置、データ構造、分類方法、およびプログラムを提供することができる。
【図面の簡単な説明】
【０００８】
【図１】実施形態の分類装置１００を含むコンテンツ分類システム１の一例を示す図である。
【図２】実施形態の分類装置１００の構成の一例を示す図である。
【図３】新規コンテンツＣＴをカテゴリに分類する方法を説明するための図である。
【図４】学習処理部１１４による一連の処理の流れを示すフローチャートである。
【図５】トピックベクトルを更新する処理を模式的に示す図である。
【図６】新着記事と既存トピックとを入れ替える処理を模式的に示す図である。
【図７】新着記事を既存トピックに分類しない処理を模式的に示す図である。
【図８】本実施形態の強化学習によって得られた報酬の結果の一例を示す図である。
【図９】実施形態の分類装置１００のハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【０００９】
以下、本発明を適用した分類装置、データ構造、分類方法、およびプログラムを、図面を参照して説明する。
【００１０】
［概要］
分類装置は、一以上のプロセッサによって実現される。分類装置は、新規コンテンツを取得した場合、強化学習によってパラメータが決定された価値関数に基づいて、新規コンテンツの分類先とするカテゴリを既存の複数のカテゴリの中から選択するのか、新たなカテゴリを生成してそのカテゴリに分類するのかを決定する。これによって、分類装置は、効果的にコンテンツを選り分けることができる。
【００１１】
より具体的には、分類装置は、既存の複数のカテゴリの中から一つのカテゴリを消去して新規コンテンツの分類先とする。この結果、保持しておくカテゴリの数を一定数に保ちながら、コンテンツを適したカテゴリに分類することができる。
【００１２】
本実施形態におけるコンテンツは、例えば、ブログやウェブサイトなどに掲載される記事であり、テキストを含むコンテンツである。また、コンテンツは、オークションなどに出品される商品またはサービスを掲載するコンテンツ（テキストと画像を含むもの）であってもよいし、投稿サイトなどに投稿される動画、画像、または音声などのコンテンツであってもよい。
【００１３】
［全体構成］
図１は、実施形態の分類装置１００を含むコンテンツ分類システム１の一例を示す図である。実施形態におけるコンテンツ分類システム１は、例えば、一以上の情報提供装置１０（１０−１〜１０−ｎ；ｎは任意の自然数）と、分類装置１００とを備える。これらの装置は、例えば、ネットワークＮＷを介して互いに接続される。
【００１４】
図１に示す各装置は、ネットワークＮＷを介して種々の情報を送受信する。ネットワークＮＷは、例えば、無線基地局、Ｗｉ‐Ｆｉアクセスポイント、通信回線、プロバイダ、インターネットなどを含む。なお、図１に示す各装置の全ての組み合わせが相互に通信可能である必要はなく、ネットワークＮＷは、一部にローカルなネットワークを含んでもよい。
【００１５】
情報提供装置１０は、例えば、上述した種々のコンテンツを配信するサーバ装置である。
【００１６】
分類装置１００は、一以上の情報提供装置１０からコンテンツを収集する。例えば、分類装置１００は、情報提供装置１０から配信されたコンテンツ（例えばニュース記事など）を収集する。そして、分類装置１００は、収集したコンテンツをカテゴリに分類する。例えば、コンテンツがニュースサイトに掲載されるような記事である場合、分類装置１００は、記事をトピック（カテゴリの一例）に分類する。
【００１７】
図２は、実施形態の分類装置１００の構成の一例を示す図である。例えば、分類装置１００は、通信部１０２と、制御部１１０と、記憶部１３０とを備える。
【００１８】
通信部１０２は、例えば、ＮＩＣ（Network Interface Card）等の通信インターフェースやＤＭＡ（Direct Memory Access）コントローラを含む。通信部１０２は、ネットワークＮＷを介して、情報提供装置１０などと通信する。
【００１９】
制御部１１０は、例えば、取得部１１２と、学習処理部１１４とを備える。これらの構成要素は、例えば、ＣＰＵ（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）などにより実現される。記憶部１３０には、ファームウェアやアプリケーションプログラムなどの各種プログラムの他に、収集されたコンテンツＣＴや、価値関数情報ＦＸなどが記憶される。価値関数情報ＦＸとは、後述する価値関数を定義した情報である。
【００２１】
取得部１１２は、通信部１０２を用いて、情報提供装置１０などと通信を行い、コンテンツＣＴを取得する。そして、取得部１１２は、取得したコンテンツＣＴを記憶部１３０に記憶させる。
【００２２】
学習処理部１１４は、取得部１１２により新たにコンテンツＣＴが取得された場合、この新たなコンテンツ（以下、新規コンテンツと称する）を、強化学習と呼ばれる機械学習の手法によってパラメータが決定された価値関数に基づいてカテゴリに分類する。価値関数とは、例えば、コンテンツＣＴが分類されるカテゴリの現在の状態がどの程度良い状態であるのかを評価する関数である。状態の良さとは、例えば、そのカテゴリに含まれるコンテンツＣＴを保持した場合に将来にわたって得られる報酬の量によって決定される。
【００２３】
例えば、カテゴリに分類されたコンテンツＣＴが記事である場合、その記事を保持しておくことで得られる報酬は、ＰＶ（Page View）数やＣＴＲ（Click Through Rate）などであってよい。また、例えば、カテゴリに分類されたコンテンツＣＴが動画や画像、音声である場合、それらのコンテンツＣＴを保持しておくことで得られる報酬は、視聴回数や閲覧数、再生数、お気に入り登録数などであってよいし、カテゴリに分類されたコンテンツＣＴがオークションの出品商品などである場合、それらのコンテンツＣＴを保持しておくことで得られる報酬は、落札回数や落札金額、閲覧数、入札回数、入札金額などであってよい。
【００２４】
図３は、新規コンテンツＣＴをカテゴリに分類する方法を説明するための図である。図中Ａ〜Ｄの其々は、互いに異なるカテゴリの種類を表している。例えば、学習処理部１１４は、カテゴリに分類する対象の新規コンテンツＣＴをベクトルに変換し、このベクトル（以下、新規コンテンツベクトルと称する）を、各カテゴリをベクトル化したカテゴリベクトル、または各カテゴリに既に分類された一以上の既存コンテンツのベクトル（以下、既存コンテンツベクトルと称する）と比較することで、新規コンテンツベクトルがどのカテゴリに該当するのか、またはいずれのカテゴリにも該当しないのかを判定する。
【００２５】
例えば、学習処理部１１４は、新規コンテンツＣＴがテキストである場合、ＴＦ（Term Frequency）‐ＩＤＦ（Inverse Document Frequency）やOkapi BM25bなどの形態素解析手法を利用してテキストを単語（形態素）に分割し、その分割した単語の出現頻度などの統計量を各要素とする多次元ベクトルを新規コンテンツベクトルとして導出してよい。また、学習処理部１１４は、新規コンテンツＣＴが複数存在する場合、複数の新規コンテンツＣＴの其々を要素とするマトリクスと、複数の新規コンテンツＣＴのうち一つ以上のコンテンツを検索したことのある複数のユーザの其々を要素とするマトリクスとを乗算して得られる多次元ベクトルを、新規コンテンツベクトルとして導出してよい。この際、学習処理部１１４は、ユーザが新規コンテンツＣＴを閲覧した閲覧数などの統計量を、多次元のベクトルに含まれる各ユーザの要素の重みとしてよい。
【００２６】
また、学習処理部１１４は、主成分分析（Principal Component Analysis：ＰＣＡ）やＡｕｔｏＥｎｃｏｄｅなどの次元圧縮法を利用して、新規コンテンツベクトルとして導出される多次元ベクトルの次元数を減らしてもよい。
【００２７】
また、学習処理部１１４は、単語のマトリクスとコンテンツのマトリクスとを乗算した多次元ベクトル（行列）や、コンテンツのマトリクスとユーザのマトリクスとを乗算した多次元ベクトル（行列）を、非負値行列因子分解（Non-negative Matrix Factorization：ＮＭＦ）などの行列分解によって低ランクの（次元数がより少ない）行列に変更してもよい。
【００２８】
また、学習処理部１１４は、新規コンテンツＣＴがテキストである場合、テキスト内のある着目する単語の前後に出現する単語を予測するタスクを学習するｗｏｒｄ２ｖｅｃやｄｏｃ２ｖｅｃといったアルゴリズムを利用することで、新規コンテンツベクトルの各要素とする特徴ベクトルを副次的に得てもよい。
【００２９】
また、学習処理部１１４は、新規コンテンツをカテゴリに分類する際に参照する価値関数のパラメータを、強化学習によって学習（決定）する。例えば、学習処理部１１４は、Ｑ学習（Q-learning）と呼ばれる強化学習手法を利用して、新規コンテンツをカテゴリに分類したときに得られる報酬を基に、価値関数のパラメータを再決定する。強化学習の詳細については後述する。
【００３０】
［カテゴリ分類処理］
以下、フローチャートに即して学習処理部１１４によるカテゴリ分類の処理の流れを説明する。図４は、学習処理部１１４による一連の処理の流れを示すフローチャートである。本フローチャートの処理は、例えば、取得部１１２により新規コンテンツＣＴが取得された場合に実行される。以下のフローチャートの説明では、一例として、コンテンツＣＴが「記事」であるものとし、更に、その記事のカテゴリが「トピック」であるものとして説明する。
【００３１】
まず、学習処理部１１４は、取得部１１２により新着記事（新規コンテンツＣＴの一例）がある時刻ｔに取得されると、式（１）に基づいて、新着記事をベクトル化した新着記事ベクトルｘ０と、複数の既存トピックの其々のトピックｋをベクトル化したトピックベクトルｘｋとの類似度を導出し、トピックベクトルｘｋごとに導出した類似度のうち、最も大きい類似度が閾値ｓ以上であるのか否かを判定する（Ｓ１００）。式中、Ｔは転置を表している。
【００３２】
【数１】
2019109662.tif 000003
【００３３】
トピックベクトルｘｋは、例えば、トピックｋに既に分類された一以上の記事（以下、既存記事と称する）の其々がベクトル化された既存記事ベクトルの集合を平均したベクトルである。この際、各既存記事ベクトルには重みが付与され、トピックベクトルｘｋは、複数の既存記事ベクトルの重み付き平均であってよい。この場合、重みは、例えば、記事の鮮度（入稿時点からの時間の短さ）に応じて大きくなるように設定されるとよい。
【００３４】
例えば、既存記事ベクトルの集合平均であるトピックベクトルｘｋは式（２）によって表される。Ｋは、既存トピックの総数を表し、ｋは、Ｋ個のトピックのうち着目するトピックを表している。例えば、図３の例では、Ａ〜Ｄのトピック（カテゴリの一例）が存在するため、Ｋは４となる。
【００３５】
【数２】
2019109662.tif 000004
【００３６】
式（１）に示すように、例えば、学習処理部１１４は、Ｋ個のトピックベクトルの集合｛ｘｋ｝中から着目する１つのトピックベクトルｘｋを選択し、転置した新着記事ベクトルｘ０と、選択したトピックベクトルｘｋとのコサイン類似度を導出する。この際、新着記事ベクトルｘ０と、トピックベクトルｘｋとは、例えば、同じ基底（基底ベクトル）の線形和によって表されるものとする。
【００３７】
学習処理部１１４は、Ｋ個のトピックベクトルの集合｛ｘｋ｝の中から、前回選択したトピックベクトルｘｋと異なる１つのトピックベクトルｘｋ＋１を選択し、再度、転置した新着記事ベクトルｘ０とのコサイン類似度を導出する。学習処理部１１４は、この処理をＫ回繰り返すことで、各トピックベクトルｘｋについて、新着記事ベクトルｘ０とのコサイン類似度を導出する。そして、学習処理部１１４は、トピックベクトルｘｋごとに導出したコサイン類似度のうち、最も大きいコサイン類似度が閾値ｓ以上であるのか否かを判定する。
【００３８】
学習処理部１１４は、最も大きい類似度（例えばコサイン類似度）が閾値ｓ以上であると判定した場合、新着記事が既存トピックの続報であると判定し、式（３）に基づいて、１〜Ｋまでの複数のトピックの中から、新着記事ベクトルｘ０との類似度が最も大きい既存のトピックベクトルｘｋに対応した１つのトピックを選択する（Ｓ１０２）。
【００３９】
【数３】
2019109662.tif 000005
【００４０】
式（３）におけるｋ（−）は、新着記事ベクトルｘ０との類似度が最も大きい既存のトピックベクトルｘｋに対応した既存トピックを表している。なお、（−）は、記号のバーを表すものとする。
【００４１】
次に、学習処理部１１４は、既存トピックの続報として判定した新着記事を既存トピックに分類し、価値関数情報ＦＸが示す価値関数に基づいて、選択した既存のトピックｋ（−）のトピックベクトルｘｋ（−）を更新する（Ｓ１０４）。
【００４２】
例えば、学習処理部１１４は、式（４）に基づいて、新着記事ベクトルｘ０と、既存トピックｋ（−）をベクトル化したトピックベクトルｘｋ（−）との重み付き和を導出し、このトピックベクトルｘｋ（−）を、各ベクトルの重み付き和で表されるベクトルに変更する。
【００４３】
【数４】
2019109662.tif 000006
【００４４】
式（４）におけるα（−）は、新着記事ベクトルｘ０の重みを表し、（１−α（−））は、トピックベクトルｘｋ（−）の重みを表している。重みα（−）は、例えば、式（５）によって導出されてよい。
【００４５】
【数５】
2019109662.tif 000007
【００４６】
式（５）におけるＶ（｛ｘｋ｝）は、トピックｋの価値関数を表している。価値関数は、例えば、Ｖ（ｘｋ；｛ｘ．｝，ｔ）として定義される。例えば、学習処理部１１４は、式（５）において、トピックｋの価値関数によって導出される値、すなわちトピックｋの価値が最大となる新着記事ベクトルｘ０の重みαを、式（４）の重みα（−）として決定する。
【００４７】
図５は、トピックベクトルを更新する処理を模式的に示す図である。例えば、ベクトル空間が二次元空間である場合、既存トピックＡ〜Ｄは円として表される。この各トピックに対応した円内部の空間では、トピックとの類似度が閾値ｓ以上となることを表している。例えば、新着記事が既存トピックＡ〜Ｄのうち、既存トピックＢ内に含まれる場合、新着記事との類似度が最も大きくなるトピックは、トピックＢとなる。この場合、新着記事とトピックＢとの重み付き和がトピックベクトルとして表されたトピックＢ＃が、新しいトピックＢとなる。すなわち、新着記事が分類されたトピックは、基底ベクトルによって表現されるベクトル空間内において、そのトピックに含まれる記事の記事ベクトルを包含する部分空間として、削除されたトピックに含まれる記事の記事ベクトルを包含する部分空間からシフト移動する。
【００４８】
このように、学習処理部１１４は、新着記事が既存トピックのいずれかと類似している場合、新着記事が既存トピックに関連する話題の記事であると判定し、この新着記事を既存トピックに分類する。そして、学習処理部１１４は、新着記事の分類先の既存トピックのトピックベクトルを変更し、既存トピックの性質を更新する。これによって、例えば、ある話題で共通する複数の記事が立て続けに取得された場合、後に取得された記事ほど、先に取得された記事が分類されたトピックに類似しやすくなるため、記事のトレンド（流行）に合わせてトピックの性質を変化させることができる。この結果、記事の分類精度を向上させることができる。
【００４９】
一方、学習処理部１１４は、Ｓ１００の処理において、最も大きい類似度（例えばコサイン類似度）が閾値ｓ未満であると判定した場合、新着記事が既存トピックの続報ではなく、新しいトピックの記事であると判定し、新着記事を新たなトピックとしたときの全トピックの集合（Ｋ＋１）の中から、任意の１つのトピックｋ´を選択する（Ｓ１０６）。
【００５０】
次に、学習処理部１１４は、全トピックの集合（Ｋ＋１）の中から、選択したトピックｋ´を除き、そのトピックｋ´を除いた残りの複数のトピックを組み合わせる（Ｓ１０８）。
【００５１】
次に、学習処理部１１４は、価値関数情報ＦＸが示す価値関数に基づいて、組み合わせた複数のトピックの其々の価値を導出し、これらの価値の総和を導出する（Ｓ１１０）。例えば、トピックの価値の総和は、式（６）によって表現されてよい。
【００５２】
【数６】
2019109662.tif 000008
【００５３】
次に、学習処理部１１４は、トピックの集合（Ｋ＋１）の中で、全ての組み合わせについて、トピックの価値の総和を導出したか否かを判定し（Ｓ１１２）、未だ全ての組み合わせについて、トピックの価値の総和を導出していないと判定した場合、Ｓ１０６の処理に戻り、前回と異なるトピックをトピックｋ´として選択する。
【００５４】
一方、学習処理部１１４は、全ての組み合わせについて、トピックの価値の総和を導出したと判定した場合、トピックの価値の総和が最大となるトピックの組み合わせ時に除いていたトピックｋ´を選択する（Ｓ１１４）。
【００５５】
例えば、学習処理部１１４は、上述したＳ１０６からＳ１１４までの処理を、式（７）に基づいて行ってよい。
【００５６】
【数７】
2019109662.tif 000009
【００５７】
式（７）におけるｋ（−）は、あるトピックｋ´のトピックベクトルｘｋ´を除いたときに、残りのトピックベクトルｘｋを組み合わせた複数のトピックベクトルの集合｛ｘｋ｝の価値の総和Ｖ｛ｘｋ｝（式（６）参照）が最大となる場合、そのトピックベクトルの集合｛ｘｋ｝として複数のトピックベクトルｘｋを組み合わせたときに除いておいたトピックベクトルｘｋ´に対応したトピックｋ´を表している。また、式（７）におけるｋ´＝０は、新着記事ベクトルｘ０のことを表している。
【００５８】
次に、学習処理部１１４は、トピックｋ（−）が既存トピックであるのか否かを判定する（Ｓ１１６）。例えば、学習処理部１１４は、Ｓ１０６の処理で、全トピックの集合（Ｋ＋１）の中から、既存トピックをトピックｋ´として選択し、更に、このトピックｋ´が、価値の総和Ｖ｛ｘｋ｝が最大となったときに除かれていたトピックｋ（−）であった場合、トピックｋ（−）が既存トピックであると判定する。
【００５９】
一方、学習処理部１１４は、Ｓ１０６の処理で、全トピックの集合（Ｋ＋１）の中から、１つのトピックとして扱った新着記事をトピックｋ´として選択し、更に、このトピックｋ´が、価値の総和Ｖ｛ｘｋ｝が最大となったときに除かれていたトピックｋ（−）であった場合、トピックｋ（−）が既存トピックではなく、新着記事であると判定する。
【００６０】
学習処理部１１４は、トピックｋ（−）が既存トピックであると判定した場合、すなわち、いずれかの既存トピックを除いたときに、少なくとも新着記事を含むトピックの集合の価値の総和が最大となった場合、式（８）に基づいて、新着記事を、トピックｋ（−）として選択された既存トピックと入れ替える（Ｓ１１８）。
【００６１】
【数８】
2019109662.tif 000010
【００６２】
例えば、学習処理部１１４は、式（８）に示すように、トピックｋ（−）として選択した既存トピックのトピックベクトルｘｋ（−）を、新着記事ベクトルｘ０に定義し直すことで、新着記事と既存トピックとを入れ替える。
【００６３】
図６は、新着記事と既存トピックとを入れ替える処理を模式的に示す図である。例えば、新着記事と各既存トピックとの類似度が閾値ｓ未満である場合、図示の例のように、新着記事は、いずれのトピックにも含まれない。このとき、例えば、既存トピックＣを除いて新着記事を含めたトピックの集合の価値の総和が最大となった場合、学習処理部１１４は、図示の例のように、既存トピックＣを破棄（消去）し、新着記事を新たなトピックＣ＃として追加する。
【００６４】
一方、学習処理部１１４は、トピックｋ（−）が既存トピックではなく、新着記事であると判定した場合、すなわち、新着記事を除いたときに、既存トピックのみを含むトピックの集合の価値の総和が最大となった場合、新着記事を、既存トピックのいずれにも分類せずに破棄する（Ｓ１２０）。これによって本フローチャートの処理が終了する。
【００６５】
図７は、新着記事を既存トピックに分類しない処理を模式的に示す図である。例えば、新着記事と各既存トピックとの類似度が閾値ｓ未満である場合、図示の例のように、新着記事は、いずれの既存トピックにも含まれない。このとき、例えば、新着記事を除いた既存トピックＡ〜Ｄの集合の価値の総和が最大となった場合、学習処理部１１４は、図示の例のように、新着記事をいずれの既存トピックにも分類せず、この新着記事を破棄する。
【００６６】
［価値関数の強化学習］
以下、学習処理部１１４による価値関数の強化学習について説明する。例えば、学習処理部１１４は、Ｑ学習の手法を利用して、上述した価値関数Ｖのパラメータを学習する。以下に説明する価値関数Ｖは、例えば、入力層と、一以上の中間層（隠れ層）と、出力層とをもつニューラルネットワークによって実現されるものとする。価値関数情報ＦＸには、例えば、ニューラルネットワークを構成するニューロン（ユニット）の結合情報や結合係数（後述するニューラルネットワークのモデルパラメータ）などの各種情報が含まれる。例えば、入力層のユニット数は６つ以上とし、出力層のユニット数を１つとし、中間層は３層以上とし、各中間層のユニット数を１２８とし、中間層の各層間において全てのユニット同士を互いに結合させるものとする。また、各中間層のユニットの活性化関数は、正規化線形関数（ＲｅＬＵ関数）であってもよいし、シグモイド関数や、ステップ関数、その他の関数などであってもよい。
【００６７】
例えば、ニューラルネットワークの入力層には、以下の複数の素性のうち一部または全部が入力され、その（それらの）入力に応じて出力層から既存トピックの価値を示す値が出力されるように構成される。すなわち、価値関数は、以下の複数の素性のうち一部または全部を変数とする関数であってよい。
【００６８】
素性１：既存トピックに含まれる記事のベクトルの重み付き平均値。
素性２：全記事のベクトルの重み付き平均値。
素性３：既存トピックとの類似度のうち、値の大きい上位所定数の類似度。
素性４：トピックが生成されてから経過した時間。
素性５：既存トピックに新着記事が最後に分類されてから経過した時間。
素性６：既存トピックに含まれる記事数。
【００６９】
例えば、素性１は、既存トピックの基準となるベクトル（トピックベクトル）を表しており、式（４）のように、既存トピックに含まれる一以上の記事の其々の記事ベクトルの重み付き平均で表される。
【００７０】
例えば、素性２は、トピックに関係なく、全ての記事ベクトルの重み付き平均で表される。このとき、各記事ベクトルには、取得時刻が早いものほど大きな重みが付与されてよい。例えば、記事Ａが取得された後に記事Ｂが取得された場合、記事Ｂの記事ベクトルの重みは、記事Ａの記事ベクトルの重みよりも大きくてよい。これによって、今入稿されている記事のトレンドと、既存トピックのトレンドとを比較することができる。
【００７１】
例えば、素性３は、新着記事に対する複数の既存トピックの其々の類似度のうち、上位５つといった所定数の類似度で表される。学習処理部１１４は、類似度が大きいほど出力される価値が大きくなるようにニューラルネットワークを学習させる。素性３として、全ての類似度を入力せず、上位所定数の類似度のみを入力することで、既存トピックの数Ｋが変動しても同じニューラルネットワークを継続して利用することができる。
【００７２】
例えば、素性４および５は経過時間で表され、学習処理部１１４は、後述するＱ学習によってニューラルネットワークのパラメータを更新することで、これらの経過時間が長いほど出力される価値が小さくなるようにニューラルネットワークを学習させる。
【００７３】
例えば、素性６は記事数で表され、学習処理部１１４は、Ｑ学習によってニューラルネットワークのパラメータを更新することで、この記事数が多いほど出力される価値が大きくなるようにニューラルネットワークを学習させる。
【００７４】
学習処理部１１４は、Ｑ学習の手法を応用した式（９）に基づいて、ニューラルネットワークのパラメータθを決定する。式（９）は、強化学習の対象とする問題がモデル化されたものである。パラメータθとは、ある時刻ｔｉにおけるニューラルネットワークのモデルパラメータを表している。モデルパラメータは、例えば、ニューラルネットワークの中間層において、ある層のユニットから、より深い層のユニットにデータが出力される際に、出力データに対して付与される重みを含む。また、ニューラルネットワークのモデルパラメータは、各層の固有のバイアス成分などを含んでもよい。
【００７５】
【数９】
2019109662.tif 000011
【００７６】
式（９）における第１項のｒ（ｋ，ｔｉ＋１）は、ある時刻ｔｉよりも時間が進んだ将来の時刻ｔｉ＋１において、既存トピックｋに新着記事が追加された場合に加算される報酬を表している。時刻ｔｉおよび時刻ｔｉ＋１は、新着記事が投稿サイトなどに入稿された時刻、または投稿サイトなどに入稿された新着記事が取得部１１２によって取得された時刻を表している。時刻ｔｉ＋１において、既存トピックｋに新着記事が追加（分類）されない場合、ｒ（ｋ，ｔｉ＋１）の項は０となる。なお、報酬ｒは、１または０のような予め決められた定数であってもよいし、ＰＶ数のように実際に得られた何らかの実測値であってもよい。
【００７７】
また、式（９）における第２項のＶθ´（ｘｋ；｛ｘ．｝，ｔｉ＋１）は、時刻ｔｉ＋１における既存トピックｋの価値（予測値）を表している。θ´は、時刻ｔｉ＋１におけるニューラルネットワークのモデルパラメータを表している。第２項のＶθ´は、「第１価値」の一例である。
【００７８】
また、第２項のｅ＾γ（ｔｉ＋１−ｔｉ）は、時刻ｔｉ＋１における既存トピックｋの価値を低下させる係数項（割引率）を表している。γは負の定数であり、新着記事の取得間隔（ｔｉ＋１−ｔｉ）が大きくなるほどｅの値が小さくなる。すなわち、第２項の係数項ｅは、新着記事の取得間隔（ｔｉ＋１−ｔｉ）が大きくなるほど、将来の時刻ｔｉ＋１における既存トピックｋの価値をより低下させる。
【００７９】
式（９）における第３項のＶθ（ｘｋ；｛ｘ．｝，ｔｉ）は、時刻ｔｉにおける既存トピックｋの価値（予測値）を表している。θは、時刻ｔｉにおけるニューラルネットワークのモデルパラメータを表している。ニューラルネットワークのモデルパラメータは、時間が経過するのに応じて誤差逆伝搬によって更新されるため、上述したθ´とθは、互いに異なるパラメータを表している。すなわち、第３項Ｖθは、時刻ｔｉ＋１において使用されるパラメータθ´に更新される前のパラメータθによって調整されたニューラルネットワークにより出力される既存トピックｋの価値を表している。第３項のＶθは、「第２価値」の一例である。
【００８０】
例えば、現在時刻が時刻ｔｉであるものとしたときに、学習処理部１１４が、将来時刻ｔｉ＋１において、上述したフローチャートの処理に従って新着記事を既存トピックに分類すると予測する。この場合、学習処理部１１４は、式（９）を参照し、予測した将来時刻ｔｉ＋１における報酬（第１項）と、予測した将来時刻ｔｉ＋１における既存トピックｋの価値（第２項）との和を導出する。この際、学習処理部１１４は、時刻ｔｉから時刻ｔｉ＋１までの時間差に応じて、予測した将来時刻ｔｉ＋１における既存トピックｋの価値を低下させる。そして、学習処理部１１４は、導出した和から、現在時刻ｔｉにおける既存トピックｋの価値（第３項）を減算した値の二乗が最小となるパラメータθを探索する。
【００８１】
学習処理部１１４は、探索の結果得られたパラメータθとなるように、誤差逆伝搬によってニューラルネットワークの重みを調整する。これによって、異なる時点における既存トピックｋの価値の差分が小さくなるように、現在時点ｔｉにおいて予測された既存トピックｋの価値が修正される。例えば、学習処理部１１４は、上述したフローチャートの処理が実行される度に、コンテンツの分類結果をフィードバックさせながら、強化学習によって価値関数Ｖのパラメータθを更新する。このような処理によって、カテゴリ分類時に、強化学習によってパラメータθが決定された価値関数Ｖが参照されることになるため、コンテンツの分類精度を向上させることができる。
【００８２】
図８は、本実施形態の強化学習によって得られた報酬の結果の一例を示す図である。図中の縦軸は、式（９）の報酬ｒの値（スコア）を表し、横軸は、強化学習を継続した時間を表している。また、図中ＬＮ１は、本実施形態の強化学習によって得られた各トピックの報酬ｒの総和の変化を表し、ＬＮ２は、新着記事を優先的に残すようにしたときの各トピックの報酬ｒの総和の変化を表している。また、図中ＬＮ３は、最後に記事が分類されてから経過した時間が最も長いトピック（最も古いトピック）と新着記事とを入れ替えるようにしたときの各トピックの報酬ｒの総和の変化を表し、ＬＮ４は、最も記事数が少ないトピックと新着記事とを入れ替えるようにしたときの各トピックの報酬ｒの総和の変化を表している。また図中ＬＮ５は、ベクトル空間において、他のトピックと空間領域が被らないトピックほど優先的に残すようにしたときの各トピックの報酬ｒの総和の変化を表している。これらの各報酬ｒの総和は、所定値によって正規化されている。所定値は、新着記事が取得された場合に、Ｋ個のトピックのうちランダムに選んだいずれか１つのトピックと新着記事とを入れ替えるようにしたときの各トピックの報酬ｒの総和である。
【００８３】
図示の例のように、ある程度の時間が経過した場合、ＬＮ１は、ＬＮ２〜５の全てよりスコアが高くなっており、ＬＮ２〜５のヒューリスティックな手法に比べて、本実施形態における強化学習の方が実際に得られる報酬を多くすることができる。
【００８４】
以上説明した実施形態によれば、新規コンテンツ（例えば新着記事）を取得する取得部１１２と、取得部１１２により新規コンテンツが取得された場合、強化学習によってパラメータが学習された価値関数に基づいて、新規コンテンツの分類先とするカテゴリを既存の複数のカテゴリの中から選択するのか、新たなカテゴリを生成してそのカテゴリに分類するのかを決定する学習処理部１１４とを備えることによって、価値が最も小さくなることが予測されるカテゴリ（例えばトピック）から優先的に消去するができる。この結果、例えば、最も古いカテゴリから順に消去していくようなヒューリスティックな手法を採用するよりも、残しておくべきコンテンツとそうでないコンテンツとをより効率良く選り分けることができる。
【００８５】
また、上述した実施形態によれば、新着記事を既存トピックに分類する場合、その既存トピックを表すトピックベクトルを変更するため、入稿される記事のトレンドに合わせてトピックの性質を変化させることができる。この結果、記事の分類精度を向上させることができる。また、記事の代わりに、オークションに出品された商品などをコンテンツとした場合、出品トレンドに合わせてカテゴリの性質を変化させることができる。
【００８６】
また、上述した実施形態によれば、価値が最も小さくなることが予測されるトピックと新規コンテンツとを入れ替えるため、カテゴリを新規に作成することができる。例えば、一般的なカテゴリ分類の手法は、予め性質が規定されたカテゴリの中からコンテンツの分類先を決めるものであり、現在用意されているカテゴリのいずれにも該当しない未知なコンテンツが得られた場合、そのコンテンツはいずれのカテゴリにも分類されない。これに対して、本実施形態では、価値が小さいカテゴリと新規コンテンツとを入れ替えるため、その性質について定義されていない未知のコンテンツが得られた際に、そのコンテンツが既存カテゴリに該当しないことから、その新規コンテンツとの類似度を基に、性質の近いコンテンツを集めて新しいカテゴリを生成することができる。
【００８７】
また、上述した実施形態によれば、新着記事の取得間隔（ｔｉ＋１−ｔｉ）が大きくなるほど、将来の時刻ｔｉ＋１における既存トピックの価値を低下させるため、より学習精度を向上させることができる。
【００８８】
一般的な強化学習の場合、割引率γは、時間に依らず一定である場合が多い。定数の割引率γを使用した場合、例えば、記事が頻繁に入稿されている場合、前回の記事の入稿からほとんど時間が経過していないのにも関わらず、既存トピックの将来の価値を大きく下げてしまう傾向にある。これに対して、本実施形態では、割引率γを新着記事の取得間隔に応じて変化させるため、既存トピックの将来の価値を精度良く予測することができる。
【００８９】
＜ハードウェア構成＞
上述した実施形態の分類装置１００は、例えば、図９に示すようなハードウェア構成により実現される。図９は、実施形態の分類装置１００のハードウェア構成の一例を示す図である。
【００９０】
分類装置１００は、ＮＩＣ１００−１、ＣＰＵ１００−２、ＲＡＭ１００−３、ＲＯＭ１００−４、フラッシュメモリやＨＤＤなどの二次記憶装置１００−５、およびドライブ装置１００−６が、内部バスあるいは専用通信線によって相互に接続された構成となっている。ドライブ装置１００−６には、光ディスクなどの可搬型記憶媒体が装着される。二次記憶装置１００−５、またはドライブ装置１００−６に装着された可搬型記憶媒体に格納されたプログラムがＤＭＡコントローラ（不図示）などによってＲＡＭ１００−３に展開され、ＣＰＵ１００−２によって実行されることで、制御部１１０が実現される。制御部１１０が参照するプログラムは、ネットワークＮＷを介して他の装置からダウンロードされてもよい。
【００９１】
以上、本発明を実施するための形態について実施形態を用いて説明したが、本発明はこうした実施形態に何ら限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【符号の説明】
【００９２】
１…コンテンツ分類システム、１０…情報提供装置、１００…分類装置、１０２…通信部、１１０…制御部、１１２…取得部、１１４…学習処理部、１３０…記憶部、ＣＴ…コンテンツ、ＦＸ…価値関数情報
【図１】
2019109662.tif 000012
【図２】
2019109662.tif 000013
【図３】
2019109662.tif 000014
【図４】
2019109662.tif 000015
【図５】
2019109662.tif 000016
【図６】
2019109662.tif 000017
【図７】
2019109662.tif 000018
【図８】
2019109662.tif 000019
【図９】
2019109662.tif 000020