介護現場における商品のレコメンド手法の提案岡田 翔子

1(指導教員：工藤和恵)

はじめにが望ましいとする。ポッツモデルでは、各頂点が 3 つ以上の状態のうち 1 つの状態をとる。強磁性の場合、隣接する頂点が同じ状態である組み合わせが多いほど、エネルギーが小さくなる。

介護現場では介護商品以外でも日用雑貨などを工夫して役立てられる場合があるが、それらの商品を探すことは容易ではない。そのような情報を手に入れるには、似たような症状を持つ人に相談するといった方法があるが、身近にそのような人がいない場合、情報を手に入れるのは困難である。そこでユーザ (サイト使用者) が自分が良いと思っている商品を投稿し、他の人が良いと思っている商品を閲覧できる図 1 のような SNSサイトを考案する。SNS サイトでは知人同士の交流が活発になることもあるが、ここでは、知人かどうかは関係なく、ある商品を投稿したユーザに症状が似ている人に、その商品をレコメンドする。本研究ではそのようなアルゴリズムを作ることで商品検索を容易にすることを目的とする。また、症状が似ているかどうかの判別には身体レベルの指標となる ADL(activities ofdaily living:日常生活動作) を用いて、「歩行」や「食事」といった各カテゴリーで、ユーザの身体レベルを1 から 6 の 6 段階に分け、コミュニティ検出を行うことで症状が似ているか判断する。ここでは 1 に近づくほど自立ができ、6 に近づくほど寝たきりに近い状態を想定している。

図 2: ネットワークとコミュニティ分割の例。頂点は人を表し、各頂点は ADL による身体レベルの情報を持つ。辺は両端の頂点の ADL を元に重みづけされる。

3モデル

本研究における強磁性ポッツモデルのエネルギーを次のように定義する [1]。

E= −Jij∑

maxNCMδci ,cj + γ(i,j)

Jij

c=12(1)1
1 + |wi − wj |ここで、Jij > 0, γ > 0 とし、i, j を頂点とした。
頂点 i, j は ADL による 6 段階の身体レベル wi , wj の情報を持っている。Jij は i, j を結ぶ辺の重みであり、wi , wj に依存する。c は各頂点が含まれるコミュニティの番号であり、ci , cj は頂点 i, j の属するコミュニティ
max番号である。また NCMはコミュニティ数の最大値であり、それなりに大きい値をあらかじめ与えておく。
Sc はコミュニティc に含まれる頂点数であり、コミュニティの大きさを表している。
第１項では、ci = cj ならば δci ,cj = 1、ci ̸= cj な
らば δci ,cj = 0 である。つまり、結ばれた頂点同士が同じコミュニティに属するとき、wi , wj に依存して、辺には −Jij の重みがつき、違うコミュニティに属する場合は０となる。よって、隣接する頂点の状態 (所属するコミュニティ) が同じである組み合わせが多いほどエネルギーが下がるようになっている。つまりこの項だけであれば、コミュニティの数が少ない程エネルギーが下がり、望ましい状態となる。逆に、第２項はコミュニティの数が多ければ多い程エネルギーが下がる。
つまり、第１項と第２項の引き合いによりコミュニティ数が決まる。Jij /γ が第１項と第２項の相対的な強さを決めており、Jij > γ のとき第１項が優勢でコミュニティ数が少なくなる。さらに γ = 0 のときエネ
ルギーが最小であれば、コミュニティは 1 つとなる。

図 1: SNS サイトの投稿画面。ユーザーは自分のおすすめの商品を投稿する。また、似たような症状の人がおすすめしている商品を閲覧できる。

2=∑ Sc (Sc − 1)

コミュニティ検出

頂点と辺からなる、あるネットワークを考えたときに頂点間の繋がりが密なグループをコミュニティと呼ぶ。例えば図 2 では塗りつぶされた丸が頂点、頂点を結ぶ線が辺となっており、点線の円で囲まれた範囲が一つのコミュニティとなっている。与えられたネットワークをどのようにコミュニティに分割するかという問題は、コミュニティ検出問題と呼ばれる [1]。
本研究では図 2 のように頂点を人として、ADL によって 6 段階の身体レベルの情報を持たせている。辺には両端の頂点の ADL を元にして重みをつけ、身体レベルの近い人同士が同じコミュニティに含まれるようにネットワークを設定する。
本研究ではコミュニティ検出にあたり、コミュニティの分割数を調整できる、強磁性ポッツモデルを用いた方法を採用する。この方法ではネットワーク全体のエネルギーを定義し、エネルギーがより小さくなる状態

574アルゴリズム

頂点数による差はあまり見られないことが分かった。
ただし、閾値 α = 6 の完全グラフにおいては、γ が 0に近いときコミュニティがより 1 つになりやすい。また、閾値 α を設定することで、実行時間をある程度抑えられることがわかった。この傾向は特に頂点数が大きくなったときに顕著に見られた。

第 2 節で述べたエネルギーを求めるために、シミュレーテッド・アニーリング法を用いる。そのアルゴリ
ズムは以下の通りである [2]。
ステップ０ 初期値設定
各頂点にランダムに色を割り当てる。
ステップ１ 次の色配置を設定する
ランダムに頂点を一つ選び、ランダムに色を塗り替え、次の状態の候補とする。塗り替える前の状態を X (t) 、後の状態を X ′ とする。
ステップ２ エネルギー変化率の計算′
エネルギー変化率 : ∆ = exp( E−ET )(t)
E: 状態 X のときのエネルギーE ′ : 状態 X ′ のときのエネルギー
T : パラメーター (温度に対応、シミュレーテッド
アニーリング法の特徴)

図 3: 1000 回の実行に対する平均の結果。横軸は γ 、縦軸は左側はコミュニティ数、右側は 1 回あたりの実
行時間 (秒) とした。頂点数が 100 の場合と 200 の場

ステップ３ 変化率 ∆ と乱数との比較
一様乱数 r ∈ [0, 1] を生成し、以下のように次の状態 X (t+1) を決める。

{X (t+1) =X′X (t)r≤∆

合それぞれについて、閾値が 3 ≤ α ≤ 6 の場合の比較を行った。
以上の結果から、閾値 α を小さくしてもコミュニティ数の結果に大きな影響は見られないので、実際レコメンドに応用する際には閾値 α を小さくし、実行時間を短縮すると良いと考えられる。

(状態更新)

otherwise (状態更新なし)

ステップ１〜３を何回か繰り返す。

6

ステップ４ パラメーター T の更新
状態が更新されたら T を下げる: T = T · dT
状態が更新されなければループを抜ける(dT は温度変化率、0 ≤ dT < 1 )本研究では ADL を用いたコミュニティ検出によって、商品のレコメンドをする手法を考えた。今回はコミュニティ検出のアルゴリズムをレコメンドへ応用するための最適なパラメータについて調べ、頂点数と γによって、1 回プログラムを実行した際にコミュニティ数と実行時間がどう変化するか観察した。その際に、実行時間を短縮するため、身体レベルの差の閾値 α を設定した。その結果、閾値 α を小さくしてもコミュニティ数の結果に大きな影響は見られなかった。よって、レコメンドに応用する際には閾値 α を小さく設定することで実行時間を短縮すると良いことがわかった。
今後は、実際に SNS サイトの方へ応用し、ユーザーヒアリングを行いたい。また、ADL に関して歩行だけでなく食事といった他のカテゴリーについても考え、相関等についても検討していきたい。

ステップ５ 繰り返し
ステップ１に戻って、同じ操作を繰り返す。

5

まとめ

結果と考察

第 3 節で書いたように γ = 0 で最適なコミュニティ数は 1 つとなることが分かっている。そこで今回はまず、第 4 節のアルゴリズムにおいて、γ = 0 でコミュニティが 1 つとなるようなパラメータを探した。次に、そのパラメータのもとで頂点数と γ によって、プログラムを 1 回実行した際のコミュニティの数と実行時間がどう変化するか観察した。ADL のカテゴリーは複数あるが、今回は歩行についての身体レベルだけで wを決定した。w の分布は要介護度別認定者数の割合に基づいて与えた [3]。
SNS サイトでのレコメンドに応用するためには実行時間が短いことが重要である。自立している (w = 1)
ような人と寝たきり (w = 6) のような人が一緒のコミュニティに含まれることは考えにくいので閾値 α を設定した。wi − wj < α を満たす場合のみ、Jij の重みを計算することで実行時間を短縮することができる。
ここで α は 1 ≤ α ≤ 6 であり、α = 6 のとき完全グラフとなる。α が小さくなればなるほど、制限が強くなるため、実行時間が短くなると考えられる。
1000 回の平均を取った結果を図 3 に示す。これらの実行結果から、まずコミュニティ数については閾値、参考文献[1] 増田直樹, 今野紀雄 「複雑ネットワーク 基礎から応用まで 」 近代科学社 (2010)[2] 福島孝治, 「モンテカルロ法の前線」, 若手研究者・学生向けに最新技術をわかりやすく紹介する講演会「確率的アルゴリズムによる情報処理」講義ノート, (2003)[3] 内閣府, 「平成 26 年版高齢社会白書」, 日経印刷
(2014)

58