BERT-based similarity learning for product matchingを読んだ

概要

COLING2020に採択

BERT-based similarity learning for product matching - ACL Anthology


著者

  • Janusz Tracz (ML Research at Allegro.pl)
  • Piotr Wojcik (ML Research at Allegro.pl)
  • Kalina Jasinska-Kobus (ML Research at Allegro.pl, Poznan University of Technology)
  • Riccardo Belluzzo (ML Research at Allegro.pl)
  • Robert Mroczkowski (ML Research at Allegro.pl)
  • Ireneusz Gawlik (ML Research at Allegro.pl, AGH University of Science and Technology)


contributions

  • BERTを用いたsimilarity learningをECドメインでの製品マッチングに適用した
  • BERTとDistil BERTを製品マッチングに適用した場合の有用性を比較した
  • 提案したcategory hardはsimilarity learning時のthe fraction of active training tripletsを増やし、モデルの性能を向上させた
  • category hardも含めたbatch construction strategiesの比較を行った

問題設定

製品と商品のマッチングを行う。製品はカタログでマスタのようなもの。商品は売り手が出しているもの(論文中ではofferと書かれている)。
本論文ではテキスト情報を元に、商品がどの製品に該当するのか特定する(マッチングする)ことを目的としている。

提案手法

Encoder

入力とするテキストはtitle, attributes values, attribute unitsを結合したもの。
テキストは小文字化し、byte-pair encoderで分割する。tokenizerは商品・製品データのコーパスで学習し、ボキャブラリーサイズは30k tokensとした。
descriptionやattribute namesを含めたテストも行ったが、全ての実験で性能が劣化した。

EncoderにはBERTの最終層をmean poolingした後に768 linear unitsを1層追加したものを用いる。これをeComBERTと呼ぶ。

学習方法

triplet lossを用いてsimilarity learningを行う。
tripletを (o, p^+, p^-)とし、それぞれoffer(anchor)、matching product(positive)、non-matching product(negative)とする。
商品(offer)のEncoderを  \varepsilon_{\theta}、製品のEncoderを  \varepsilon_{\phi}とする。 \varepsilon_{\theta} \varepsilon_{\phi}はパラメータを共有する。

Lossは以下とする。
 L(o,p^+,p^-) = max(0,m+d(\varepsilon_{\theta}(o), \varepsilon_{\phi}(p^+)) - d(\varepsilon_{\theta}(o), \varepsilon_{\phi}(p^-)))

 mはマージンでハイパーパラメータ。 dは距離関数でcosine距離を用いる。

Batch construction strategy

アンカー(商品)とpositive(製品)のペアは商品と製品の一致データからサンプリングして作成する。negative productは自明ではないので工夫する必要がある。

以下の3つの方法を検証する。本論文で新規に提案するのはcategory hard。

  • category random
  • batch hard
  • category hard


category random
商品と一致しない製品の中から同一カテゴリの製品をランダムに選択しnegativeとする。
バッチについては言及されていないので、全データの同一カテゴリからランダム選択と思われる。

batch hard
アンカー(商品)とpositive(製品)のペアのバッチを作成し、バッチ内でアンカーと一致しない製品かつ最も似ている製品をnegativeとする。この手法の場合、バッチサイズが大きいほど似ている製品が見つかりやすいので、バッチサイズが性能に大きく影響する。
negativeを選択する際に最も似ているものを選ぶとあるが、似ている基準については言及されていない。

category hard
商品と一致しない、かつ同一カテゴリの製品の中で最も商品に似ている製品をnegativeとする。そのために全製品のembeddingが必要になると記載されているので、似ているかどうかはcosine距離を基準にすると思われる。全製品のembedding算出は処理時間がかかるため、100ステップや500ステップなど一定の間隔で再計算を行う。

実験

データセット
3カテゴリのデータセットを評価に用いる。実世界のECで適切に処理されたとだけ記載されており、手作業でクレンジングしたかどうかは不明。
評価時に商品はencoderから得られた分散表現ベクトルのcos距離が最も近い製品とマッチングを行うとあるので、商品は必ず製品に属していると考えられる。特に記載は無いが、CULTUREとELECTRONICSはProductsの方が多いので、商品が紐付いていない製品が存在すると思われる。

f:id:wwacky:20201209041958p:plain
Table 1. BERT-based similarity learning for product matchingより引用

データセットを学習:80%、テスト:20%に分割して用いる。ただし、zero-shotの評価のために製品の半分はテストデータセットにしか存在しないようにする。
データセット毎にencoderを学習。学習時の設定は5000steps、バッチサイズ32、Adam optimizer with initial learning rate 2 · 10−5
ハイパーパラメータのマージン mについての記載は無し。

他手法との比較

StartSpaceというBoW encoderと、HerBERTと比較。eComBERTが提案手法。HerBERTはRoBERTaのfashionコーパスでBERTをpretrainしたもの。HerBERTのauthorと本論文のauthorは数名重複している。

BEAUTYはHerBERTとeComBERTのfine-tunedされたものとそれ以外ではaccuracyにかなり違いがあるが、BEAUTYは製品数が少ないため、商品がどの製品に紐づくかどうかがCULTURE、ELECTRONICSに比べて難しいのかもしれない。

f:id:wwacky:20201209044416p:plain
Table 2. BERT-based similarity learning for product matchingより引用

non-finetunedではencoderのweightの追加学習を行っていないが、BERTの最終層のmean poolingしたものをembeddingとして使う。

pretrainingのステップ数によるパフォーマンスの変化

標準的なBERTのpretrainingは数十万ステップ行われるが、提案手法で名寄せを行う場合はpretrainingに必要なステップ数はもっと少なくても十分な性能が出る。参考までにNICTのBERTのモデルは合計110万ステップ。
Figure1はpretrainingのステップ数に対するMLMとBEAUTYのテストデータセットに対するaccuracy。左図と右図の横軸は共有されている。pretrainingのステップ数が2万ステップを超えたあたりでテストデータセットの精度はあまり変化しないので、数十万ステップを行わなくても十分な精度が得られる。名寄せに関してはpretrainingの効果が頭打ちになりやすいとも言えそう。

f:id:wwacky:20201209044507p:plain
Figure 1. BERT-based similarity learning for product matchingより引用

triplet作成方法毎の性能の違い

tripletを作成する3つの手法のcategory random(CR)、batch hard(BH)、category hard(CH)の性能を比較。
fraction of active tripletsの意味がよく分からないが、Figure 2ではfraction of active tripletsは0から1の範囲なのでnegative productsを選択できてtripletを作成できた比率を指していると思われる。また、lossが負になるtripletも除外されているかもしれない。

Figure 2 (a)はHerBERTのfine-tuneの最初の方のステップのfraction of active tripletsを示したもの。batch hardとcategory randomは50ステップあたりでactive tripletsの数が平坦になり、学習に使えるtripletが少なくなって学習の効率が落ちる。これに対してcategory hardはactive tripletsの数が最初から多く、距離を再計算する100ステップ目でactive triplets数が急激に回復している。著者によると100ステップ目移行は距離の再計算をしても同様の急激なactive tripletsの変化は起きず収束し始めていたとのこと。

Figure2 (b)はcategory hardをHerBERTと提案手法のeComBERTに適用した場合の比較。最初の方はeComBERTの方が初期ステップではactive tripletsがHerBERTより多く、途中からHerBERTより少なくなるのでeComBERTは学習初期に製品と商品の類似性を学習できているのではと述べられている。

f:id:wwacky:20201209044556p:plain
Figure 2. BERT-based similarity learning for product matchingより引用

1000ステップのときのtest accuracy。収束はしてないが、1000ステップが最も精度が良かったらしい(なぜTable 1の結果を1000ステップにしなかったのは謎である)
HerBERTとeComBERTに各batch strategyを適用した場合の比較。
eComBERTの方がHerBERTより性能が良くなる。

f:id:wwacky:20201209044644p:plain
Table 3. BERT-based similarity learning for product matchingより引用

Encoderのlayer数を減らしたりDistilした場合の精度と処理時間

small eComBERT(eComBERTを4層にしたもの)とDistil eComBERTを用意。
精度はTable 4に示す通り。ほとんど差は無い。
推論時間はeComBERTに対してDistil eComBERTは半分、small eComBERTは2/3になったとのこと。

f:id:wwacky:20201209044726p:plain
Table 4.BERT-based similarity learning for product matchingより引用

学習データセットに含まれない製品に対する精度

論文中ではZero-shotと書かれているが、ここでのZero-shotとは学習データセットに含まれない製品に対する評価を指すらしい。
テストデータには学習データに存在する製品データが含まれないように分割したと記載されている。Table 5は5000ステップでの結果だが、eComBERTは5000ステップ以降はoverfitし始めてしまうとのこと(テキストのみでデータの提示はなし)。

f:id:wwacky:20201209044805p:plain
Table 5.BERT-based similarity learning for product matchingより引用