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

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

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

<>
  • 特許-分類装置、分類方法、およびプログラム 図1
  • 特許-分類装置、分類方法、およびプログラム 図2
  • 特許-分類装置、分類方法、およびプログラム 図3
  • 特許-分類装置、分類方法、およびプログラム 図4
  • 特許-分類装置、分類方法、およびプログラム 図5
  • 特許-分類装置、分類方法、およびプログラム 図6
  • 特許-分類装置、分類方法、およびプログラム 図7
  • 特許-分類装置、分類方法、およびプログラム 図8
  • 特許-分類装置、分類方法、およびプログラム 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-03-18
(45)【発行日】2022-03-29
(54)【発明の名称】分類装置、分類方法、およびプログラム
(51)【国際特許分類】
   G06F 16/906 20190101AFI20220322BHJP
   G06N 20/00 20190101ALI20220322BHJP
【FI】
G06F16/906
G06N20/00
【請求項の数】 17
(21)【出願番号】P 2017241660
(22)【出願日】2017-12-18
(65)【公開番号】P2019109662
(43)【公開日】2019-07-04
【審査請求日】2020-03-06
【新規性喪失の例外の表示】特許法第30条第2項適用 開催日 :平成29年9月4日(シンポジウム2日目) 集会名 :NLP若手の会(YANS)第12回シンポジウム 開催場所:沖縄かりゆしアーバンリゾート・ナハ(沖縄県那覇市前島3-25-1)
(73)【特許権者】
【識別番号】319013263
【氏名又は名称】ヤフー株式会社
(74)【代理人】
【識別番号】100149548
【弁理士】
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100154852
【弁理士】
【氏名又は名称】酒井 太一
(74)【代理人】
【識別番号】100181124
【弁理士】
【氏名又は名称】沖田 壮男
(74)【代理人】
【識別番号】100194087
【弁理士】
【氏名又は名称】渡辺 伸一
(72)【発明者】
【氏名】大倉 俊平
【審査官】北村 学
(56)【参考文献】
【文献】特許第6224857(JP,B1)
【文献】米国特許第08391618(US,B1)
【文献】特開2002-117046(JP,A)
【文献】角谷 和俊,マルチチャンネル型ニュース配信システムのための時系列クラスタリング,情報処理学会論文誌 ,日本,社団法人情報処理学会,2002年06月15日,第43巻 No.SIG5(TOD14),87-97ページ
(58)【調査した分野】(Int.Cl.,DB名)
IPC G06F16/00-16/958
G06N20/00
(57)【特許請求の範囲】
【請求項1】
新規コンテンツを取得する取得部と、
前記取得部により前記新規コンテンツが取得された場合、強化学習によって、前記新規コンテンツの分類先とするカテゴリを、既存の複数のカテゴリの中から選択するのか、新たなカテゴリを生成して前記生成したカテゴリに分類するのかを決定する学習処理部と、
を備え、
前記学習処理部は、
既存の複数のカテゴリの其々の特徴量と前記新規コンテンツの特徴量との類似度のうち、最も大きい類似度が閾値以上であるか否かを判定し、
前記類似度が閾値以上であると判定した場合、前記既存の複数のカテゴリの中から、前記新規コンテンツとの特徴量間の類似度が最も大きい既存のカテゴリを、前記新規コンテンツの分類先のカテゴリとして選択し、
前記選択した既存のカテゴリに前記新規コンテンツを分類する場合、カテゴリの状態を評価する価値関数に基づいて、前記新規コンテンツの分類先の既存のカテゴリを消去せずに残しておいた場合の価値が最大となるように、前記既存のカテゴリの特徴量を更新する、
分類装置。
【請求項2】
新規コンテンツを取得する取得部と、
前記取得部により前記新規コンテンツが取得された場合、強化学習によって、前記新規コンテンツの分類先とするカテゴリを、既存の複数のカテゴリの中から選択するのか、新たなカテゴリを生成して前記生成したカテゴリに分類するのかを決定する学習処理部と、
を備え、
前記学習処理部は、
前記既存の複数のカテゴリの其々の特徴量と前記新規コンテンツの特徴量との類似度のうち、最も大きい類似度が閾値以上であるか否かを判定し、
前記類似度が閾値未満であると判定した場合、前記既存の複数のカテゴリの中から一つのカテゴリを除いて複数のカテゴリを組み合わせ、
カテゴリの状態を評価する価値関数に基づいて、前記組み合わせた複数のカテゴリの其々を消去せずに残しておいた場合の価値の総和を導出し、
前記複数のカテゴリの組み合わせごとに導出した価値の総和のうち、最も価値の総和が大きいカテゴリの組み合わせ時に除いた一つのカテゴリを、消去するカテゴリに決定し、
新たなカテゴリを生成して前記新規コンテンツを前記生成したカテゴリに分類すると共に前記既存の複数のカテゴリの中から前記消去すると決定した一つのカテゴリを消去する、
分類装置。
【請求項3】
前記学習処理部は、更に、
組み合わせの対象とする複数のカテゴリの中に、前記新規コンテンツを一つのカテゴリとして含め、
前記既存の複数のカテゴリと、一つのカテゴリとした前記新規コンテンツとの集合の中から一つのカテゴリを除いて複数のカテゴリを組み合わせ、
最も価値の総和が大きいカテゴリの組み合わせ時に除いた一つのカテゴリが前記新規コンテンツである場合、前記新規コンテンツを消去することを決定する、
請求項に記載の分類装置。
【請求項4】
前記学習処理部は、前記新規コンテンツの分類結果に基づいて、前記価値関数のパラメータを前記強化学習により学習する、
請求項1から3のうちいずれか1項に記載の分類装置。
【請求項5】
前記学習処理部は、ある第1時刻において既存のカテゴリに前記新規コンテンツが分類されたときに与えられる報酬と、前記第1時刻よりも前の第2時刻から、前記第1時刻に至るまでの過程において、既存のカテゴリに前記新規コンテンツが分類されていた場合に前記価値関数により求められる第1価値との和を導出し、
前記報酬および前記第1価値の和と、前記第2時刻において既存のカテゴリに前記新規コンテンツが分類されていた場合に前記価値関数により求められる第2価値との差分に基づいて、前記価値関数のパラメータを学習する、
請求項に記載の分類装置。
【請求項6】
前記学習処理部は、前記差分を二乗した値が最小となるように、前記価値関数のパラメータを学習する、
請求項に記載の分類装置。
【請求項7】
前記第1時刻および前記第2時刻は、前記取得部により前記新規コンテンツが取得された時刻であり、
前記学習処理部は、前記第2時刻から前記第1時刻までの時間差分に基づいて前記第1価値を減少させる、
請求項5または6に記載の分類装置。
【請求項8】
前記価値関数は、前記新規コンテンツの分類先として選択したカテゴリに含まれる既存の一以上のコンテンツの特徴量と、前記新規コンテンツの特徴量との重み付き平均が少なくとも入力されたときに、カテゴリの価値を導出する、
請求項4から7のうちいずれか1項に記載の分類装置。
【請求項9】
前記価値関数は、既存の一以上のコンテンツの特徴量と前記新規コンテンツの特徴量との重み付き平均が少なくとも入力されたときに、カテゴリの価値を導出する、
請求項4から8のうちいずれか1項に記載の分類装置。
【請求項10】
前記価値関数は、既存の複数のカテゴリの其々と前記新規コンテンツとの類似度が少なくとも入力されたときに、カテゴリの価値を導出する、
請求項4から9のうちいずれか1項に記載の分類装置。
【請求項11】
前記価値関数は、既存の複数のカテゴリの其々が生成されてから経過した時間が少なくとも入力されたときに、カテゴリの価値を導出する、
請求項4から10のうちいずれか1項に記載の分類装置。
【請求項12】
前記価値関数は、既存の複数のカテゴリの其々にコンテンツが分類されてから経過した時間が少なくとも入力されたときに、カテゴリの価値を導出する、
請求項4から11のうちいずれか1項に記載の分類装置。
【請求項13】
前記価値関数は、既存の複数のカテゴリの其々に含まれるコンテンツの数が少なくとも入力されたときに、カテゴリの価値を導出する、
請求項4から12のうちいずれか1項に記載の分類装置。
【請求項14】
コンピュータが、
新規コンテンツを取得し、
前記新規コンテンツを取得した場合、強化学習によって、前記新規コンテンツの分類先とするカテゴリを既存の複数のカテゴリの中から選択するのか、新たなカテゴリを生成して前記生成したカテゴリに分類するのかを決定し、
前記決定する処理において、前記コンピュータが、
既存の複数のカテゴリの其々の特徴量と前記新規コンテンツの特徴量との類似度のうち、最も大きい類似度が閾値以上であるか否かを判定し、
前記類似度が閾値以上であると判定した場合、前記既存の複数のカテゴリの中から、前記新規コンテンツとの特徴量間の類似度が最も大きい既存のカテゴリを、前記新規コンテンツの分類先のカテゴリとして選択し、
前記選択した既存のカテゴリに前記新規コンテンツを分類する場合、カテゴリの状態を評価する価値関数に基づいて、前記新規コンテンツの分類先の既存のカテゴリを消去せずに残しておいた場合の価値が最大となるように、前記既存のカテゴリの特徴量を更新する、
分類方法。
【請求項15】
コンピュータに、
新規コンテンツを取得させ、
前記新規コンテンツが取得された場合、強化学習によって、前記新規コンテンツの分類先とするカテゴリを既存の複数のカテゴリの中から選択するのか、新たなカテゴリを生成して前記生成したカテゴリに分類するのかを決定させ、
前記決定させる処理において、前記コンピュータに、
既存の複数のカテゴリの其々の特徴量と前記新規コンテンツの特徴量との類似度のうち、最も大きい類似度が閾値以上であるか否かを判定させ、
前記類似度が閾値以上であると判定した場合、前記既存の複数のカテゴリの中から、前記新規コンテンツとの特徴量間の類似度が最も大きい既存のカテゴリを、前記新規コンテンツの分類先のカテゴリとして選択させ、
前記選択した既存のカテゴリに前記新規コンテンツを分類する場合、カテゴリの状態を評価する価値関数に基づいて、前記新規コンテンツの分類先の既存のカテゴリを消去せずに残しておいた場合の価値が最大となるように、前記既存のカテゴリの特徴量を更新させる、
プログラム。
【請求項16】
コンピュータが、
新規コンテンツを取得し、
前記新規コンテンツを取得した場合、強化学習によって、前記新規コンテンツの分類先とするカテゴリを既存の複数のカテゴリの中から選択するのか、新たなカテゴリを生成して前記生成したカテゴリに分類するのかを決定し、
前記決定する処理において、前記コンピュータが、
前記既存の複数のカテゴリの其々の特徴量と前記新規コンテンツの特徴量との類似度のうち、最も大きい類似度が閾値以上であるか否かを判定し、
前記類似度が閾値未満であると判定した場合、前記既存の複数のカテゴリの中から一つのカテゴリを除いて複数のカテゴリを組み合わせ、
カテゴリの状態を評価する価値関数に基づいて、前記組み合わせた複数のカテゴリの其々を消去せずに残しておいた場合の価値の総和を導出し、
前記複数のカテゴリの組み合わせごとに導出した価値の総和のうち、最も価値の総和が大きいカテゴリの組み合わせ時に除いた一つのカテゴリを、消去するカテゴリに決定し、
新たなカテゴリを生成して前記新規コンテンツを前記生成したカテゴリに分類すると共に前記既存の複数のカテゴリの中から前記消去すると決定した一つのカテゴリを消去する、
分類方法。
【請求項17】
コンピュータに、
新規コンテンツを取得させ、
前記新規コンテンツが取得された場合、強化学習によって、前記新規コンテンツの分類先とするカテゴリを既存の複数のカテゴリの中から選択するのか、新たなカテゴリを生成して前記生成したカテゴリに分類するのかを決定させ、
前記決定させる処理において、前記コンピュータに、
前記既存の複数のカテゴリの其々の特徴量と前記新規コンテンツの特徴量との類似度のうち、最も大きい類似度が閾値以上であるか否かを判定させ、
前記類似度が閾値未満であると判定した場合、前記既存の複数のカテゴリの中から一つのカテゴリを除いて複数のカテゴリを組み合わせさせ、
カテゴリの状態を評価する価値関数に基づいて、前記組み合わせた複数のカテゴリの其々を消去せずに残しておいた場合の価値の総和を導出させ、
前記複数のカテゴリの組み合わせごとに導出した価値の総和のうち、最も価値の総和が大きいカテゴリの組み合わせ時に除いた一つのカテゴリを、消去するカテゴリに決定させ、
新たなカテゴリを生成して前記新規コンテンツを前記生成したカテゴリに分類すると共に前記既存の複数のカテゴリの中から前記消去すると決定した一つのカテゴリを消去させる、
プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、分類装置、データ構造、分類方法、およびプログラムに関する。
【背景技術】
【0002】
従来、ブログやWEBニュースなどの時間の経過とともに蓄積される大規模テキストストリームからの話題抽出(トピック分析)を行い、過去や新規トピックとの対応関係、トピックの進化過程を抽出する技術が知られている。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2009-187395号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来の技術では、ニュース記事などのコンテンツを保持しておく数には限りがあり、どういったコンテンツであれば残しておくべきなのかが十分に検討されていなかった。
【0005】
本発明は、上記の課題に鑑みてなされたものであり、より効果的にコンテンツを選り分けることができる分類装置、データ構造、分類方法、およびプログラムを提供することを目的としている。
【課題を解決するための手段】
【0006】
本発明の一態様は、新規コンテンツを取得する取得部と、前記取得部により前記新規コンテンツが取得された場合、強化学習によって、前記新規コンテンツの分類先とするカテゴリを既存の複数のカテゴリの中から選択するのか、新たなカテゴリを生成して前記生成したカテゴリに分類するのかを決定する学習処理部と、を備える分類装置である。
【発明の効果】
【0007】
本発明の一態様によれば、より効果的にコンテンツを選り分けることができる分類装置、データ構造、分類方法、およびプログラムを提供することができる。
【図面の簡単な説明】
【0008】
図1】実施形態の分類装置100を含むコンテンツ分類システム1の一例を示す図である。
図2】実施形態の分類装置100の構成の一例を示す図である。
図3】新規コンテンツCTをカテゴリに分類する方法を説明するための図である。
図4】学習処理部114による一連の処理の流れを示すフローチャートである。
図5】トピックベクトルを更新する処理を模式的に示す図である。
図6】新着記事と既存トピックとを入れ替える処理を模式的に示す図である。
図7】新着記事を既存トピックに分類しない処理を模式的に示す図である。
図8】本実施形態の強化学習によって得られた報酬の結果の一例を示す図である。
図9】実施形態の分類装置100のハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【0009】
以下、本発明を適用した分類装置、データ構造、分類方法、およびプログラムを、図面を参照して説明する。
【0010】
[概要]
分類装置は、一以上のプロセッサによって実現される。分類装置は、新規コンテンツを取得した場合、強化学習によってパラメータが決定された価値関数に基づいて、新規コンテンツの分類先とするカテゴリを既存の複数のカテゴリの中から選択するのか、新たなカテゴリを生成してそのカテゴリに分類するのかを決定する。これによって、分類装置は、効果的にコンテンツを選り分けることができる。
【0011】
より具体的には、分類装置は、既存の複数のカテゴリの中から一つのカテゴリを消去して新規コンテンツの分類先とする。この結果、保持しておくカテゴリの数を一定数に保ちながら、コンテンツを適したカテゴリに分類することができる。
【0012】
本実施形態におけるコンテンツは、例えば、ブログやウェブサイトなどに掲載される記事であり、テキストを含むコンテンツである。また、コンテンツは、オークションなどに出品される商品またはサービスを掲載するコンテンツ(テキストと画像を含むもの)であってもよいし、投稿サイトなどに投稿される動画、画像、または音声などのコンテンツであってもよい。
【0013】
[全体構成]
図1は、実施形態の分類装置100を含むコンテンツ分類システム1の一例を示す図である。実施形態におけるコンテンツ分類システム1は、例えば、一以上の情報提供装置10(10-1~10-n;nは任意の自然数)と、分類装置100とを備える。これらの装置は、例えば、ネットワークNWを介して互いに接続される。
【0014】
図1に示す各装置は、ネットワークNWを介して種々の情報を送受信する。ネットワークNWは、例えば、無線基地局、Wi‐Fiアクセスポイント、通信回線、プロバイダ、インターネットなどを含む。なお、図1に示す各装置の全ての組み合わせが相互に通信可能である必要はなく、ネットワークNWは、一部にローカルなネットワークを含んでもよい。
【0015】
情報提供装置10は、例えば、上述した種々のコンテンツを配信するサーバ装置である。
【0016】
分類装置100は、一以上の情報提供装置10からコンテンツを収集する。例えば、分類装置100は、情報提供装置10から配信されたコンテンツ(例えばニュース記事など)を収集する。そして、分類装置100は、収集したコンテンツをカテゴリに分類する。例えば、コンテンツがニュースサイトに掲載されるような記事である場合、分類装置100は、記事をトピック(カテゴリの一例)に分類する。
【0017】
図2は、実施形態の分類装置100の構成の一例を示す図である。例えば、分類装置100は、通信部102と、制御部110と、記憶部130とを備える。
【0018】
通信部102は、例えば、NIC(Network Interface Card)等の通信インターフェースやDMA(Direct Memory Access)コントローラを含む。通信部102は、ネットワークNWを介して、情報提供装置10などと通信する。
【0019】
制御部110は、例えば、取得部112と、学習処理部114とを備える。これらの構成要素は、例えば、CPU(Central Processing Unit)などのプロセッサが記憶部130に格納されたプログラムを実行することにより実現される。また、制御部110の構成要素の一部または全部は、LSI(Large Scale Integration)、ASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)、またはGPU(Graphics Processing Unit)などのハードウェア(回路部;circuitry)により実現されてもよいし、ソフトウェアとハードウェアの協働によって実現されてもよい。
【0020】
記憶部130は、例えば、HDD(Hard Disc Drive)、フラッシュメモリ、EEPROM(Electrically Erasable Programmable Read Only Memory)、ROM(Read Only Memory)、RAM(Random Access Memory)などにより実現される。記憶部130には、ファームウェアやアプリケーションプログラムなどの各種プログラムの他に、収集されたコンテンツCTや、価値関数情報FXなどが記憶される。価値関数情報FXとは、後述する価値関数を定義した情報である。
【0021】
取得部112は、通信部102を用いて、情報提供装置10などと通信を行い、コンテンツCTを取得する。そして、取得部112は、取得したコンテンツCTを記憶部130に記憶させる。
【0022】
学習処理部114は、取得部112により新たにコンテンツCTが取得された場合、この新たなコンテンツ(以下、新規コンテンツと称する)を、強化学習と呼ばれる機械学習の手法によってパラメータが決定された価値関数に基づいてカテゴリに分類する。価値関数とは、例えば、コンテンツCTが分類されるカテゴリの現在の状態がどの程度良い状態であるのかを評価する関数である。状態の良さとは、例えば、そのカテゴリに含まれるコンテンツCTを保持した場合に将来にわたって得られる報酬の量によって決定される。
【0023】
例えば、カテゴリに分類されたコンテンツCTが記事である場合、その記事を保持しておくことで得られる報酬は、PV(Page View)数やCTR(Click Through Rate)などであってよい。また、例えば、カテゴリに分類されたコンテンツCTが動画や画像、音声である場合、それらのコンテンツCTを保持しておくことで得られる報酬は、視聴回数や閲覧数、再生数、お気に入り登録数などであってよいし、カテゴリに分類されたコンテンツCTがオークションの出品商品などである場合、それらのコンテンツCTを保持しておくことで得られる報酬は、落札回数や落札金額、閲覧数、入札回数、入札金額などであってよい。
【0024】
図3は、新規コンテンツCTをカテゴリに分類する方法を説明するための図である。図中A~Dの其々は、互いに異なるカテゴリの種類を表している。例えば、学習処理部114は、カテゴリに分類する対象の新規コンテンツCTをベクトルに変換し、このベクトル(以下、新規コンテンツベクトルと称する)を、各カテゴリをベクトル化したカテゴリベクトル、または各カテゴリに既に分類された一以上の既存コンテンツのベクトル(以下、既存コンテンツベクトルと称する)と比較することで、新規コンテンツベクトルがどのカテゴリに該当するのか、またはいずれのカテゴリにも該当しないのかを判定する。
【0025】
例えば、学習処理部114は、新規コンテンツCTがテキストである場合、TF(Term Frequency)‐IDF(Inverse Document Frequency)やOkapi BM25bなどの形態素解析手法を利用してテキストを単語(形態素)に分割し、その分割した単語の出現頻度などの統計量を各要素とする多次元ベクトルを新規コンテンツベクトルとして導出してよい。また、学習処理部114は、新規コンテンツCTが複数存在する場合、複数の新規コンテンツCTの其々を要素とするマトリクスと、複数の新規コンテンツCTのうち一つ以上のコンテンツを検索したことのある複数のユーザの其々を要素とするマトリクスとを乗算して得られる多次元ベクトルを、新規コンテンツベクトルとして導出してよい。この際、学習処理部114は、ユーザが新規コンテンツCTを閲覧した閲覧数などの統計量を、多次元のベクトルに含まれる各ユーザの要素の重みとしてよい。
【0026】
また、学習処理部114は、主成分分析(Principal Component Analysis:PCA)やAutoEncodeなどの次元圧縮法を利用して、新規コンテンツベクトルとして導出される多次元ベクトルの次元数を減らしてもよい。
【0027】
また、学習処理部114は、単語のマトリクスとコンテンツのマトリクスとを乗算した多次元ベクトル(行列)や、コンテンツのマトリクスとユーザのマトリクスとを乗算した多次元ベクトル(行列)を、非負値行列因子分解(Non-negative Matrix Factorization:NMF)などの行列分解によって低ランクの(次元数がより少ない)行列に変更してもよい。
【0028】
また、学習処理部114は、新規コンテンツCTがテキストである場合、テキスト内のある着目する単語の前後に出現する単語を予測するタスクを学習するword2vecやdoc2vecといったアルゴリズムを利用することで、新規コンテンツベクトルの各要素とする特徴ベクトルを副次的に得てもよい。
【0029】
また、学習処理部114は、新規コンテンツをカテゴリに分類する際に参照する価値関数のパラメータを、強化学習によって学習(決定)する。例えば、学習処理部114は、Q学習(Q-learning)と呼ばれる強化学習手法を利用して、新規コンテンツをカテゴリに分類したときに得られる報酬を基に、価値関数のパラメータを再決定する。強化学習の詳細については後述する。
【0030】
[カテゴリ分類処理]
以下、フローチャートに即して学習処理部114によるカテゴリ分類の処理の流れを説明する。図4は、学習処理部114による一連の処理の流れを示すフローチャートである。本フローチャートの処理は、例えば、取得部112により新規コンテンツCTが取得された場合に実行される。以下のフローチャートの説明では、一例として、コンテンツCTが「記事」であるものとし、更に、その記事のカテゴリが「トピック」であるものとして説明する。
【0031】
まず、学習処理部114は、取得部112により新着記事(新規コンテンツCTの一例)がある時刻tに取得されると、式(1)に基づいて、新着記事をベクトル化した新着記事ベクトルxと、複数の既存トピックの其々のトピックkをベクトル化したトピックベクトルxとの類似度を導出し、トピックベクトルxごとに導出した類似度のうち、最も大きい類似度が閾値s以上であるのか否かを判定する(S100)。式中、Tは転置を表している。
【0032】
【数1】
【0033】
トピックベクトルxは、例えば、トピックkに既に分類された一以上の記事(以下、既存記事と称する)の其々がベクトル化された既存記事ベクトルの集合を平均したベクトルである。この際、各既存記事ベクトルには重みが付与され、トピックベクトルxは、複数の既存記事ベクトルの重み付き平均であってよい。この場合、重みは、例えば、記事の鮮度(入稿時点からの時間の短さ)に応じて大きくなるように設定されるとよい。
【0034】
例えば、既存記事ベクトルの集合平均であるトピックベクトルxは式(2)によって表される。Kは、既存トピックの総数を表し、kは、K個のトピックのうち着目するトピックを表している。例えば、図3の例では、A~Dのトピック(カテゴリの一例)が存在するため、Kは4となる。
【0035】
【数2】
【0036】
式(1)に示すように、例えば、学習処理部114は、K個のトピックベクトルの集合{x}中から着目する1つのトピックベクトルxを選択し、転置した新着記事ベクトルxと、選択したトピックベクトルxとのコサイン類似度を導出する。この際、新着記事ベクトルxと、トピックベクトルxとは、例えば、同じ基底(基底ベクトル)の線形和によって表されるものとする。
【0037】
学習処理部114は、K個のトピックベクトルの集合{x}の中から、前回選択したトピックベクトルxと異なる1つのトピックベクトルxk+1を選択し、再度、転置した新着記事ベクトルxとのコサイン類似度を導出する。学習処理部114は、この処理をK回繰り返すことで、各トピックベクトルxについて、新着記事ベクトルxとのコサイン類似度を導出する。そして、学習処理部114は、トピックベクトルxごとに導出したコサイン類似度のうち、最も大きいコサイン類似度が閾値s以上であるのか否かを判定する。
【0038】
学習処理部114は、最も大きい類似度(例えばコサイン類似度)が閾値s以上であると判定した場合、新着記事が既存トピックの続報であると判定し、式(3)に基づいて、1~Kまでの複数のトピックの中から、新着記事ベクトルxとの類似度が最も大きい既存のトピックベクトルxに対応した1つのトピックを選択する(S102)。
【0039】
【数3】
【0040】
式(3)におけるk(-)は、新着記事ベクトルxとの類似度が最も大きい既存のトピックベクトルxに対応した既存トピックを表している。なお、(-)は、記号のバーを表すものとする。
【0041】
次に、学習処理部114は、既存トピックの続報として判定した新着記事を既存トピックに分類し、価値関数情報FXが示す価値関数に基づいて、選択した既存のトピックk(-)のトピックベクトルxk(-)を更新する(S104)。
【0042】
例えば、学習処理部114は、式(4)に基づいて、新着記事ベクトルxと、既存トピックk(-)をベクトル化したトピックベクトルxk(-)との重み付き和を導出し、このトピックベクトルxk(-)を、各ベクトルの重み付き和で表されるベクトルに変更する。
【0043】
【数4】
【0044】
式(4)におけるα(-)は、新着記事ベクトルxの重みを表し、(1-α(-))は、トピックベクトルxk(-)の重みを表している。重みα(-)は、例えば、式(5)によって導出されてよい。
【0045】
【数5】
【0046】
式(5)におけるV({x})は、トピックkの価値関数を表している。価値関数は、例えば、V(x;{x.},t)として定義される。例えば、学習処理部114は、式(5)において、トピックkの価値関数によって導出される値、すなわちトピックkの価値が最大となる新着記事ベクトルxの重みαを、式(4)の重みα(-)として決定する。
【0047】
図5は、トピックベクトルを更新する処理を模式的に示す図である。例えば、ベクトル空間が二次元空間である場合、既存トピックA~Dは円として表される。この各トピックに対応した円内部の空間では、トピックとの類似度が閾値s以上となることを表している。例えば、新着記事が既存トピックA~Dのうち、既存トピックB内に含まれる場合、新着記事との類似度が最も大きくなるトピックは、トピックBとなる。この場合、新着記事とトピックBとの重み付き和がトピックベクトルとして表されたトピックB#が、新しいトピックBとなる。すなわち、新着記事が分類されたトピックは、基底ベクトルによって表現されるベクトル空間内において、そのトピックに含まれる記事の記事ベクトルを包含する部分空間として、削除されたトピックに含まれる記事の記事ベクトルを包含する部分空間からシフト移動する。
【0048】
このように、学習処理部114は、新着記事が既存トピックのいずれかと類似している場合、新着記事が既存トピックに関連する話題の記事であると判定し、この新着記事を既存トピックに分類する。そして、学習処理部114は、新着記事の分類先の既存トピックのトピックベクトルを変更し、既存トピックの性質を更新する。これによって、例えば、ある話題で共通する複数の記事が立て続けに取得された場合、後に取得された記事ほど、先に取得された記事が分類されたトピックに類似しやすくなるため、記事のトレンド(流行)に合わせてトピックの性質を変化させることができる。この結果、記事の分類精度を向上させることができる。
【0049】
一方、学習処理部114は、S100の処理において、最も大きい類似度(例えばコサイン類似度)が閾値s未満であると判定した場合、新着記事が既存トピックの続報ではなく、新しいトピックの記事であると判定し、新着記事を新たなトピックとしたときの全トピックの集合(K+1)の中から、任意の1つのトピックk´を選択する(S106)。
【0050】
次に、学習処理部114は、全トピックの集合(K+1)の中から、選択したトピックk´を除き、そのトピックk´を除いた残りの複数のトピックを組み合わせる(S108)。
【0051】
次に、学習処理部114は、価値関数情報FXが示す価値関数に基づいて、組み合わせた複数のトピックの其々の価値を導出し、これらの価値の総和を導出する(S110)。例えば、トピックの価値の総和は、式(6)によって表現されてよい。
【0052】
【数6】
【0053】
次に、学習処理部114は、トピックの集合(K+1)の中で、全ての組み合わせについて、トピックの価値の総和を導出したか否かを判定し(S112)、未だ全ての組み合わせについて、トピックの価値の総和を導出していないと判定した場合、S106の処理に戻り、前回と異なるトピックをトピックk´として選択する。
【0054】
一方、学習処理部114は、全ての組み合わせについて、トピックの価値の総和を導出したと判定した場合、トピックの価値の総和が最大となるトピックの組み合わせ時に除いていたトピックk´を選択する(S114)。
【0055】
例えば、学習処理部114は、上述したS106からS114までの処理を、式(7)に基づいて行ってよい。
【0056】
【数7】
【0057】
式(7)におけるk(-)は、あるトピックk´のトピックベクトルxk´を除いたときに、残りのトピックベクトルxを組み合わせた複数のトピックベクトルの集合{x}の価値の総和V{x}(式(6)参照)が最大となる場合、そのトピックベクトルの集合{x}として複数のトピックベクトルxを組み合わせたときに除いておいたトピックベクトルxk´に対応したトピックk´を表している。また、式(7)におけるk´=0は、新着記事ベクトルxのことを表している。
【0058】
次に、学習処理部114は、トピックk(-)が既存トピックであるのか否かを判定する(S116)。例えば、学習処理部114は、S106の処理で、全トピックの集合(K+1)の中から、既存トピックをトピックk´として選択し、更に、このトピックk´が、価値の総和V{x}が最大となったときに除かれていたトピックk(-)であった場合、トピックk(-)が既存トピックであると判定する。
【0059】
一方、学習処理部114は、S106の処理で、全トピックの集合(K+1)の中から、1つのトピックとして扱った新着記事をトピックk´として選択し、更に、このトピックk´が、価値の総和V{x}が最大となったときに除かれていたトピックk(-)であった場合、トピックk(-)が既存トピックではなく、新着記事であると判定する。
【0060】
学習処理部114は、トピックk(-)が既存トピックであると判定した場合、すなわち、いずれかの既存トピックを除いたときに、少なくとも新着記事を含むトピックの集合の価値の総和が最大となった場合、式(8)に基づいて、新着記事を、トピックk(-)として選択された既存トピックと入れ替える(S118)。
【0061】
【数8】
【0062】
例えば、学習処理部114は、式(8)に示すように、トピックk(-)として選択した既存トピックのトピックベクトルxk(-)を、新着記事ベクトルxに定義し直すことで、新着記事と既存トピックとを入れ替える。
【0063】
図6は、新着記事と既存トピックとを入れ替える処理を模式的に示す図である。例えば、新着記事と各既存トピックとの類似度が閾値s未満である場合、図示の例のように、新着記事は、いずれのトピックにも含まれない。このとき、例えば、既存トピックCを除いて新着記事を含めたトピックの集合の価値の総和が最大となった場合、学習処理部114は、図示の例のように、既存トピックCを破棄(消去)し、新着記事を新たなトピックC#として追加する。
【0064】
一方、学習処理部114は、トピックk(-)が既存トピックではなく、新着記事であると判定した場合、すなわち、新着記事を除いたときに、既存トピックのみを含むトピックの集合の価値の総和が最大となった場合、新着記事を、既存トピックのいずれにも分類せずに破棄する(S120)。これによって本フローチャートの処理が終了する。
【0065】
図7は、新着記事を既存トピックに分類しない処理を模式的に示す図である。例えば、新着記事と各既存トピックとの類似度が閾値s未満である場合、図示の例のように、新着記事は、いずれの既存トピックにも含まれない。このとき、例えば、新着記事を除いた既存トピックA~Dの集合の価値の総和が最大となった場合、学習処理部114は、図示の例のように、新着記事をいずれの既存トピックにも分類せず、この新着記事を破棄する。
【0066】
[価値関数の強化学習]
以下、学習処理部114による価値関数の強化学習について説明する。例えば、学習処理部114は、Q学習の手法を利用して、上述した価値関数Vのパラメータを学習する。以下に説明する価値関数Vは、例えば、入力層と、一以上の中間層(隠れ層)と、出力層とをもつニューラルネットワークによって実現されるものとする。価値関数情報FXには、例えば、ニューラルネットワークを構成するニューロン(ユニット)の結合情報や結合係数(後述するニューラルネットワークのモデルパラメータ)などの各種情報が含まれる。例えば、入力層のユニット数は6つ以上とし、出力層のユニット数を1つとし、中間層は3層以上とし、各中間層のユニット数を128とし、中間層の各層間において全てのユニット同士を互いに結合させるものとする。また、各中間層のユニットの活性化関数は、正規化線形関数(ReLU関数)であってもよいし、シグモイド関数や、ステップ関数、その他の関数などであってもよい。
【0067】
例えば、ニューラルネットワークの入力層には、以下の複数の素性のうち一部または全部が入力され、その(それらの)入力に応じて出力層から既存トピックの価値を示す値が出力されるように構成される。すなわち、価値関数は、以下の複数の素性のうち一部または全部を変数とする関数であってよい。
【0068】
素性1:既存トピックに含まれる記事のベクトルの重み付き平均値。
素性2:全記事のベクトルの重み付き平均値。
素性3:既存トピックとの類似度のうち、値の大きい上位所定数の類似度。
素性4:トピックが生成されてから経過した時間。
素性5:既存トピックに新着記事が最後に分類されてから経過した時間。
素性6:既存トピックに含まれる記事数。
【0069】
例えば、素性1は、既存トピックの基準となるベクトル(トピックベクトル)を表しており、式(4)のように、既存トピックに含まれる一以上の記事の其々の記事ベクトルの重み付き平均で表される。
【0070】
例えば、素性2は、トピックに関係なく、全ての記事ベクトルの重み付き平均で表される。このとき、各記事ベクトルには、取得時刻が早いものほど大きな重みが付与されてよい。例えば、記事Aが取得された後に記事Bが取得された場合、記事Bの記事ベクトルの重みは、記事Aの記事ベクトルの重みよりも大きくてよい。これによって、今入稿されている記事のトレンドと、既存トピックのトレンドとを比較することができる。
【0071】
例えば、素性3は、新着記事に対する複数の既存トピックの其々の類似度のうち、上位5つといった所定数の類似度で表される。学習処理部114は、類似度が大きいほど出力される価値が大きくなるようにニューラルネットワークを学習させる。素性3として、全ての類似度を入力せず、上位所定数の類似度のみを入力することで、既存トピックの数Kが変動しても同じニューラルネットワークを継続して利用することができる。
【0072】
例えば、素性4および5は経過時間で表され、学習処理部114は、後述するQ学習によってニューラルネットワークのパラメータを更新することで、これらの経過時間が長いほど出力される価値が小さくなるようにニューラルネットワークを学習させる。
【0073】
例えば、素性6は記事数で表され、学習処理部114は、Q学習によってニューラルネットワークのパラメータを更新することで、この記事数が多いほど出力される価値が大きくなるようにニューラルネットワークを学習させる。
【0074】
学習処理部114は、Q学習の手法を応用した式(9)に基づいて、ニューラルネットワークのパラメータθを決定する。式(9)は、強化学習の対象とする問題がモデル化されたものである。パラメータθとは、ある時刻tにおけるニューラルネットワークのモデルパラメータを表している。モデルパラメータは、例えば、ニューラルネットワークの中間層において、ある層のユニットから、より深い層のユニットにデータが出力される際に、出力データに対して付与される重みを含む。また、ニューラルネットワークのモデルパラメータは、各層の固有のバイアス成分などを含んでもよい。
【0075】
【数9】
【0076】
式(9)における第1項のr(k,ti+1)は、ある時刻tよりも時間が進んだ将来の時刻ti+1において、既存トピックkに新着記事が追加された場合に加算される報酬を表している。時刻tおよび時刻ti+1は、新着記事が投稿サイトなどに入稿された時刻、または投稿サイトなどに入稿された新着記事が取得部112によって取得された時刻を表している。時刻ti+1において、既存トピックkに新着記事が追加(分類)されない場合、r(k,ti+1)の項は0となる。なお、報酬rは、1または0のような予め決められた定数であってもよいし、PV数のように実際に得られた何らかの実測値であってもよい。
【0077】
また、式(9)における第2項のVθ´(x;{x.},ti+1)は、時刻ti+1における既存トピックkの価値(予測値)を表している。θ´は、時刻ti+1におけるニューラルネットワークのモデルパラメータを表している。第2項のVθ´は、「第1価値」の一例である。
【0078】
また、第2項のe^γ(ti+1-t)は、時刻ti+1における既存トピックkの価値を低下させる係数項(割引率)を表している。γは負の定数であり、新着記事の取得間隔(ti+1-t)が大きくなるほどeの値が小さくなる。すなわち、第2項の係数項eは、新着記事の取得間隔(ti+1-t)が大きくなるほど、将来の時刻ti+1における既存トピックkの価値をより低下させる。
【0079】
式(9)における第3項のVθ(x;{x.},t)は、時刻tにおける既存トピックkの価値(予測値)を表している。θは、時刻tにおけるニューラルネットワークのモデルパラメータを表している。ニューラルネットワークのモデルパラメータは、時間が経過するのに応じて誤差逆伝搬によって更新されるため、上述したθ´とθは、互いに異なるパラメータを表している。すなわち、第3項Vθは、時刻ti+1において使用されるパラメータθ´に更新される前のパラメータθによって調整されたニューラルネットワークにより出力される既存トピックkの価値を表している。第3項のVθは、「第2価値」の一例である。
【0080】
例えば、現在時刻が時刻tであるものとしたときに、学習処理部114が、将来時刻ti+1において、上述したフローチャートの処理に従って新着記事を既存トピックに分類すると予測する。この場合、学習処理部114は、式(9)を参照し、予測した将来時刻ti+1における報酬(第1項)と、予測した将来時刻ti+1における既存トピックkの価値(第2項)との和を導出する。この際、学習処理部114は、時刻tから時刻ti+1までの時間差に応じて、予測した将来時刻ti+1における既存トピックkの価値を低下させる。そして、学習処理部114は、導出した和から、現在時刻tにおける既存トピックkの価値(第3項)を減算した値の二乗が最小となるパラメータθを探索する。
【0081】
学習処理部114は、探索の結果得られたパラメータθとなるように、誤差逆伝搬によってニューラルネットワークの重みを調整する。これによって、異なる時点における既存トピックkの価値の差分が小さくなるように、現在時点tにおいて予測された既存トピックkの価値が修正される。例えば、学習処理部114は、上述したフローチャートの処理が実行される度に、コンテンツの分類結果をフィードバックさせながら、強化学習によって価値関数Vのパラメータθを更新する。このような処理によって、カテゴリ分類時に、強化学習によってパラメータθが決定された価値関数Vが参照されることになるため、コンテンツの分類精度を向上させることができる。
【0082】
図8は、本実施形態の強化学習によって得られた報酬の結果の一例を示す図である。図中の縦軸は、式(9)の報酬rの値(スコア)を表し、横軸は、強化学習を継続した時間を表している。また、図中LN1は、本実施形態の強化学習によって得られた各トピックの報酬rの総和の変化を表し、LN2は、新着記事を優先的に残すようにしたときの各トピックの報酬rの総和の変化を表している。また、図中LN3は、最後に記事が分類されてから経過した時間が最も長いトピック(最も古いトピック)と新着記事とを入れ替えるようにしたときの各トピックの報酬rの総和の変化を表し、LN4は、最も記事数が少ないトピックと新着記事とを入れ替えるようにしたときの各トピックの報酬rの総和の変化を表している。また図中LN5は、ベクトル空間において、他のトピックと空間領域が被らないトピックほど優先的に残すようにしたときの各トピックの報酬rの総和の変化を表している。これらの各報酬rの総和は、所定値によって正規化されている。所定値は、新着記事が取得された場合に、K個のトピックのうちランダムに選んだいずれか1つのトピックと新着記事とを入れ替えるようにしたときの各トピックの報酬rの総和である。
【0083】
図示の例のように、ある程度の時間が経過した場合、LN1は、LN2~5の全てよりスコアが高くなっており、LN2~5のヒューリスティックな手法に比べて、本実施形態における強化学習の方が実際に得られる報酬を多くすることができる。
【0084】
以上説明した実施形態によれば、新規コンテンツ(例えば新着記事)を取得する取得部112と、取得部112により新規コンテンツが取得された場合、強化学習によってパラメータが学習された価値関数に基づいて、新規コンテンツの分類先とするカテゴリを既存の複数のカテゴリの中から選択するのか、新たなカテゴリを生成してそのカテゴリに分類するのかを決定する学習処理部114とを備えることによって、価値が最も小さくなることが予測されるカテゴリ(例えばトピック)から優先的に消去するができる。この結果、例えば、最も古いカテゴリから順に消去していくようなヒューリスティックな手法を採用するよりも、残しておくべきコンテンツとそうでないコンテンツとをより効率良く選り分けることができる。
【0085】
また、上述した実施形態によれば、新着記事を既存トピックに分類する場合、その既存トピックを表すトピックベクトルを変更するため、入稿される記事のトレンドに合わせてトピックの性質を変化させることができる。この結果、記事の分類精度を向上させることができる。また、記事の代わりに、オークションに出品された商品などをコンテンツとした場合、出品トレンドに合わせてカテゴリの性質を変化させることができる。
【0086】
また、上述した実施形態によれば、価値が最も小さくなることが予測されるトピックと新規コンテンツとを入れ替えるため、カテゴリを新規に作成することができる。例えば、一般的なカテゴリ分類の手法は、予め性質が規定されたカテゴリの中からコンテンツの分類先を決めるものであり、現在用意されているカテゴリのいずれにも該当しない未知なコンテンツが得られた場合、そのコンテンツはいずれのカテゴリにも分類されない。これに対して、本実施形態では、価値が小さいカテゴリと新規コンテンツとを入れ替えるため、その性質について定義されていない未知のコンテンツが得られた際に、そのコンテンツが既存カテゴリに該当しないことから、その新規コンテンツとの類似度を基に、性質の近いコンテンツを集めて新しいカテゴリを生成することができる。
【0087】
また、上述した実施形態によれば、新着記事の取得間隔(ti+1-t)が大きくなるほど、将来の時刻ti+1における既存トピックの価値を低下させるため、より学習精度を向上させることができる。
【0088】
一般的な強化学習の場合、割引率γは、時間に依らず一定である場合が多い。定数の割引率γを使用した場合、例えば、記事が頻繁に入稿されている場合、前回の記事の入稿からほとんど時間が経過していないのにも関わらず、既存トピックの将来の価値を大きく下げてしまう傾向にある。これに対して、本実施形態では、割引率γを新着記事の取得間隔に応じて変化させるため、既存トピックの将来の価値を精度良く予測することができる。
【0089】
<ハードウェア構成>
上述した実施形態の分類装置100は、例えば、図9に示すようなハードウェア構成により実現される。図9は、実施形態の分類装置100のハードウェア構成の一例を示す図である。
【0090】
分類装置100は、NIC100-1、CPU100-2、RAM100-3、ROM100-4、フラッシュメモリやHDDなどの二次記憶装置100-5、およびドライブ装置100-6が、内部バスあるいは専用通信線によって相互に接続された構成となっている。ドライブ装置100-6には、光ディスクなどの可搬型記憶媒体が装着される。二次記憶装置100-5、またはドライブ装置100-6に装着された可搬型記憶媒体に格納されたプログラムがDMAコントローラ(不図示)などによってRAM100-3に展開され、CPU100-2によって実行されることで、制御部110が実現される。制御部110が参照するプログラムは、ネットワークNWを介して他の装置からダウンロードされてもよい。
【0091】
以上、本発明を実施するための形態について実施形態を用いて説明したが、本発明はこうした実施形態に何ら限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【符号の説明】
【0092】
1…コンテンツ分類システム、10…情報提供装置、100…分類装置、102…通信部、110…制御部、112…取得部、114…学習処理部、130…記憶部、CT…コンテンツ、FX…価値関数情報
図1
図2
図3
図4
図5
図6
図7
図8
図9