トピックアウトライン
はじめに
- 多様な事故が世界中で起きているが、安全教育を行うことが事故防止の非常に有効な手段。特に「態度」(分かっているけどしない、をなくする)の学習。
- 2017年11月にリリースされた Moodle3.4で導入された新機能「アナリティクス」は、オープンソースの次世代学習分析機能となることを志向しており、単に学習履歴データの傾向を分析するだけでなく、学習者や教師に対して診断と処方箋を提供することを目的とする。
- Moodleアナリティクスの API を用いて独自の分析モデルを導入することも容易で、様々な教育実践を通じて集められた学習履歴データを機械学習により学習し、学習者活動を予測可能。
- 学習者の学習ログや生体情報から心的状態を推定しLMS が学習者に与える情報の最適化することを念頭におき、Moodle アナリティクスの基本的な機能と拡張可能性について基礎的な検討を行った。
Moodle(ムードル)
国内大学でトップのシェアを持ち(https://axies.jp/ja/ict の2015年度調査結果)、世界230カ国に1億人超のユーザがいると推定されるオープンソースLMS(Learning Management System)。オンライン教育を実施するためのプラットフォームとして代表的なものの一つ。GPLでの配布。
Moodle アナリティクスの利用方法
図1: サイト管理/アナリティクス
標準的に準備されているモデル
図2: 標準的に準備されているモデル- モデルには、
- 指標(予測に用いる独立変数)
- ターゲット(予測しようとしている結果)
- 洞察(予測結果そのもの)
- 通知(洞察の結果として送信されるメッセージ)
- アクション(メッセージの受信者に提供される)
- 「まだコースにアクセスしていない学生」は、コースを開講しているが、1 回もアクセスしていない学生が誰なのかを知ることができる。
- 「リスクのあるコース未開始」は、例えば、あと一週間でコースが開始する時期なのにまだ何にもコンテンツを作ってない状況を検知するものである。つまり、学生の状況を知るのではなく、教師が準備を何もして ない危惧すべきコースがあることを知るためのモデルである。
- 「最近コースにアクセスしてない学生」は、今までにアクセスはしたが、過去1か月に1回もアクセスしていないような学生がいる場合に検知できる。
- 「脱落リスクのある学生」は、Community of Inquiry (探求コミュニティ) モデルに基づき、学生のコースでの活動状況から、Moodle コースを修了しない(脱落する)リスクのある学生を予測する。「脱落する」の定義は、「コースの最後の四半期に活動がない」こと。
- モデルには、
モデルでの操作
- 図3: モデルの洞察でコース名を選択
図4: 洞察
図5: 洞察でユーザを選択
図6: 選択したユーザにメッセージ送信
図8: 洞察レポートを選ぶ
図9: 洞察レポート
機械学習ベースのモデルに対する操作
- 「脱落リスクのある学生」のように、機械学習の処理を伴うモデルは、システムに大きな負荷をかけることがあるため、初期設定では、無効になっている。
- 有効にする際に、「分析間隔」を指定する。
- 「分析間隔」は、洞察を生成するためにモデルを実行する頻度と、各生成サイクルに含まれる情報の量を制御するパラメータ。
- 例えば、「前のすべての4分割」(All previous quarters)を選んだ場合は、コースの開始日から終了日まで (例えば半年間)を4つに割って、第1クォーター、第2クォーター、第3クォーター、第4クォーターに分けて、それぞれの期間で学生がどういう頻度で、どの活動をしたかなどのデータを(時々刻々のデータではなく)クォーターの単位で集計して推定に使うことになる。
- 適切と思われる「分析間隔」を指定し、モデルを有効したら、その後にアナリティクスの定期処理(通例、1日に1回)が行われた段階で、洞察が生成され、教師が学習者サポートに利用できるようになる。
モデルの作成
図10: モデルを作成する- ターゲット(何を予測したいか)、指標(どのデータに基づいてい予測するか)、分析間隔などを選択肢から選んで、自分のモデルを作ることができる。
- 選択肢に存在しないターゲットや指標を用いたいときは、アナリティクス API に準拠して別途コーディングする必要がある。
モデルのエスクポートとインポート
- 機械学習によりトレーニングして構築したモデルは、 ファイルにエクスポートすることが可能である。
- それを別のMoodle サイトにインポートして、すぐに(モ デルをトレーニングする手間もなく)予測に利用することができる。
Python 機械学習バックエンド
- 標準では、予測プロセッサ(モデルの推定を行うサブシステム)として、「PHP 機械学習バックエンド」のみが選択可能。
- 必要な Python パッケージ等をインストールすれば、「Python 機械学習バックエンド」も選択可能となる。
- Moodle 機械学習バックエンドの Python モジュール のインストールは、依存関係のせいで失敗することもある。以下の OS について、それぞれ以下のコマンドを実行した場合には、Moodle 機械学習バックエンドの Python モジュールがインストールできる。
Ubuntu 18.04 の場合:apt install python3-pip
pip3 install "moodlemlbackend==2.3.*"CentOS 7 の場合:yum install python3-devel
pip3 install "moodlemlbackend==2.3.*"
CLI コマンド実行の方法
- アナリティクスの処理は、CLI コマンドではなく、ウェブインターフェイスでも実行可能だが、実際に運用している Moodle で多くの ユーザやコースがある場合では、計算負荷や計算時間が大きくなりすぎる恐れがあるため、いつでも実行停止できるコマンドラインでの実行が無難。
外部ログの入力のための拡張
- Moodle 外の学習者ログ等の外部データは、ウェブインターフェイスでのモデル作成の方法では、指標の選択肢として当然表示されないので、Moodle アナリティクスモデルの指標として用いることができない
- Moodle のアナリティ クス API は、元々拡張性を考慮して設計されており、外部データを扱うことができるようにコーディン グすることも比較的容易である。
外部データを指標として選択できるようにするには:- まず、外部データを Moodle に取り込むプラ グイン(活動モジュール等)を開発。
- その上で、そ のプラグインに付随するクラス定義の一部として、
- 指標については classes/analytics/indicator/ の下に、
- ターゲットについては classes/analytics/target/ の下に、
- calculate_sample() 等の定義を書いたファイルを設置。
- アナリティクス API は、指定された名前空間の規則に従っている限り、各プラグインでの指標やターゲットの定義を見つけることができ、洞察の結果を得るのにそれらを利用することができるようになる。
むすび
- Moodle アナリティクスは、Moodle の利用者であれ ば誰でも活用できるアナリティクスの仕組み。
- その分析結果に基づき、教員が学習者支援のアクションを起こしやすい設計となっているため、有用性が高い。
- Moodle 管理者が独自モデルも簡単に作成でき、API を利用しての開発も可能であり、拡張性も確保されている。
- 今後、実際に Moodle 外部のデー タも入力とするアナリティクスモデルを開発し、学習者状態を推定するテストを行う予定。
参考文献
- [1] Moodle.org : Moodle - Open-source learning platform, https://moodle.org/
- [2] 喜多 敏博(代表者) : 「教育で防ぎ得た重大事故を防ぐ能動的LMSを軸とする安全教育システムの実現」ウェブサイト, https://kmkst.cica.jp/
- [3] MoodleDocs : アナリティクス, https://docs.moodle.org/3x/ja/アナリティクス
- [4] MoodleDocs : 脱落リスクのある学生, https://docs.moodle.org/3x/ja/脱落リスクのある学生
- [5] MoodleDocs : アナリティクスの使用, https://docs.moodle.org/3x/ja/アナリティクスの使用
- [6] MoodleDocs : アナリティクスの設定, https://docs.moodle.org/3x/ja/アナリティクスの設定
- [7] MoodleDocs : Analytics API, https://docs.moodle.org/dev/Analytics API
- [8] MoodleDocs : アナリティクス API (Dev docs), https://docs.moodle.org/3x/ja/アナリティクスAPI (Dev docs)