Structured Deep Factorization Machine : Towards General-Purpose Architectures
Under review as a conference paper at ICLR 2018
요약자의 주관이 심하게 개입되어 있거나 오독한 부분이 있을 수 있고, 추후 오류가 발견되어도 귀찮으면 수정하지 않으니 싫으면 원문을 읽을것. This document comes with absolutely no warranty
FM으로 하면 text처리할 때 곤란하니 그런것들에도 쓸 수 있게 일반적으로 확장해 보겠다. Main idea는 ‘FM할 때 모든 element들의 interaction을 보는데, 그걸 grouping해보겠다’. Grouping idea만 들으면 마치, 서로 연관있는 것들끼리만 interaction을 보고(=submodule에만 FM을 돌린 후) 추상화한 뒤, 맨 나중에 그것들을 모아서 fully connected net에 넣든 어디에 넣든 regression/classification을 할 줄 알았는데,[1]희한하게도 같은 group 안에 있으면 interaction을 주지 않는식으로 했다.
Rendle (2010) shows that when the feature vector \(\mathbb x\) consists only of two categorical features in one-hot encoding, Factorization Machine is equivalent to the popular Matrix Factorization algorithm (Koren et al., 2009). 이렇다는데 이것도 읽어봐야 겠다고 생각은 한다. [2]
저자들이 생각하는 FM의 단점은 두가지. ① Strong parameter sharing. 그러니까 ‘좀 더 느슨하게 엮어도 될것 같다’는 것과, ② Intractable for large feature sets. 차원이 커지면 곤란해진다는 것. [3]
그래서 자신들이 제안하는 것은, $$ \hat y (\mathbf{x; b, β, \kappa}) = ω \left( b_0 + \sum_{i=1}^n b_i x_i + \sum_{i=1}^{|\kappa|} \sum_{j=i}^{|\kappa|} λ^s(\mathbf{x; β, \kappa_i, \kappa_j}) \right) \\ λ^s(\mathbf{x; β, I, J}) \triangleq \sum_{i\in I} \sum_{j \in J} x_i\beta_i\cdot x_i\beta_j $$ \(\kappa\)는 각 그룹 하나를 나타낸다. 예를들어, 4개의 feature를 가진 모델에서, \(\kappa = \{\{1,2\}, \{3,4\}\}\)로 정의하면, feature \(x_1\)은 feature \(x_3\), \(x_4\)와 interaction을 가지게 된다. 같은그룹에 속한 \(x_2\)하고 가지는게 아니다.
Structured Deep-out FM
- ↑ 생각해보니 이건 또 말이 안되는게, FM의 label로 뭘 줄지가 애매하다. Backpropagation등으로 학습할 때마다 다르게 주려면 비용이 너무 크다
- ↑ Yehuda Koren, Robert Bell, and Chris Volinsky. Matrix Factorization Techniques for Recommender Systems. Computer, 42(8):30–37, August 2009. ISSN 0018-9162. URL http://dx.doi.org/10.1109/MC.2009.263.
- ↑ 이건 그런데 단점으로 보기 조금 그런게, 모든 method공통으로 가지는 특징인데다 다른 method들에 비하면 FM은 아주 훌륭하게(\(\approx\)상대적으로 가볍고 빠르게) 처리한다.