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을 보고 추상화한 뒤, 맨 나중에 그것들을 모아서 fully connected net에 넣든 어디에 넣든 regression/classification을 할 줄 알았는데, 희한하게도 같은 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). 이렇다는데 이것도 읽어봐야 겠다고 생각은 한다. 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.
저자들이 생각하는 FM의 단점은 두가지. ① Strong parameter sharing. 그러니까 ‘좀 더 느슨하게 엮어도 될것 같다’는 것과, ② Intractable for large feature sets. 차원이 커지면 곤란해진다는 것. 이건 그런데 단점으로 보기 조금 그런게, 모든 method공통으로 가지는 특징인데다 다른 method들에 비하면 FM은 아주 훌륭하게(\(\approx\)상대적으로 가볍고 빠르게) 처리한다.
그래서 자신들이 제안하는 것은, $$ \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\)하고 가지는게 아니다.