TechBlog_BertQA를 활용한 상품속성 자동추출하기

소속 : 이마트 D/T본부.AI/ML담당.AI Engineering chapter
소속 : 이마트 D/T본부.AI/ML담당.AI Engineering chapter
Background
유통에서의 상품정보의 속성 추출은 다양한 목적으로 활용할 수 있습니다. 상품에 대해 전문가가 휴리스틱한 속성을 부여할 수 있지만 상품 수가 너무 많거나 속성들이 계속 추가되거나 업데이트 되야 한다면 매번 전문가가 대응하기는 어렵습니다. 예를 들어 세탁세제의 경우, 세탁기 유형(일반/드럼/손빨래 등), 세탁 유형(속옷/스포츠용품/아기 옷 등) 의 속성을 자동으로 추출하여 분류할 수 있다면, 이를 기반으로 고객별 취향에 맞는 상품의 추천 및 분석이 가능하게 됩니다. 또한 판매자 입장에서는 고객분석을 통해 좀더 효율적인 상품의 배치를 할 수 있습니다.
이 글을 읽는 여러분은 오프라인 매장, 혹은 온라인 쇼핑몰 페이지에서 내가 찾고자 하는 상품에 대한 정보를 어떻게 얻으시나요?
오프라인에서는 상품의 포장에 있는 텍스트 정보를 활용해 해당제품의 다양한 속성(원산지, 용량, 유통기한 등) 정보를 얻을 수 있으며, 온라인 상품의 경우, 상품의 상세설명 페이지에 존재하는 텍스트 또는 이미지 정보를 통해 상품의 다양한 정보를 얻을 수 있습니다.
만약 이 정보를 획득하는 과정을 자동화한다면 어떻게 할 수 있을까요? 상품 포장 및 온라인 상품페이지에 이미지화 되어있는 비정형 데이터들의 경우 텍스트 또는 이미지 처리를 통한 전 처리 과정이 필요할 수도 있습니다.
앞서 언급한 것처럼 고객 및 판매자는 다양한 데이터로부터 상품의 속성정보를 얻을 수 있는데요, 이 가운데 상품명은 해당상품의 가장 중요하고 기본적인 정보를 담고 있습니다. 고객의 입장에서는 상품의 기본속성을 파악하고, 판매자의 입장에서는 마케팅 관점에서 해당상품의 가장 필수적인 속성정보를 제공하게 됩니다.
위에서 말한 자동화의 방법 중 하나로 딥러닝 기반 NLP 처리기술인 Bert Question & Answer 태스크를 활용한 상품명 내 상품 속성정보 추출을 하는 기술과 이마트의 데이터에 적용한 내용에 대해 이야기해보려 합니다.


AVEQA
소개
Attribute Value Extraction with Question & Answer, 줄여서 AVEQA는 Google Research에서 2020년 ICKDD발표한 Bert 모델 기반의 상품속성 추출 모델입니다. Pretrained Bert 모델에 AliExpress 에서 제공하는 상품 속성 개방 데이터셋 (Aliexpress Sport & Entertainment Dataset)을 활용하여 학습한 것이 특징입니다.
AVEQA는 간략하게 말하면 질의응답 기반의 속성값 자동 추출모델입니다.
BERT 기반의 딥러닝 자연어 처리모델의 질의 응답 기능을 활용해서 하나의 모델로 입력 텍스트에서 임의 속성값을 추출 할 수 있도록 학습한 모델입니다. 논문의 내용으로 보면 Opentag 라고 하는, LSTM-CRF 및 이를 활용한 Attention 기반의 속성 추출 모델이 존재했으나 기존 속성 추출방식과 대비하여 AVEQA 모델이 가지는 장점은 크게 3가지입니다.
우선, Opentag라고 하는 기존 딥러닝 기반 모델 대비, 1) 큰 폭의 평가 성능의 상승이 있었고, 기존 방식의 모델들이 한가지 혹은 한정된 속성들만 다룰 수 있는데 비해, 2)하나의 모델에서 다양한 속성값들을 추출할 수 있습니다. 마지막으로, 해당모델이 한 번도 학습하지 않은 속성값에 대한 학습 및 추론이 가능합니다. 이를 zero-shot 학습이라고 부르는데, 기존 SuOpentag와 같은 일부 모델에서도 가능은 하였습니다. 하지만 AVEQA에서는 Distilled MLM Loss 를 통해 모델의 일반화특성을 유지함으로 전반적인 3)zero-shot 추론성능을 향상시킨 것이 돋보이는 점입니다.


1, 모델 Interface
AVEQA 모델은 입력으로 상품정보 와 내가 추출하고 싶은 속성값을 입력으로 받고 그에 해당하는 값을 입력 정보에서 찾는 질의응답 방식의 학습 모델입니다.( BERT QA Task )

그러면 모델은 2가지 정보를 제공합니다. 우선, 내가 질의하는 속성값이 상품에 존재하는지 여부( Answer Exist ), 그리고 속성값이 있다면 그 입력 텍스트에서 속성값의 위치(Begin/End Index)를 알려줍니다.

2. 모델 구조
그럼 학습 모델의 구조를 살펴보겠습니다.

우선, 앞서 설명한 입력값은, 크게 4가지 특징으로 특징 임베딩( feature embedding ) 되어 BERT모델에 입력되는데요, 좀더 자세히 이야기하면 입력 텍스트를 단어, 캐릭터 수준으로 처리한 정보(Vectorized Tokenization)와, 이들 각각의 위치 및 영역정보(positional, segmentation )가 함께 들어가게 됩니다.
학습을 위한 목적함수(Objective Function, Loss function)는 3가지로 나뉩니다. 앞서 설명드린 두가지 출력에 대학 직접적인 학습 함수와, 앞서 언급했던 Distilled MLM Loss 라고 하는 손실함수를 학습합니다.

Distilled MLM Loss 는 AVEQA를 통해 추론된 출력 특징의 임베팅 값의 분포 ( output feature embedding )가 기존의 기 학습된 BERT모델과 가능한 닮도록 학습합니다. 이렇게 하면, 기존에 BERT 모델이 학습한 일반적인 지식정보들을 최대한 유지하면서 상품명의 속성값들을 학습하게 되므로, 기존 상품데이터에 대한 과적합을 줄여주고, 한 번도 학습하지 않은 속성에 대한 추론성능을 높여줍니다.

단순 QA만 학습한 경우와 비교해(파란색) MLMLoss의 조합에 따른 성능 효과가 가장 크다(빨간색)
단순 QA만 학습한 경우와 비교해(파란색) MLMLoss의 조합에 따른 성능 효과가 가장 크다(빨간색)
학습 데이터
AVEQA모델이 학습 및 검증에는 Aliexpress에서 제공하는 Sports && Entertainment 공개 데이터셋이 사용되었습니다. 데이터셋은 스포츠/엔터테인먼트 카테고리 상품명들에 대한 2만 7천여개 속성 및 값을 학습 데이터로 구성 하였으며, 총 11만개의 학습데이터로 구성 되어있습니다.

학습모델 구현 및 테스트
AVEQA 모델의 경우 해당 학습코드를 활용한 이마트 상품명 속성 정보 추출에 적용해보기를 통해 성능 검증 및 특징파악을 할 필요가 있었습니다. 이를 위해 논문의 Aliexpress Dataset과 Pretrained BERT (HuggingFace)를 활용하여 모델 구현 및 학습 후 논문 결과와 비교를 해보았습니다. 앞서 논문에서 언급된 것과 같이, MLM-loss가 학습 데이터 성능에 직접적으로 미치는 영향은 거의 없다고 보고, 해당 Loss를 제외한 QA Loss와 AE Loss 두가지 목적함수 구성으로 학습을 진행하였습니다.

여건상 모든 조건을 논문과 동일하기 재현하기 힘든 부분이 있었으나(하단 구현상세 참조) 속성별 추출성능(Recall/Precision/F1 score) 평가에서 학습 후 기존 모델에 준하는 성능 메트릭을 보이는 것을 확인할 수 있었습니다. 또한, 4개 대표 속성과 별개로, 학습 샘플수 대비 고유값의 개수의 차이가 큰 두개 속성값(Model Number, Gender ) 의 추출 성능차이가 큰 것 또한 눈 여겨 볼 만합니다.


이마트 데이터 셋을 활용한 모델 학습 및 데이터 특징
영문 데이터셋을 통해 기본적인 모델 구현 및 성능을 확인한 후 이마트 상품명 테이블 정보를 활용하여 한글 AVEQA 학습을 진행하였습니다. 4개 카테고리 약 3천여개로 기존 데이터셋에 비해 많지 않지만, 실제 이마트 상품명 데이터를 활용하여 POC 모델을 추론 등을 통해 유의미한 결과를 얻을 수 있었으며, 추가로 데이터 분석을 진행하였습니다.

실제 이마트의 상품들은 카테고리별로 다양한 특징과 속성을 가지는 데이터로 구성이 되어 있습니다. 한 카테고리에 포함된 속성값이 다른 카테고리 상품군에는 없거나, 혹은 상품에 따라 속성값이 전혀 다른 성격을 가지는 경우도 있습니다. 예를 들어 세탁세제에서 핑크 라는 단어는 일반적인 맥락에서는 색상속성이 되겠지만, 섬유유연제에서는 향의 속성을 가지게 됩니다. 또한 브랜드와 제조사의 혼용, 구분이 또다른 대표적인 특징이 될 수 있습니다. 냉장면류에서는 제조사명이 브랜드명을 대표하며 상품명에 존재하지만, 세탁세제에서는 90% 이상의 비율로 제조사와는 별개로 브랜드명을 가져가는 경우가 많습니다.
기존 학습 구현에 사용된 영문 데이터와 비교해서는, 데이터 퀄리티에 있어서 다른 특징을 가집니다. 학습에 사용한 상품명 내 속성값의 개수 분포를 보면, 대부분의 경우 2-3개 정도의 분포를 보입니다. 예를 들어, 실제 이마트 세탁세제 상품명 길이와 공개데이터셋의 참조사이트인 AliExpress 의 상품명 길이를 비교해보면 정보의 디테일에서 상당한 차이가 나는 것을 볼 수 있습니다. 이러한 한글 상품 명이 가지는 문제를 극복하기 위해서는 다양한 소스 (이미지, 상세 상품정보, 고객 리뷰 등)로부터 상품 속성 추출이 필요합니다.
평가
BERT QA 기반의 AVEQA 상품속성 추출 모델의 특징을 살펴보고 구현, 테스트해보면서 실제 상품명 속성 추출에 활용하기 위한 부분들을 살펴보았습니다. 구현/테스트에서는 영문 상품데이터를 활용하였지만 실제 적용에서는 한글 데이터를 활용해야 하기 때문에 그에 따르는 변경사항이 필요합니다. 물론 한글 BERT 모델이 필요한 것은 물론, 대량의 한글 학습을 위한 데이터셋이 필요하며 이러한 부분들은 많은 노력이 필요합니다. 또한 AVEQA는 입력 상품명 내에서만 속성정보를 찾기 때문에, 카테고리 분류와 같은 좀더 범용적인 상품속성 추출을 위한 솔루션에는 적합하지 않습니다. 실제 이마트 데이터를 적용한 POC에서 상품명 정보만으로 가용한 정보의 양이 많지 않은 점 또한 풀어야 할 과제입니다. 이를 위해서는 분류 레이어를 적용한 AVEQA의 확장 또는 추가적인 모델링을 고려해볼 수 있습니다.
맺으며
시작에서 언급한 바와 같이, 상품의 속성은 상품명 뿐만 아니라 상품 포장 및 상세 이미지, 고객 리뷰 등의 다양한 채널을 통해 얻을 수 있습니다. 이를 기반으로 데이터 특성에 맞게 처리하여 원하는 속성 정보를 추출하는 것은 이마트 검색/개인화/추천/광고에 있어서 매우 높은 활용도를 가질 것으로 예상됩니다. 우리는 이러한 Multi-Source / Multi-Modal 상품 속성 추출의 출발점으로서 자연어 처리기반 모델인 AVEQA 가 가진 가능성과 학습 데이터셋의 한계를 알아보았습니다. 이마트 DT본부 AI/ML에서는 이러한 방대하고 다양한 원천의 상품데이터 및 모델을 활용하여 속성정보를 추출하고, 이를 통해 업무 효율화 및 고객 편의 및 혁신을 제공하기 위해 노력하고 있습니다. 짧지만은 않은 이 여정에 이글을 읽고 있는 여러분이 함께 할 수 있기를 바랍니다.
참조
1. https://naixlee.github.io/Product_Knowledge_Graph_Tutorial_KDD2021/slides/knowledge_extraction.pdf1.
2. Lin, R. et al. PAM: Understanding Product Images in Cross Product Category Attribute Extraction. in Proceedings of the 27th ACM SIGKDD Conference on Knowledge Discovery & Data Mining 3262–3270 (ACM, 2021). doi:10.1145/3447548.3467164.
3. Yang, L. et al. MAVE: A Product Dataset for Multi-source Attribute Value Extraction. (2021).
4. Wang, Q. et al. Learning to Extract Attribute Value from Product via Question Answering: A Multi-task Approach. in Proceedings of the 26th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining 47–55 (Association for Computing Machinery, 2020).