KDD 2018 | Learning and Transferring IDs Representation in E-commerce
EC サイトにおける商品 (item) の埋め込み (embedding) を学習する.その際,商品につけられたメタデータをまとめて学習する.
基本方針
ユーザの商品閲覧行動にもとづいて skip-gram を学習する.すなわち,窓幅を として
を学習する.この時
である. が 次元の商品の埋め込みとして得られる.
商品と属性の埋め込み
ここで,商品には様々な属性が付与されていることを考える.論文では例として
- ある「商品」(product,例えば iPhone X) は異なる店 (store) にて異なる商品 (item) として扱われている
- 「商品」にはブランド (brand) が付与されている
- 「商品」には階層的なカテゴリ構造 (cate-level1, cate-level2, cate-level3) が付与されている
としている.以降, item ID, product ID, store ID, brand ID, cate-lebel1 ID, cate-lebel2 ID, cate-lebel3 ID の 7 種類を考える (これ以上増やすことも可能).また,これを「属性」と呼ぶことにする.
今, 種類の属性があり, とする.また を item ID とすると,次の式がこの論文の提案手法.
は negative sampling における負例集合であり, は 商品 における属性 ごとの埋め込み.属性ごとに埋め込みの次元長 は変わる (この時点では全ての埋め込みは異なるものとして扱う).言ってしまえば,商品ごとの全属性の内積の総和を用いて商品の出現確率を計算する. であり は の属性 を持つ商品の個数.
更に,商品とその属性との関係も学習する.すなわち
とする.ここで は商品 の長さ の埋め込み を各属性 の長さ 埋め込みに変換するための行列.ここでようやく商品と属性の埋め込みが同じものとして扱えるようになる. のインデックスが から始まっているのが重要.
最終的な目的関数は
とする.[tex\alpha]は商品自身の表現に対する重みのハイパーパラメータ, は に対する L2 正則化のハイパーパラメータ.
ユーザの埋め込み
複雑な方法はあるけれど計算が簡単なので直近 個の商品の埋め込みの平均をユーザの埋め込みとする.
応用
類似商品の提示
あるユーザが直近で閲覧したいくつかの商品について埋め込みが類似する商品を列挙すればいい.
未知の商品に対する計算
未知の商品 があるが属性が付与されているときにその商品の埋め込みが計算できる.
だったことを思い出すと は単調増加なので
となる.目的関数が十分に最適化されていれば は 1 と考えられるので式変形をすれば
で値が得られる.
異なるドメインに対する転移
ここの記述が全く理解できていない.
- source ドメインで商品の埋め込みを計算してユーザの埋め込みを求める
- source ドメインのユーザを埋め込みを用いて k-means でクラスタリングし,そのクラスタで代表的な商品を計算する
- target ドメインのユーザを埋め込みにもとづき最も類似するクラスタに割り振り,商品を提示する
という手続きが説明されているが,そもそもユーザの埋め込みが共有できるということは商品の体系も共通していなければならない.揃っているならばまとめて学習すればいい(ドメインの違いは属性として特徴量に持たせればいい)のではないか.論文中では Taobao を source , Hema を target としているがそもそも EC サイトとしての性質が大きく異なるのに共通で計算できているという話もよくわからない.
「cold-start なユーザに対する推薦」という話だとしても,クラスタにそのユーザを割り振る際に計算するユーザの埋め込みはどのようにして計算できているのか,という話が理解できない(そこが計算できているならばクラスタに割り振る処理は不要ではないか).
とここまで書いたところで 5.3 にて Since new users have ho historical records に気づくが,やはりどうやって新規ユーザの埋め込みを計算したのかが謎.致命的な何かを読み落としているとしか思えない.