以下、本発明の実施形態を図面を参照して説明する。
実施形態1.
図1は、本発明による学習装置の一実施形態の構成例を示すブロック図である。本実施形態の学習装置100は、記憶部10と、入力部20と、学習部30と、出力部40とを備えている。
記憶部10は、本実施形態の学習装置100が処理に用いるパラメータや設定情報、ログデータなど、各種情報を記憶する。具体的には、記憶部10は、ある問題に対して正解したか否かを示す学習実績(以下、学習正誤ログと記す。)を記憶する。なお、学習正誤ログの内容は後述される。また、記憶部10は、後述する学習部30が生成した各モデルを記憶してもよい。
なお、学習装置100が、通信ネットワークを介して、他の装置(例えば、ストレージサーバ)から、各種情報を取得する構成であってもよい。この場合、記憶部10が上述する情報を記憶していなくてもよい。記憶部10は、例えば、磁気ディスク等により実現される。
入力部20は、学習部30が処理に用いる各種情報の入力を受け付ける。入力部20は、例えば、記憶部10から各種情報を取得してもよいし、通信ネットワークを介して取得した各種情報の入力を受け付けてもよい。
また、本実施形態では、入力部20は、学習の実績を示す学習データとして、学習者の時系列の学習正誤ログの入力を受け付ける。具体的には、入力部20は、学習者の特徴を表わす情報(以下、ユーザ特徴と記すこともある。)に、問題とその問題の正誤とを対応付けたデータを含む学習データの入力を受け付ける。
図2は、学習データの例を示す説明図である。図2に例示する学習データは、学習者であるユーザ1~ユーザNについて、各問題についての正誤(○,×)を対応付けたデータであることを示す。なお、各ユーザの特徴を示すユーザ特徴が、学習データとは別に保持されていてもよい。
学習部30は、第一ナレッジモデル学習部31と、第二ナレッジモデル学習部32とを含む。
第一ナレッジモデル学習部31は、学習者の学習実績を用いた機械学習により、学習者のスキルの状態の時系列変化(以下、スキル状態列と記す。)を生成する。学習者のスキルの状態は、例えば、学習者のスキルの習熟度である。
学習実績からスキル状態列を生成できれば、その学習方法は任意である。第一ナレッジモデル学習部31は、例えば、非特許文献2に記載された方法を用いて、スキル状態列を生成してもよい。具体的には、第一ナレッジモデル学習部31は、学習正誤ログが与えられたもとでの事後確率が最大になる状態をスキル状態列として生成してもよい。
また、第一ナレッジモデル学習部31は、学習に用いられた問題の特徴(以下、問題特徴ベクトルと記す。)を生成してもよい。第一ナレッジモデル学習部31は、スキル状態列の生成と同様、非特許文献2に記載された方法を用いて問題特徴ベクトルを生成してもよい。
なお、問題特徴ベクトルは、学習実績に依らずとも生成することが可能である。例えば、非特許文献1に記載されているように、問題iについてのベクトルとして、i番目のエントリが1、その他のエントリが0のベクトルとして問題特徴ベクトルを生成できる。この問題特徴ベクトルは、各問題を識別するいわゆるone-hotベクトル([0,…,1,…,0])である。このように問題特徴ベクトル生成できる場合、第一ナレッジモデル学習部31は、問題特徴ベクトルを生成しなくてもよい。
以下、非特許文献2に記載された方法を用いた場合のスキル状態列、および、問題特徴ベクトルについて、具体的に説明する。
本実施形態のスキル状態列は、非特許文献2に記載された非補償型時系列IRT(item response theory)の生成モデルにおける状態遷移確率(および初期状態確率)に対応する。そこで、第一ナレッジモデル学習部31は、以下の式1で定義されるモデルを学習することで、スキル状態列を生成してもよい。なお、式1は、時刻tにおけるユーザjの状態zj
(t)が与えられると、線形変換Dにより次の状態zj
(t+1)に遷移させるモデルである。なお、zj
(t)は、確率変数である。
式1において、Di(j,t)は、ユーザjが時刻tに解いた問題iに応じて状態を変化させる線形変換を表わし、Γi(j,t+1)はガウスノイズを表わす。また、右辺の第二項はバイアス項であり、状態遷移に影響し得るユーザjの特徴量を表わす項である。
具体的には、xj,k
(t+1)は、状態遷移の共変量であり、ユーザ特徴として、学習者に関する任意の特徴が用いられる。ユーザ特徴として、例えば、学習者の属性(例えば、年齢、性別)や、モチベーション(科目への興味の有無)、学習者jがスキルkを含む問題を最後に学習したときからの経過時間から想定される忘却率2^(-Δ/h)(ここで、Δは経過時間であり、hは半減期である)などが挙げられる。
また、他にも、ユーザ特徴として、実績系列の集計情報が用いられてもよい。集計情報として、例えば、各スキルについて連続5問正解までの回答数、習得の早さを示す情報、過去のテストの結果、などが挙げられる。
また、βk
Tは、スキルごとの特性を表わす係数であり、例えば、忘れやすいスキルの係数には、大きなマイナス値が設定される。また、μ0,P0は、学習者の初期状態のガウス分布の平均および分散をそれぞれ表わす。
また、非特許文献2に記載された出力確率に含まれるaiおよびbiを含むベクトルは、本実施形態の問題特徴ベクトルに対応する。なお、aiは、問題iにおける各スキルの識別力(slope)を表すベクトルであり、biは、問題iの難易度である。そこで、第一ナレッジモデル学習部31は、以下の式2で定義されるモデルを学習することで、問題特徴ベクトルを生成してもよい。式2におけるQi(j,t),kは、問題iとスキルkの対応を示し、問題iを解くためにスキルkが必要であれば1になり、不要であれば0になる。
具体的には、第一ナレッジモデル学習部31は、問題特徴ベクトルを、以下に示す式3のように生成してもよい。例えば、問題1がスキル1およびスキル2を必要とする場合、第一ナレッジモデル学習部31は、下記の式3で示すベクトルについて、a1,a2,b1,b2以外を0にするような特徴ベクトルを生成すればよい。
なお、非特許文献2に記載された方法を用いてスキル状態列および問題特徴ベクトルを生成する場合には、学習に際し、問題と必要なスキルとを対応付けた表(問題スキル対応表)を予め準備しておけばよい。図3は、問題と必要なスキルとを対応付けた例を示す説明図である。図3に示す例では、問題とその問題を解くために必要なスキルとを表形式で対応付けた例を示す。図3に例示するように、各問題で必要とされるスキルは1つであってもよく、2以上であってもよい。問題と必要なスキルの対応付けは、予めユーザ等により設定される。
このように、第一ナレッジモデル学習部31は、問題特徴ベクトルとして、問題の識別力および難易度を含むベクトル([…,ak,…,…,bk,…])を生成してもよい。
他にも、第一ナレッジモデル学習部31は、例えば、非特許文献1に記載された方法を用いて、スキル状態列を生成してもよい。本実施形態のスキル状態列は、非特許文献1に記載された時系列の予測確率のベクトルytに対応する。非特許文献1に記載されたytは、問題の数に等しい長さのベクトルであり、各エントリは、学習者が問題に正解する確率を表わす。このように、第一ナレッジモデル学習部31は、スキル状態列として時系列の予測確率のベクトルytを生成してもよい。
また、上述するように、非特許文献1に記載されたone-hotベクトルが、本実施形態の問題特徴ベクトルに対応する。具体的には、問題iについてのベクトルとして、i番目のエントリが1、その他のエントリが0のベクトルとして生成できる。このように、問題特徴ベクトルとして、各問題を識別するone-hotベクトル([0,…,1,…,0])が予め生成されていてもよい。この場合、第一ナレッジモデル学習部31は、問題特徴ベクトルを生成しなくてよい。
以上、非特許文献1および非特許文献2に記載された方法を用いてスキル状態列および問題特徴ベクトルを生成する方法を説明した。ただし、スキル状態列および問題特徴ベクトルを生成する方法は、非特許文献1および非特許文献2に記載された学習方法に限定されない。
第二ナレッジモデル学習部32は、スキル状態列および問題特徴ベクトルを用いた機械学習により、学習者の将来のスキルの状態を予測するモデルを生成する。具体的には、第二ナレッジモデル学習部32は、問題特徴、ユーザ特徴、および、時間情報を説明変数とし、ユーザのスキル状態を目的変数とするモデルを学習する。
スキル状態は、第一ナレッジモデル学習部31により生成されたスキル状態列から取得できる。また、問題特徴は、第一ナレッジモデル学習部31により生成された問題特徴ベクトルから取得されてもよく、問題に基づく任意の方法で生成された情報(例えば、one-hotベクトル)から取得されてもよい。ユーザ特徴は、第一ナレッジモデル学習部31が学習に用いる際のユーザ特徴と同様である。また、時間情報は、学習者が問題を解いた時間を表わす情報である。時間情報の態様は任意であり、例えば、YYYYMMDDHHMMの形式で表される時刻情報であってもよく、ある時刻t-1からtまでの経過時間などである。
例えば、非特許文献2に記載された方法を用いた場合、第一ナレッジモデル学習部31は、スキル状態列として事後確率を最大にするスキル状態列を生成してもよい。具体的には、学習正誤ログが示すユーザjの実績yj
(1),…,yj
(Tj)の具体的な値が得られている状態で、第一ナレッジモデル学習部31は、以下に例示する事後確率を最大にするzj
(t)の値(状態変数)をt=1,…Tまで求めればよい。
第二ナレッジモデル学習部32が学習するモデルの態様は任意であり、第二ナレッジモデル学習部32は、例えば、時系列データの予測で多く用いられるRNNを学習してもよい。また、RNNについて、一般的なRNNが用いられてもよく、LSTM(Long short-term memory)やGRU(Gated Recurrent Unit)などが用いられてもよい。
なお、ナレッジトレースを行うためのモデルの学習は、第一ナレッジモデル学習部31が行う学習のように、一般に、学習者の正誤データ(学習正誤ログ)を用いて行われる。一方、本実施形態の第二ナレッジモデル学習部32は、学習者の正誤データを直接用いずにナレッジトレースを行うモデルを学習していることから、第二ナレッジモデル学習部32が学習するモデルのことを、正誤データなしナレッジトレースモデルと言うことができる。
このように学習されたモデルを用いることで、ユーザ特徴で示される特徴を有する学習者が、ある時間において問題を選択した場合(解いた場合)のスキルの状態の変化を予測できる。これにより、例えば、学習者が主体的に作成した将来の学習計画について、その学習計画を実行した場合のスキルの状態の時系列変化を予測することが可能になる。
出力部40は、第二ナレッジモデル学習部32が生成したモデル(正誤データなしナレッジトレースモデル)を出力する。出力部40は、生成されたモデルを記憶部10に記憶させてもよく、通信ネットワークを介して、他の記憶媒体(図示せず)に生成されたモデルを記憶させてもよい。
入力部20と、学習部30(より詳しくは、第一ナレッジモデル学習部31と、第二ナレッジモデル学習部32)と、出力部40とは、プログラム(学習プログラム)に従って動作するコンピュータのプロセッサ(例えば、CPU(Central Processing Unit )、GPU(Graphics Processing Unit))によって実現される。
例えば、プログラムは、記憶部10に記憶され、プロセッサは、そのプログラムを読み込み、プログラムに従って、入力部20、学習部30(より詳しくは、第一ナレッジモデル学習部31と、第二ナレッジモデル学習部32)および出力部40として動作してもよい。また入力部20、学習部30(より詳しくは、第一ナレッジモデル学習部31と、第二ナレッジモデル学習部32)および出力部40の機能がSaaS(Software as a Service )形式で提供されてもよい。
また、入力部20と、学習部30(より詳しくは、第一ナレッジモデル学習部31と、第二ナレッジモデル学習部32)と、出力部40とは、それぞれが専用のハードウェアで実現されていてもよい。また、各装置の各構成要素の一部又は全部は、汎用または専用の回路(circuitry )、プロセッサ等やこれらの組合せによって実現されてもよい。これらは、単一のチップによって構成されてもよいし、バスを介して接続される複数のチップによって構成されてもよい。各装置の各構成要素の一部又は全部は、上述した回路等とプログラムとの組合せによって実現されてもよい。
また、入力部20、学習部30(より詳しくは、第一ナレッジモデル学習部31と、第二ナレッジモデル学習部32)および出力部40の各構成要素の一部又は全部が複数の情報処理装置や回路等により実現される場合には、複数の情報処理装置や回路等は、集中配置されてもよいし、分散配置されてもよい。例えば、情報処理装置や回路等は、クライアントサーバシステム、クラウドコンピューティングシステム等、各々が通信ネットワークを介して接続される形態として実現されてもよい。
次に、本実施形態の学習装置100の動作を説明する。図4は、本実施形態の学習装置100の動作例を示すフローチャートである。学習部30(より詳しくは、第一ナレッジモデル学習部31)は、学習実績を用いた機械学習により、スキル状態列を生成する(ステップS11)。そして、学習部30(より詳しくは、第二ナレッジモデル学習部32)は、問題特徴、ユーザ特徴、および、時間情報を説明変数とし、学習者のスキルの状態を目的変数とするモデルを学習する(ステップS12)。
以上のように、本実施形態では、第一ナレッジモデル学習部31が、学習実績を用いた機械学習により、スキル状態列を生成し、第二ナレッジモデル学習部32が、問題特徴、ユーザ特徴、および、時間情報を説明変数とし、学習者のスキルの状態を目的変数とするモデルを学習する。よって、学習者の長期的なスキルの変化を予測するモデルを学習できる。
例えば、非特許文献2に記載されている方法では、学習者の時系列の学習正誤ログに基づいてナレッジトレーシングモデルを学習する。すなわち、非特許文献2に記載されたモデルは、問題を解いた正誤結果が学習データとして必要になるため、長期的予測に適したモデルにはなっていない。
一方、本実施形態では、第二ナレッジモデル学習部32が、問題特徴、ユーザ特徴、および、時間情報を説明変数とし、学習者のスキルの状態を目的変数とするモデルを学習する。そのため、学習者の長期的な予測を行うことが可能になる。
実施形態2.
次に、本発明の第二の実施形態を説明する。第二の実施形態では、学習計画に基づく学習者のスキルの状態の変化を可視化する方法を説明する。なお、本実施形態における学習計画とは、学習者が、どの問題をいつどのような順序で解くかを表わす情報であり、学習者が解く予定の問題を時系列に並べた情報である。本実施形態では、どの問題をいつ解いたら、自身のスキルの状態がどのように変化するか可視化する方法について説明する。
以下の説明では、第一の実施形態で学習されたモデルを用いて、スキルの状態の変化を推定し、推定結果を可視化する方法を適宜説明する。ただし、スキルの状態の変化を推定する方法は、第一の実施形態で学習されたモデルを用いる方法に限定されない。
図5は、本発明による可視化システムの一実施形態の構成例を示すブロック図である。本実施形態の可視化システム1は、学習装置100と、可視化装置200とを備えている。本実施形態の学習装置100の内容は、第一の実施形態の学習装置100と同様であるため、詳細な説明を省略する。なお、第一の実施形態の学習装置100に含まれる記憶部10が、学習装置100とは別の装置に設けられていてもよい。
可視化装置200は、学習装置100によって学習されたモデル(すなわち、正誤データなしナレッジトレースモデル)を取得する。なお、可視化装置200が処理に用いる情報(例えば、上記正誤データなしナレッジトレースモデルなど)が学習装置100とは別の装置に設けられた記憶装置(例えば記憶部10)に記憶されている場合、可視化装置200は、学習装置100に接続されていなくてもよい。
可視化装置200は、学習計画入力部210と、状態推定部220と、状態可視化部230とを含む。
学習計画入力部210は、学習計画の入力を受け付ける。学習計画入力部210は、例えば、表示装置(図示せず)に学習計画の入力画面を表示させ、学習者からインタラクティブに学習計画の入力を受け付けてもよい。図6は、学習計画を入力する画面の例を示す説明図である。学習計画入力部210は、図6に例示するようなカレンダー形式の入力画面211を表示し、適切な入力インタフェース(例えば、タッチパネル、ポインティングデバイス、キーボード等)を介して学習者により入力された学習計画を受け付けてもよい。
なお、表示装置は、可視化装置200に設けられていてもよく、通信回線を介して接続された可視化装置200とは異なる装置で実現されていてもよい。また、他にも、学習計画入力部210は、ファイル等に記載された学習計画の入力を受け付けてもよい。
状態推定部220は、学習計画に基づき、スキルの状態の変化を推定する。具体的には、状態推定部220は、学習計画で設定された各問題を時系列に解いた場合における学習者のスキルの状態の変化を推定する。
スキルの状態の変化を推定する方法には、様々な方法を利用できる。例えば、問題を解いた場合に向上すると推定される各スキルの習熟度を予め定めておき、状態推定部220は、学習計画に従って、解いた問題に対応する習熟度を加味して(例えば、加算する、乗算する、など)スキルの状態の変化を推定してもよい。さらに、状態推定部220は、時間の経過に合わせて、スキルの習熟度を一定の関数(忘却曲線)に応じて減少させるようにしてもよい。
また、より精度高くスキルの状態の変化を推定するため、状態推定部220は、第一の実施形態で学習されたモデル(正誤データなしナレッジトレースモデル)を用いて、スキルの状態の変化を推定してもよい。すなわち、状態推定部220は、学習者が学習に用いた問題の特徴を表わす問題特徴、学習者の特徴を表わすユーザ特徴、および、学習者が問題を解いた時間を表わす時間情報を説明変数とし、学習者のスキルの状態を目的変数とする予測モデルを用いて、スキルの状態の変化を推定してもよい。
なお、第一の実施形態で示すように、上記予測モデルは、学習者による学習の実績を用いた機械学習により生成された、学習者のスキルの状態の時系列変化を表わすスキル状態列、および、学習者が学習に用いた問題の特徴を表わす問題特徴ベクトルに基づく特徴量を含むデータを用いて学習されたモデルである。
状態可視化部230は、推定された学習者のスキルの状態を可視化する。図7は、スキルの状態を可視化した例を示す説明図である。図7に例示するように、横軸に時間を設定し、縦軸にスキルの状態(習熟度)を設定した折れ線グラフで、各時点における学習者のスキルの状態を時系列に可視化してもよい。
また、状態可視化部230は、指定された時点における学習者の正解確率を問題ごとに可視化してもよい。図8は、問題を解ける確率を可視化した例を示す説明図である。図8に示す例では、単元ごとにまとめられた各問題について、正解確率を棒グラフ311で可視化した例を示す。
状態可視化部230は、例えば、正誤データなしナレッジトレースモデルを用いて、ある時点における学習者のスキルの状態を推定し、推定されたスキルに基づいて正解確率を算出してもよい。例えば、非特許文献2に記載された方法を用いる場合、状態可視化部230は、上記に示す式2を用いて、各問題の正解確率を算出し、算出結果を可視化してもよい。具体的には、状態可視化部230は、式2を用いて算出された正解確率の分布における平均を正解確率として棒グラフ311で可視化し、分散を不確定度合いとして線312で表わしてもよい。
また、状態可視化部230は、ある時点における学習者の各スキルの状態を、より詳細に可視化してもよい。状態可視化部230は、例えば、指定された時点において想定される学習者のスキルを、対象の問題を解くために必要とされるスキルごとに可視化してもよい。図9は、各スキルの状態をグラフで出力した例を示す説明図である。図9に例示するグラフは、ある問題を解くために必要とされるスキルごとに、学習者のスキルの状態を可視化したグラフである。また、図9に示す例では、例えば問題提供者によって、問題のレベルに応じた2種類のラベル付け(A-level,B-level)がされた状況を想定する。ラベル付けの具体例として、ラベル「A-level」が付与された問題(以下、A問題と記す。)が標準問題、ラベル「B-level」が付与された問題(以下、B問題と記す。)が発展問題、などが挙げられる。
図9に示す例では、スキルの各レベルの閾値を境界線で示しており、境界線321が、A問題が全て解けると想定されるスキルの状態の閾値、境界線322が、B問題が全て解けると想定されるスキルの状態の閾値である。また、図9に示す例では、ある時点における各スキルの状態を棒グラフ323で表わし、そのスキルの状態の不確定度を丸付きの線324で表わしている。
以下、上記非特許文献2に記載された非補償型の項目応答モデルを例に、図9に例示するスキルの状態を可視化する方法を説明する。初めに、図9に例示する境界線(すなわち、閾値)を特定する方法を説明する。
スキルをある問題に関連付ける場合、それらのスキルがすべて満たされることで解けるとすることが一般的である。非特許文献2に記載されたこのようなモデルは、多次元項目応答理論において非補償型モデルと呼ばれている。この非補償型モデルを用いた予測理由の説明は、自然であると言える。
非補償型モデルでは、正解確率を予測するモデルが各スキルの積で表される。例えば、各スキルs1,s2の係数をそれぞれt1,t2とした場合、予測モデルは、シグモイド関数σを用いて、以下のように表すことができる。このような非補償型モデルでは、「分数と方程式の知識がなければ上記問題は解けない」と解釈されるため、説明性は高いと言える。
正解確率=σ(t1s1)σ(t2s2)
また、学習者の状態zと問題iが与えられたときに、学習者がその問題iを解ける確率を表わすモデルは、例えば、上記式2を簡略化した以下に例示する式4で定義できる。すなわち、式4に例示するモデルは、問題iの解決に学習者が必要とするスキルkの組み合わせで表わされ、各スキルの積により問題を解ける確率が算出されるモデルである。学習者の状態zは、ある時点において学習者が有する各スキルkの習熟度を表わす。
式4において、上記式2と同様に、bi,kは、問題iで用いられるスキルkの難易度を表わし、ai,kは、問題iに関するスキルkの立ち上がりの程度(スロープ)を表わすパラメータである。すなわち、式4は、bi,kが示す難易度よりもスキルの習熟度zkが高ければ、高い確率で問題が解けることを表わす。
図10は、正解確率の尤度関数の例を示す説明図である。図10に例示するグラフは、縦方向の軸(z軸)が正解確率を示し、その他の軸(x軸およびy軸)が、その問題を解くために必要なスキルの習熟度を表わす。具体的には、図10に例示する尤度関数は、上記に例示する式4で表される。例えば、図10に例示するように、ある問題を解くために2つのスキルが必要であったとする。この場合、一方のスキルだけが高くても正解確率は増加しないが、両方のスキルが高くなると正解確率が増加することを示す。
例えば、図10に示す例において、あるレベル(例えば、A-level)の問題が全て解けるために管理者が正解確率=80%になるようなスキルの習熟度が必要であると想定したとする。この場合、尤度関数の値である正解確率の軸に対して垂直に、正解確率=0.8の位置で切断したときの断面が、スキルの習熟度の範囲を表わしていると言える。
図11は、非補償型モデルの情報を模式的に表わす説明図である。図11に例示する情報は、例えば、分析エンジンの内部で非補償型モデルを扱う際の情報であり、対象とする問題に2つのスキル(「整数の減法」、「絶対値」)が必要であることを示す。また、ここでは、問題Aを解くためには正解確率=80%になるようなスキルの習熟度が必要であるとして指定された場合を想定する。
グラフの右上に斜線で示す領域111は、図10に例示する尤度関数において、正解確率=80%を満たすスキルの習熟度の範囲を示す。なお、「0.8」と記載されている曲線112が、正解確率=80%を満たすために必要なスキルの習熟度の境界を示す。また、グラフの左下に示す×印113が、現時点での学習者のスキルの状態を示す。また、×印113を取り囲む楕円114は、学習者のスキルの状態の分布がガウス分布に従うとした場合における確率の等高線を示す。この場合、学習者のスキルの状態の位置は、ガウス分布における平均に対応する。
この想定に基づいて、状態可視化部230は、閾値を算出する。ここで算出される閾値は、図9に例示する境界線321が示す閾値に対応する。図12は、閾値を算出する処理の例を示す説明図である。まず、状態可視化部230は、各次元について座標zk
*を算出する。状態可視化部230は、例えば、上述する式4に基づき、以下に例示する式5を用いて、zk
*を算出する。
なお、式5におけるpは正解確率を示し、aiおよびbiは、式4と同様、それぞれ、スロープおよび難易度を示す。なお、A問題がすべて解ける習熟度を想定することから、問題として、A問題のうち、最も難易度の高い問題iが選択されればよい。ここで算出されるzk
*は、図10に例示する尤度関数に、外側から接する面の座標に相当し、図12における長鎖線121および122に対応する。
次に、状態可視化部230は、境界線上の座標を変化させながら、Δ1=Δ2=…=ΔK(Kは、必要なスキルの数)に最も近づく座標z^(zの上付きハット)を探索する。なお、Δは、各次元について算出されたzk
*とz^との差分である。ここで算出されるz^は、図10に例示する尤度関数に内側から接する面の座標に相当し、図12における点123の座標に対応する。
具体的には、状態可視化部230は、座標z^を算出するに際し、以下の2つの処理を繰り返す。まず、第1の処理として、状態可視化部230は、初期点として、zk={σ-1(p-k)/ai}+biを計算する。そして、状態可視化部230は、このzkに基づいて、各Δkの値を算出する。次に、状態可視化部230は、第2の処理として、最も大きいΔkについての次元kについて、以下の式6に示す更新を行う。なお、δは、パラメータであり、予め定められる。
zkmax←zkmax-δ (式6)
そして、状態可視化部230は、更新後のzkmaxをz´とし、最も小さいΔkについての次元kについて、以下の式7に示す更新を行う。状態可視化部230は、この2つの処理を、予め定めた条件(例えば、変化量が閾値未満、予め定めた回数、など)を満たすまで繰り返す。
次に、状態可視化部230は、各kについて、(z^
k-zk
*)/2を算出することで、領域を長方形近似する。ここで算出される値は、図12における破線124および125の座標に対応する。
そして、状態可視化部230は、学習者のスキルの習熟度と、長方形近似された座標が示す値との比率に基づいて、棒グラフを出力する。具体的には、状態可視化部230は、学習者のスキルの状態を示す座標126と、破線124および破線125が示す座標との比率に基づいて棒グラフを出力してもよい。このようにして、状態可視化部230は、対象の問題を解くために必要とされるスキルの習熟度(すなわち、閾値)と、学習者が有すると想定されるスキルの習熟度とを対応付けて出力する。問題Bの閾値についても同様である。
さらに、状態可視化部230は、学習者のスキルの状態の不確定度を合わせて出力する。図13は、結果を可視化する処理の例を示す説明図である。例えば、スキル1(整数の減法)に対する学習者のスキルの状態がz1
2と推定されており、ガウス分布におけるスキルの状態の分散±σが、それぞれ、z1
1およびz1
3であるとする。そして、図12における破線124の座標がz1
4と算出されたとする。このとき、状態可視化部230は、学習者のスキル1の習熟度を、σ(ai,1(z1
2-bi,1))/σ(ai,1(z1
4-bi,1))で算出する。
また、状態可視化部230は、ガウス分布で推定された学習者のスキルの状態を示す分布を用いて、そのガウス分布の分散を習熟度の不確定度として出力してもよい。具体的には、状態可視化部230は、不確定度の範囲を、σ(ai,1(z1
1-bi,1))/σ(ai,1(z1
4-bi,1))およびσ(ai,1(z1
3-bi,1))/σ(ai,1(z1
4-bi,1))で算出する。スキル2(絶対値)についても同様である。
このように、状態可視化部230は、閾値を1とした場合の、相対的なスキルの習熟度および不確定度を算出する。すなわち、状態可視化部230は、スキル名と関連付けて、閾値に対する現在の学習者のスキルの習熟度および不確定度を相対値で表現する。よって、学習者のスキルの過不足を、学習者が理解可能なスキル名に基づいて提示できる。さらに、状態可視化部230は、各スキルの不確定度を合わせて表現することで、学習者の納得感を向上させることも可能になる。
また、一般に、分析アルゴリズムによって出力される問題の難易度には単位がないため、難易度を示す値を見ただけでは、そのスキルの状態の程度を把握することが困難な場合がある。本実施形態では、状態可視化部230が、指定された時点において想定される学習者のスキルの習熟度と、対象とするグループ(例えば、ラベル付けされたグループ)に含まれる問題(例えば、A問題,B問題)を解くために必要とされるスキルの習熟度を示す閾値とを対応付けて可視化する。よって、問題提供者が指定するグループと、推定される難易度とが対応付けされるため、学習者のスキルの状況を把握しやすくなる。なお、グループ内の問題は1つであってもよく、複数であってもよい。
さらに、状態可視化部230は、指定されたスキルを必要とする問題の候補を、「お勧め問題」として出力してもよい。具体的には、状態可視化部230は、指定されたスキルを必要とする問題の候補を、図3に例示するような問題とその問題を解くために必要なスキルとを対応付けた表から特定してもよい。
図14は、お勧め問題の出力例を示す説明図である。図14に示す例では、状態可視化部230が、「通分」のスキルについて、そのスキルを必要とする問題の候補(お勧め問題:Q13、Q18、Q31、Q33)を、そのスキルを必要とする程度(すなわち、習熟度、難易度)に応じて順序付けて、想定される学習者のスキルと対応付けて出力していることを示す。
また、図14に例示するように、状態可視化部230は、学習者がマウスなどのポインティングデバイスでお勧め問題の番号をマウスオーバーした際、その番号に対応する問題を出力してもよい。
他にも、状態可視化部230は、不確定度を含むスキルの状態の変化を可視化してもよい。図15は、スキルの状態の変化を可視化した他の例を示す説明図である。状態可視化部230は、図15に例示するように、横軸に時間を設定し、縦軸にスキルの習熟度を設定した折れ線グラフで、不確定度の範囲331と共に、スキルの状態の変化を時系列に可視化してもよい。また、その際、状態可視化部230は、上記に示すようなラベル付けされた問題の境界線332を合わせて可視化してもよい。
また、状態可視化部230は、複数のスキルの状態の変化を可視化してもよい。図16は、スキルの状態の変化を可視化した更に他の例を示す説明図である。図16に示す例では、折れ線グラフ341で、複数のスキルの状態の推移をそれぞれ表わしている。また、学習実績との関係でスキルの推移を把握できるように、状態可視化部230は、図16に例示するように、各時点で解いた問題の正誤を棒グラフ342(例えば、正解なら上方向、不正解なら下方向)で可視化してもよい。
学習計画入力部210と、状態推定部220と、状態可視化部230とは、プログラム(可視化プログラム)に従って動作するコンピュータのプロセッサによって実現される。例えば、プログラムは、可視化装置200が備える記憶部(図示せず)に記憶され、ロセッサは、そのプログラムを読み込み、プログラムに従って、学習計画入力部210、状態推定部220および状態可視化部230として動作してもよい。学習計画入力部210、状態推定部220および状態可視化部230の機能がSaaS形式で提供されてもよい。
また、学習計画入力部210と、状態推定部220と、状態可視化部230とは、それぞれが専用のハードウェアで実現されていてもよい。また、各装置の各構成要素の一部又は全部は、汎用または専用の回路(circuitry )、プロセッサ等やこれらの組合せによって実現されてもよい。これらは、単一のチップによって構成されてもよいし、バスを介して接続される複数のチップによって構成されてもよい。各装置の各構成要素の一部又は全部は、上述した回路等とプログラムとの組合せによって実現されてもよい。
また、学習計画入力部210と、状態推定部220と、状態可視化部230の各構成要素の一部又は全部が複数の情報処理装置や回路等により実現される場合には、複数の情報処理装置や回路等は、集中配置されてもよいし、分散配置されてもよい。例えば、情報処理装置や回路等は、クライアントサーバシステム、クラウドコンピューティングシステム等、各々が通信ネットワークを介して接続される形態として実現されてもよい。
次に、本実施形態の可視化装置200の動作を説明する。図17は、本実施形態の可視化装置200の動作例を示すフローチャートである。学習計画入力部210は、学習計画の入力を受け付ける(ステップS21)。状態推定部220は、学習計画で設定された各問題を時系列に解いた場合の将来の各時点における学習者のスキルの状態を推定する(ステップS22)。そして、状態可視化部230は、推定された各時点における学習者のスキルの状態を可視化する(ステップS23)。なお、可視化の態様は、例えば、図7~図9、図13~図16に示す内容などである。
以上のように、本実施形態では、学習計画入力部210が、学習計画の入力を受け付け、状態推定部220が、学習計画で設定された各問題を時系列に解いた場合の将来の各時点における学習者のスキルの状態を推定する。そして、状態可視化部230は、推定された各時点における学習者のスキルの状態を可視化する。よって、学習者の長期的なスキルの変化を可視化できる。
次に、本発明の概要を説明する。図18は、本発明による学習装置の概要を示すブロック図である。本発明による学習装置80(例えば、学習装置100)は、学習者による学習の実績(学習実績)を用いた機械学習により、学習者のスキルの状態の時系列変化を表わすスキル状態列を生成する第一学習手段81(例えば、第一ナレッジモデル学習部31)と、学習者が学習に用いた問題の特徴を表わす問題特徴、学習者の特徴を表わすユーザ特徴、および、問題を解いた時間を表わす時間情報を説明変数とし、スキル状態列が表わす学習者のスキルの状態を目的変数とするモデルを学習する第二学習手段82(例えば、第二ナレッジモデル学習部32)とを備えている。
そのような構成により、長期的なスキルの変化を予測するモデルを学習できる。
また、第一学習手段81は、学習の実績が与えられたもとでの事後確率が最大になる状態をスキル状態列として生成してもよい。
他にも、第一学習手段81は、スキル状態列として時系列の予測確率のベクトルを生成してもよい。
また、第一学習手段81は、学習の実績として、学習者の特徴を表わすユーザ特徴に、問題とその問題の正誤とを対応付けた学習の実績を用いて機械学習を行ってもよい。そのような学習を行うことで、ユーザ特徴が類似するユーザのスキルの変化を、同様に予測できる。
また、第二学習手段82は、モデルとしてリカレントニューラルネットワーク(他にも、LSTM,GRUなど)を学習してもよい。
図19は、少なくとも1つの実施形態に係るコンピュータの構成を示す概略ブロック図である。コンピュータ1000は、プロセッサ1001、主記憶装置1002、補助記憶装置1003、インタフェース1004を備える。
上述の学習装置80は、コンピュータ1000に実装される。そして、上述した各処理部の動作は、プログラム(学習プログラム)の形式で補助記憶装置1003に記憶されている。プロセッサ1001は、プログラムを補助記憶装置1003から読み出して主記憶装置1002に展開し、当該プログラムに従って上記処理を実行する。
なお、少なくとも1つの実施形態において、補助記憶装置1003は、一時的でない有形の媒体の一例である。一時的でない有形の媒体の他の例としては、インタフェース1004を介して接続される磁気ディスク、光磁気ディスク、CD-ROM(Compact Disc Read-only memory )、DVD-ROM(Read-only memory)、半導体メモリ等が挙げられる。また、このプログラムが通信回線によってコンピュータ1000に配信される場合、配信を受けたコンピュータ1000が当該プログラムを主記憶装置1002に展開し、上記処理を実行してもよい。
また、当該プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、当該プログラムは、前述した機能を補助記憶装置1003に既に記憶されている他のプログラムとの組み合わせで実現するもの、いわゆる差分ファイル(差分プログラム)であってもよい。
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)学習者による学習の実績を用いた機械学習により、学習者のスキルの状態の時系列変化を表わすスキル状態列を生成する第一学習手段と、学習者が学習に用いた問題の特徴を表わす問題特徴、学習者の特徴を表わすユーザ特徴、および、前記問題を解いた時間を表わす時間情報を説明変数とし、前記スキル状態列が表わす学習者のスキルの状態を目的変数とするモデルを学習する第二学習手段とを備えたことを特徴とする学習装置。
(付記2)第一学習手段は、学習の実績が与えられたもとでの事後確率が最大になる状態をスキル状態列として生成する付記1記載の学習装置。
(付記3)第一学習手段は、スキル状態列として時系列の予測確率のベクトルを生成する付記1記載の学習装置。
(付記4)第一学習手段は、学習の実績として、学習者の特徴を表わすユーザ特徴に、問題と当該問題の正誤とを対応付けた学習の実績を用いて機械学習を行う付記1から付記3のうちのいずれか1つに記載の学習装置。
(付記5)第二学習手段は、モデルとしてリカレントニューラルネットワークを学習する付記1から付記4のうちのいずれか1つに記載の学習装置。
(付記6)コンピュータが、学習者による学習の実績を用いた機械学習により、学習者のスキルの状態の時系列変化を表わすスキル状態列を生成し、前記コンピュータが、学習者が学習に用いた問題の特徴を表わす問題特徴、学習者の特徴を表わすユーザ特徴、および、前記問題を解いた時間を表わす時間情報を説明変数とし、前記スキル状態列が表わす学習者のスキルの状態を目的変数とするモデルを学習することを特徴とする学習方法。
(付記7)コンピュータが、学習の実績が与えられたもとでの事後確率が最大になる状態をスキル状態列として生成する付記6記載の学習方法。
(付記8)コンピュータが、スキル状態列として時系列の予測確率のベクトルを生成する付記6記載の学習方法。
(付記9)コンピュータに、学習者による学習の実績を用いた機械学習により、学習者のスキルの状態の時系列変化を表わすスキル状態列を生成する第一学習処理、および、学習者が学習に用いた問題の特徴を表わす問題特徴、学習者の特徴を表わすユーザ特徴、および、前記問題を解いた時間を表わす時間情報を説明変数とし、前記スキル状態列が表わす学習者のスキルの状態を目的変数とするモデルを学習する第二学習処理を実行させるための学習プログラムを記憶するプログラム記憶媒体。
(付記10)コンピュータに、第一学習処理で、学習の実績が与えられたもとでの事後確率が最大になる状態をスキル状態列として生成させるための学習プログラムを記憶する付記9記載のプログラム記憶媒体。
(付記11)コンピュータに、第一学習処理で、スキル状態列として時系列の予測確率のベクトルを生成させるための学習プログラムを記憶する付記9記載のプログラム記憶媒体。
(付記12)コンピュータに、学習者による学習の実績を用いた機械学習により、学習者のスキルの状態の時系列変化を表わすスキル状態列を生成する第一学習処理、および、学習者が学習に用いた問題の特徴を表わす問題特徴、学習者の特徴を表わすユーザ特徴、および、前記問題を解いた時間を表わす時間情報を説明変数とし、前記スキル状態列が表わす学習者のスキルの状態を目的変数とするモデルを学習する第二学習処理を実行させるための学習プログラム。
(付記13)コンピュータに、第一学習処理で、学習の実績が与えられたもとでの事後確率が最大になる状態をスキル状態列として生成させる付記12記載の学習プログラム。
(付記14)コンピュータに、第一学習処理で、スキル状態列として時系列の予測確率のベクトルを生成させる付記12記載の学習プログラム。
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。