(57)【特許請求の範囲】
【請求項１】
単語と、単語が抽出された事象が発生した頻度である第１の発生頻度と、最後に単語が抽出された時間に係る第１の時刻情報と、が紐付けられて記憶された発生頻度辞書と、
文書から単語を抽出する単語抽出手段と、
単語の抽出された時間に係る第２の時刻情報と前記第１の時刻情報との差分と、に基づいて、抽出された単語の前記第１の発生頻度を減衰させて、第２の発生頻度を算出する発生頻度算出手段と、
前記文書から単語が抽出された時間に係るタイミングで、前記第２の発生頻度で前記第１の発生頻度を置き換え、前記第２の時刻情報で前記第１の時刻情報を置き換えて前記発生頻度辞書を更新する発生頻度更新手段と、
を備え、
更新された前記第２の発生頻度を、文書のレコメンドの基礎となる情報として用いることを特徴とする、情報処理装置。
【請求項２】
単語と、単語が抽出された事象が発生した頻度である第１の発生頻度と、最後に単語が抽出された時間に係る第１の時刻情報と、が紐付けられて発生頻度辞書に記憶するステップと、
文書から単語を抽出する単語抽出ステップと、
単語の抽出された時間に係る第２の時刻情報と前記第１の時刻情報との差分と、に基づいて、抽出された単語の前記第１の発生頻度を減衰させて、第２の発生頻度を算出する発生頻度算出ステップと、
前記文書から単語が抽出された時間に係るタイミングで、前記第２の発生頻度で前記第１の発生頻度を置き換え、前記第２の時刻情報で前記第１の時刻情報を置き換えて前記発生頻度辞書を更新する発生頻度更新ステップと、
更新された前記第２の発生頻度を、文書のレコメンドの基礎となる情報として用いるステップと、
をコンピュータに実行させることを特徴とする、情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及び方法に関し、特に、レコメンドの基礎となる情報を忘却する処理を高速に行う技術に関する。
【背景技術】
【０００２】
従来、ユーザの嗜好情報に基づいてユーザが興味を持ちそうなコンテンツをレコメンドすることが行われている（例えば、特許文献１、２）。
【０００３】
しかしながら、人の嗜好や興味は時間の経過とともに変わりうる。レコメンドの基礎となる嗜好情報を忘却させるなどして興味の変化に追随させる必要がある。特許文献３には、ユーザが過去に検索した情報を当該情報の発生頻度も考慮した上で、ある程度の時間が来たら忘却することが記載されている。あまり使われない古い情報を削除するものである。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１１−１３４３４５号公報
【特許文献２】特開２０１３−０２５３２４号公報
【特許文献３】特開２０１３−１２５０３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
レコメンドの基礎となる情報を忘却する処理は、従来、バッチ処理的に一斉に行われることが一般的であった。例えば、特許文献３では、工場出荷時リセット以外の何らかのトリガイベントを検知したときに、記憶装置の空き容量を見て、閾値以下になっていれば忘却モジュールを起動して使われていないデータの削除を行う。
【０００６】
しかしながら、バッチ処理的に行う従来の忘却処理は、忘却させるべき嗜好情報の数が多くなるに比例して処理コストが必要になる点が問題であった。とりわけ、単語の発生頻度辞書の忘却処理においては、単語数の多さに比例して辞書の走査のための処理コストがかかり、結果的に重い処理になる可能性があった。このような重い処理をどのタイミングで行うべきかを決定することは難しく、タイミングを誤ることでユーザ操作への応答性が悪くなるなどの副作用が生じる。
【０００７】
本発明は、上記実情に鑑みてなされたものであって、レコメンドの基礎となる情報を忘却する処理を高速に行うことを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するための本発明は、単語と、単語が抽出された事象が発生した頻度である第１の発生頻度と、最後に単語が抽出された時間に係る第１の時刻情報と、が紐付けられて記憶された発生頻度辞書と、文書から単語を抽出する単語抽出手段と、単語の抽出された時間に係る第２の時刻情報と前記第１の時刻情報との差分と、に基づいて、抽出された単語の前記第１の発生頻度を減衰させて、第２の発生頻度を算出する発生頻度算出手段と、前記文書から単語が抽出された時間に係るタイミングで、前記第２の発生頻度で前記第１の発生頻度を置き換え、前記第２の時刻情報で前記第１の時刻情報を置き換えて前記発生頻度辞書を更新する発生頻度更新手段と、を備え、更新された前記第２の発生頻度を、文書のレコメンドの基礎となる情報として用いることを特徴とする。
【発明の効果】
【０００９】
本発明によれば、レコメンドの基礎となる情報を忘却する処理を高速に行うことが可能となる。
【図面の簡単な説明】
【００１０】
【図１】本発明の一実施形態の構成を示すブロック図である。
【図２】図１の発生頻度辞書のデータ構造の一例を示す図である。
【図３】上記実施形態の処理の手順を示すフローチャートである。
【図４】上記実施形態において用いる忘却関数の性格を説明するためのグラフである。
【発明を実施するための形態】
【００１１】
図１に、実施形態の構成を示す。図示のように、本実施形態に係る情報処理装置１００は、入力手段１０１、単語抽出手段１０２、発生頻度算出手段１０３、発生頻度更新手段１０４、発生頻度辞書１０５、出力手段１０６を備える。以下に各ブロックの機能を説明する。
【００１２】
情報処理装置１００の具体例としては、ノートブック型パーソナルコンピュータやポータブル・データ・アシスタンス型端末などのパーソナル・コンピューティング・デバイスが挙げられる。他の形態としては、例えば、デスクトップ型パーソナルコンピュータ、ワークステーション、スレート型端末、タブレット型パーソナルコンピュータ、スマートフォン、スマートパッドなど、本発明を適用できることが当業者にとって明らかな、あらゆる形態が考えられる。
【００１３】
情報処理装置１００は、通常の演算処理装置、入出力装置、一次記憶装置、二次記憶装置などのハードウェア資源を備えており、ソフトウェアプログラムを実行することにより、図示の各ブロックの機能がもたらされる。
【００１４】
入力手段１０１は、情報処理装置１００に電子データを入力する機能を備える。電子データは、後段の各ブロックで取り扱う単語が抽出しうるものであればどのようなものでもよく、例えば、ワードプロセッサアプリケーションで作成した電子文書、ＸＭＬ文書などが挙げられる。画像データでもＯＣＲ等の手段を用いて単語が抽出可能であれば該当する。電子データは必ず１ファイルである必要はなく、ある情報を伝える一群の電子データでもよい。以下では、このようなさまざまなケースを考慮して、入力手段１０１が情報処理装置１００に取り込む一単位の情報を、単に「文書」と呼ぶ。
【００１５】
なお、入力手段１０１が文書を入手する先は、例えば、ネットワークホストの記憶装置や、外部の記憶媒体などが挙げられる。情報処理装置１００が備える二次記憶装置でもよい。
【００１６】
単語抽出手段１０２は、入力手段１０１が入力した文書から単語を抽出する。抽出する単語は、例えば、自然言語の単語である。文書のどの範囲から単語を抽出するか、どのような単語を抽出するか、などについてには任意に決めることができる。例えば、ＨＴＭＬ文書の所定のメタタグの中から、固有名詞のみを抽出する、と定めてもよい。単語認識の方法については、既存のあらゆる方法が適用できる。
【００１７】
単語抽出手段１０２は、文書毎に単語を抽出する。発生頻度算出手段１０３は、主として、抽出した単語毎にその発生頻度を算出する機能を備える。発生頻度更新手段１０４は、主として、発生頻度算出手段１０３が算出した単語の発生頻度を、単語の発生した時刻情報とともに記憶して、発生頻度辞書１０５を更新する機能を備える。発生頻度辞書１０５は、単語毎に、その発生頻度と時刻情報を紐付けて記憶する（図２）。
【００１８】
一般的な発生頻度としては、例えば、所定期間中に入力手段１０１が入手した全文書中に単語Ｗが含まれていた頻度などであると考えられる。この場合、１００文書中、ある単語が３５文書に含まれていたら、「Ｃ＝３５／１００」となる。しかしながら、本実施形態において発生頻度辞書１０５に記憶される発生頻度は、このような一般的な頻度とは異なり、後述する算出処理を経て得られる値である。
【００１９】
なお、図２は発生頻度辞書１０５のデータ構造の一例である。１単語あたりの発生頻度を複数記録するようなデータ構造としてもよい。例えば、単語Ｗｎの発生頻度としてＣｎ１とＣｎ２を記録し、Ｃｎ１を、単語Ｗｎが含まれる文書にユーザが興味を持ったという事象の発生頻度、Ｃｎ２を、単語Ｗｎが含まれる文書にユーザが興味を持たなかったという事象の発生頻度としてもよい。
【００２０】
出力手段１０６は、算出された発生頻度を後段の処理に出力する機能を備える。なお、発生頻度辞書１０５から更新されたデータを出力するようにしてもよい。発生頻度の情報は、例えば、新たな文書にユーザが興味を持つ事象の尤度を算出するためなどに用いる。つまり、発生頻度はレコメンドの基礎となる情報として用いる。
【００２１】
次に、発生頻度の算出処理の詳細を含む本実施形態の処理について、図３のフローチャートを参照しながら説明する。
【００２２】
まず、入力手段１０１が新たな文書を情報処理装置１００に入力する（Ｓ１０１）と、単語抽出手段１０２が文書から単語を抽出する（Ｓ１０２）。単語は通常複数抽出されるので、個々の単語について発生頻度の算出処理を行う。全ての単語について処理が終了するまでループとなる（Ｓ１０３〜Ｓ１０６）。
【００２３】
発生頻度算出手段１０３が、単語抽出手段１０２により抽出されたある単語の発生頻度を算出する（Ｓ１０４）。以下では、発生頻度辞書１０５に載っている単語についてだけ考える。
【００２４】
発生頻度算出手段１０３は、図２の発生頻度辞書１０５を参照して当該単語の発生頻度Ｃと、時刻情報Ｔを取得する。また、システムクロック等から、現在の時刻情報ｔを取得する。なお、厳密にシステムクロックから得られる現在時刻に限定する必要はない。他には、例えば、単語が含まれる文書が入力手段１０１により入手されたタイミングのタイムスタンプでもよい。また、そのような文書が外部装置で作成された時刻情報（知ることが可能ならば）などでもよい。時刻情報は、情報処理装置１００の用途に応じて、秒単位まで記録しても、年月日程度を記録することとしてもよい。
【００２５】
次に、所定の忘却関数ａｔｔｅｎｕａｔｉｏｎ＿ｆｕｎｃｔｉｏｎ（）により、忘却後の発生頻度ｃを、発生頻度Ｃと、時刻情報Ｔ及び時刻情報ｔの差分とに基づいて計算する。
ｃ＝ａｔｔｅｎｕａｔｉｏｎ＿ｆｕｎｃｔｉｏｎ（ｔ−Ｔ，Ｃ）
【００２６】
ここで、忘却関数は、例えば、図４に示すような、時間の経過とともに発生頻度が低減していくような関数とすることが好ましい。
【００２７】
次に、発生頻度更新手段１０４が、算出された発生頻度ｃと時刻情報ｔの更新を行う（Ｓ１０５）。これは、忘却後の単語の発生頻度ｃで、忘却前の発生頻度Ｃを置き換えるとともに、現在の時刻情報ｔで、当該単語の最終カウントアップ時の時刻情報Ｔを置き換える処理である。
【００２８】
以上の、発生頻度の算出処理と更新処理を全ての単語について繰り返したら、出力手段１０６が算出した全ての発生頻度を後段に出力する（Ｓ１０７）。出力される全ての発生頻度が忘却処理済みの情報となっている。
【００２９】
以下、上述した本実施形態の効果について説明する。
文書に含まれる単語によるレコメンドを行う場合、単語の発生頻度（発生回数、発生確率など）を計数する。しかしながらユーザの嗜好の変化に追従するためには、この単語の発生頻度の忘却処理が必要である。従来技術においては、バッチ処理的に各単語の発生頻度辞書を走査して、発生頻度情報を忘却させていた。
【００３０】
しかしながら、この従来技術では、単語の発生頻度辞書に登録されている単語数が多くなるに比例して、辞書の走査のための処理コストが必要になる。このような重い処理をどのタイミングで行うべきかを決定するかは難しく、タイミングを誤ることでユーザの操作へのレスポンスが悪くなるなどの副作用が生じる。
【００３１】
このような重い処理となるのは、１文書に含まれる単語数に比べて、単語の発生頻度辞書に登録される単語数が非常に多く、全単語を走査するコストが大きいことに起因している。
【００３２】
これに対して上記実施形態においては、単語の発生頻度を学習する際に、最後に単語のカウントアップを行った時点からの時間に応じて忘却を行う。全ての単語の忘却処理をする必要はなく、１文書に含まれる単語の数だけでよい。したがって、全単語を走査する処理に比べて遙かに高速に忘却処理を行うことができる。
【００３３】
また、発生頻度が高くない単語に対しては、バッチ処理で全単語を一律に忘却させるような処理において発生する累積丸め誤差が生じない効果がもたらされる。
【符号の説明】
【００３４】
１００    情報処理装置
１０１    入力手段
１０２    単語抽出手段
１０３    発生頻度算出手段
１０４    発生頻度更新手段
１０５    発生頻度辞書
１０６    出力手段
【図１】
0006008886.tif 000002
【図２】
0006008886.tif 000003
【図３】
0006008886.tif 000004
【図４】
0006008886.tif 000005