四国地区

教育システム情報学会 2022年度学生研究発表会

習慣化支援システムにおける試行錯誤を支援するための推薦機能の実装に向けた開発環境の構築
Development environment for implementation of recommendation function
to support trial and error in habituation support system
中村 丈太郎*1, 三好 康夫*1, 岡本 竜*1
Jotaro NAKAMURA*1, Yasuo MIYOSHI*1 Ryo OKAMOTO*1*1 高知大学大学院総合人間自然科学研究科*1 Graduate School of Integrated Arts and Sciences, Kochi University
Email: b22m6g34@s.kochi-u.ac.jp, {miyoshi,ryooka}@is.kochi-u.ac.jp
あらまし：我々がこれまで開発してきた習慣化支援システムでは，家族や友人等がチームを作り互いを励まし合うことでやる気の向上を図ってきた．ユーザの特性や習慣付けたいことに合った取り組み方や工夫を見つける試行錯誤を支援するため，本研究では，工夫を推薦する機能の実装を目指す．本稿では，推薦に必要なユーザの活動データの概要と，現在開発中の推薦アルゴリズムのテスト環境について述べる．
キーワード：習慣化支援，推薦，協調フィルタリング，シミュレーション

1.

はじめに

自己実現のための学習には，習慣化が重要であり，習慣化を支援するためのスマホアプリやシステム等が近年増えてきている．我々もユーザがチームを作り互いを励まし合うことでやる気の向上を図る習慣化支援システムの開発を行ってきた(1)．しかし，本システムはユーザが何を習慣付けようとしているかを考慮しないため，単調な励ましだけになってしまっている．そこで本研究では，ユーザが自分に合った取り組み方や工夫を見つける試行錯誤を支援するため，習慣化のための工夫を推薦する機能の実装を目指す．

2.

習慣化支援システム

2.1 現行のシステムの概要
我々が開発した習慣化支援システム (1)では，他ユーザとチームを作成し励まし合うことで動機づけを行い習慣化の支援を行う．ユーザはアプリを介して自身の習慣化したいことを「ワーク」として登録することができ，登録したワークに対してスケジュールを登録する．そして予定を実施できたかどうかの実施結果を報告する．チーム内での予定実施率等のランキング，他のユーザの予定の確認やそれに対してのエールを送る機能がある．
2.2 取り組み方や工夫を見つける試行錯誤の支援
現行のシステムで行われる支援は身内のつながりによる励まし合いによるもののみであるが，本研究では，知らない人同士でのつながりを活かし，取り組み方や工夫を見つける試行錯誤の支援を行うことを目指す．そこで，ワークの実施予定を登録する際に，ワークを確実に遂行できるよう試そうとしている「工夫」を予定と関連付けて登録できるようにする．これにより，実施結果から工夫の効果が視覚化できるようになる．また，自分と近いワークを習慣付けようとしている他の（知らない）ユーザが，どのような工夫を用いて試行錯誤しているかを参考にすることもできるようになると期待できる．

3.

推薦機能

3.1 どのような推薦を行うか
例えばユーザがワークとして「TOEIC の対策」を設定した場合，ワークを習慣化するための工夫として「参考書 A を使う」「図書館で勉強する」「（気分転換として）ラムネを食べる」等が挙げられ，ユーザによって予定と関連付けて登録される．ユーザはワークの予定を立てる際に，どのような工夫を試そうかを検討し，他ユーザの取り組みを参照するために検索することが想定される．そこでシステムに工夫の推薦機能を実装することを目標とする．推薦手法としては，協調フィルタリング(2)のように嗜好に基づくものではなく，「ユーザにはどの工夫が向いているのか？」を判断し最も適切な工夫を推薦することを目指す．ユーザに向いているかどうかを判断するにはユーザが抱えている問題や特性を正しく把握することが重要になる．例えば，作業へのとりかかりが苦手な特性の人や，作業をやりきることが苦手な特性の人がいる．前者と後者では推薦すべき工夫が異なる．前者ではとりかかりやすくする工夫（環境を整える等）を推薦し後者ではやりきりやすくする工夫（参考書を変える，合間に気分転換をする等）を推薦するべきである．
3.2 特性に基づく推薦アルゴリズム
利用者数が多い工夫やワークの実施率が高い工夫のランキングによる推薦は，容易に実装可能である．
また，システム内に蓄積されたユーザの実施結果の登録履歴から，ユーザごとの特性を推定することができれば，特性ごとにフィルタリングされたランキングを求めることができる．特性の推定については，

227

四国地区

教育システム情報学会 2022年度学生研究発表会“とりかかる”，“やりきる”のような例であれば容易に実装可能であると考えている．例えば，ユーザの実施結果のほとんどが「開始時刻になっても開始ボタンを押さない」であれば，そのユーザは始める動作が苦手な「とりかかることが苦手な特性」を持つと推測でき，「開始はしたが終了時刻になっても終了ボタンを押さない」履歴が多いユーザは「やりきることが苦手な特性」と推測できる．
工夫がユーザの特性に合っているかどうかについても，システム内に蓄積されたユーザの実施結果の登録履歴から推定する．例えば，とりかかりが苦手と推定されたユーザのみの実施結果履歴から実施率の高い工夫のランキングを生成すれば，その上位の工夫がその特性に合った工夫ということになる．

4.

ールはダミーユーザの行動をシミュレートする．本
稿では紙面の都合上，ダミーユーザが予定を実施したかをシミュレーションでどのように決定するかについてのみ説明する．
ダミーユーザが予定を実施するかどうかの決定には，再現性を確保するため，乱数を用いず 4.1 節で述べた「波」を用いる．図 1 のように予定実施時のユーザとワークの波の高さの差（高低差）を求め，波の高低差が小さいと良い結果を出し，高低差が大きいと悪い結果を出す．また図 2 のようにユーザとワーク間の波の高低差が大きい場合でもユーザと工夫の波の高低差が非常に小さい状態であれば，実施結果が悪くならないような補正も加える．この「波」を用いることで単純な実施結果ではなく現実味のあるデータを生成することができると考える．

推薦機能のテストシミュレーション環境

前章で提案した推薦を行うには，ユーザがこれまでにどのようなワークでどのような工夫を用いて試行錯誤してきたのかが大量に記録されていなければならない．これは，協調フィルタリングにも存在するコールドスタート問題(2)である．本研究では，推薦アルゴリズムの動作確認を行うため，シミュレーションによりダミーの実施結果記録を生成する．これにより，シミュレーションにより生成したダミーデータのユーザに対し，推薦アルゴリズムに工夫を推薦させ，その推薦精度の評価・検証を行いたい．
現在開発中のシミュレーション環境は，ダミーデータ生成モジュールとシミュレーション実行モジュールから構成される．以下にその概要を示す．

図 1 ユーザが習慣付けたいワークの波とそのユーザの波

4.1 ダミーデータ生成モジュール
図 2 ワークを実施する際に試そうとしている工夫の波による実施結果の補正イメージ

ユーザ，ワーク，工夫のデータモデルを定義し，それぞれ指定した数のダミーデータを生成する．データモデルはそれぞれの個性をパラメータで表せるようにしたもので，例えばユーザのデータモデルであれば，初期モチベーション，ワークや工夫を振り返る間隔，ワークを見直すしきい値（どの程度うまくいかなかったら変更するか），工夫を見直すしきい値などをパラメータで持たせる．
（これらのパラメータ値はダミーデータ生成時にランダムに決まる．
）また，特性に関するパラメータもモデル化し，例えば3 章で例示した「とりかかりが苦手」や「やりきることが苦手」といった特性もパラメータとして持たせる．これはユーザだけでなく，ワークや工夫に対しても，それぞれの特性との「相性」をパラメータとして持たせる．
さらに，ユーザ，ワーク，工夫に対し，シミュレーションによる実施結果の導出に必要となるパラメータとして，図 1 に示すように，いわゆるバイオリズムのような「波」をそれぞれに持たせる．

5.

おわりに

本稿では，習慣化支援システムにおける試行錯誤を支援するための推薦機能の実装に向け，推薦の概要の説明とテストシミュレーション環境について述
べた．推薦機能については，ユーザの特性に基づく推薦手法を提案し，シミュレーション環境については，「波」をパラメータとして持たせることで再現性を確保することができた．今後は，シミュレーション結果をグラフ等で可視化できるようにすることや，推薦機能を実装し，実際にテストシミュレーションを実施することを予定している．
参考文献(1) 植野優希, 三好康夫: “習慣化支援システムの設計に向 け た 強い 紐 帯 と弱 い 紐帯の 特 性 に関 す る考 察 ”
2019 年度 JSiSE 学生研究発表会，pp.211-212 (2020)(2) 土方嘉徳:“利用者の好みをとらえ活かす －嗜好抽出技術の最前線－: 1. 嗜好抽出・情報推薦の基礎理論
1) 嗜好抽出と情報推薦技術” 情報処理学会学会誌,
Vol.48, No.9, pp.957-965 (2007)

4.2 シミュレーション実行モジュール
ダミーデータ生成モジュールで生成したダミーデータを入力として与え，シミュレーション期間を指定して実行すると，本シミュレーション実行モジュ228