■イベント :Sansan x atmaCup #12 振り返り会 https://atma.connpass.com/event/229180/
■登壇概要 タイトル:Sansan x atmaCup #12 Solution概要 発表者: 技術本部 DSOC R&D研究員 内田 奏 https://www.atma.co.jp/
▼Twitter https://twitter.com/SansanRandD
問題設定/データの説明Sansan株式会社 技術本部 DSOC Automationグループ 研究員内⽥ 奏ヤンチャなベースラインも添えて
View Slide
問題設定について
Data Strategy and Operation Center項⽬ラベルを予測せよ!概要• ⽂字列検出矩形の位置情報から項⽬ラベル(⽒名・E-mail等)を推定出題の背景・意図• 名刺⼊⼒では,⽂字列検出→項⽬ラベル推定→項⽬⼊⼒の順に処理> 項⽬ラベルを間違えると後段処理に悪影響があり,⾼い精度が求められる• 画像特徴を⽤いない軽量なモデルを構築したい> パフォーマンス・移植性の観点から名刺取り込み ⽂字列検出 セキュリティー項⽬細分割、項⽬⼊⼒項⽬ラベル推定
Data Strategy and Operation Centerデータ説明3train.csv / test.csv• 名刺ID, 矩形の位置情報, クラスID(予測対象)で構成• test.csv はクラスIDを含まないcards.csv• 名刺IDごとの画像サイズcategories.csv• クラスIDとクラス名のマッピングbcid left top right bottom class_id000612e… 68 487 721 517 4000612e… 191 552 375 577 5000612e… 192 586 376 610 6000612e… 222 105 893 179 2… … … … … …train.csvbcid width height000612e… 1080 645… … …cards.csvclass_id class_name0 full_name… …categories.csv※Sansan, Eightの名刺データ化の過程で⽣成されたデータ. 個⼈情報を含まない統計情報として利⽤規約の範囲内で提供.
Data Strategy and Operation Center(余談) 出題の経緯4社内で開催していた集合勉強会での案を流⽤• 集合: 順序に意味を持たないデータ構造 e.g., 1, 2 = {2, 1}• モデルの⼊出⼒によって下記の性質を持つ> Permutation Invariant: ⼊⼒順序を⼊れ替えても出⼒が変化しないこと> Permutation Equivariant:⼊⼒順序を⼊れ替えると順序のみ⼊れ替わった出⼒が得られること𝑓 😃, 😃, 😡 = 0, 0,1𝑓 😡, 😃, 😃 = 1,0, 0𝑓 1, 2, 3 = 6𝑓 3, 2, 1 = 6Invariant なモデルの例 (加算) Equivariant なモデルの例 (異常検知)
Data Strategy and Operation Center(余談) 取り組み概要5集合モデルをパッケージ化論⽂の再現実装(上: MNIST※画像の加算, 下: 異常検知) ※THE MNIST DATABASE of handwritten digits - http://yann.lecun.com/exdb/mnist/
ヤンチャなベースラインについて 😈
Data Strategy and Operation Centerヤンチャなベースライン v1モデル:• Transformer Encoder (6 layers)• 参考は Set Transformer [J. Lee+ NeurIPS2019]> Encoder-decoder で構成された Permutation Invariant なモデル> Encoder だけ⾒ると Positional Encoding を加えない Transformer Encoder前処理• [0, 1] 正規化のみPublic score• 0.7486[J. Lee+ NeurIPS2019] J. Lee, et. al, “Set Transformer: A Framework for Attention-based Permutation-Invariant Neural Networks,” in NeurIPS, 2019, vol. 97, pp. 3744–3753.
Data Strategy and Operation Centerモデルのコード8これだけ!!!標準モジュール便利!!!
Data Strategy and Operation Centerヤンチャなベースライン v29Unseenクラスへの対応1. testの⽅が1枚あたりのピース数が多いことを確認2. Unseen クラスはどこかのクラスに多く混同されてると仮定し,出現回数の増加が著しいクラスを⾒てみる (今回は class_id=3)3. なんとなく傾向が⾒えたので,trainより端にある矩形を class_id=9 とみなすtrain test閾値調整で⼤体10sub消費?
Data Strategy and Operation Centerヤンチャなベースライン v210モデル• Transformer Encoder (12 layers)> (6 layers のまま出そうとしたが, colum2131 さんに負けてたのが悔しかった)> (出すタイミングを伺っていたら1位を取り損ねた)Public score• 0.8147
Data Strategy and Operation Centerまとめ11問題設定/データの説明• 項⽬ラベルを予測せよ!!!• 矩形情報のみから構成されたシンプルなデータを提供• 出題背景のご紹介ベースライン• シンプルな Transformer によるベースライン• 簡単な後処理の紹介v3はここにおりました