データ分析エンジニアのブログ

日常のことからプログラミングや機械学習まで@六本木

デモグラフィック属性(性別・年齢)を予測する論文を読んだ

読んだ論文

Demographic Prediction Based on User’s Browsing Behavior

  • Microsoftの論文(WWW2007)
  • 引用数は145(2016/03/20時点)

Abstract

ウェブサイトの閲覧データからユーザーの年齢と性別を推定する

提案手法は次の3つのステップから成る

  • デモグラ既知ユーザーのクリックデータからサイトの性別と年齢の傾向を推定する判別モデルを構築する
  • ベイジアンフレームワークを用いてクリックデータからユーザーの性別と年齢を推定する
  • デモグラ属性が近いユーザーは同じようなサイトを訪れるという仮定からスムージングを行う

Introduction

行動に基づくWeb広告は115%売上増、ブランド認知は3%高い

Problem Definition

Teenage: < 18
Youngster: 18 - 24
Young: 25 - 34
Mid-Age: 35 - 49
Elder: > 49

Demographic Prediction

協調フィルタリングはデータがsparseなため難しい

ユーザー属性を用いた予測は精度が悪いため、今回の手法を提案する

Webpages’ Demographic Tendency Prediction

Demographicが既知のユーザーのクリックデータからサイトのDemographic Tendencyを予測する

  • Pr(c | wj) = Σ rij * ui(c) / Σ rij
  • 10ユーザー以上に読まれなかったウェブサイトは信頼性に欠けるので除去した
  • 手法はSVR
  • 特徴量
    • サイトの単語データ
    • サイトの階層構造に基づいて、SVMで分類を行いカテゴリの素性を作成

Users’ Demographic Prediction

Pr(c | ui) ∝ Pr(c | {w})
               ∝ Pr({w} | c) * Pr(c)
               ∝ Π Pr(wj | c) * Pr(c)
               ∝ Π Pr(c | wj) * Pr(wj) / Pr(c) ∝ Π Pr(c | wj)

Demographic Prediction by Leveraging Similarity among Users and Webpages

サイトの数は膨大であり、ユーザーのクリックは少ないためスパースな行列が出来上がる

そこで推薦などにも有用な次元削減の手法であるLSI(SVD)を用いる

さらにユーザーとサイトの類似度を元に近傍の平均を取ってスムージングする

  • Smooth Webpages’ Demographic Tendency Prediction
    • ベクトルのコサイン距離による類似度とサイトの単語内容による類似度からスムージング
  • Smooth Users’ Demographic Prediction
    • ユーザーのコサイン距離が近いT個のユーザーベクトルの平均でスムージング

Conclusion

性別では80%、年齢では60%のF値での精度が得られた

予測精度としてはTeenageが47%、Elderが52%と低い

Feature Researchとしては職業や学歴、地域などDemographicの拡張を計画している

感想

性別推定は80%で比較的実用的なレベルだが、年齢推定は精度が60%と難しいタスクだなという印象。

スムージングで精度が20%ほど向上していて、推薦と同じようにスパースな行列をどうやって処理するかで精度にかなり違いが出てくる。

またTeenageとElderという分類しやすそうなものの精度が悪くなっているので、新たな特徴量を追加すれば若干精度は良くなりそうだと思った。