Position-Aware Tagging for Aspect Sentiment Triplet Extractionを読む

概要

レビューの様な自然文からtarget, opinion, sentimentのtriplet( 例=(“salmon”, “fresh”, positive))をEnd-to-Endで抽出する手法を提案。BERTで各TokenをEmbeddingした後に、Tokenの単語ベクトルとToken間の単語ベクトルの差分を特徴量としてCRFによってタギングを行う。SemEvalのデータセットをもとに構築したデータセットで評価を実施し、既存手法より高い精度が得られた。

arxiv.org

github.com

accepted by EMNLP 2020

著者

  • Lu Xu (StatNLP Research Group, Singapore University of Technology and Design; DAMO Academy, Alibaba Group)
  • Hao Li (StatNLP Research Group, Singapore University of Technology and Design; ByteDance)
  • Wei Lu (StatNLP Research Group, Singapore University of Technology and Design)
  • Lidong Bing (DAMO Academy, Alibaba Group)

問題設定

target、opinion、sentiment(polarity)のtripletを抽出するタスク。

Figure 1の例だと以下になる。

  • target: food, vegan options
  • opinion: so so, excited
  • sentiment(polarity): 0 = neutral, + = positive, - = negative

target、opinionのspan、targetとopinionの組み合わせ、polarityの全てが合っている時のみ正解。

ASTE = Aspect Sentiment Triplet Extraction

f:id:wwacky:20201015210434p:plain
※Figure 1. Position-Aware Tagging for Aspect Sentiment Triplet Extractionより引用

提案手法

JET(= Jointly Extract the Triplets)を提案。
JETはEnd-to-Endでtripletの抽出を行う。JETには JET^ tJET^ oの2種類がある。上付き文字のtとoはそれぞれtargetとopinion。

先に JET^ t を説明する。JET^ tの出力はFigure 2の○で囲まれたSやOやBの文字の部分。これをtoken毎に出力する。
JETはNERの様なタグ付けを行っており、BIOESを使っている(common tagging schemeらしい)。B=Begin, I=Inside, O=Outside, E=End, S=Single。Entityが1tokenの場合、Bを1つではなくSを使う(そのためfoodがSで、vegan optionsはBとE)。
JET^ tではtargetのentityにBIESでspanが表現される。その際、BとSのみ上付き文字と下付き文字があるが、下付き文字はopinionの開始位置と終了位置のtargetからのoffset、上付き文字はopinionに基づくpolarityを示している(0 = neutral, + = positive, - = negative)。

f:id:wwacky:20201015210531p:plain
※Figure 2. Position-Aware Tagging for Aspect Sentiment Triplet Extractionより引用

JET^ oはBIESを付けるentityをtargetではなくopinionにしたもの。offsetで指す先もopinionではなくtargetになる。それ以外は全て同じ。JET^ tを表すFigure 2とJET^ oを表すFigure 4を見比べるとわかりやすい。

f:id:wwacky:20201015211118p:plain
※Figure4. Position-Aware Tagging for Aspect Sentiment Triplet Extractionより引用

既存手法では"The salad is cheap with fresh salmon"という文で (“salad”, “cheap with fresh salmon”, positive)と (“salmon”, “fresh”, positive)という重複するtripletが存在する時に対応できないが、提案手法では対応できる(このケースは JET^ tなら可能だがJET^ oでは無理。しかし、"salmon is cheap and fresh"みたいな文では逆にJET^ oでは可能だが、 JET^ tでは無理ということになると思われる)。


余談

複数のtargetやopinionが考慮されているのは良いが、"サラダの値段も味も良い"(英語だと"Good prices and taste for salads."になる?)から("サラダの値段", "良い", +)、("サラダの味", "良い", +)の2つのtripletを抽出することは難しそう。恐らくこの手法では("サラダの味と値段", "良い", +)が正解になると思われる。2つのtripletにしたい場合は、("サラダの味と値段", "良い", +)を後から分割した方が良いのかもしれない。

Architecture

以下のFigure 3に示すネットワークで、Token毎にVectorを出力する。出力したVectorを入力としてCRFとSemi-Markov CRFでタギングする。

e_iはi番目のTokenをEmbeddingして得られたVector
h_iはBiLSTMの隠れ層のVector(後の実験ではBERTに置き換えて最終層のVectorを使ったパターンもある)。
g_{a,b}=[\vec{h}_b - \vec{h}_{a-1};\overleftarrow{h}_a - \overleftarrow{h}_{b+1}]で表され、ベクトルの差分のconcatnateになっている。

これらを入力に、まずは f_tが5つのベクトルを出力するので、これを用いてBIOESのタギングを行う。
このタグがBかSの時は更に追加で  f_s (offsetがj,kの時の極性用に3つのベクトルを出力)、f_of_rがそれぞれ1つずつベクトルを出力するのでopinion spanのoffsetを決定する(と思われる)。f_oはopinion spanに該当するsegmentの特徴量で、f_rはoffsetのposition embeddingのようなもの。
最終的にToken毎に B^{\epsilon}_{j,k}, I, O, E, S^{\epsilon}_{j,k}を出力することになる( \epsilonは極性、 j,kはoffset)。


 B^{\epsilon}_{j,k}, I, O, E, S^{\epsilon}_{j,k}はCRFとSemi-CRFで一気に出すようだがよく分からない。
Mがoffsetを最大幾つまでするかを表している。
Mは[2,6]でしか動かしておらず、計算オーダーはToken毎に O(M^2)、文のToken数がnの時は全体の計算オーダーが O(nM^2)と書いてある。従って、例えばM=2の時はToken毎に [B^{-}_{1,1}, B^{0}_{1,1}, B^{+}_{1,1},...B^{-}_{2,2}, B^{0}_{2,2}, B^{+}_{2,2}, I, O, E, S^{-}_{1,1}, S^{0}_{1,1}, S^{+}_{1,1},...S^{-}_{2,2}, S^{0}_{2,2}, S^{+}_{2,2}] みたいなマルチクラス分類のタスクをCRFで解いていると思われる。

f:id:wwacky:20201015211208p:plain
※Figure 3. Position-Aware Tagging for Aspect Sentiment Triplet Extractionより引用

実験

データセット

Rest=Restaurant, Lap=Laptop

f:id:wwacky:20201015211329p:plain
※Table 1. Position-Aware Tagging for Aspect Sentiment Triplet Extractionより引用

学習時にtripletのoffsetがMを超えるデータは削除する。

既存手法との比較

精度の傾向としては 既存手法 < JET^ t < JET^ o
論文中には書いていないが、 JET^ o の方が精度が高いのは「サーモンは安くて新鮮」といったtarget(サーモン)が複数のopinion(安い, 新鮮)を持つデータセットが多いのではないかと思われる。

JET^ tJET^ oはBiLSTMを使っているが、BERTに置き換えると精度が上がっている。ただし、上がり幅はデータセットによってまちまち(JET^ o (M=6)のF1で14Lapだと9.7ポイントも上がるが、16Restだと0.6ポイントしか上がらない)

f:id:wwacky:20201015211455p:plain
※Table 2. Position-Aware Tagging for Aspect Sentiment Triplet Extractionより引用

ロバストネスの評価

Figure 5はtarget, opinion span, offsetが長さに応じてF値がどう変化するかを表している。特定のパターンだけ当たっているのかどうかの評価?
offset(targetとopinionの間隔)は広がるほどF値が下がる。
targetはentityの数が増えるほどF値が下がるが、JET^ tの時だけentity数=6で一気に上る(理由の記載なし。長さ6のtargetがデータセットに多いだけ?)
opinion spanもentity数が増えるほどF値が下がるが、entity数=4で一度上がる(理由の記載なし。長さ4のopinionがデータセットに多いだけ?)

f:id:wwacky:20201015211608p:plain
※Figure 5. Position-Aware Tagging for Aspect Sentiment Triplet Extractionより引用


Figure 5を見てentityの境界を当てるのが難しいのでは?ということで、targetとopinion spanの境界の先端か終端のどちらかがあっていれば正解として評価したのがFigure 6。
T=target, O=opinion, S=Sentiment。先端か終端のどちらかが合っていれば正解としたものはT_pO_p

JET^tはややopinionの部分一致が多く、JET^oはtargetの部分一致が多い。即ち、offsetで抽出しにいく対象が正しくspanを当てることが難しいと思われる。

f:id:wwacky:20201015211844p:plain
※Figure 6. Position-Aware Tagging for Aspect Sentiment Triplet Extractionより引用

予測結果のサンプル

f:id:wwacky:20201015211713p:plain
※Table 3. Position-Aware Tagging for Aspect Sentiment Triplet Extractionより引用

Ablation Study

offset feature(f_r(j,k))が最も効いている。
character embeddingを追加すると、ノイズになり逆に精度が下がるケースが多い。

f:id:wwacky:20201015212001p:plain
※Table 4. Position-Aware Tagging for Aspect Sentiment Triplet Extractionより引用

アンサンブルの効果検証

JET^ tJET^ o単体だとそれぞれ抽出できないパターンがあるので結果をマージして評価する。
JET^{t \rightarrow o}JET^ oをベースにJET^ tを足す。JET^{o \rightarrow t}はその逆。
Recallは上がっているのでマージする効果は出ているが、Precisionは下がってしまうのでF値は微増という状況。

f:id:wwacky:20201015212110p:plain
※Table 5. Position-Aware Tagging for Aspect Sentiment Triplet Extractionより引用

Adversarial Multimodal Representation Learning for Click-Through Rate Predictionを読む

概要

CTR予測を行うMultimodal Adversarial Representation Network (MARN) を提案。 最初にmultimodal attention networkはモーダル固有の特徴量から、アイテム毎にモーダルの重みを算出する。 次にmultimodal adversarial networkがモーダル不変の分散表現を学習する。 最後にモーダル固有の分散表現とモーダル不変の分散表現を組み合わせ、アイテムごとの分散表現を得る。

公開データセットでSOTAを達成し、運用中のECにデプロイしてonline A/Bテストで改善を確認した。

contribution

  • The proposed MARN introduces a novel multimodal representation learning method for multimodal items, which can improve the CTR prediction accuracy in E-commerce.
  • We explore the complementarity and redundancy of modalities by considering modality-specific and modality-invariant features differently. To achieve discriminative representations, we propose a multimodal attention fusion network. Moreover, to achieve common representations across modalities, we propose a double-discriminators multimodal adversarial network
  • We perform extensive experiments on both public and industrial datasets. MARN significantly outperforms the state-ofthe-art methods. Moreover, the approach has been deployed in an operational E-commerce system and online A/B testing further demonstrates the effectiveness.

Accepted to WWW 2020

著者

  • Xiang Li (Alibaba Group, Hangzhou & Beijing, China)
  • Chao Wang (Alibaba Group, Hangzhou & Beijing, China)
  • Jiwei Tan (Alibaba Group, Hangzhou & Beijing, China)
  • Xiaoyi Zeng (Alibaba Group, Hangzhou & Beijing, China)
  • Dan Ou (Alibaba Group, Hangzhou & Beijing, China)
  • Bo Zheng (Alibaba Group, Hangzhou & Beijing, China)

リンク

[2003.07162] Adversarial Multimodal Representation Learning for Click-Through Rate Prediction

INTRODUCTION

モーダル固有:1つのモーダルにしか存在しない情報で、動的な重みを与えられるべきなもの
モーダル不変:異なるモダリティで冗長な情報で、重みが固定されるべきもの

商品名からHot Pinkのような色はわかるが、糸のような素材は画像からしかわからない。素材はモーダル固有の特徴量で、色はモーダル不変の特徴量といえる。

キーアイデアとして、モーダル固有の特徴量は異なるモーダル間の動的な重要度を探すために重要で、モーダル不変は固定的な重要度で商品の包括的な分散表現で追加知識として使える

Adversarial Transfer Learning

GANを参考にした転移学習らしい。 著者が提案するのは、複数モーダルで共通の潜在空間を学習する2重の識別器を用いたAdversarial Network

OUR PROPOSED METHOD

提案手法のMARNは2つのコンポーネントから成る

  • Modality Embedding Layer (こっちはモーダル固有のEmbeddingを行う?)
  • Downstream Application Network (こっちは全アイテムを使って包括的に学習し、複数モーダル共通の分散表現を作る?)

f:id:wwacky:20200803074449p:plain
Figure 1. Adversarial Multimodal Representation Learning for Click-Through Rate Predictionより引用

Modality Embedding Layer

Item Modality Embedding

4つのモーダルを対象にする

  • ID:商品ID、ショップID、ブランドID、カテゴリIDを含んだ未注文の離散特徴量
  • Image :ピクセルレベルの画像情報
  • title:単語列
  • statistic :統計値、表示履歴、クリック、注文や金額のトランザクション

IDs
複数IDをconcatしてmulti-hot vectorとして扱う。それぞれEmbedding Layerでベクトルに変換する。

Image
VGG16のクラス分類用の最終2層を除外したものを使う

title
単語毎に300次元のベクトルに変換する。EmbeddingにはKimの既往研究に従って、convolutional Networkでn-gramの特徴量を取得するためにウィンドウサイズをn=2,3,4にした複数フィルターを使って行う。

Statistic
難しいらしい。Yuanfeiの既往研究に従い、1つではなく2つに離散化する(8次元の2つのベクトルにする。)。商品の数に応じて0-9か0-99のレンジで離散化するらしい。おそらく、この10個か100個の2x8次元のベクトルを作っておき、各データがどの2x8ベクトルに対応するのかlook upする感じと思われる。

Behavior Property Embedding

click, add-to-cart, purchaseのシーケンスをone-hotベクトルにする。これをembeddingする

Multimodal Attention Network

モーダルのconcatnateは、モーダル間でウエイトが一緒。 動的なウエイトは過去にも既往研究があるが、冗長な情報は除外されるべき。

256次元のベクトルにするらしいが数式がよくわからない

s_i^ m = S_m (e_i^ m):モーダル固有の特徴量。256次元

c_i^ m = I(e_i^ m):モーダル不変の特徴量。256次元

e_i^ m:アイテムi, モダリティmのベクトル。256次元?

S_m(・):モダリティ固有の特徴量を取得するための写像

I(・):モダリティ不変の特徴量を取得するための写像

MAF:multimodal attention fusion 数式(2)(3)を見ると、Figure 2のelement-wise + はアテンション込で足している様に読める

f:id:wwacky:20200809050159p:plain
Figure2. Adversarial Multimodal Representation Learning for Click-Through Rate Predictionより引用

Multimodal Adversarial Network

adversarial learningやGradient reversal layer (GRL)、domain adaptation、を先に読んだ方が理解しやすかった。
domain adaptationはDomain-Adversarial Neural Network (DANN)の解説で出てくる。

Adversarial Learningってなんだ - 面白いデータを探して
Gradient Reversal LayerではじめるPyTorchカスタム関数 | AI tech studio
Domain Adversarial Neural Networksの解説 - Counterfactualを知りたい

Cross-Modal Adversarial

minimax game

Jensen-Shannon divergence (JSD)

Double-Discriminators Multimodal Adversarial

For example, the item ID embedding should be assigned relatively small weights due to the uniqueness. On the contrary, the image and title embeddings that involve much potential common subspace should be emphasized for further confusing the modality discriminator.

double-discriminators multimodal adversarial (DDMA) network

First, we expand the original one-to-one adversarial paradigm to multimodal scenarios. Second, we introduce a double-discriminators strategy

first discriminator D_0:モーダル不変の特徴量からMクラス分類を行う?モーダル横断の潜在空間からモーダル不変の特徴量を識別する。モーダル不変の特徴量を識別することは2nd Discriminatorを混乱させる。この識別というのをImportanceの予測でやるということか?

second discriminator D_1:Mクラス分類。モダリティ間のJSDをへらすように学習。

第1の識別器は、複数のモダリティにまたがる共通潜伏部分空間に潜在するモダリティ不変特徴を識別し、さらに第2の識別器を混乱させるために識別されたモダリティ不変特徴を強調する 一方、第2の識別器は、複数のモダリティにまたがる共通の潜在部分空間を学習するように、モダリティ間の知識伝達を駆動する。

f:id:wwacky:20200809052316p:plain
Figure 3. Adversarial Multimodal Representation Learning for Click-Through Rate Predictionより引用

Modality-Specific Discriminator

ここでモダリティ固有の特徴量と、モダリティ不変の特徴量を得る。element-wise summationでアイテムの分散表現を得る。

複数のモダリティ間でモダリティ固有の特徴s m iを識別できるようにするために、モダリティ固有の特徴に対してモダリティ固有のモダリティ識別器Dsを提案し、その識別行列を第2の識別器D1と共有する。最後に、複数のモダリティの相補性と冗長性を実現し、モダリティ固有表現siとモダリティ不変表現ciを生成する。そして、モダリティ固有表現とモダリティ不変表現の要素ごとの和によって、マルチモーダル項目表現repiが生成される。

Downstream Application Network

Behaviors Integrating Layer

RNNベースのモデルを使う。 ユーザ行動間の依存をモデリングするためにGRUを使う。 GRUは2つ不足しているものがあり、異なる行動のタイプや時間変化によってユーザの興味が異なること、候補商品をクリックしたかどうか???

Attentional Property GRU (APGRU)を提案。

CTR Prediction Layer

point-wise loss for the CTR task

最初にCTRのLossを最小化する(予測全体のパフォーマンスを最適化するため)。 2番めにDsのLossを最小化する(モーダル固有の写像Smを学習するため。Embedding LayerEを更新するためにDsの勾配はバックプロパゲーションしない) 3番めにFirst Discriminator D0のLossを最小化する(複数モーダルに渡る潜在共通サブスペースを特定するため)。D0はウエイトがないモーダル不変の特徴量を学習しているから良い指標でないため、不変の写像層Iを更新するためにD0のバックプロパゲーションは行わない。 最後にsecond discriminator D1がminimax gameをモーダル不変の特徴量とともにIを更新するために行う。

IとD1の間でminimax gameを解くことで、 gradient reversal layer (GRL)を通してend-to-endのアーキテクチャを適用する。

EXPERIMENTS

Datasets and Experimental Setup

Amazon Dataset

ユーザの行動シーケンスから次の行動を予測する。
商品の属性にはItem ID, category ID, title, image feature, statisticを用いる。
タイトルの単語はGloVeを用いて300次元のベクトルにする。
画像は学習済みVGG16を用いてベクトルにする。

Taobao Dataset

Taobao検索システムのexposureとクリックログ。CTRタスク用。
ユーザの行動種類はclick, add-to-cart, purchase。
商品の属性はitem ID, shop ID, brand ID, category ID, image feature(VGG16), statistic, title。
これとユーザ行動と時間がセットになっている。

7日分のデータを学習に使い、その翌日のデータを評価用にする。

f:id:wwacky:20200809055530p:plain
Table 1. Adversarial Multimodal Representation Learning for Click-Through Rate Predictionより引用

AmazonとTaobaoでembedding後の次元数は同じ。
Item ID:32次元 shop ID:24次元 Brand ID:24次元 Category ID:16次元

ボキャブラリーサイズはデータセットの統計値から決める。

予測層の隠れユニットは検証のために固定値としてAmazonは[128,64]、Taobaoは[512,256]。
活性化巻数はReLU。
Amazonのバッチサイズは32、Taobaoは1024。
最適化はAdaGradを使用し、学習率は0.1。
λは0からλ0までスケジューリングして変更させる。λ0は0.01から1.8までMARNで実験して、0.05が最もよいパフォーマンスだった。

Offline Comparison of Different Methods

3グループ9手法と比較する
第1グループ:DeepNetwork以前の手法
第2グループ:アイテムの複数モーダルの特徴量をconcatする手法
第3グループ:様々な手法を用いて複数モーダルから統一的な分散表現を学習するSOTAのマルチモーダル手法

第1グループ
LR:Logistic Regression
FM:Factorization Machine

第2グループ
YoutubeNet:Youtubeの動画レコメンドを目的としたDeep model。ユーザ行動中のアイテムのEmbeddingの単純な平均で分散表現を得る。
xDeepFM:explicitとimplicitの両方の交互作用を高次元特徴量として自動で学習することを目的としたcompressed interaction network
DUPN:LSTMとattentionをユーザ行動のモデリングに適用したECでのユーザ分散表現を学習する手法
DIEN:2層のRNNとattentionを持つNetwork。attentionによって2層目のユーザの相互作用を扱う。

第3グループ
DMF:階層的なマルチモーダル結合ネットワーク。レイヤー間でモーダルごとの分散表現が相関しており、shared layerは同一階層内の相関だけでなく、下層にも依存している
MMSS:画像情報から選択的に画像をフィルターするモーダルベースのattention mechanism model
NAML:ニュースの異なるビューとしてtitle, body, categoryを組み込み、重要なニュースのビューを選択するアテンションに適用し、有用なニュース分散表現を学習する

第1グループはID特徴量が入力(item ID, shop ID, brand ID, category ID)になる。 Deep手法はすべてMARNと同じ入力を与えて平等な比較を行う。

Results on Amazon and Taobao Datasets

5回の平均で評価。
MARNが最も良い。検定しても優位な差がある。
グループ2よりグループ3の方が性能が良い。モーダルの結合方法が重要であることがわかる。

第3グループの中でなぜMARNの精度が優れているのか?
DMFは異なるモーダル間の貢献を無視するようなconcatnation-based methodと同じであるかもしれない。
MMSSも画像を選択的にフィルターするので、画像を効果的に使えてない。
NAMLはアテンションで性能を上げているが、モーダル固有とモーダル不変を考慮して情報の相補性や冗長性を考慮できていない。

f:id:wwacky:20200815141420p:plain
Table 2. Adversarial Multimodal Representation Learning for Click-Through Rate Predictionより引用

文献39ではDINはYoutubeNetよりAUCで1.13%改善し、オンラインCTRは10.0%改善したと報告している。AUCのちょっとした改善はCTRの大きな改善につながる。

Ablation Study

BaseModel:1モーダルをGRUで行動embeddingを結合するモデルBaseModel+IDsとBaseModel-Imageがある
BaseModel+Conc:全モーダルの写像済み特徴量(IDs, image, title, statistic)を要素間で足し上げる手法
BaseModel+MAF:MAF=multimodal attention fusion network。MARNのサブモデル
BaseModel+MAF+ADV:ADV=adversarial transfer network。MARNのサブモデル
BaseModel+MAF+DDMA:DDMA=double-discriminators multimodal adversarial network。MARNのサブモデル。
MARN:MAF, DDMA, attention propertyGRU(APGRU)を用いたモデル。

BaseModel+IDs vs BaseModel+IMAGE vs BaseModel+CONC
モーダルが多いほうがAUCが高い

BaseModel+CONC vs BaseModel+MAF
MAFの方がCONCより精度が高いので、モーダルごとにウエイトを動的にする(attentionを用いる)ことは有用

BaseModel+MAF+ADV vs BaseModel+MAF+DDMA
original adversarial network(ADV)よりdoubule-discriminators multimodal adversarial network(DDMA)の方がAUCが高い。これはmultimodal adversarial learningによってモーダルをまたいだ共通の潜在部分空間で学習を行うことが効果的であることを示している。また,第1の識別器によって識別されたモダリティ不変の特徴を強調し、第2の識別器をさらに混乱させることが、複数モーダルにまたがる潜在部分空間でより良い学習するために重要であることを示している。

f:id:wwacky:20200815142912p:plain
Table 3. Adversarial Multimodal Representation Learning for Click-Through Rate Predictionより引用

Item Representations Validation

Generalization on Unpopular Items

Taobaoデータセットの商品をinteractionの頻度に応じて商品を10個のレベルに分割。popularityが高いほどより人気(9のほうが人気)。
人気がある商品では両方とも良い性能。差が少ない(levelが7-9)。人気がない商品では性能が低下する(lebelが0-3)。
MARNの方が性能の低下が抑えられているのは、titleやimageの情報を使うからかもしれない。

f:id:wwacky:20200816091216p:plain
Table 4. Adversarial Multimodal Representation Learning for Click-Through Rate Predictionより引用

Transfer from Seen Items to Unseen Items.

コールドスタート問題。 item-based CF (Collaborative Filtering) は履歴がないとランダムと同じ状態になる。
BaseModel+IDsはbrandIDとShopIDが使える。MARNだと更にtitleとimageが使える。
MARNの性能が良い。

f:id:wwacky:20200816092903p:plain
Table 5. Adversarial Multimodal Representation Learning for Click-Through Rate Predictionより引用

Case Study of Multimodal Attention

Taobaoデータセットで、カテゴリ毎に各モーダルのL2ノルムの平均を計算する。
画像は洋服、靴、ジュエリーでの重みが大きい。一方statisticは携帯電話や食料品で高い。
MARNがモーダルの重みを動的にうまく学習していることが分かる。

f:id:wwacky:20200816094053p:plain
Figure 4. Adversarial Multimodal Representation Learning for Click-Through Rate Predictionより引用

Empirical Analysis of Adversarial Network

Modality Visualization

Fig 5(a):モーダル固有の特徴量がうまく分離できている。modality discriminatorがモーダル固有の特徴量から冗長性を排除し、モーダルの識別性能が高いことを示している。
Fig 5(b):著者ら的にはtitleとimageの特徴量が近くなって、titleとimageで同じように学習しようとしているらしい。
Fig 5(c):赤が画像のモーダル固有特徴量、青がタイトルのモーダル固有の特徴量。緑が画像とタイトルのモーダル不変の特徴量をmax-poolingしたもの。3つがうまく分離できており、MARNがモーダルの相補性と冗長性を学習している事がわかる。

f:id:wwacky:20200816095251p:plain
Figure 5. Adversarial Multimodal Representation Learning for Click-Through Rate Predictionより引用

Convergence and Parameter Sensitivity

Figure 6(a):lossの変化。adversarial lossが上昇しているのは、モーダル不変の特徴量からモーダルの識別ができなくなっていることを意味する(モーダル不変特徴量とモーダル固有特徴量がうまく分離できているということ?)。
Figure6(b):Taobaoデータセットでのハイパーパラメータλ0のチューニング。0.05が適切なバランス。λはモーダル固有とモーダル不変の学習手順をコントロールするパラメータ。

f:id:wwacky:20200816095343p:plain
Figure 6. Adversarial Multimodal Representation Learning for Click-Through Rate Predictionより引用

Online Evaluation

Online Metrics

Taobao search SystemでABテスト。1ヶ月実施。
CTRとGMV(Fross Merchandise Volume)で評価。
YoutubeNetに対する相対値でのみ報告。
DUPNは以前オンラインにサービングしていたモデル。MARNの方が性能が良く、既にMARNはオンラインにデプロイされている。

f:id:wwacky:20200816103458p:plain
Table 6. Adversarial Multimodal Representation Learning for Click-Through Rate Predictionより引用

Online Serving

ピークタイムでは秒間20万以上のユーザが訪れる。
MARNは複雑だが、事前に抽出できる。
LSTMのために量子化して推論を高速化、GPU、ALI-FPGAs(行列演算を加速させるもの)を含めたheterogeneous calculationsを行っている。最終的にこれらの技術を最適化することで実質シングルマシンのQPSが2倍になる。

CONCLUSIONS

メモ

Previous works either concatenate the multiple modality features, that is equivalent to giving a fixed importance weight to each modality; or learn dynamic weights of different modalities for different items through technique like attention mechanism

過去の研究ではマルチモーダルの特徴量をconcatするのは、「各モーダルに固定のウエイトを設定すること」や「アテンションを使ってアイテムごとにモーダル毎のウエイトを動的に学習すること」と同等である。 →でも正確なウエイトを求めることができないかもしれない

To leverage the multiple modalities for better item representations, a straightforward way [20, 38, 39] is to concatenate the multiple modality features, which is equivalent to giving a fixed importance weight to each modality regardless of different items.

modality-specific (exist in one modality, and should have dynamic weights) modality-invariant features (redundant in different modalities, and should have fixed weights)

モーダル固有:1つのモーダルにしか存在しない情報で、動的な重みを与えられるべきなもの モーダル不変:異なるモダリティで冗長な情報で、重みが固定されるべきもの

例 Take a dress which is displayed by an image with a title 「Girls Ballet Tutu Zebra Hot Pink」 for example. The item involves a latent semantic feature of the material, such as yarn, which can be expressed by its image while not involved in its title, so the material feature is considered as the modality-specific (latent) feature for this example. The item also involves a common latent semantic feature of color (hot pink) in the subspace of both its image and title features, so the color feature is considered as the modality-invariant (latent) feature for this example.

商品名からHot Pinkのような色はわかるが、糸のような素材は画像からしかわからない。素材はモーダル固有の特徴量で、色はモーダル不変の特徴量といえる。

The key idea is that modality-specific features provide an effective way to explore dynamic contributions of different modalities, while modality-invariant features should have a fixed contribution and can be used as supplementary knowledge for comprehensive item representations.

キーアイデアとして、モーダル固有の特徴量は異なるモーダル間の動的な重要度を探すために重要で、モーダル不変は固定的な重要度で商品の包括的な分散表現で追加知識として使える

Language Models as an Alternative Evaluator of Word Order Hypotheses: A Case Study in Japaneseを読んだ

概要

日本語の語順の評価をLanguage Model(LM)を用いた生成確率で比較する方法を提案。人間が評価する手法や、既存の頻度ベースの評価手法と同様の結果が得られることを実験で確認している。

f:id:wwacky:20200510222051p:plain
Figure 1. Language Models as an Alternative Evaluator of Word Order Hypotheses: A Case Study in Japaneseより引用

リンク

用語

用語 意味
NOM nominativeの略。主格のこと
DAT dative caseの略。与格のこと。
ACC accusative caseの略。対格のこと。

背景

文章の語順の評価方法としては、人間が実際に確認して評価する方法や、大規模なコーパスから頻度集計を行ったものを用いて評価する方法がある。人間が行う評価ではスケーラビリティに問題があり、頻度ベースの手法では前処理の段階でエラーが発生するといった問題がある。

Language Modelを用いた英語の語順の評価については既往研究があるが、日本語のような柔軟な語順でも成立する言語でも成り立つかどうかは検証されていない。

提案手法(LM-based method)

正しい語順の場合、Language Model(LM)の文の生成確率が最も高くなるという仮定に基づいて評価を行う。

 s の生成確率は以下を用いる

 p(s) = \overrightarrow{p}(s) \cdot \overleftarrow{p}(s)

 \overrightarrow{p}(\cdot):left-to-right LMで算出した生成確率
 \overleftarrow{p}(\cdot):right-to-left LMで算出した生成確率

※ LMに用いられているTransformerは文全体の生成確率は出せない気がするので、生成確率は各単語の生成確率の累積ではないかと思われる。fairseqの論文を読んだほうが良いのかもしれないが未調査。

LMにはTransformerを用いる(auto-regressive, unidirectionalなのでBERTではない)。fairseqで実装されたものを用いた。
LMはCLMとSLMの2種類のそれぞれを評価する。
CLM:character-based LM
SLM:subword-based LM

subwordはUniDic辞書を用いたMeCab形態素解析を行い、byte-pair-encodingで行う。
LMの学習は、3B web pageからランダム抽出した160M文を用いて行う。dev用に10K文を切り出す。adaptive softmax cutoffはSLMにのみ適用する。

ハイパーパラメータは以下のTable 5参照。

f:id:wwacky:20200510233727p:plain
Table 5. Language Models as an Alternative Evaluator of Word Order Hypotheses: A Case Study in Japaneseより引用

学習後のperplexityはleft-to-right CLMが11.05、right-to-left CLMが11.08、left-to-right SLMが28.51、right-to-left SLMが28.25となった。CLMとSLMのperplexityの差はボキャブラリーサイズの違いに依存している。

LM-basedを使うメリットとしては、後置詞が削除されたような場合にユーザがどちらを好むかどうかの検証用のサンプルが作りやすい点である。

f:id:wwacky:20200510230301p:plain f:id:wwacky:20200510230328p:plain

※ Language Models as an Alternative Evaluator of Word Order Hypotheses: A Case Study in Japaneseより引用

検証結果

Human-based methodとLM-based methodの比較

検証用のデータ作成

3B web pagesから10K文をランダム抽出。以下の条件に該当する文のみ使用する。

  • 5句以下で、1つの動詞を持つ
  • dependency treeに兄弟関係を持つ節があり、助詞や副詞を持つ
  • 括弧などの特殊記号を持たない
  • backward dependency pathを持たない

各文に対して以下のスクランブル処理を行い、語順を変更した文を作成する

  1. JUMANとKNPで構文解析を行う
  2. 数の子を持つ節をランダムに選択する
  3. 孫と一緒に子の節の位置をシャッフルする

f:id:wwacky:20200511105817p:plain
Figure 2. Language Models as an Alternative Evaluator of Word Order Hypotheses: A Case Study in Japaneseより引用

評価方法

評価はYahoo Japan! のクラウドソーシングで実施。
作業者に元の文と語順を変更した文のペアを見せ、以下のどれに該当するかを選択してもらう。
(1)文1の語順の方が良い
(2)文2の語順の方が良い
(3)文1、文2に意味的におかしい文が含まれている

文1、文2のどちらが元の文かは作業者には知らされない。

作業者はcheck questionsを用いてunmotivated workersを除外した。

各ペアに対して10人の作業者に回答してもらい、誰も「(3)文1、文2に意味的におかしい文が含まれている」を選択していない、かつ、好ましい文の選択が9人以上一致しているペアのみ評価に用いる。選択した作業者が多い方の文を、好ましい語順とする。最終的に2.6Kペアを収集した。

上記の2.6Kペアの好ましい文とLM-basedで選択された好ましい文のピアソン相関係数を算出すると、クラウドソーシングとCLMの相関係数が0.89、クラウドソーシングとSLMの相関係数が0.90だった。

なお、こうした語順の直接比較はcount-basedだとコーパスのスパース性のため難しい。

Data-driven methodsとLM-based methodの比較

目的語が2つある場合

DATとACCがどちらが先にある方が好ましいかを検証する。

例:
DAT-ACC:生徒に  本を   あげた
ACC-DAT:本を   生徒に  あげた

Data-driven methodsとLM-based methodの比較指標として、動詞 v毎にACCが前、DATが後ろである場合の確率  R^{v}_{ACC-DAT} を用いる。

 R^{v}_{ACC-DAT} = \frac{N^{v}_{ACC-DAT}}{N^{v}_{ACC-DAT} + N^{v}_{DAT-ACC}}

以下の図はData-driven methodsとLM-based methodの R^{v}_{ACC-DAT} をプロットしたもの(縦軸がLM-based method)。

f:id:wwacky:20200511064629p:plain
Figure 3(a). Language Models as an Alternative Evaluator of Word Order Hypotheses: A Case Study in Japaneseより引用

その他の場合

実際はその他の場合ではなく、目的語の対格が無い場合や、副詞の位置がSOVの中でどこに現れるかなどで細かく場合分けして検証を行っている。
詳細は省略するが、全て既存のData-driven手法とLM-based手法との間で一貫性のある結果が確認できている。CLMとSLMのData-driven手法とのピアソン相関係数はそれぞれ0.91と0.88で、強い相関があることが分かる。

ImageBERT: Cross-modal Pre-training with Large-scale Weak-supervised Image-Text Dataを読んだ

概要

テキストと画像のマルチモーダルBERTの提案。Transformerの入力にテキストのtokenだけでなく、Faster-RCNNで検出したRoIをTransformerに入力できる形にEncodingしたvisual tokenも入力できるようにしてEmbeddingを行えるようにしている。

また、数億パラメータを学習するためには大量のデータが必要であるとし、Pre-training用に弱学習器を用いたデータセット作成方法を提案している。

リンク

arXiv

pre-training用のデータセット(LAIT)の作成

LAIT(Large-scale weAk-supervised Image-Text)はpre-trainingを行うために著者らがWebから集めた画像とキャプションのペアのデータセット

マルチモーダルのpre-trainingに用いられるデータセットはConceptual Captions(CC)とSBU Captionsが多い。しかし、CCは3M件の画像とdescriptionの組み合わせ、SBUは1M件の画像とユーザが作成したキャプションの組み合わせで、著者らの主張としては数億パラメータのモデルを学習するためには件数が少ない。 pre-trainingにはデータのボリュームと品質が重要なため、LAITはweak-supervised approachを採用し、10M件の画像とdescriptionのペアで構成される。descriptionは平均13単語。

weak-supervisedというのは、後述するデータ収集pipeline内のImage-Text Semantic Scoringでテキストと画像が関連したものかどうかスコアリングを行う弱学習器を構築しているためにと思われる。

data collection pipeline

データ収集のパイプラインの全体像はFigure 1を参照。
各処理の内容はその後に記載しておく。

f:id:wwacky:20200426212347p:plain
Figure 1. ImageBERT: Cross-modal Pre-training with Large-scale Weak-supervised Image-Text Dataより引用

Web-page collection
Webページをクロールし、画像URLとテキストを収集する。テキストが英語でないものと、画像がWebページに対してDominantでないものは廃棄される。Figure 1では何かしらの判定器を用いているようだが詳しい記載はなし。Dominant, Non-dominantについては定義がないため不明。

Image Content Based Filtering
画像情報を用いてフィルタリングを行う。画像の縦横が両方とも300ピクセル未満のものと、エロ画像(Pornographic or Racy)、non-realisticな画像、non-learn-ableな画像は除外される。non-realistic、non-learn-ableについては定義が記載されていないが、Figure 3を参照とのこと。画像判定器についても記載がないが、恐らくMicrosoftのありものを使っていると思われる。

f:id:wwacky:20200426215805p:plain
Figure 3. ImageBERT: Cross-modal Pre-training with Large-scale Weak-supervised Image-Text Dataより引用

Sentence Detection & Cleaning

画像に対応するdescriptionを取得する。descriptionにはHTMLのAlt属性やTItle属性、もしくは画像の周辺テキストを用いる。ヒューリスティックルールを用いてノイズを除去し、適切な長さにする。詳細は記載されていない

Image-Text Semantic Scoring
少量の画像とテキストのペアの教師データを用いて、テキストと画像のペアが関連しているものかどうかの2値分類を行う弱学習モデルを作成し、スコアリングを行う。モデルに用いる特徴量はテキストのみの素性、画像のみの素性、テキストと画像のクロスモーダルな素性を数百種類用いている。モデルに用いた手法や学習用のデータ件数については記載なし。

Image-Text Aggregation
異なるdescriptionが同じ画像に紐付いていたり、異なる画像が同じdescriptionに紐付いている場合があるので、これらを解消する。
複数のdescriptionが同じ画像に紐付いている場合は、前段のImage-Text Semantic Scoringのスコアが最も高いdescriptionと画像のペアのみ残す。
複数の画像が同じdescriptionを持つ場合は、これらのペアをコーパスから除外する。

LAITのデータセットのサンプルは以下のFigure 2を参照。

f:id:wwacky:20200426220841p:plain
Figure2. ImageBERT: Cross-modal Pre-training with Large-scale Weak-supervised Image-Text Dataより引用

Architecture

提案手法の構造をFigure 4に示す。基本的な構造はBERTと同じで、TransformerのEmbeddingの構成要素となる"Sequence Position Embedding", "Segment Embedding", "Linguistic Embedding" のうち、Linguistic Embeddingに単語の代わりに画像のEncodingしたものと画像内の位置情報を渡すものである。(画像内のPositionが定義できないのでSequence Position Embeddingには画像の場合は同じ値を入れるという制約もあるが)

f:id:wwacky:20200426221213p:plain
Figure 4. ImageBERT: Cross-modal Pre-training with Large-scale Weak-supervised Image-Text Dataより引用

Image Embedding

Faster-RCNNで抽出されたregions of interest(RoI)を単語とみなしてEmbeddingを行う。

  • ObjectEmbedding  {\bf v}^{(i)}:RoI内の画像をEocodingしたもの
  • SegmentEmbedding  {\bf s}^{(i)}:テキストの時と同じ様にSegment単位で同じ値を入れてEncodingしたもの
  • ImagePositionEmbedding  {\bf p}^{(i)}_{img}:画像の位置情報のEncoding。位置情報は5次元で表される。(数式の入力だったので省略しました。原論文を見てください。相対位置と、相対面積を使ってます。)
  • SequencePositionEmbedding  {\bf p}^{(i)}_{seq}:Segment内の順序のEmbedding。RoIの順序は明確に決まらないのでダミーとして全て同じ値を入れる。

i番目のRoIの最終的なEmbeddingは以下となる。 LNはTransformerの隠れ層と同じembedding sizeにするためのLayer Normalization。


e^{(i)} = LN({\bf v}^{(i)} + {\bf s}^{(i)} + {\bf p}^{(i)}_{img} + {\bf p}^{(i)}_{seq} )

Pre-training

Pre-training task

Pre-trainingでは以下の4タスクを行う。

  • Task 1: Masked Language Modeling (MLM)
  • Task 2: Masked Object Classification (MOC)
  • Task 3: Masked Region Feature Regression (MRFR)
  • Task 4: Image-Text Matching (ITM)

Masked Language Modeling (MLM)
BERTで行っているMLMと同じ。

Masked Object Classification (MOC)
MLMの画像版。Faster-RCNNでRoIを検出した際に一緒に返却されるラベル(face, armなど)を正解とし、マスクしたRoIに対応するトークンのクラスを予測して学習を行う。Lossにはcross-entropy lossを用いる。
15%の確率でRoIをマスクし、マスクする際は90%の確率でタスクを行う対象のトークンとし、10%の確率で単に入力を0にする。

Masked Region Feature Regression (MRFR)
このタスクではマスクしたfeature embeddingの値を回帰で予測する。そのため、Transformerの出力層に全結合層を追加し、RoIの特徴ベクトルと同じ次元に変換する。LossにはL2 lossを用いる。
マスクする確率は恐らくMOCと同じと思われる。

Image-Text Matching (ITM)
textをランダムに別のペアのものと変換し、negative sampleを作成する。sequenceの先頭の[CLS]トークンの特徴量を用いて、negative sampleかどうかの2値分類を行う。 Lossにはbinary classification lossを用いる。

Multi-stage Pre-training

著者らが提案した手法で作成したデータセットLAITと、Conceptual Captions(CC)、SBUの3つでどの様にPre-trainingを行うのかを決めておく。

著者らは冒頭で数億パラメータを学習するためにはより大規模なデータセットが必要なので、LAITデータセットを作成したと述べていた。しかし、LAITのデータの品質はCC、SBUよりも劣るために段階を分けることにしている。

Pre-trainingではまずLAITデータセットで学習を行い(stage 1)、その後、CC、SBUを結合したデータセットで学習を行う(stage k+2)。
Stage 1のPre-trainingではk+1回のpretrainを行うように書いてあるが、実験では1回しかpretrainしてない。

f:id:wwacky:20200426221309p:plain
Figure 5. ImageBERT: Cross-modal Pre-training with Large-scale Weak-supervised Image-Text Dataより引用

検証結果

画像検索のタスクを用いて提案手法の性能評価を行う。
Transformerは12層、768 hidden units、3072 intermediate units、12 attention headのものを用いる。入力の最大長は144トークンで、100トークンはFaster-RCNNで抽出したRoIが入る。
Faster-RCNNは1600カテゴリに分類されたGenomeデータセットを用いる。

Pre-trainingではドロップアウトを10%の確率でGELUを用いて行う。バッチサイズは48、学習率は1e-4、最適化にはAdamを利用、4つのV100 GPUを用いて17エポック学習を行った。 fine-tune時はITMタスクだけ学習に用い、バッチサイズが24、学習率が5e-5、4つのV100 GPUを用いて130エポック学習を行った。

画像検索のタスクでの検証

MSCOCO、Flicker30kデータセットを用いて画像検索タスクを行う。MSCOCOは1kテストセット、5kテストセットの両方で検証を行う。 Image Retrievalはテキストを入力として画像を検索するタスク、Sentence RetrievalはImage Retvievalとは逆向きのタスク。
Pre-trainingの効果を検証するためのfine-tuneなしのZero-shotでの検証と、fine-tuneありの検証の両方を行う。

Zero-shot画像検索での検証結果はTable 1を参照。他の手法ではZero-shot画像検索の検証結果がないらしくて、結果の表がスカスカ…。
Flicker30kではUNITERに劣っているが、MSCOCOでは1kテストセットで最も良い結果。

f:id:wwacky:20200426221356p:plain
Table 1. より引用

fine-tune後の比較結果はTable 2を参照。
一応どの手法よりも良い結果になっているが、Zero-shotの時に負けていたUNITERと比べると大差ないので、そこまで大きな差はないと思われる。

f:id:wwacky:20200426221431p:plain
Table 2. ImageBERT: Cross-modal Pre-training with Large-scale Weak-supervised Image-Text Dataより引用

Ablation Studies

Pre-trainingの各条件設定が性能にどのような影響があるのかを調べている。

Pre-train dataset
Pre-trainingに使うデータセットの違いによる比較。結果はTable 3を参照。LAIT、CC、CC+SBU、LAIT+CC+SBUは各データセットを結合してPre-trainingを行った結果。LAIT→(CC+SBU)は前述のMulti-Stage Pretrainingを行った場合の結果。評価はFlicker30kでZero-shot検索で実施。

f:id:wwacky:20200426221505p:plain
Table 3. ImageBERT: Cross-modal Pre-training with Large-scale Weak-supervised Image-Text Dataより引用

Global image features
RoIの特徴量だけでなく、画像全体の特徴量もトークンとして追加した場合の検証。結果はTable 4のPart 1を参照。性能を改善する効果は見られない。

Pre-training loss

MRFRタスクの有効性を検証する。Pre-training時のlossにMRFRのlossも追加していない場合と追加した場合を比較。結果はTable 4のPart 2を参照。
大きな改善効果があることが確認でき、より難しいタスクを追加することが良いモデリングに繋がることが示されている。

Number of Objects(RoIs) from image
画像トークンとして利用するRoIを36個の場合と100個の場合を比較検証。RoIはFaster-RCNNが予測時に出力するconfidenceでソートし、高い順に採用する。36個はViLBERTと同じ個数らしい。結果はTable 4のPart 3を参照。
結果からRoIの個数が多いほうが精度が上がっていることが確認できる。

Fine-tune loss
Fine-tune時利用するlossの比較検証。結果はTable 4のPart 4を参照。
Binary classification lossのみを利用する場合の精度が最も良い。

f:id:wwacky:20200426221552p:plain
Table 4. ImageBERT: Cross-modal Pre-training with Large-scale Weak-supervised Image-Text Dataより引用

Dockerfile内でconda activateする

公開されているコードを試す際、セットアップにconda activate xxxx が必要な場合がある。

以下のissueを参考にconda activateした状態でインストールを行うことができたのでメモ。
Activating environment in dockerfile - related to #81 · Issue #89 · ContinuumIO/docker-images · GitHub

解決方法

Dockerfileに以下の様に記述する。myenvが仮想環境の名前。

FROM continuumio/miniconda3

# create myenv
RUN conda create -n myenv python=3.6

# activate myenv
ENV CONDA_DEFAULT_ENV vilbert-mt

# env setting(こちらはコンテナに入った時のため)
RUN echo "conda activate myenv" >> ~/.bashrc
ENV PATH /opt/conda/envs/vilbert-mt/bin:$PATH

その他の解決方法

conda run を使う方法

こちらの記事を参考にした。こちらでもactivateが適用された状態でインストールができることは確認済み。ただし、コンテナを起動した際の環境は baseのままになる。
Activating a Conda environment in your Dockerfile

Dockerfileに以下のように記述する

FROM continuumio/miniconda3

RUN conda create -n myenv python=3.6
SHELL ["conda", "run", "-n", "myenv", "/bin/bash", "-c"]

conda activateと&&で接続して行う方法

冒頭のissueに書いてあるもの。RUNは実行毎に独立しており設定が引き継がれないので、conda activateしても次のRUNではactivateされていない状態で処理が行われるらしい。
それを回避するためにスタックして書けば良いとのこと。

FROM continuumio/miniconda3

RUN conda create -n myenv python=3.6

RUN /bin/bash -c ". activate myenv" && \
    pip install pandas && \ 
    pip install ../mylocal_package/

PyTorchでout of memoryになる

推論時に徐々にメモリ使用量が増えてout of memoryになる

推論時にout of memory になった。

out of memoryになったコードのイメージ。

for batch in dataloader:
    inputs = {"input_ids": batch[0]}
    outputs = model(**inputs)

出力されたエラー。
GPUのメモリ使用量をモニタリングすると、ループする度に使用するメモリ量が増えていき、out of memoryになる。

RuntimeError: CUDA out of memory. Tried to allocate 20.00 MiB (GPU 0; 15.78 GiB total capacity; 14.43 GiB already allocated; 19.12 MiB free; 268.73 MiB cached)

解決策

with torch.no_grad(): を付ける。
(detachingでもよいが、lossが不要ならこっちのほうが簡単)

修正後のコードのイメージ。

with torch.no_grad():
    for batch in dataloader:
        inputs = {"input_ids": batch[0]}
        outputs = self.model(**inputs)

以下の投稿を見ると、lossのdetachもしくはwith torch.no_grad():でラップのどちらも行っていない場合、loss Tensorがcomputation graphを保持し続けるためにiteration毎にメモリ使用量が増加するとのこと。

Increasing memory usage for forward pass - PyTorch Forums