Mobile QR Code QR CODE : The Transactions of the Korean Institute of Electrical Engineers

  1. (Division of Human IT Convergence, Daejin University, Korea.)
  2. (Division of Human IT Convergence, Daejin University, Korea.)



Recommendation, Deep Learning, Transfer Learning, FCN, k-NN, Linear SVM

1. 서 론

최근 점점 더 많이 생겨나고 있는 새로운 유형의 멀티미디어 콘텐츠, SNS 서비스의 광범위한 확장, 그리고 스마트 기기들의 보급으로 인해 발생 및 유통되는 데이터의 규모가 기하급수적으로 늘어나고 있으며, 요즈음의 환경에서는 사람들의 대부분의 쇼핑이 온라인 환경에서 이루어지고 있다. 한편으로는 딥러닝 분야의 발달로 과거에는 제공되지 않았던 새로운 방식의 상품 검색 및 추천 서비스가 사용자에게 제공되고 있다. 이렇게 쇼핑 상품에 대한 포털 검색 또는 온라인 상거래의 규모가 크게 늘어나는 상황에서 기존의 카테고리화된 쇼핑몰에서의 수동방식의 쇼핑은 많은 시간과 노력이 필요하고, 포털에서의 키워드 검색을 통한 상품 검색으로는 검색하는데 있어 제한되는 것이 상당 부분 존재한다. 딥러닝 기술을 통한 이미지 기반 혹은 음성 기반의 검색 시스템을 도입하게 될 경우, 데이터의 활용도 및 사용자의 편의성은 더욱 증대될 것이고, 기존의 서비스보다 더욱 다양한 서비스를 제공할 수 있다. 이에 따라 아마존, 유투브, 넷플릭스, 스포티파이 등 글로벌 콘텐츠 유통 플랫폼 회사들을 비롯하여 국내에도 네이버 쇼핑을 포함한 대다수의 온라인 상품 유통사들이 딥러닝과 머신러닝 기법들을 결합한 형태의 추천 서비스를 만들어 상용화 서비스에 적용하고 있다 (2,3), (15), (17,18). 이들은 기본적으로 사용자들이 자사의 쇼핑 사이트에서 수행한 행동 데이터를 기반으로 추천 기술을 적용하는 형태를 띠고 있다. 사용자의 행동을 상품 구매, 평점 등과 같은 적극적인 행동과 페이지 방문, 머문 시간, 댓글 등과 같은 소극적인 행동으로 구분한 후 소극적인 행동은 통계 처리, 텍스트 마이닝 등의 빅데이터 처리를 통해 의미 있는 정보로 변환하고 추천 기술에 적용한다. 먼저 넷플릭스는 기본적으로 사용자의 행동 데이터에 대해 베이지안 분류기, 연관 분석, 신경망 등의 기술을 적용하여 추천 상품을 계산하는 것으로 알려져 있다. 아마존이나 네이버 쇼핑 등에서는 추천의 핵심 기술로서 사용자의 성향 정보를 바탕으로 한 아이템 기반 협업 필터링 기법을 적용한다고 발표했다. 따라서 이 추천 서비스들은 기본적으로 사용자의 행동 데이터를 수집하고 성향을 분석하여 이를 바탕으로 상품을 탐색 및 추천하는 접근 방법이다. 즉 사용자 행동 데이터를 가장 중시하는 것이다. 한편 유투브의 경우 사용자가 선택한 영상 콘텐츠에 대한 행동 데이터를 바탕으로 콘텐츠를 추천하는데 콘텐츠의 유사성 분석 및 분류를 위해 심층 신경망을 이용하는 것으로 알려져 있다. 또한 추천 정확도가 가장 좋은 회사로 알려진 스포티파이는 다른 회사들처럼 음악 콘텐츠 추천을 위해 사용자 성향 분석 기반의 협업 필터링 및 콘텐츠 기반 추천 방법을 적용하되 사용자가 선호하는 음원의 유사성을 분류하기 위한 딥러닝 모델을 복합적으로 적용한다. 즉 이들은 사용자 행동 데이터를 기반으로 하지만 그에 못지않게 콘텐츠 특징 분석을 통한 유사성 분류에도 초점을 맞추고 있는 것이다.

본 연구에서는 이미지 기반 추천 시스템을 이용하여 특정 온라인 마켓 상품에 대해서 키워드를 이용한 검색이 아닌 상품의 이미지를 이용하여 상품 정보를 검색 및 추천하는 기법을 제안하고자 한다. 제안한 기법의 핵심은 사용자들이 구매하고자 하는 상품에 대한 이미지를 온라인 마켓 사이트에 제시하면 전이 학습(Transfer Learning) 모델을 이용하여 학습 및 추론하여 후보를 선정한 한 후에 이와 특징이 유사한 상품을 콘텐츠 기반 추천 기법으로 탐색하여 제시하는 것이다. 따라서 앞의 방법들과 비교할 때 접근방법이 다르긴 하지만 기술적으로는 유투브나 스포티파이의 접근방법에 가깝다고 볼 수 있다. 사용자가 구매하기 위하여 제시한 상품 이미지에 대해 딥러닝 모델을 바탕으로 인식하는 것이 핵심이기 때문이다. 이 때 CNN 딥러닝 모델은 문제의 특성을 고려하여 전이 학습 모델인 Inception-v3 모델을 이용한다. 전이 학습은 기존의 이미지넷(ImageNet) 데이터 셋을 학습한 결과에 온라인 마켓에서 사용하는 상품 이미지들에 대한 자체 데이터 셋을 추가로 학습하여 추론하는 기법이다. 본 연구에서는 상품 추천 서비스를 구현하는데 있어서 세 가지 기법을 적용하였다. 먼저 상품 인식 부분에 있어서는 전이 학습을 응용한 세 가지 방법을 구현하고 실험하였다. 첫 번째 방법은 전이 학습을 통하여 이미지에 대한 특징값들을 추출하고 특징값들에 대해 완전연결 네트워크(FCN: Fully Connected Network) 학습과 확률 기반의 소프트맥스(Softmax) 함수를 통해 상품들을 분류하는 기법이고, 두 번째 방법은 특징값들에 대해 유사도 계산 기반의 k-근접이웃 탐색(k-Nearest Neighbors Search) 알고리즘을 적용하여 상품들을 분류하는 기법이다. 마지막 방법은 특징값들에 대해 선형 SVM(Linear SVM) 모델을 통해 분류하는 방법이다. 다음으로 상품 추천 부분에 있어서는 상품의 주요 특징값들의 유사성을 기반으로 하는 콘텐츠 기반 추천(Content-based Recom- mendation) 방법을 적용하였다. 본 논문에서는 각각의 기법들에 대해 성능평가 요소들을 기준으로 비교분석하고 결과를 제시함으로써 기업들이 유사한 상황의 시스템을 개발하려고 할 경우 유용한 방법론을 제시한다는데 의의를 갖고자 한다.

2. 본 론

2.1 전이 학습

전이 학습 모델은 성능이 좋은 CNN 구조 형태의 합성곱 베이스(Convolutional Base)와 분류기(Classifier)로 구성되어 있다. 합성곱 베이스는 이미지로부터 특징을 추출하기 위한 부분으로 합성곱층(Convolutional Layer)와 풀링층(Pooling Layer)의 반복 연결 구조로 되어 있다. 분류기는 추출된 특징을 학습해서 이미지를 분류하기 위한 부분으로 완전연결 네트워크로 구성되어 있다.

딥러닝 모델의 핵심적인 수행요소는 계층적인 특징을 학습한다는 것이다. 즉 전반부의 층들에서는 일반적인(General) 특징들을 추출하는 학습을 수행하고 후반부의 층들로 갈수록 특정 데이터 셋에 초점이 맞추어진 구체적인(Specific) 특징들을 추출하는 학습을 수행하는 것이다. 이것은 전반부의 층들은 일반적인 종류의 이미지 데이터 셋을 학습하는데 공통으로 적용할 수 있고 후반부의 층들은 특정 종류의 이미지 데이터 셋마다 새로 학습해서 데이터를 분류하는데 사용해야 함을 의미한다 (4). 따라서 전이학습 모델은 이러한 CNN의 학습구조 상의 특징을 반영하여 사전 학습 결과를 이용하여 적은 데이터 셋 만으로도 인식 정확도를 높이면서 효율적인 학습을 수행할 수 있도록 하기 위한 모델이다. 기존의 공개되어 있는 전이학습 모델은 VGG (12), Inception (7), ResNet5 (6), Inception- ResNet (4) 등이 있다.

자신의 데이터 셋을 가지고 전이학습 모델을 이용하여 학습을 시키려면 일단 합성곱 베이스와 분류기로 구성되어 있는 CNN 구조에서 분류기를 자신의 프로젝트에 맞는 형태의 분류기로 교체해야 한다. 다음으로 데이터 셋의 구성 수준(데이터 크기와 유사성)을 고려하여 사전 학습된 합성곱 베이스 부분을 어디까지 재학습시킬 것인지를 결정하고 학습을 파인튜닝(Fine-tune)해야 한다. 데이터 크기가 크고 사전 학습 모델과 데이터 유사성이 크다면 합성곱 베이스의 후반부에 대해서만 재학습시키는 것이 효과적일 것이고, 데이터 크기가 크고 유사성이 낮다면 합성곱 베이스의 전반부부터 재학습시키는 것이 좋을 것이다. 이 때 합성곱 베이스의 어떤 층까지를 재학습시켜야할지를 결정하는 것은 매우 어렵다. 모델의 과적합(Over-fitting)과 정확도(Accuracy) 사이의 트레이드 오프(Trade-off) 관계가 존재하기 때문이다. 또한 데이터 셋 크기가 작다면 유사성 여부에 상관없이 합성곱 베이스 부분은 재사용해야 할 것이다. 물론 데이터의 크기가 작고 유사성도 낮다면 학습결과는 그다지 좋지 않을 것임을 쉽게 예상할 수 있다. 이 경우에는 데이터 크기를 높이기 위해 전처리 과정을 통해 데이터 부풀리기(Augmentation) 기법을 잘 적용해야 한다 (10).

2.2 제안 시스템 실행 구조

본 연구에서는 사용자가 온-오프라인 쇼핑몰 환경에서 특정 종류의 상품을 구매하고자 할 경우 이와 특징이 비슷한 상품들을 딥러닝 기반의 학습 및 분류 모델을 이용하여 추천하는 시스템을 제안 및 개발하였다. 그림 1은 제안한 상품 추천 시스템의 구조를 보여준다.

그림. 1. 딥러닝 기반 상품 추천 시스템 구조

Fig. 1. Deep learning based goods recommendation system architecture

../../Resources/kiee/KIEE.2020.69.7.1087/fig1.png

그림 1에서 보이는 것처럼, 시스템의 실행 순서는 다음과 같다.

1. 사용자가 서비스에 이용할 상품을 발견하고 스마트폰 앱의 카메라 메뉴에서 상품 이미지를 촬영(또는 사진 선택)하고 검색서버에 전송한다.

2. 추천 서버의 에서는 제안 시스템이 적용될 쇼핑몰 도메인 전용 상품 이미지에 대해 데이터 부풀리기를 위한 영상처리(brightness, scaling, blurring, cropping 4-sides)를 수행한다. 이 작업은 향 후 시스템이 실제 환경에서 추론 시 사용자로부터 전송된 사진의 수준이 다양하다는 전제 하에 이미지 수준에 따른 학습조건을 실제 환경에 맞게 다양한 형태로 생성한 후 학습을 수행하기 위한 것이다.

3. 추천 서버의 에서는 1번에서 입력한 상품 이미지에 대해 세 종류의 에서 각각 추론한 결과를 다수결로 추첨(Voting)하여 유사 상품들의 레이블을 출력한다. 이 때 과 는 모두 1번에서 언급한 쇼핑몰 도메인 전용 이미지 데이터 셋에 대해서 학습하기 위하여 CNN 모델인 Inception-v3를 이용한다. 은 Inception-v3 모델의 출력값을 생성하기 위해 소프트맥스 분류기를 통하여 Top 5 레이블 내에서 인식한 결과를 출력한다. 는 모델의 마지막 단계 전까지는 과 동일하게 Inception-v3 모델의 프로세스를 거쳐서 값을 생성하지만 마지막 분류기로서 소프트맥스 분류기를 적용하지 않고 머신러닝의 대표적 분류 알고리즘인 k 근접이웃 탐색 기법을 통하여 추론 대상과 가장 가까운 레이블로 인식한 결과를 5개 탐색하여 출력한다. 은 분류기로서 k 근접이웃 탐색 대신에 선형 SVM을 사용하는 것 외에는 와 동일하다.

4. 사용자가 제시한 상품 이미지에 대해 의 추론 결과에서 중복된 상품들과 중복되지 않은 상품들에 대해 가중치에 기반한 우선순위로 정렬하여 사용자에게 제시한다. 그러면 사용자는 자신이 원하는 상품을 선택하고, 선호하는 상품에 대한 조건으로서 필터(브랜드/가격)를 적용하여 추천 버튼을 누른다.

5. 에서는 4번에서 사용자가 선택한 상품의 특징(종류/색깔)과 사용자가 부여한 필터조건을 기준으로 유사한 특징을 가진 상품들을 상품 DB에서 검색한다.

6. 검색된 상품 정보를 앱에 전송하여 사용자에게 추천한다.

다음 절부터는 제안한 상품 추천 시스템의 핵심인 전이 학습 모델의 학습 및 추론을 위해 적용한 데이터 셋 준비 방법과 모델의 학습절차 및 실행결과에 대해 설명한다.

2.3 데이터 셋 구성

Inception-v3 모델은 전이 학습 모델이므로 ImageNet (1)에서 제공하는 1000개 카테고리, 160만장의 이미지들에 대해 학습한 결과를 포함하고 있다. 이에 더하여 제안 시스템에서 적용할 쇼핑몰 도메인 전용 상품 이미지로 자체 데이터 셋을 구축하였다. 학습 및 추론 이미지 데이터 셋은 크게 원본 데이터와 가공 데이터로 구분된다. 두 종류의 데이터는 서로 다른 의미를 가지게 되며 학습 성능과 정확도 향상에 중요한 영향을 미치므로 세심하게 구성하였다. 먼저 원본 데이터는 가공되지 않은 형태로서, 2400개 카테고리, 30000여장을 수집하여 확보하였다. 구체적으로 2000 종류의 상공회의소의 정형화된 마켓 상품 이미지들과 웹 크롤링을 통하여 얻은 상품 이미지들로 구성하였다.

원본 데이터는 카테고리 별 개수가 균형이 있게 구성되어야 한다. 이는 카테고리가 모델의 최종 출력인 레이블이 되고, 모델의 출력을 결정하는 마지막 단계가 확률적 분류기인 소프트맥스 함수이므로 분류 정확도를 높이기 위해서는 데이터의 양적 균형이 매우 중요한 것이다.

또한 구성된 학습 이미지의 형태가 가능한 한 다양한 형태로 구성되어야 한다. 즉, 한 카테고리에 포함된 원본 이미지들이 동일한 모양으로 중복되거나 유사한 모양이 많을 경우에는 학습 성능이 떨어지게 된다. 이는 모델이 기본적으로 이미지로부터 특징값을 추출하여 가중치를 학습하기 때문에 가능한 한 다양한 형태의 특징들을 추출할 수 있어야 하는 것이다. 다양한 형태라는 것은 상품 이미지를 다른 각도에서 찍은 형태, 한 개가 아닌 묶음 모양의 여러 개, 배경 이미지와의 크기 비율 및 모양 등을 의미한다. 예를 들어, 상공회의소의 상품 이미지는 정형화된 일종의 증명사진으로서 보통 흰 바탕에 상품이 가운데 위치한 형태이다. 즉 노이즈나 이상치(Outlier)가 전혀 없는 정형화된 데이터라는 의미이다. 이에 반해 실제 환경의 이미지는 조명, 위치, 각도 등의 환경요소에 노출되어 있는 데이터로서 노이즈나 이상치가 포함될 가능성을 언제든지 내포하고 있는 현실 데이터이다. 이러한 유사한 이미지가 여러 장 존재하는 형태로서 양적인 조건만 만족하는 노이즈 없는 데이터 셋으로 학습을 하게 되는 경우에는 매우 낮은 학습률과 추론에 대한 낮은 정확도를 보이고, 심지어 학습이 진행되지 않는 경우도 발생하였다. 따라서 유사한 사진으로만 원본 데이터를 구성하는 것은 반드시 피해야 한다. 그리고 추론이 진행될 경우 사용자가 상품에 대한 이미지를 어떤 각도, 어떤 밝기, 어떤 방향에서 찍는가는 정해져 있지 않는 조건이기 때문에 사용자가 직접 찍은 사진과 유사한 이미지 데이터로 원본 데이터를 구성할수록 높은 학습률과 추론 정확도를 가질 수 있다. 이러한 학습 조건을 충족시키기 위해서 웹 크롤링을 이용하여 얻은 이미지를 원본 데이터로 구성하는 이유이기도 하다.

가공 데이터는 원본 데이터에 대해 그림 1의 프로세스에 포함된 에서 기초적인 영상처리를 수행한 결과이다. 표 1은 이미지 전처리기의 실행결과를 보여준다.

표 1. 이미지 전처리 실행 결과

Table 1. The result of image preprocessing work

../../Resources/kiee/KIEE.2020.69.7.1087/tbl1_1.png

../../Resources/kiee/KIEE.2020.69.7.1087/tbl1_2.png

원본

scaling 후 cropping top-side and right-side

../../Resources/kiee/KIEE.2020.69.7.1087/tbl1_3.png

../../Resources/kiee/KIEE.2020.69.7.1087/tbl1_4.png

scaling 후 cropping top-side and left-side

scaling 후 cropping bottom-side and right-side

../../Resources/kiee/KIEE.2020.69.7.1087/tbl1_5.png

../../Resources/kiee/KIEE.2020.69.7.1087/tbl1_6.png

scaling 후 cropping bottom-side and left-side

rotating left direction

../../Resources/kiee/KIEE.2020.69.7.1087/tbl1_7.png

../../Resources/kiee/KIEE.2020.69.7.1087/tbl1_8.png

rotating right direction

blurring

이 작업은 향 후 시스템이 실제 환경에서 추론 시 사용자로부터 전송된 사진의 수준이 다양하다는 전제 하에, 이미지 수준에 따른 학습조건을 실제 환경에 맞게 다양한 형태로 생성한 후 학습을 수행하기 위한 것이다. 즉 사용자가 생성하는 어떠한 조건의 이미지 형태에 맞추기 위하여 원본 데이터에 의도적으로 이상치를 삽입하는 것이다.

구체적으로 전처리 과정에서는 모델의 네트워크에서 요구되는 이미지 전처리 과정과 성능향상을 위한 전처리 과정을 진행하게 된다. 먼저 네트워크에서 요구되는 전처리 과정은 Inception-v3 모델의 네트워크가 요구하는 크기인 299 x 299에 맞추어 변환하는 과정이고, 성능향상을 위한 전처리 과정은 Brightness, Scaling, Cropping 4-sides, Flipping, Blurring 등을 통하여 학습 이미지 데이터에 대해서 의도적인 왜곡을 주어 하나의 이미지로 다양한 환경과 형태, 각도에서 촬영한 여러 유형의 이미지를 구성한 효과를 내기 위한 과정이다. Incep- tion-v3 모델은 JPEG, PNG 포맷을 모두 지원한다.

확보한 데이터 셋은 학습(Train)용, 검증(Validation)용, 추론(Test)용을 적정한 비율로 구분하였다. 이중 검증용 데이터는 중간 학습 평가 및 학습률(Learning Rate), 배치 크기(Batch Size) 등의 하이퍼파라미터(Hyper-parameters) 값을 수정하기 위한 데이터 셋이다. 데이터 셋을 이러한 세 가지 서브 셋으로 나누게 되는데 본 연구에서는 이러한 서브 데이터 셋들에 대해 k-폴딩(k-Folding) 방법으로 학습을 수행하도록 하였다.

2.4 상품 인식 모델

이 절에서 소개될 세 가지 이미지 분류기 모델들은 인식기 단계에서는 모두 Inception-v3 모델을 기반으로 하되 분류기 단계에서 각각 다른 방법으로 추론을 이끌어내는 방법을 사용하였다. Inception-v3 모델은 이미지에 대한 합성곱 연산을 수행하는 넓고 깊은 네트워크를 포함하는 전이 학습의 여러 모델 중 하나이다 (7).

그림. 2. Inception-v3 + FCN 구조

Fig. 2. Inception-v3 + FCN architecture

../../Resources/kiee/KIEE.2020.69.7.1087/fig2.png

Inception-v3 모델은 그림 2의 구조도에서 보이듯이 이미지를 처리하는데 한 번에 여러 크기의 필터를 복합적으로 이용한다. 이러한 처리 방법은 inception 모델 이전의 CNN 모델들의 방법과는 다르게 이미지에 대한 특징을 더 효율적이고 정확하게 추출할 수 있다. Inception-v3 모델 이후에도 성능을 개선한 Inception-ResNet 모델까지 오픈되었으나 본 연구에서는 세 종류의 이미지 인식기들을 구현하기 위하여 Inception-v3 모델을 적용하였다.

먼저, 의 방법은 그림 2의 Inception-v3 모델을 그대로 사용하여 이미지를 인식하는 방법으로서 그림 2에서 보이듯이 모델의 마지막 단계에 해당하는 입력 이미지에 대한 분류기로 완전연결 네트워크(FCN) 방법이 적용된다. 이 학습 모델은 ImageNet 데이터 셋을 이용하여 합성곱 베이스 부분의 사전 학습된(Pre-trained) 파라미터를 그대로 사용하고, 완전연결 네트워크로 구성된 분류기 부분의 소프트맥스 층에 대해서만 본 연구의 데이터 세트와 클래스에 맞추어 학습한다. Inception-v3의 고정된 파라미터를 통하여 이미지 데이터를 텐서(Tensor)로 변환하므로 매 에폭(Epoch)마다 반복해서 이 값을 구할 필요가 없기 때문에 따로 텐서로 변환한 값을 저장해 두는데, 이것을 버틀랙(Bottleneck)이라고 한다. 그리고 학습에 대한 결과는 마지막 소프트맥스 층의 결과로서 확률값 형태로 나타내며, 입력된 이미지에 대한 확률값이 가장 높은 값을 선택하여 추론에 대한 이미지 클래스를 결정하는 방식으로 동작한다. 보통 확률값이 높은 순서대로 Top 5까지 설정하여 추론 결과를 가져올 수 있다.

다음으로, 의 방법은 Inception-v3 모델의 합성곱 베이스 부분의 학습 결과와 분류기 부분으로 k-근접이웃 탐색 방법을 융합하여 추론하는 학습 모델이다 (16). 이 방법은 을 이용하여 추론하는 학습 모델과 마찬가지로 ImageNet 데이터 셋을 이용하여 사전 학습된 Inception-v3 네트워크의 파라미터를 그대로 사용한다. 그러나 마지막 단계의 처리에 대해서는 다른 특징을 갖는다.

그림. 3. Inception-v3 Pool_3 특징 벡터 + k-NN 탐색

Fig. 3. Inception-v3 Pool_3 features + k-NN search algorithm

../../Resources/kiee/KIEE.2020.69.7.1087/fig3.png

위의 그림 3에서 보이듯이 Inception-v3 모델에서 네트워크의 마지막 단계인 소프트맥스 층의 바로 전 Pool_3 층의 결과를 이용하여 생성한 특징 행렬(Feature Matrix) 상에서의 입력된 이미지의 특징값과 거리 상 가장 가까운 특징값을 k-근접이웃 탐색 방법(k-NN) 기법으로 탐색하여 결과로 도출해내는 방식이다. 결국, 두 모델 모두 고정된 네트워크의 마지막 층인 pool_3층을 다르게 활용하는 방식에 따라 두 모델로 나누어지게 된다.

그림. 4. Inception-v3 Pool_3 특징 벡터 + linear SVM 분류

Fig. 4. Inception-v3 Pool_3 features + linear SVM classifier

../../Resources/kiee/KIEE.2020.69.7.1087/fig4.png

그림 4에서 보이는 것처럼 의 방법은 방법과 거의 유사한데 분류기로 k-근접이웃 탐색 방법 대신에 선형 SVM(Linear SVM) 분류기를 사용한 것이다 (13), (17).

2.5 데이터 셋에 적합한 모델 학습

의 모델은 가중치 등의 파라미터가 고정된 완전연결 네트워크에 대해서 학습을 하는 형태이므로 각각 이미지에 대한 고정된 네트워크의 마지막 결과와 해당 이미지에 대한 정답(Ground Truth)을 제공함으로써 마지막 소프트맥스 층을 포함한 완전연결 네트워크에 대해서 가중치 조정을 통해 학습을 반복한다. 이와 비슷한 연구로서 (14)에서는 완전연결 네트워크 대신에 평균 풀링층(Average Pooling Layer)을 추가하고 그 결과값을 소프트맥스 층에 연결하였다.

Inception-v3 모델에 k-근접이웃 탐색 방법이 적용된 모델은 FCN 방법을 사용하는 추론 방법과 유사하지만, 사전 학습된 inception-v3 내 pool_3층의 특징값들을 추출하기 위한 방법이라 할 수 있다. 네트워크에 입력된 학습용 데이터 이미지들의 특징값들을 추출하여 레이블과 함께 특징 행렬에 저장한다. 추론을 위해 입력된 이미지 역시 같은 방법으로 특징값들을 추출한 후 행렬에 저장된 특징값들과 유클리드 거리로 계산하여 가장 최단 거리 값의 레이블 순으로 출력하게 된다. 이 때, 학습용 데이터에 사용된 네트워크와 추론용 데이터에 사용된 네트워크가 다르다면, 각 네트워크에 저장된 가중치 등의 파라미터가 다르기 때문에 결과의 정확성은 매우 떨어지게 된다. 따라서 학습과 추론에 사용하는 네트워크 모델은 반드시 같아야 한다.

모델은 분류기로서 선형 SVM을 사용한다. 선형 SVM은 분류 모델로서 가장 많이 사용하는 방법 중의 하나이므로 추론 결과의 정확도를 위하여 적용하였다. 선형 SVM은 에러율에 대한 규제 파라미터 c를 갖는다. 이 파라미터를 최적화하기 위해서 본 연구에서는 (17)에서 제시한대로 그리드 탐색(Grid Search) 방법을 사용하였다.

2.6 상품 추천 모델

2.4절에서 설명한 상품 인식 모델을 통해 인식된 상품 이미지 후보 Top 5에 대하여 사용자의 선택 과정이 수행되고 나면 상품 추천 모듈을 통해 추천 프로세스가 수행된다. 이 때 사용자의 선택 과정은 상품 인식 모듈 결과가 100%의 정확도를 보장하지 못하기 때문에 애플리케이션 개발 차원에서 부수적으로 고려하는 일종의 검증 단계이다. 이 단계는 자동 및 수동 결합 방식의 콘텐츠 기반 추천 기법에 의해 수행된다. 먼저 사용자가 선호하는 상품에 대한 조건으로서 UI를 통해 필터(브랜드/가격)를 적용하여 추천 버튼을 누른다. 그러면 모듈에서는 상품 인식 모듈에서 자동으로 인식한 상품의 특징(종류/색깔)과 사용자가 수동으로 부여한 필터조건을 기준으로 유사한 특징을 가진 상품들을 상품 데이터베이스에서 검색한다.

3. 실험 및 평가

3.1 실험 환경

본 연구에서 사용한 데이터 셋에 대한 총 레이블은 (학습해야 할 상품의 종류) 약 2,000여 개 정도이다. 그 중 실험에 사용한 레이블 수는 970개이다. 이것의 의미는 대-중-소 상품 카테고리 중 대분류만 하여 공산품 970가지를 레이블로 하여 학습시켰다는 의미이다. 따라서 제품 분류는 다르더라도 유사한 형태의 이미지들이 많게 된다. 이는 결국 실험결과에서 추론 정확도에 큰 영향을 미치게 된다. 본 논문에서는 추론 정확도를 측정하는 환경을 어렵게 가져가기 위하여 의도적으로 많은 카테고리와 유사한 이미지들을 많이 포함하고 있는 상품 이미지 데이터를 레이블로 포함시켰다. 데이터는 각 레이블마다 크롤링을 통해 수집한 최소 20개 이상의 원본 이미지 데이터와 이에 대해 8가지 부풀리기 방법으로 전처리를 수행하여 생성된 데이터를 실험용 데이터로 포함시켰다. 마켓 상품 실험에서 데이터 셋의 각 단계별 비율은 훈련(Train) 데이터 셋 80%와 테스트(Test) 데이터 셋 20%의 비율로 데이터 셋을 나누었다. 훈련 데이터 셋은 다시 학습용 90%와 검증용(Validation) 10%로 분리하여 학습시켰다. 또한 세 종류의 이미지 분류기는 각각 동일한 데이터 셋과 분리 비율을 적용하였다.

모델을 구동한 서버의 하드웨어 환경으로는 CPU intel i7 6700, RAM 16 GIB, SSD 256GB samsung evo pro 850, GPU GTX 1080을 탑재한 서버이고, 사용된 운영체제는 Ubuntu 18.04, 사용된 딥러닝 관련 라이브러리 및 소프트웨어는 Tensorflow 2.0, CUDA 10.0, Cudnn 7.4 등이 사용되었다. 모델 구동 시 입력된 파라미터는 두 모델 모두 같은 조건으로 learning rate 값은 0.001, train batch size와 validation batch size는 기본 값은 100, training step은 1,000,000 값으로 설정하였다.

3.2 실험 결과 및 평가

다음의 표 2에서는 학습된 상품 레이블 중 일부에 대해 추론한 결과를 보여준다. 표 2에서 “상품 이미지”는 사용자가 구매하기 위해 마켓에서 스마트폰으로 찍어 시스템에 제시한 상품 이미지이고, “레이블”은 상품 이미지에 대한 레이블, “추론 결과”의 “Top n”은 FCN 모델로 추론하였을 때 n 순위에 상품 이미지가 있는 경우와 그 때의 소프트맥스 확률점수()이다. 예를 들어, “Top 2”는 추론 결과 사용자가 제시한 상품 이미지를 2 순위로 제시한 경우를 의미한다.

표 2. 추론 결과

Table 2. The result of inference

순번

상품 이미지

레이블

추론 결과

1

../../Resources/kiee/KIEE.2020.69.7.1087/tbl2_1.png

42787100

Top 1

42787100

(score=0.94870)

../../Resources/kiee/KIEE.2020.69.7.1087/tbl2_2.png

2

../../Resources/kiee/KIEE.2020.69.7.1087/tbl2_3.png

42967199

Top 3

42967199

(score=0.13871)

../../Resources/kiee/KIEE.2020.69.7.1087/tbl2_4.png

3

../../Resources/kiee/KIEE.2020.69.7.1087/tbl2_5.png

43036436

Top 2

43036436

(score=0.12452)

../../Resources/kiee/KIEE.2020.69.7.1087/tbl2_6.png

4

../../Resources/kiee/KIEE.2020.69.7.1087/tbl2_7.png

43015691

Top 1

43015691

(score=0.50242)

../../Resources/kiee/KIEE.2020.69.7.1087/tbl2_8.png

표 3. 세 가지 모델 적용 결과 비교

Table 3. The comparison result of applying three models

모델

항목

FCN

k-NN

Linear SVM

Label

970

Image

220,365

Step

1,000,000

Training Time

32h 41m

1h 6m

1h 43m

Inference Time

1s 이내

1s 이내

1s 이내

*Test Accuracy

*Top1

81%

70%

77%

*Top5

92%

84%

90%

*Test Accuracy : 학습된 상품 중 무작위 100개를 선택한 이미지에 대한 추론 정확도

*Top 1 : 이미지 추론 시 추론결과 점수 1 순위에 상품이 있는 경우

*Top 5 : 이미지 추론 시 추론결과 점수 5 순위 안에 상품이 있는 경우

표 2에서 보면, 1번의 경우에는 사용자가 제시한 상품 이미지에 대해 94%의 높은 확률점수로 Top 1에서 추론한 반면, 4번의 경우에는 비록 Top 1로 추론하였으나 50%의 낮은 확률 점수로 추론한 것을 볼 수 있다. 아마도 이런 결과가 나온 것은 사용자가 제시한 상품 이미지가 전체 이미지 내에서 상대적으로 작고 배경에 상품 이미지와 비슷한 내용들이 포함되는 등 노이즈가 많은 경우이기 때문일 것이다. 또한 2번의 경우에 배경이 복잡하여 상품 이미지가 정확하게 나타나 있지 않고 제품 외의 광고 이미지가 다르게 포함되어 있어서 Top1이 아닌 Top 2로 추론하였다. 3번의 경우는 사용자가 제시한 상품 이미지가 제품 사진을 전체 반영하고 있지 않아서 12%의 낮은 확률점수로서 Top 2로 추론하였다.

표 3은 똑같은 데이터 셋에 대해서 같은 학습 스텝 수로 세 모델을 적용하였을 때의 결과이다. 위의 결과에서 두드러지는 특징을 보았을 때, 학습시간(Training Time)과 추론 정확도(Test Accuracy)이다.

먼저, 학습시간의 경우에는 Inception-v3 모델에 FCN 방법을 이용하여 추론하는 학습 모델에서 훨씬 긴 시간이 소모되었다. 그 이유는 FCN 방법을 이용하는 경우에는 고정된 네트워크 가중치를 이용하여 pool_3층을 통해 특징 값을 추출한 뒤, FCN을 해당 데이터 셋의 클래스에 맞추어 학습시킨다. 반면에 k-근접이웃 탐색 방법은 pool_3층을 통하여 특징값들을 추출한 뒤, 분류기 부분을 학습시키는 것이 아닌 행렬 상에 저장된 각 특징 값들의 위치를 기준으로 거리를 계산하는 연산이기 때문에 FCN 방법을 이용한 모델보다 훨씬 적은 학습시간이 나온다. 또한 선형 SVM(Linear SVM)은 FCN처럼 분류기를 학습시키지만 학습시켜야 할 매개변수가 훨씬 적으므로 FCN보다는 훨씬 빠르고, k-근접이웃 탐색보다는 오래 걸린 것으로 판단된다. 다음으로, 추론 정확도를 보았을 때, 순위 기준이 Top 1일 경우의 정확도는 세 모델 모두 좋지 않은데 반해 순위 기준을 Top 5까지 확장하였을 때는 정확도가 크게 향상되었다. 그 중에서도 FCN 모델이 가장 좋은 성능을 보였다. 이 것은 카테고리 구분 없는 1000여개의 레이블로서, 레이블 수가 많고 데이터 셋의 특성 상 유사한 모양의 레이블들을 많이 포함하고 있어서 Top 1의 정확도에 대해서는 FCN의 소프트맥스를 통한 확률 계산으로 레이블들을 구별하기 어렵고, k-근접 이웃 탐색 방법의 거리 계산이나 선형 SVM의 특징 분류 방법으로 구별하기 어려움을 보여주는 결과이다. 반면에 Top 5의 정확도가 크게 향상된 결과가 의미하는 것은 카테고리를 “대-중-소” “중”의 범위까지 세분화하여 학습시킨다면 실용화 수준까지 정확도를 향상시킬 수 있다는 것을 암시한다.

현재 본 연구에서 애플리케이션에 적용할 때에는 사용자의 개입을 유도하여 카테고리 범위를 줄인 상태에서 추론하도록 하였다. 그러나 결국 사용자 개입 없이 유사도를 의미 있는 수준까지 끌어올리기 위해서는 데이터 셋에 따른 재학습 범위 조절, 하이퍼파라미터 세팅 등에 대해 튜닝해야 할 사항들이 남아 있다.

5. 결 론

최근에는 커머셜 환경에서 딥러닝, 특히 이미지 인식을 응용하기 위한 CNN 계열의 모델들을 활용하는 연구가 많이 진행되고 있다. 의료분야에서 큰 성과를 보이고 있으며 바이오, 보안, 제조 분야에서도 의미 있는 연구결과들이 발표되고 있다. 본 연구에서는 온라인 유통 서비스 환경에서 향상된 서비스 모델을 개발하는데 전이 학습 모델을 적용하는 방법에 대해 연구하였다. 자체 데이터 셋을 보유하고 있을 경우 합성곱 베이스 부분에 대해 사전 학습된 결과를 그대로 재사용하면서 분류기를 서로 다른 유형의 세 가지 모델로 적용했을 때 차이점을 비교하였다. 상품 이미지 인식 정확도를 높이기 위해 데이터 셋의 구성에 따른 레이블 수의 관계와 재학습 범위 조절 등 고려해야 할 요소들과 하이퍼파라미터 튜닝 등의 실험적 숙제가 남아 있으나 상용화 적용 가능성을 확인할 수 있었다. 서비스 상용화를 위해 애플리케이션 차원에서는 이미지 인식 후 사용자가 일부 개입하도록 함으로써 부족한 정확도 문제를 보완하도록 하였다. 향후에는 레이블 수가 많더라도 정확도를 허용 수준까지 끌어올릴 수 있도록 추가적인 실험을 통해 튜닝을 계속할 예정이다.

References

1 
Russakovsky Olga, December 2015, ImageNet Large Scale Visual Recognition Challenge(ILSVRC), International Journal of Computer Vision, Vol. 115, No. 3, pp. 211-252DOI
2 
A. Ahmed, K. Yu, W. Xu, Y. Gong, E. Xing, 2008, Training hierarchical feed-forward visual recognition models using transfer learning from pseudo-tasks, Proceedings of Euro- pean Conference on Computer Vision(ECCV), pp. 69-82DOI
3 
Hao Wang, Naiyan Wang, Dit-Yan Yeung, 2015 9, Collabora- tive deep learning for recommender systems, Proceedings of the 21th ACM SIGKDD, pp. 1235-1244DOI
4 
J. Yosinski, J. Clune, Y. Bengio, H. Lipson, 2014, How transferable are features indeep neural networks?, Advances in neural information processing systems, pp. 3320-3328Google Search
5 
C. Szegedy, S. Loffe, V. Vanhoucke, A. Alemi, 2017, Incep- tion-v4, Inception-ResNet and the Impact of Residual Connections on Learning, Proceedings of the Thirty-First AAAI Conference on Artificial Intelligence, pp. 4278-4284Google Search
6 
K. He, X. Zhang, S. Ren, J. Sun, 2016, Deep residual learning for image recognition, Proceedings of the IEEE conference on computer vision and pattern recognition, pp. 770-778Google Search
7 
C. Szegedy, V. Vanhoucke, S. Ioffe, J. Shlens, Z. Wojna, 2016, Rethinking the inception architecture for computer vision, Proceedings of the IEEE Conference on computer vision and pattern recognition, pp. 2818-2826Google Search
8 
M. D. Zeiler, R. Fergus, 2014. 9, Visualizing and under- standing convolutional networks, European conference on computer vision, pp. 818-833DOI
9 
A. Krizhevsky, I. Sutskever, G. E. Hinton, 2012, Imagenet classification with deep convolutional neural network, Advances in neural information processing systems, pp. 1097-1105Google Search
10 
S. J. Pan, Q. Yang, 2010, A survey on transfer learning, IEEE Transactions on knowledge and data engineering, Vol. 22, No. 10, pp. 1345-1359DOI
11 
A. Canziani, A. Paszke, E. Culurciello, 2016, An analysis of deep neural network models for practical applications, arXiv preprint arXiv:1605.07678Google Search
12 
K. Simonyan, A. Zisserman, 2014, Very deep convolutional networks for large-scale imagerecognition, arXiv preprint arXiv:1409.1556Google Search
13 
Y. Tang, 2013, Deep learning using linear support vector machines, arXiv preprintarXiv:1306.0239Google Search
14 
M. Lin, Q. Chen, S. Yan, 2013, Network in network, arXiv preprint arXiv:1312.4400Google Search
15 
Balakrishnan Anusha, Dixit Kalpit, 2016, DeepPlaylist: Using Recurrent Neural Networks to Predict Song Similarity, https://cs224d.stanford.edu/reports/BalakrishnanDixit.pdfGoogle Search
16 
Jing Kevin, Visual Search using features extracted from Tensorflow inception model, https://github.com/jamesmgg/VisualSearchServerGoogle Search
17 
Lab Kernix, Image Classification with a Pre-trained Deep Neural Network, https://www.kernix.com/blog/image-classification-with-a-pre-trained-deep-neural-network_p11Google Search
18 
Thompson Scott, Using Transfer Learning to Classify Image with Tensorflow, https://medium.com/@st553/using-transfer-learning-to-classify-images-with-tensorflow-b0f3142b9366Google Search
19 
Google AI Blog, , Train Your Own Image Classifier with Inception in Tensorflow, https://research.googleblog.com/2016/03/train-your-own-image-classifier-with.htmlGoogle Search
20 
Raj Bharath, Data Augmentation - How to use Deep Learning when you have limited data - part 2, https://medium.com/nanonets/how-to-use-deep-learning-when-you-have-limited-data-part-2-data-augmentation-c26971dc8cedGoogle Search
21 
Marcelino Pedro, Transfer Learning from Pre-trained Models, https://towardsdatascience.com/transfer-learning-from-pre-trained-models-f2393f124751Google Search

저자소개

정종진 (Jongjin Jung)
../../Resources/kiee/KIEE.2020.69.7.1087/au1.png

He received B.S degree (1992), M.S degree (1995) and Ph.D. degree (2000) from Inha University, Korea.

Currently, he is the professor in the division of human IT convergence, Daejin university, Korea.

His research interests include knowledge engineering, machine learning, deep learning, big data analysis and recommendation.

강동구 (Donggu Kang)
../../Resources/kiee/KIEE.2020.69.7.1087/au2.png

He received B.S degree(2020), Currently, he is graduate master’s program student, Daejin

university, Korea. His research interests include machine learning, deep learning, cloud computing.

김지연 (Jiyeon Kim)
../../Resources/kiee/KIEE.2020.69.7.1087/au3.png

She received B.S degree (1992), M.S degree (1997) and Ph.D degree (2008) from Inha University, Korea. Currently, she is the professor in the college of humanities and arts, Daejin university, Korea.

His research interests include database, big data analysis and recommendation..