Multi-Modal Cross Attention Network for e-Commerce Product Categorization
개요 : 국내 온라인 쇼핑 플랫폼 네이버 쇼핑의 경우 하루에 2,000만 개의 상품이 등록 되며 상품 분류 카테고리는 약 5,000개로 이루어져 있다. 개인 판매자는 직접 5,000개 의 카테고리 중 적절한 카테고리로 분류하여 상품을 등록해야 하는 어려움이 있다. 정확한 검색, 올바른 상품 노출을 하기 위해 카테고리는 중요한 역할을 수행한다. 그러나,
대부분의 온라인 쇼핑 플랫폼에서 판매자 개인의 판단으로 카테고리를 분류하여 정확성을 보장하기 어렵다.
이에 보다 더 정확하고 객관적인 상품 분류를 위해 머신러닝 및 딥러닝 모델을 제안하는 다수의 연구가 진행되어 왔다. 그러나 대부분의 연구는 텍스트와 같은 단일 모달리티에 대하여 수행 되었고, 멀티 모달리티에 대한 연구도 각 모 달리티의 특성을 단순 연결하여 모달리티 간의 상호작용은 반영하지 못한다는 한계점 을 갖는다. 또한 온라인 상품 데이터는 데이터의 품질이 좋지 않으며 카테고리들이 극도로 비대칭적이므로 분류에 어려움이 있다. 따라서 모달간의 정보들을 최대한 활용하는 것이 중요하며 본 연구에서 이러한 한계성을 보완하는 연구를 진행하였다. 본 연구 에서는 서로 독립적인 모달리티 간의 상호작용을 반영하는 Cross Attention Block을 제안하며 상품의 이미지와 텍스트 정보를 이용하여 대분류, 중분류, 소분류, 세분류로 분류한다. 개발된 모델은 대용량의 데이터를 통해 사전 훈련된 모델을 사용하여 효율성과 동시에 모달리티 간의 상호작용을 반영한 점에서 의의가 있다. 모델의 성능을 평가하기 위한 다양한 실험 결과를 논문의 후반부에 제시하였다.
Contribution : Pre-Train(BERT, ResNet50)을 사용하며 학습의 효율성 및 Cross Attention Block을 제안하며 모달간의 상호작용을 반영하여 더 높은 성능을 달성한 것에 의의가 있다.
Master Thesis
언어 : Python, BERT(pre-trained), ResNet50(pre-trained), Pytorch
코드 :

학습 개요
1. 사전 훈련된 BERT, ResNet50에 대해 각각 Dense Layer를 붙여 Fine Tunning을 진행
- End To End로 학습을 실험 해보았으나, 수렴이 발생하지 않음
- 수렴을 위해 Cross Attention Block에서 Layer Norm First 구조로 설계
- 수렴을 위한 러닝레이트 스케쥴러 적용, RAdam(tested), gradient clipping
2. 각 모달리티 Freeze, Cross Attention Block 학습
- 각 모달리티에서 encoded tensor들 간의 cross attention.
- self-attention과 cross-attention을 동시에 진행.

Loss : 대분류, 중분류, 소분류, 세분류에 Cross Entropy Loss의 가중합

Results : Comparing with single modalities and simple concatenation. Futher results are in my github.
