トピックアウトライン
はじめに
- Moodle(オープンソースLMS)の標準機能「アナリティクス」
- 学習履歴データの分析だけでなく、「診断」と「処方箋」を提供
- 独自の分析モデルを導入することも容易
- 機械学習により、学習者活動を予測することも可能
- 学習者の生理指標(脳波、呼吸など)から、高い精度で心的状態推定を行うことが可能に
この発表では- Moodleアナリティクスの独自開発モデル(指標、ターゲット)と、心的状態推定システムとの連携
- 学習者行動の予測に基づくプロアクティブな(評価結果が確定した後ではなく、先回りしたタイミングでの)指導や介入を可能にする仕組み
Moodle(ムードル)
国内大学でトップのシェアを持ち(https://axies.jp/report/ict_survey/ の2017年度調査結果)、世界230カ国に1億人超のユーザがいると推定されるオープンソースLMS(Learning Management System)。オンライン教育を実施するためのプラットフォームとして代表的なものの一つ。GPLでの配布。
Moodleアナリティクスのモデル作成について
- Moodle 3.9 (LTS)以降で標準的に同梱されているアナリティクスのモデルは、以下の5つ:
- まだコースにアクセスしていない学生
- リスクのあるコース未開始
- 最近コースにアクセスしてない学生
- 脱落リスクのある学生
- 直近の活動期限
- 「脱落リスクのある学生」は機械学習による推定を行うターゲットであるが、それ以外の4つはすべて、静的なモデル、つまり曖昧さを伴わずMoodle内のデータそのものから検知できるターゲット。
- Moodle 3.9 (LTS)以降で標準的に同梱されているアナリティクスのモデルは、以下の5つ:
- モデルには、
- 指標(予測に用いる独立変数)
- ターゲット(予測しようとしている結果)
- 洞察(予測結果そのもの)
- 通知(洞察の結果として送信されるメッセージ)
- アクション(メッセージの受信者に提供される)
- モデルには、
- 標準以外のモデルを用いたい場合は、Moodleの「サイト管理/アナリティクス/分析モデル」の画面上の「新しいモデル」メニュー内の「モデルを作成する」の画面上で、独自のモデルを構成する
- 学習者の心的状態など、外部データをモデルの指標として選択することができるようにするには、まず、外部データをMoodleに取り込むプラグイン(活動モジュール等)を作成してインストール (Moodle plugin skeleton generator を利用するとよい)
- 新たな「指標」の作成:そのプラグインに付随するクラスとして、classes/analytics/indicator/の下に、\core_analytics\local\indicator\binary(-1か1を返す場合)を継承したクラスを定義したり、\core_analytics\local\indicator\linear(-1.0から1.0までの値を返す場合)を継承したクラスを定義する
- 新たな「ターゲット」の作成: classes/analytics/target/の下に、例えば、course_enrolments\binary(コースに登録されたユーザを対象とする場合)などを継承したクラスを定義し、calculate_sample()等の定義を行う
- 下図は、「モデルを作成する」の画面上で、「Mentalstate of the user is negative」という独自に作成したターゲットを選択し、「Mental state positive/negative」という独自に作成した指標を選んだ場合の例:
なお、モデルを作成する画面では、静的なターゲットは選択肢として現れない。
独自に作成した静的なターゲットも選ぶことができるようにするには、
admin/tool/analytics/createmodel.phpにおいて、// Static targets are not editable, we discard them. $targets = array_filter(\core_analytics\manager::get_all_targets(), function($target) { return (!$target->based_on_assumptions()); });
の箇所を見つけ、
$targets = array_filter(\core_analytics\manager::get_all_targets(), function($target) { return (true); });
に変更すればよい。
生体情報からの心的状態推定
被験者: 個別指導塾の教師1名と、そこに通う生徒1名
- 通常通り授業を受講する生徒の生体情報(容積脈波、呼吸、皮膚コンダクタンス、 脳血流、脳波)を計測。
- 心的状態は9種類(Enjoy, Hope, Pride, Anger, Anxiety, Shame, Hopelessness, Boredom, Relief)のカテゴリを設定。
- 生徒は後日、授業時のビデオを見ながら、場面場面で自分がどの心的状態であったかを内省報告
- 教師は実験後に、授業時のビデオを見ながら、生徒の心的状態を予測
結果:生徒による内省報告と教師による予測との一致率は、9感情において24%
機械学習による分析: 学習者の生体情報と心的状態との対応づけ
-
結果:生体情報から心的状態を推定できた精度は76%
- 人間による予測精度を大きく超える
- 機械学習に用いたNNのパラメータ等は以下の通り:
- 入力:教師発話、生徒の皮膚コンダクタンス、呼吸、容積脈波、NIRS
- 出力:生徒の心的状態(上記の9カテゴリ)
- ネットワーク構造は入力層・中間層(4層)・出力層の6層からなる多層パーセプトロン
- 中間層のユニット数は探索的に、中間層1層目のユニット数を69、2層目を89、3層目を80、4層目を69とした
- Python3.5、Tensorflowで深層学習を実装しそれぞれの写像関係に関する学習を70000回
- 活性化関数は、中間層ではtanh関数を、出力層ではソフトマックス関数
- 損失関数にはクロスエントロピー誤差関数、オプティマイザーにはGradient Descent(最急降下法)を用いた。学習率は0.08
- データ全体の6割を学習データ、4割を評価データとして交差検定を10回行った
-
モックアップ実験の実施
- 教師役1名と生徒役1名での対面の授業で、学習者の心的状態予測の結果を教師にリアルタイムで提示
- 視認性を考慮して、提示した結果は以下の2種類の情報のみ:
- Positive(Enjoy, Hope, Pride, Relief の程度の合計値)
- Negative(Anger, Anxiety, Shame, Hopelessness, Boredom の程度の合計値)
- 教師が教授行為に変化を加えることにつながるかどうか ⇒ 有効性が示唆された
心的状態予測の結果をリアルタイムで提示するモックアップ実験
学習者の心的状態推定を加味する
- 心的状態推定結果のデータは、Moodleとは別サーバ上に置かれており、それをMoodleアナリティクスに導入するためには、専用のMoodleプラグインが定期的にプルしてMoodleサーバ内に取り込む必要がある
- 計測機器を用いずに、学習者の書き込みや提出したファイル等のMoodle等のLMS上でのに標準的に記録された文章に基づいて、学習者の心的状態を表した数値を得る方法も
- 例えば、Google Cloud Natural Language APIのdocuments:analyzeSentiment を用いれば、当該文章に対する感情分析の結果として-1.0 (Negative)から1.0 (Positive)までの値が得られる
- Moodleのフォーラムでの投稿データや、課題提出のオンラインテキストデータに対する感情分析の値を、Moodleアナリティクスでの指標として用いることもできる
予測が実施されるタイミング
- Moodleアナリティクスの洞察(予測結果)が得られるタイミングは、実時間ではなく、数日毎、1ヶ月毎、などの時間間隔が通例用いられている
- Moodleアナリティクスを実時間での予測ができるように改変することも考え得るが、Moodleサイトの規模が大きい場合は、予測結果を算出する負荷が大きくなるため、1日毎、1週間毎などの頻度での判定でも意味のある(教師から学習者への)フィードバックを行うことが現実的な運用方法だと思われる
- 予測を行うタイミングは、「分析間隔」によって指定できる。
- 「分析間隔」は、洞察を生成するためにモデルを実行する頻度と、各生成サイクルに含まれる情報の量を制御する
- 例えば、「過去3日間」を選んだ場合は、3日毎に繰り返し予測が行われ、洞察が更新される
学習者を支援するための連絡手段
- Moodleアナリティクスの「洞察」の画面で、教師が各学習者に対して必要な学習支援を適宜行うことが可能
- 例えば下図のように、予測結果に基づき、該当する学生のリストが表示される
- チェックを入れ選択し 「メッセージを送信する」をクリックして、(学習者の様子を尋ねる等の)メッセージを該当者に送信可能
洞察
- (前回のALST91での資料もご参照を)
- 洞察(推定結果)が生成されたタイミングで、自動的に、教師や学習者に通知メッセージを送ることも可能
- 通知メッセージが届くと、画面の上部に赤色マーカーが表示
- 同じ内容の電子メールがユーザ宛に送信
アナリティクスモデルからの通知の例1
アナリティクスモデルからの通知の例2
おわりに
- Moodleアナリティクスは、Moodleに備えられた標準的な機能で、かつ、独自のモデルも導入可能な柔軟性を持つ
- 今後、心的状態の推定結果も加味した、様々な推定モデルを構築することを検討中:
- 学習意欲低下や学習を中止するリスクを推定するモデル
- (知識やスキルだけではなく)「態度」が学習されているかどうかを推定するモデル
- 「態度」 = 「実際に行動(例えば、危険防止行動)を行う気持ち」があるか
- 自律的にさらに学習を継続しそうか
- その推定結果に基づき、適度な頻度と適度な強さで、各学習者毎に必要な働きかけを先回りして行う学習支援システムの実現を目指す
参考文献
- [1] 喜多敏博, 松居辰則 : Moodleアナリティクスの学習者支援機能とその拡張可能性, 人工知能学会 第91回 先進的学習科学と工学研究会 (SIG-ALST) 資料 (2021)
- [2] 喜多 敏博(代表者):「教育で防ぎ得た重大事故を防ぐ能動的LMSを軸とする安全教育システムの実現」ウェブサイト https://kmkst.cica.jp/
- [3] Moodle.org : Moodle - Open-source learning platform https://moodle.org/
- [4] MoodleDocs :アナリティクス https://docs.moodle.org/3x/ja/アナリティクス
- [5] MoodleDocs :アナリティクスAPI (Dev docs) https://docs.moodle.org/3x/ja/アナリティクスAPI (Dev docs)
- [6] 宇野達朗, 田和辻可昌, 松居辰則 : 機械学習を用いた生体情報からの学習者の心的状態のリアルタイム推定と学習支援の試み, 第43回教育システム情報学会全国大会2018年9月5日, SP-1 (2018)
- [7] Google : 感情分析 Cloud Natural Language API https://cloud.google.com/natural-language/docs/analyzing-sentiment
- [8] MoodleDocs :アナリティクスの使用 https://docs.moodle.org/3x/ja/アナリティクスの使用