糞糞糞ネット弁慶

読んだ論文についてメモを書きます.趣味の話は http://repose.hatenablog.com

Your Cart tells You: Inferring Demographic Attributes from Purchase Data (WSDM 2016) 読んだ

Your Cart tells You: Inferring Demographic Attributes from Purchase Data(pdf)

概要

購買履歴からユーザの属性(年齢,性別,結婚状況,収入,学歴)を同時に推定する.
つまり,複数の属性を同時に推定する multi-task multi-class prediction に取り組む.

手法 : Structured Neural Embedding (SNE)

至ってシンプル.

  • ユーザ が購買した商品を bag-of-items として持つ
  • また, の属性を 1-hot encoding する
    • 例えば,性別が二種類,年齢が四種類,結婚状況が二種類だとしたらそれぞれをラベル数だけのベクトルとしてみなす
    • その上で2+4+2次元のベクトルをすべてつなげて8次元のベクトル にする
  • 各商品を 次元に embedding する
    • 商品を 次元のベクトルとして表現する
  • bag-of-items すべてを embedding したら ある操作(pooling) を行って一つの 次元ベクトルにまとめ, user representation とする
    • pooling はいくつか提案しているが,全ベクトルの平均を取る average pooling が最も良かった
  • あとは user representation を入力に, を予測する log-bilinear を学習する
    • ここは構造学習のように解く
    • つまり,全属性組み合わせ (上の例だと 2 * 4 * 2) を分母に,特定のラベルを分子に持つ softmax を計算していく
    • 全組み合わせだと重いので negative sampling もする (が実験では有効性が示されていない)

追加のモデルとして user representation を作るまでは共通で,属性ごとに学習器を作る Joint Neural Embeddingも作ってはいる.が,こちらは属性間の相関関係が入っていない.

実験

タスクは

  • ユーザの一部の属性が観測されている時に残りの属性を予測する partial-label prediction
  • 予測するユーザの属性は全く分からない new-user prediction

の二つ.前者については,既にわかっている部分を固定した上で残りを探索する.

予測対象は性別(男女),年齢(若者,青年,中年,老人),結婚状況(独身,既婚者),収入(極貧,貧乏,中間,富裕),学歴(博士,修士,bachelor,college,高卒,中卒).

比較手法として,学習データ中の最頻属性,user-item への SVD + logreg, SVD + structured logreg, JNE を用意.
どの実験でも提案手法が勝っている.

Embedding すればよし,みたいな話だった. item を Embedding した結果がどうなっているのかが知りたい.普通の item clustering では見えない,属性が反映されたクラスタが構築されているとかっこいいと思う.