データ分析関連のまとめ

データ分析・機械学習周りのもくもく会LTやイベント参加をまとめていきます

Learning Sleep Quality from Daily Logs

Learning Sleep Quality from Daily Logs(KDD2019 Applied Track Papers)を読んでまとめました。
解釈間違い等ある時がありますので、その場合指摘いただけると助かります。

目次

背景と概要

背景

  • 不眠症は人のQOLを下げる精神医学系の一般的な病気
    • 世界で約30%に不眠症の兆候があると言われている。
    • 以下が不眠症を悪化させる要因と研究結果が出ている。
      • コーヒーやアルコール
      • 運動不足
      • 不規則な睡眠
      • うたた寝、昼寝
    • 最近では、高精度な精神病治療法が新しいコンセプトになっている。
    • 以下のような情報が活用されようとしている。
      • 遺伝子情報
      • 神経回路
      • individual characteristics(これが具体的に何を意味しているかはわかりませんでした)
      • 診療コード
      • 生涯電子カルテ(EHR)
    • 上記情報から、下記を決定している
      • 診断
      • 治療方針
      • 予後予測

概要

  • 不眠症患者の睡眠効率予測フレームワーク
  • 腕に巻くようなバンド状のデバイスから下記の様な様々な種類のデータが取れる。
    • 睡眠の記録
    • 日々の活動
    • 人口統計(demographics)
  • 今回の予測モデル
    • 欠損値の補完:Improved Generative Adversarial Imputation Networks (Imp-GAIN:GANベース)
    • 個々のユーザーの睡眠効率予測:interpretable LSTM-Attention (LA Block) neural network model
      • 2段階でLA Blockを活用
      • 不眠症患者の個別治療が可能
    • 高い不眠のポテンシャルを持つユーザーのランク付け:Pairwise Learning-based Ranking Generation (PLRG)
      • 全4段階あり、LSTMやDeep Forest、XGBoostを活用
      • 誰のリスクが高いのかを把握できる
  • データ
    • 50人参加者がFitbitで計測
    • 期間:6週間
  • 本手法は他のノイズがあり、不完全な時系列の人間活動データの分析に応用できる余地がある。

f:id:yhiss:20200229143500p:plain
データ取得から予測までのフロー

f:id:yhiss:20200229144646p:plain
取得されるデータ

MISSING DATA IMPUTATION

概要

  • 欠損値の補完は、ウェアラブルバイスから取得されるデータを有効に活用するための重要な要素となる。
  • 今、n人のユーザーとd個の特徴量を考えると以下のデータセットが考えられる
 X={\{x_i \}}_{i=1}^n \ :d変数のデータセット  
 h_j\ :j番目の変数を正規化する変換関数(1 \leq j \leq d) 
 上記関数で各々の特徴量が正規化されたデータセット:\tilde{X}=\{\tilde{x_{ij}} \}, (\tilde{x_{ij}} = h_j(x_{ij}))
  • ここから欠損値データとそれ以外に分け、欠損値の補完が満たすべき条件を示すと以下の様になる。
 欠損のセット:M=\{ (i,j), x_{ij}が欠損  \}  
 欠損以外のセット:N=\{ (i,j), x_{ij}が既知  \} 
 欠損値を補完する関数fで補完された値\bar{x_{ij}} = f(x_{ij}) 
 欠損になっているものの正しい値\hat{x_{ij}}
 関数fが満たすべき条件:{min}_{f} \sum_{(i,j) \in M} |(\hat{x_{ij}} - \bar{x_{ij}})|/||M||
  • 本論文では、GANベースのGenerative Adversarial Imputation Nets (GAIN)が採用されているが、採用理由として以下があげられている。
    • MICE(多重代入法)、MissForest(random forestを利用)やAutoencoder等の他の強力な欠損値補完手法よりも様々なリアルデータセットにおいて性能が上回った結果が出ている。
    • 様々な欠損に対してロバストである。
      • ただ、sleep_end_timeがsleep_start_timeより早くなる、異常に高い(or低い)等変数の性質に合わない補完がされる場合がある
  • 上記を踏まえて、今回の欠損値補完では最後に補正(shiftとscale)する関数を使い以下のように補完している
 \bar{x_{ij}} = g_j( f(h_j (x_{ij})) ) 

評価

  • 元が欠損でないデータを使い、以下の補完方法で評価(MAE)している。
    • Imp-GAIN
    • ori-GAIN(補正関数なし)
    • User Avg:平均値埋め
    • KNN
  • データ分割
    • 学習データ:ランダムに80%
    • testデータ:残り20% 結果は以下となっている。

f:id:yhiss:20200229155739p:plain
各補完手法の比較

Sleep Efficiency Prediction

概要

  • 今回の分野において、説明力は精度と同じくらいに重要である。
  • この予測で興味があるのが、先週までのデータを使って、明日等の近い未来の睡眠効率を予測する事となる。
  • 本論文では、LSTMにattentionを加える事で説明力を担保している
  • モデル構成:2段
    • 1段目:上述のLSTM-Attention(LA) block
      • 8つの睡眠に関する特徴量
      • 6つの活動に関する特徴量
    • 2段目:LA blockのアンサンブル
      • demographicsはここで活用

f:id:yhiss:20200229161616p:plain
Sleep Efficiency Predictionのアルゴリズム構造

評価

  • 元が欠損でないデータを使い、以下の補完方法で評価(MAE)している。
    • Linear Regressor
    • KNN Regressor
    • LASSO Regressor
    • Random Forest Regressor
    • Basic RNN
    • Basic LSTM
    • LA block1段目のみのモデル
    • 2段モデル
  • データ分割
    • 学習データ:前半80%
    • testデータ:残り20%

f:id:yhiss:20200229162924p:plain
MSEでの評価結果

Insomnia Ranking

概要

  • 以下の問題を考える
 U:ユーザーのセット
 {\rho}_i: 各ユーザーの不眠症ポテンシャル(i \in U) 
 {\rho}_iが高いとユーザーiの睡眠の質が悪い
 s_i \in [ 0,1 ]: ユーザーiの睡眠効率
 不眠症ポテンシャルを右記で定義{\rho}_i= 1-s_i 
  • Insomnia Rankingのゴールは特徴量の差をべースとした relative ranking relationを推定する事にある。
  • 今回適用するPairwise Learning-based Ranking Generation (PLRG)は4段階に分かれている
    • Ranking Pair Construction
      • 2人のユーザーの関係性を考慮したuser-pair featureを生成
    • Feature Representation Learning
      • LSTMを使用
      • 以下の変数を生成
        • learning sequential features
          • 観測するデータの時系列的な連続性を表現
        • interaction features
          • 睡眠効率と他の特徴量の相互作用を表現
    • Ranking Relation Prediction
      • Deep ForestとXGBoostのcombine
    • Ranking List Generation

f:id:yhiss:20200229164558p:plain
PLRGモデルの2段、3段目のフロー

評価

  • 以下の手法を評価している
    • RankNet
    • LambdaMART
    • LSTM-R
      • user-pair featureを使用しない
      • Deep ForestとXGBoostを使用しない
    • LSTM-B
      • Deep ForestとXGBoostを使用しない
    • DF-XGB
      • learning sequential features、interaction featuresを使用しない
    • PLRG

f:id:yhiss:20200301171349p:plain
評価結果

参考資料

Learning Sleep Quality from Daily Logs KDD 2019 | Learning Sleep Quality from Daily Logs