• 検索結果がありません。

第 3 章 曜日・時間帯ごとの投稿数の変化に着目した行動推定技術の提案

3.3 学習アルゴリズム

3.3.1 行動確率モデル構築機能

46

間帯における投稿数のみを解析対象とする.このため,提案手法による行動推定時には,

ユーザの投稿に含まれる語句は活用しない.

47

や分類項目が細分化されすぎており分類対象の習慣行動と関連付けがなされていないこと を考慮する必要があったためである.行動辞書に登録した単語の一例を表 3.3に示す.

表 3.3 行動辞書に登録した単語の一例

行動 用語

睡眠中 寝る,就寝,おやすみ,おはよう 出勤中 出勤,通勤,通学,行ってきます 勤務中 勤務,仕事,働く,残業,バイト,講義 食事中 食事,昼食,晩御飯,食べる,飲み会 帰宅中 帰宅,帰る,退勤,退社,下校 その他 風呂,テレビ,洗濯,買い物,旅行

行動辞書中に登録された単語と投稿内容に含まれる単語との一致により,行動に関する 情報が含まれた投稿を抽出する.行動抽出処理のイメージを図 3.4に示す.

図 3.4 行動抽出処理のイメージ

この処理をすべての投稿に対して行い,1日の各時間帯における6種類の行動別の投稿数 を 抽 出 す る . こ こ で ,1 日 の 24 時 間 を𝑡1, 𝑡2, … , 𝑡𝑗, … , 𝑡24,6 種 類 の 習 慣 行 動 を

行 動 辞 書

睡 眠 中 出勤中 勤 務 中 食事中 帰 宅 中 そ の 他

0時 20 0 0 5 0 10

1時 10 0 0 0 0 5

2時 3 0 0 0 0 2

・ ・ ・ ・ ・ ・ ・

ユ ー ザ の 行 動 情 報

ユ ー ザ の投 稿 履歴

2 0 1 2 / 1 / 1 0 : 0 0 お や す みな さ い

2 0 1 2 / 1 / 1 8 : 0 0 出 勤 し ます

2 0 1 2 / 1 / 1 1 7 : 0 0 帰宅しました

2012/1/1 12:00 ご飯を食べる

入力

抽出

48

𝑏𝑒ℎ𝑎𝑣𝑖𝑜𝑟1, 𝑏𝑒ℎ𝑎𝑣𝑖𝑜𝑟2, … , 𝑏𝑒ℎ𝑎𝑣𝑖𝑜𝑟𝑘, … , 𝑏𝑒ℎ𝑎𝑣𝑖𝑜𝑟6とし,抽出した時間帯𝑡𝑗における習慣行動 𝑏𝑒ℎ𝑎𝑣𝑖𝑜𝑟𝑘の投稿数を行動情報𝑃𝑜𝑠𝑡𝐴𝑐𝑡𝑖𝑜𝑛(𝑡𝑗, 𝑏𝑒ℎ𝑎𝑣𝑖𝑜𝑟𝑘)と定義する.なお,本処理では,ユ ーザ本人の行動のみを抽出するため,他者に対する投稿であるmentionや他者の投稿を拡散

するretweetなどの投稿は抽出対象外とした.

(2) 行動推定処理

行動抽出処理で抽出したサンプルユーザの各行動の投稿数を図 3.5に示す.

49

図 3.5 投稿内容に基づき抽出したユーザの行動情報

図 3.5において,横軸は1日を1時間単位で24分割した時間帯,縦軸は各行動に関する 単語を含む投稿数を表す.図 3.5 に示すように,出勤中,食事中,帰宅中とその他の行動 については,その行動が執られることが多い時間帯の投稿数が増加していることから,投

0 40 80 120 160 200

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

稿

睡眠中

0 70 140 210 280 350

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

稿

出勤中

0 30 60 90 120 150

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

稿

勤務中

0 20 40 60 80 100

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

稿

食事中

0 30 60 90 120 150

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

稿

帰宅中

0 50 100 150 200 250

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

稿

その他

0 900 1,800 2,700 3,600 4,500

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

稿

各行動の投稿数の抽出

時間

時間

時間

時間 時間

時間

時間

50

稿内容に基づく行動抽出が可能であると考えられる.その一方で,色付きで示された時間 帯については,睡眠中や勤務中などの行動・状態が継続されていることが想定される.し かし,これらの行動においては,時間別の投稿数と行動内容との間に明確な関係は確認さ れなかった.これは,睡眠中や勤務中にはマイクロブログへの投稿が行えないためと考え られる.そこで,本提案手法では,投稿されていないことも行動を表す特徴の 1 つとして 考え,投稿数が少ない時間帯におけるユーザの行動情報を補完することを試みる.

投稿が少ない時間帯におけるユーザの行動を推定する場合,本提案手法では,投稿数の 変化に着目する.これは,マイクロブログへの投稿が多い時間帯は,ユーザ本人が自由に 管理できる時間帯であると仮定し,投稿が少ない時間帯はユーザ本人には管理できない睡 眠中や勤務中などの行動であると考えたためである.これらの行動は,複数の時間帯を跨 いで継続されるという特徴がある.そこで,投稿数の少ない時間帯には,直前の時間帯の 行動情報を付与することで,その不足を補う手法を試みる.

投稿が少ない時間帯を判断する基準として,本研究では,時間帯別投稿数の平均値の 3 分の2 よりも投稿数が少ない場合を対象とした.この条件に合致する状況が 1 時間以上連 続している場合,投稿が少なく,直前の行動を継続していると判定し, 𝑡𝑠,…, 𝑡𝑓として抽出 する.ここで,𝑡𝑠は抽出した最初の時間帯を表し,𝑡𝑓は抽出した最後の時間帯を表す.そし て,抽出した𝑡𝑠,…, 𝑡𝑓の行動情報𝑃𝑜𝑠𝑡𝐴𝑐𝑡𝑖𝑜𝑛(𝑡𝑠, 𝑏𝑒ℎ𝑎𝑣𝑖𝑜𝑟𝑘),…, 𝑃𝑜𝑠𝑡𝐴𝑐𝑡𝑖𝑜𝑛(𝑡𝑓, 𝑏𝑒ℎ𝑎𝑣𝑖𝑜𝑟𝑘)に対 して直前の時間の行動情報𝑃𝑜𝑠𝑡𝐴𝑐𝑡𝑖𝑜𝑛(𝑡𝑠−1, 𝑏𝑒ℎ𝑎𝑣𝑖𝑜𝑟𝑘)を加算する.このとき,投稿数の少 な さ を そ の ま ま 特 徴 と し て と ら え ず に 直 前 の 行 動 情 報 を 加 算 し た の は , 𝑃𝑜𝑠𝑡𝐴𝑐𝑡𝑖𝑜𝑛(𝑡𝑠, 𝑏𝑒ℎ𝑎𝑣𝑖𝑜𝑟𝑘)を各時間帯で独立した要素として扱うためである.以上の処理に より,投稿が少ない時間帯に対して行動情報を付与する.投稿数の変化に基づき補完した サンプルユーザの睡眠中や勤務中の投稿数を図 3.6に示す.

51

図 3.6 推定結果に基づく行動情報の補完

図 3.6 の色付きの箇所は行動情報を補完した時間帯を表す.図 3.6 に示すように投稿さ れていない時間帯の投稿数を直前の行動情報に基づき補完することによって,睡眠中や勤 務中に関する行動情報が再評価されていることがわかる.

(3) 行動確率算出処理

本処理では,投稿内容から抽出した行動と推定した行動の両方の情報を用いて,各時間 帯におけるユーザの行動確率を算出する.このとき,出勤中や帰宅中など,行動の種類に よっては投稿数に大きな偏りが発生することが考えられる.このため,投稿数のみに基づ

0 40 80 120 160 200

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

稿

睡眠中

0 70 140 210 280 350

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

稿

出勤中

0 40 80 120 160 200

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

稿

勤務中

0 20 40 60 80 100

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

稿

食事中

0 30 60 90 120 150

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

稿

帰宅中

0 50 100 150 200 250

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

稿

その他

時間

時間

時間 時間 時間 時間

52

く行動確率算出手法では,投稿数が多い行動が相対的に高く評価されてしまい,正しく行 動確率を評価することができない.そこで,本研究では,tf-idf[81]を用いて投稿数を正規化 し,出勤中や帰宅中などの 1 日を通じて特徴的な行動の確率を算出する.時間𝑡𝑗,行動 𝑏𝑒ℎ𝑎𝑣𝑖𝑜𝑟𝑘の𝑡𝑓(𝑡𝑗, 𝑏𝑒ℎ𝑎𝑣𝑖𝑜𝑟𝑘)の 算 出 式 を 式 3.1,𝑖𝑑𝑓(𝑡𝑗, 𝑏𝑒ℎ𝑎𝑣𝑖𝑜𝑟𝑘)の 算 出 式 を 式 3.2, tf-𝑖𝑑𝑓(𝑡𝑗, 𝑏𝑒ℎ𝑎𝑣𝑖𝑜𝑟𝑘)の算出式を式3.3に示す.

𝑡𝑓(𝑡𝑗, 𝑏𝑒ℎ𝑎𝑣𝑖𝑜𝑟𝑘) = 𝑃𝑜𝑠𝑡𝐴𝑐𝑡𝑖𝑜𝑛(𝑡𝑗, 𝑏𝑒ℎ𝑎𝑣𝑖𝑜𝑟𝑘)

6𝑙=1𝑃𝑜𝑠𝑡𝐴𝑐𝑡𝑖𝑜𝑛(𝑡𝑗, 𝑏𝑒ℎ𝑎𝑣𝑖𝑜𝑟𝑙) (3.1)

𝑖𝑑𝑓(𝑡𝑗, 𝑏𝑒ℎ𝑎𝑣𝑖𝑜𝑟𝑘) = 1 + 𝑙𝑜𝑔 ( ∑24𝑚=1𝑃𝑜𝑠𝑡𝐴𝑐𝑡𝑖𝑜𝑛(𝑡𝑚, 𝑏𝑒ℎ𝑎𝑣𝑖𝑜𝑟𝑘)

24𝑜=16𝑝=1𝑃𝑜𝑠𝑡𝐴𝑐𝑡𝑖𝑜𝑛(𝑡𝑜, 𝑏𝑒ℎ𝑎𝑣𝑖𝑜𝑟𝑝)) (3.2)

tf-𝑖𝑑𝑓(𝑡𝑗, 𝑏𝑒ℎ𝑎𝑣𝑖𝑜𝑟𝑘) = 𝑡𝑓(𝑡𝑗, 𝑏𝑒ℎ𝑎𝑣𝑖𝑜𝑟𝑘) × 𝑖𝑑𝑓(𝑡𝑗, 𝑏𝑒ℎ𝑎𝑣𝑖𝑜𝑟𝑘) (3.3)

最後に,算出した tf-𝑖𝑑𝑓(𝑡𝑗, 𝑏𝑒ℎ𝑎𝑣𝑖𝑜𝑟𝑘)のスコアを確率化する.時間𝑡𝑗,行動𝑏𝑒ℎ𝑎𝑣𝑖𝑜𝑟𝑘の 行動確率𝑃(𝑡𝑗, 𝑏𝑒ℎ𝑎𝑣𝑖𝑜𝑟𝑘)の算出式を式 3.4に示す.

𝑃(𝑡𝑗, 𝑏𝑒ℎ𝑎𝑣𝑖𝑜𝑟𝑘) = 𝑡𝑓‐ 𝑖𝑑𝑓(𝑡𝑗, 𝑏𝑒ℎ𝑎𝑣𝑖𝑜𝑟𝑘)

6𝑞=1𝑡𝑓‐ 𝑖𝑑𝑓(𝑡𝑗, 𝑏𝑒ℎ𝑎𝑣𝑖𝑜𝑟𝑞) (3.4)

tf-idfを用いて算出した行動確率𝑃(𝑡𝑗, 𝑏𝑒ℎ𝑎𝑣𝑖𝑜𝑟𝑘)を図 3.7に示す.

53

図 3.7 tf-idfを用いて算出した行動確率

図 3.7 に示すとおり,各時間帯の行動ごとの行動確率が正しく算出されており,それぞ れの行動に特徴が見られることがわかる.

上記の一連の処理を各曜日に対して行い,曜日ごとの行動確率を算出する.ここで,各 曜 日 を𝑤1, 𝑤2, … , 𝑤𝑖, … , 𝑤7と 定 義 し , 曜 日𝑤𝑖, 時 間𝑡𝑗, 行 動𝑏𝑒ℎ𝑎𝑣𝑖𝑜𝑟𝑘の 行 動 確 率 を

P(𝑤𝑖, 𝑡𝑗, 𝑏𝑒ℎ𝑎𝑣𝑖𝑜𝑟𝑘)と定義する.これは,現代社会の基本サイクルが1週間単位で繰り返さ

れ て お り , 曜 日 ご と に 行 動 が 変 化 す る と 考 え た た め で あ る . そ し て , 行 動 確 率 𝑃(𝑤𝑖, 𝑡𝑗, 𝑏𝑒ℎ𝑎𝑣𝑖𝑜𝑟𝑘)を行動確率モデルに格納する.

0.0 0.2 0.4 0.6 0.8 1.0

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

睡眠中

0.0 0.2 0.4 0.6 0.8 1.0

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

出勤中

0.0 0.2 0.4 0.6 0.8 1.0

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

勤務中

0.0 0.2 0.4 0.6 0.8 1.0

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

食事中

0.0 0.2 0.4 0.6 0.8 1.0

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

帰宅中

0.0 0.2 0.4 0.6 0.8 1.0

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

その他

時間

時間

時間 時間 時間 時間

54