Enhancing SVMs with Problem Context Aware Pipeline
https://gyazo.com/a25f7533c03233d7211ed4d5e6e028a0
#KDD2021 #skozawa
https://zeyiwen.github.io/papers/kdd21-svm-pipeline.pdf
なぜ読んだか
SVMを使っていて、実用的かもと思ったから
概要
DNNは計算コストが高い。一方、 SVMは計算コストは低いが、複雑なタスクだと性能が悪い
タスクを分解し複数のSVMを使うことで、複雑な問題も扱えるようになる
パラメータなどを自動で学習することで、DNNと競える性能を出した
INTRODUCTION
DNN
画像やテキストマイニングなど多くの分野で成功している
一方、学習、推論に時間がかかる
SVM
高い汎用性や効率性、凸性などを持っているが、近年は見落とされている
モデルのサイズや学習、推論時間に制約があるアプリケーションではSVMが適しているかもしれない
SVMの性能を改善するテクニックを提案
ニューラルネットワークでは学習のパラメータ数を異なる問題に対して容易に調整できる
一方、SVMでは学習のパラメータ数を増やすことは容易ではない
例えば、SVMの重みベクトルの次元数やラグランジュ乗数は変えることができない
SVM with Problem Context Aware Pipeline
パイプラインは部分問題生成、特徴量カスタマイズ、データ拡張、ハイパーパラメータのチューニング
パイプラインのコンポーネントを最適化するためにロスを伝搬
SVM with Problem Context Aware Pipeline
1. 学習問題を学習インスタンスの類似度に基づいて複数の部分問題に分割
2. 特徴量のカスタマイズ
3. ハイパーパラメータのチューニング
4. 上記パイプラインの最適化
理論的に単一のSVMより性能が高くなることを証明
複数のデータセットで実験し、既存のSVMと比較し、より効率的、かつ、高い性能を得られた
Aspect term sentiment analysis (ATSA) タスクに適用
各アスペクト(食事、サービス)に対して極性(positive, negative, neutural)を識別するタスク
従来のSVMでは性能が低いが、提案法はDNNベースの手法と競争できる予測性能を得た
本論文の貢献
SVM with Problem Context Aware Pipelineの定式化
理論的に単一のSVMより良くなることを証明
Problem Context Aware Pipelineの一連のテクニックを提案
提案法が効率的であることを実験的に示した
OUR PROPOSED SOLUTION
SVM with Problem Context Aware Pipeline
キーアイデアは学習問題からのより多くの情報を学習プロセスに組み込むこと
1. 学習問題を学習インスタンスの類似度に基づいて複数の部分問題に分割する
部分問題は部分問題に最適化されたSVM分類器で処理する
1つのSVM分類器で扱う代わりに、より細かい粒度の最適化をするために複数のSVM分類器を学習
これまでにない問題として以下を扱う必要がある
部分問題におけるデータの不均衡
各SVM分類器に対する特徴量カスタマイズ
2. 自動でカーネルとハイパーパラメータをチューニングする
提案法は単一のSVMベースのアプローチより理論的に良いことを証明
提案法の概要(図1)
まず、学習データをクラスタリングし重複なしのサブセットに分けることで、部分問題を生成する
類似した学習インスタンスは同じグループになる
それぞれの部分問題に対して、SVM分類器は学習データのサブセットに対して学習する
特徴選択
部分問題にカスタマイズした特徴量を作る
選択された特徴量から特徴ベクトルを生成
ハイパーパラメータをチューニング
SVMを学習するために特徴ベクトルとハイパーパラメータを与える
分類器のロスを計算し、逆伝搬する
特徴選択、超平面空間識別、SVM学習
SVM分類器の洗練、部分問題のチューニング
https://gyazo.com/4130a6934f5e3615198e04be40e3b30e
Problem Formulation
理論的な証明は省略
Subproblem Construction, Data Augumentation and Feature Customization
Problem Context Aware Pipeline のキーコンポーネントを紹介
Subproblem construction
モデルの能力に限界があるため、単一のSVM分類器では複雑な問題に対する予測精度は低い
一つの問題を部分問題に分解する
各部分問題は似ている学習インスタンスを持つ
複雑な問題を扱うために複数のSVM分類器を利用
各SVM分類器は部分問題を学習
重要な直観として、あるアスペクトは異なるアスペクト語で記述されるかもしれない
例えば、似た側面には似た形容詞で記載される傾向がある
例えば、delicious、yummyは食事面でよく使われ、 expensive、pricyは金額面で使われる
金額面での極性判定では、deliciousやyummyはノイズである
アスペクト語を部分問題にクラスタリングすることで、似たアスペクト語を学習でき、ノイズを除外できる
Data Augmentation
学習データをクラスタリングで分割することで、分割後のデータは不均衡になりやすく、SVMの性能は落ちてしまう
部分問題の不均衡を是正するために、サンプリングによってデータを拡充する
均衡なサイズにようにデータを拡充
他の部分問題のデータからランダムで不均衡なラベルのデータを取得
Feature Customization
各部分問題の特徴量をカスタマイズする
ある部分問題にとって有効な特徴量が、他の部分問題にとって有効であるとは限らない
部分問題との関連性に基づいて特徴量をランク付け
関連性スコアは以下。chi-squared
N: 学習データ数、f: 特徴量のidx、i: 部分問題のidx
https://gyazo.com/653c302c84645956946c8926987b71fa
Training and Inference
提案法の重要な特徴として、特徴選択、超平面空間識別、SVM学習の全てが学習可能なコンポーネントであること
SVM分類器のロスに基づいて改善できる
提案法で学習されたSVM分類器は特徴量、ハイパーパラメータがチューニングされたものになる
Learning to Select Features
各SVM分類器におけるベストな特徴量を見つける
全ての特徴量に対してランク付けし、各部分問題に最適な特徴量を選定
Learning to Set the Hyper-Plane Space
SVMではハイパーパラメータがモデルの性能にとって重要
ハイパーパラメータでSVMの超平面空間が決まる
カーネルの種類とハイパーパラメータを選ぶためにSequential model-based optimizationを利用
各学習インスタンスが特徴ベクトルとして表現され、SVMのハイパーパラメータが決まったら、ThunderSVMを使って学習
Inference
テストインスタンス $ x_t, ラベル $ y_t
対応するSVM分類器を割り当て
各部分問題の学習データの重心と $ y_t が近いもの
特徴量を選定し、推論
Time Complexity Analysis for Training
SVMは一般的にDNNより計算量が小さい
具体例としてATSAタスクで考える
t: 学習サイクル数、n: 学習データ数、α: 平均文長、d: 学習インスタンスの次元数
HAPN (DNNベースなアプローチ) の場合: $ O(t \cdot n \cdot \alpha \cdot d^3)
SVMの場合: $ O(t \cdot n \cdot d)
Sequential Minimal Optimization algorithmで最適化
学習サイクル数 t と次元数 d はSVMとニューラルネットワークでは異なる
EXPERIMENTAL STUDY
LibSVMのデータセットとATSA(感情分析)で実験
コードは https://github.com/Kurt-Liuhf/absa-svm
クラスタリングは k-means を利用
Linux with a Xeon E5-2640v4 12 core CPU and 64GB main memory.
Overall Evaluation
LibSVMのWebサイトのデータを利用
https://gyazo.com/26da8098862c4975ed99a6528f810245
提案法と単一のSVMベースの手法で予測性能と学習効率を比較
bagging SVMs、AdaBoost SVMs
公平な比較のため、カーネルとハイパーパラメータのチューニングはなし
RBFカーネル、 γ = 10, C = 5
提案法がすべてのSVMベースのモデルより良い性能となった
https://gyazo.com/e650f8911a99c6aa4de652fe26ecbd9b
学習効率に関しても、pendigetsデータ以外では提案法が最も早い
a7aのデータでは14倍
提案法では複数の小さいSVMを学習しているため
pendigetsデータはデータサイズが小さいため速度は変わらなかった
https://gyazo.com/c43b2dcbe75fb90e3669ccdea43ac75a
Case Study on the ATSA task
ATSA(感情分析)タスクに提案法を適用
Data sets and dictionaries
データセット
SemEval 2014 Task 4 Restaurant and Laptop
感情表現辞書
(1) tweet sentiment lexicons
(2) hashtag sentiment lexicons
(3) sentiment140
(4) NRC emotion lexicons
(5) Bing Liu’s lexicons
(6) MPQA subjectivity lexicons
(7) Yelp restaurant word–aspect association lexicons
(8) Amazon laptop word-aspect
https://gyazo.com/e3f67088a980438295db8439a9ff16dc
Hyper-parameter settings and baselines
部分問題数: 1~35
ハイパーパラメータC: 1~$ 2^{20}
SVMカーネル: RBF(γ: $ 10^{-3}~10)、多項式(1~5)、シグモイド、線形
比較手法
Neural Model: DNNベースの6手法(pre-trainモデルなし)
BERT based Model: BERTベースのニューラルモデル 6手法
特徴量
surface features, parse features, word similarity features, sentiment lexicon features
Accuracy and Macro-F1 Comparison
提案法はNeural Model グループより高い性能で、BERT based Model の半分より高い性能
提案法はよりシンプル
pre-trainモデルなし、余分なラベルデータ
計算リソースや学習データも小さい
提案法はSVMベースのアプローチより良い
https://gyazo.com/239bf02c5fabb6f314e7a769524e5905
Analysis with Visualization
SVMの結果をビジュアライズ
重要な語をハイライト
アスペクト語は黄色でハイライト
https://gyazo.com/4c1dfc9002d785ba7773756522402eb8
Effect of the Number of Subproblems, Inference Efficiency and Model Size Comparison
部分問題の数が時間は性能にどう影響を与えるかを調査
部分問題の数が増えると
学習の時間が減る
分類問題のサイズが小さくなれば、各SVM分類器の学習コストも小さくなるため
予測性能が上がる
Restaurantでは20、Laptopでは30のときが最高のスコアだった
https://gyazo.com/8b26550e027f7f7dec30bd7a28a6636b
Inference efficiency
推論の効率性
BERT-SRC(バッチサイズは16)と比較
40倍の速度
The trained model size
提案法では数千のパラメータが必要
HAPNでは2百万、BERT-SPCでは1億千万のパラメータが必要だった
まとめ
SVMで複雑な問題を扱うための Problem Context Aware Pipeline を提案
DNNと同程度の性能を実験で示した
所感
DNNだととにかくデータ数と計算リソースでカバーしていたところを、タスク分割というアプローチでSVM使って解決していてすごく良かった
低品質記事判定にダイレクトで使えそう
このアプローチだとデータの作り方にも気を使わなくてよくなるかもしれない?
ある単語が含まれてるものを正例としてデータ拡充するとかよくあるし