JSiSE Research Report
vol.38,no.3(2023-9)

習慣化支援システムにおける試行錯誤を支援するための推薦機能の提案とシミュレーション環境の構築
中村 丈太郎*1, 三好 康夫*1, 岡本 竜*1*1 高知大学大学院総合人間自然科学研究科

Proposal of recommendation functions and development of asimulation environment to support trial and error in habituation
support system
Jotaro NAKAMURA*1, Yasuo MIYOSHI*1 Ryo OKAMOTO*1*1 Graduate School of Integrated Arts and Sciences, Kochi University
我々が開発してきた習慣化支援システムでは，家族や友人等がチームを作り互いを励まし合うことでやる気の向上を図る．しかし習慣付けのためには自身に適した方法を試行錯誤し模索することも重要である．そこで本研究ではユーザのシステム利用履歴データからユーザの特性を推定し，特性に応じて取り組み方や工夫を推薦する機能の実装を目指す．本稿では利用履歴のダミーデータ生成等を行えるシミュレーション環境を中心に説明する．
キーワード: 習慣化支援，推薦，協調フィルタリング，シミュレーション，ダミーデータ

1. はじめに自身の習慣化したいことを「ワーク」として登録する

自己実現のための学習は継続して行うことが重要であり，そのためには学習の習慣化が求められる．近年，習慣化を支援するためのスマホアプリやシステム等が増えてきており，我々もユーザがチームを作り互いを励まし合うことでやる気の向上を図る習慣化支援システムの開発を行ってきた(1)．しかし，習慣付けのためには，励まし合うだけではなく，自身に適した取り組み方や工夫を試行錯誤し模索することも重要である．

ことができ，登録したワークに対してスケジュールを登録する．基本的には登録したスケジュールに基づくリマインダアプリとして動作し，予定を実施できたかどうかの実施結果を記録する機能を持つ．先行研究で開発したシステム(1)では，チーム内での予定実施率等のランキング，他のユーザの予定の確認やそれに対してのエールを送る機能がある．
2.2 試行錯誤の支援

そこで本研究では，ユーザの試行錯誤を支援するため，先行研究で開発したシステムで行われる習慣化のた

ユーザのシステム利用履歴データからユーザの特性をめの支援は身内のつながりによる励まし合いが中心で推定し，特性に応じて取り組み方や工夫を推薦する機あるが，本研究では，知らない人同士でのつながりを能の実装を目指す．

活かし，取り組み方や工夫を見つける試行錯誤の支援を行うことを目指す．そこで，ワークを遂行しやすく

2. 習慣化支援システム

なるよう試そうとしている「工夫」をワークと関連付

2.1 開発中のシステムの概要

けて登録できる機能を追加する．
（例えば，ユーザがワ

我々が現在開発中の習慣化支援システムは，スマホークとして「TOEIC の対策」を設定した場合の工夫にアプリとして実装している．ユーザはアプリを介しては，「参考書◯◯を使う」「図書館で勉強する」「気分転― 35 ―

換にラムネを食べる」等の例を挙げることができる．）

場合の効果の推定値 𝑠′# を導出できる．ユーザ 𝑢 が利用

そして，工夫を用いた時と用いなかった時の実施結したことのない工夫について，それぞれ効果の推定値

果（ワークの予定の実施率）の差分から工夫の効果をを求め，それを大きい順に並べれば，ユーザ 𝑢 に推薦視覚化できるようにする．また，他の（知らない）ユする工夫ランキングとなる．
なお，ユーザ 𝑢 が工夫 𝑠 を使った時の効果の値 𝑠# はーザが，どのような工夫を用いてどのような効果を得ているかを見て参考にすることもできる機能を実装す#$%&#'#$%&
𝑠# = 𝑃#$− 𝑃#$

ることにより，ユーザが自分に合った工夫を試行錯誤#$%&
はユーザ 𝑢 が工夫 𝑠を使った時のワーで求める．𝑃#$で見つける支援になると期待できる．

#'#$%&
は工夫を使っていない時のクの予定実施率で，𝑃#$実施率である．ただし，工夫を採用せずに実施したこ

3. ユーザに合った工夫の推薦アルゴリズムとがない場合の 𝑠# は 0 とし，工夫を採用したことがな

3.1 推薦のねらい

い場合の 𝑠# は未定義とする．

ユーザは，自分にとってワークが遂行しやすくなる
表 1 あるワークに取り組んでいる各ユーザの採用した工夫の効果（例）

工夫を試行錯誤で見つけるために，どの工夫から試すかを検討するために，システム上で他のユーザが試みた工夫を検索することが想定される．そこで本研究でユーザは工夫の推薦機能の実装を目的とする．ユーザと工夫Aの適応性を判断するにはユーザが抱えている問題や特B性を正しく把握することが重要になる．例えば，作業Cへのとりかかりが苦手な特性の人や，作業をやりきるDことが苦手な特性の人がいる．

工夫 (scheme)
s1

s2

s3

0.2

s4

s5

0.4
0.1

-0.3
-0.2

s7…

-0.1

-0.2
0.3

s6

-0.3

-0.2

0.1

-0.2

0.3

0…

そこで，このような苦手な特性を持つユーザに対し，そのユーザの抱える問題の解消に適した工夫を優先し3.3 ユーザの特性を考慮した推薦手法て推薦することを目指す．例えば，とりかかりが苦手前節で述べた協調フィルタリングによる工夫の推薦

な特性を持つユーザにはとりかかりやすくする工夫

ランキングは，ユーザの特性を考慮できていない．そ（環境を整える等）の推薦を優先し，とりかかれた後こで，特性が工夫の効果に与える影響度を推定し，そに役立つ工夫（気分転換にラムネを食べる等）の優先の影響度の大きさとユーザの持つその特性の強さによ度を下げるようにする．って工夫の効果の推定値を調整することにより，ユーザの特性に応じて推薦のランキングを変動させる手法

3.2 協調フィルタリングを提案する．以下に提案手法の概要を示す．

情報推薦手法として有名なものに，Resnick らによりアルゴリズムとして定式化された協調フィルタリン

特性 𝑐 が工夫 𝑠 の効果に与える影響度 𝛼$( は，次の式で定義する．

グ (collaborative filtering) がある(2) (3)．これはあるユ𝛼$( =ーザと類似した他のユーザの嗜好情報を参考にする手法で，Amazon の「おすすめの商品」等で実際に利用されている．本システムでも，基本的な推薦機能となるユーザに推薦する工夫ランキングの生成機能の実装に，協調フィルタリングを用いる．

, {−𝑐# ∙ (𝑠# − 𝑠)%*' )}#∈{-,/,… }ここで，𝑐# はユーザ 𝑢 の特性 𝑐 の特性値（特性の強さ）とする．ユーザがその特性を持たない（普通の場合）は 0 に近い値になる．その特性に関して他のユーザと比較して苦手であるほど小さな値（負数）になり，得ユーザがワークに取り組んだときの実施記録から，各工夫（表中では 𝑠! , 𝑠" , …と記載）の効果を表 1 のように記録しておくことで，協調フィルタリングを用いてユーザ 𝑢 が（使ったことのない）工夫 𝑠 を採用した意であるほど大きな値（正数）となる．
（特性値の分布は，標準正規分布に従うことを想定している．）また，
𝑠# はユーザ 𝑢 が工夫 𝑠 を使った時の効果であり，𝑠)%*'― 36 ―

は工夫 𝑠 の効果の全ユーザの平均値である．
（ここではータで持たせる．
（これらのパラメータ値はダミーデー

𝑠# が未定義の場合，𝑠# = 0 として扱う．）

タ生成時にランダムに決まる．）また，特性に関するパ

𝛼$( を用い，ユーザ 𝑢 の特性が工夫 𝑠 に与える影響度
𝛼#$ を次の式で定義する．
𝛼#$ =,ラメータもモデル化し，例えば 3 章で例示した「とりかかりが苦手」や「やりきることが苦手」といった特性もパラメータとして持たせる．これはユーザだけで−𝑐# 𝛼$(なく，ワークや工夫に対しても，それぞれの特性との(! ∈{(!! ,("! ,… }そして，次の式のように，ユーザ 𝑢 が工夫 𝑠 を使った「相性」をパラメータとして持たせる．

時の効果の推定値 𝑠′# に 𝛼#$ を加算すれば，ユーザ 𝑢 のさらに，ユーザ，ワーク，工夫に対し，シミュレー特性を考慮した効果の推定値を導出できたことになる．

ションによる実施結果の導出に必要となるパラメータ𝑠′# + 𝛼#$として，図 1 に示すように，いわゆるバイオリズムの以上の定義からわかるように，ユーザの特性が強いような「波」をそれぞれに持たせる．

（𝑐# が小さい）ほど，また特性と工夫の相性が良い（𝛼$(が大きい）ほど，影響度 𝛼#$ は大きい値となり，工夫の4.3 シミュレーション実行モジュール効果がより高いと推定される．そして，この推定値をダミーデータ生成モジュールで生成したダミーデー

前節と同様に高い順に並べたものが工夫のおすすめ順

タを入力として与え，シミュレーション期間を指定しのランキングとなるため，特性を持つユーザに対してて実行すると，本シミュレーション実行モジュールは特性に合った推薦を実現できるということになる．

ダミーユーザの行動をシミュレートする．
シミュレーションプログラムは node.js で動作して4. シミュレーション

おり，実施結果やその他の重要なデータはデータベースに記録している．また，必要な時系列データは Web

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

上で確認できるようにブラウザからアクセスすると各データがグラフで確認できるようにした．
ダミーユーザが予定を実施するかどうかの決定には，再現性を確保するため，乱数を用いず 4.2 節で述べた「波」を用いる．図 1 のように予定時刻のユーザとワークの波の高さの差（高低差）を求め，波の高低差が小さいと良い結果を出し，高低差が大きいと悪い結果を出す．またユーザとワーク間の波の高低差が大きい
場合でもユーザと工夫の波の高低差が非常に小さい状態であれば，実施結果が悪くならないような補正も加える．その他にも特性値やモチベーションも実施結果に影響を及ぼす．例えばやりきる特性が高い人は予定を開始すると高確率で予定の終了までできるようになり，モチベーションの高い・低いによっても実施結果4.2 ダミーデータ生成モジュール
ユーザ，ワーク，工夫のデータモデルを定義し，そが左右される．

れぞれ指定した数のダミーデータを生成する．データ

これらの波や特性値，モチベーションを用いること

モデルはそれぞれの個性をパラメータで表せるようにで単純な実施結果ではなく現実味のあるデータを生成したもので，例えばユーザのデータモデルであれば，することができると考える．現在，図 2 のように，ユ初期モチベーション，ワークや工夫を振り返る間隔，ーザのほとんどが最初はうまくいっているが途中からワークを見直すしきい値（どの程度うまくいかなかっ継続できなくなってくるようなシミュレーションデーたら変更するか），工夫を見直すしきい値などをパラメタの生成を目指してシミュレータの開発を進めている．

― 37 ―

かどうかを検証し，推薦アルゴリズムの有用性を評価する．
(2) ユーザ 𝑢 の特性 𝑐 の特性値（特性の強さ）𝑐# と，特性 𝑐 が工夫 𝑠 の効果に与える影響度 𝛼$( の推定精度を評価するため，ダミーデータ生成モジュールで生成したパラメータ（正解値）と比較する．
図16. おわりにユーザが習慣付けたいワークの波とそのユーザの波

本稿では，習慣化支援システムにおける試行錯誤を支援するための推薦機能の提案とシミュレーション環境の構築について述べた．推薦機能については，協調フィルタリングと併用する手法として，ユーザの特性を推定し，特性に応じて推薦する工夫の順位を変動させる手法を提案した．開発中のシミュレーション環境
では，ユーザの習慣付けの様子を波，特性やモチベーションのパラメータを用いて現実味のあるシステム利用データを生成することにおおよそ成功している．今後は，提案した推薦アルゴリズムを推薦機能として実図2装し，シミュレーション環境に組み込み，5 章で述べ予定の実施件数とモチベーションの推移た方法で推薦アルゴリズムの評価を行いたい．

5. シミュレーション環境での推薦アルゴリ
ズムの評価

謝辞
本研究は JSPS 科研費 JP23K02660 の助成を受け4 章で述べたシミュレーション環境では指定した期間のダミーユーザの習慣付けの様子をシミュレートすたものです．

る．指定された期間まで日付を 1 日ごとに進め，ユー参 考 文 献

ザごとに予定立てや予定の実施を繰り返していく．
シミュレーション環境に 3 章で提案した推薦機能を(1) 植野優希, 三好康夫: “習慣化支援システムの設計に向組み込むことで，ダミーユーザが工夫を見直す際に工けた強い紐帯と弱い紐帯の特性に関する考察” 2019 年

夫の推薦がされる．まずは，推薦機能なしでシミュレ

度 JSiSE 学生研究発表会，pp.211-212 (2020)ーションを実行し，ダミーの実施結果記録を大量に生(2) P. Resnick, N. Iacovou, M. Suchak, P. Bergstrom andJ. Riedl: “GroupLens: An Open Architecture for成する．この記録を元に推薦機能（協調フィルタリン

Collaborative Filtering of Netnews” Proc. of the 1994

グ）に必要な表 1 を生成することで，コールドスター

ACM Conference on Computer Supported Cooperativeト問題を解決して推薦機能の評価を（シミュレーション環境下ではあるが）行うことができる．

Work, pp.175-186 (1994)(3) 土方嘉徳:“利用者の好みをとらえ活かす －嗜好抽出技

以下に，現在検討中の評価手順をいくつか紹介する．

術の最前線－: 1. 嗜好抽出・情報推薦の基礎理論 1) 嗜(1) 推薦機能を使わない（ダミーユーザが採用する工好抽出と情報推薦技術” 情報処理学会学会誌, Vol.48,

夫を波などから決めるように動作する）時と比較して，推薦機能を有効にする（ダミーユーザが推薦された工夫を必ず採用するように動作する）と，ダミーユーザのワークの実施率が全体的に向上する― 38 ―

No.9, pp.957-965 (2007)