기술 이야기
home
Programming
home
🖼️

개인화 배너 QA 모델 개발기

Upload date
2022/07/06
Tag
OCR
Python
개인화
QA
이미지
Editor
마케팅컨텐츠개발팀_지서영 , 마케팅컨텐츠개발팀_최광호
Editor is
지서영 안녕하세요 마케팅컨텐츠개발팀 지서영입니다. 데이터 분석과 머신러닝 모델에 대한 업무를 진행하고 있습니다. 앞으로도 다양한 데이터를 기반으로 인사이트를 도출하고, 새로운 모델을 개발하는데 일조하는 분석가가 되고 싶습니다 앞으로도 저의 연구를 많이 올리고 싶어요! 많.관.부 최광호 안녕하세요. 마케팅컨텐츠개발팀 최광호입니다. 딥러닝 기술을 활용할 수 있는 강화학습, 영상인식, 음성합성 등에 관심이 많습니다. 앞으로도 다양한 도전을 통해 좋은 결과로 인사드리겠습니다.
상태
2 more properties

Table of contents

들어가며

안녕하세요~ 이번 포스트에서는 개인화 배너 QA를 위한 ’배너 자동 검증 모델’의 개발 과정에 대해 소개해 드리겠습니다.
우선 개인화 배너 및 QA 모델 개발 취지에 대해 이야기해 드리고, 뒤이어 QA 배너 검증 모델의 개발 프로세스와 활용 기술에 대해 소개해 드릴게요!

개인화 배너란?

‘개인화 배너’는 타겟팅된 개인/그룹의 특성과 행동을 분석해 개인화한 메시지나 이미지가 포함된 배너를 말합니다.
개인화 배너는 정밀화된 유저 타겟팅배너의 개인화를 통해서 만들어지고 이는 개인화 마케팅에 활용되고 있습니다.
그림1 : 개인화 배너는 유저 타겟팅과 배너의 개인화가 합쳐진 단어이다.
유저 타겟팅
유저의 나이, 성별, 사는 지역 뿐만 아니라 게임 내에서의 상품 구매, 레벨, 주요 행동 등을 바탕으로 유저 개개인 특성을 분석해 개인화된 액션을 할 수 있습니다.
배너의 개인화
오른쪽 이미지를 개인화 배너의 예시로 들 수 있는데, 카트라이더 게임에서 유저가 플레이한 km를 실제 거리로 환산하고, 이를 배너에 포함함으로써 유저 데이터를 활용한 개인화 배너를 만들 수 있습니다.
그림2 : 개인화 배너 예시 (유저의 카트라이더 실제 주행 km 기입)
아래 이미지처럼 유저의 닉네임과 유저가 주로 플레이하는 캐릭터(주 캐릭터) 이미지가 담긴 개인화 배너를 생성할 수 있습니다.
그림3 : 실제 넥슨닷컴에 노출된 개인화 배너 예시 (유저의 주 캐릭터와 닉네임 기입)

개인화 배너 QA

1. 개인화 배너 QA 가 필요한 이유

위에서 살펴보신 것처럼 개인화 배너에는 유저별로 다른 ‘텍스트 정보(ex. 유저 닉네임, 주행한 거리)’와 ‘이미지 정보(ex.주 캐릭터)’가 포함되는 경우가 있습니다. 이렇게 모든 유저에게 동일한 배너가 나가지 않고, 각 유저에게 개인화된 배너가 나가기 때문에 간헐적으로 의도치 않는 배너가 생성 될 수 있는데요.
이런 잘못된 배너를 검증하기 위해 기존엔 개인화 배너를 배포하기 전, 전체 배너 중 일부 배너를 아래와 같이 사람이 직접 QA하고 있었습니다.
그림4 : 개인화 배너 검증 프로세스
1) 개발 오류에 대한 점검
유저의 주 캐릭터 이미지가 배너에 포함되도록 하는, 배너 생성 코드가 잘 동작하는지 점검하는 과정을 거칩니다.
2) 텍스트 or 이미지 오류에 대한 점검
이미지가 잘려 보인다던지, (아래 이미지처럼) 텍스트 표기에 있어서 오류가 될 수 있는 예외적인 케이스가 있기 때문에 해당 사항에 대한 체크가 필수적입니다.
그림 5 : 닉네임이 길어서 글자가 안보이는 배너
그림 6: 닉네임이 깨지는 폰트 사용 배너

2. 개인화 배너 QA의 한계점

노출처가 늘어남에 따라 QA해야 할 개인화 배너가 점점 많아지고, 동시에 개인화 요소가 다양해짐에 따라 QA 담당자가 파악해야 할 배너별 개인화 요소도 늘어났습니다. 그렇게 점차 QA 담당자의 업무 부담이 늘어나게 되었죠.
그림7 : QA 담당자가 진행하는 개인화 QA 절차

3. 해결 방안

그래서 시간과 비용을 줄이고, 효율을 늘리기 위해 ‘자동 QA 모델’을 구상했습니다.
그림8 : 자동 QA 모델을 활용한 개인화 배너 QA 프로세스

개인화 배너 QA 모델 개발

QA 모델은 크게 텍스트 검증, 이미지 검증 기능을 가지고 있습니다.
텍스트 검증은 배너 내 개인화된 텍스트 부분을 확인하는 기능이고, 이미지 검증은 배너 내 개인화된 이미지 노출 부분을 확인하는 기능입니다.
텍스트 검증 기능
배너 안에 있는 개인화 텍스트를 인식해서 해당 배너가 잘 생성되었는지 확인합니다.
예를 들어 배너 안에 게임 내 유저 닉네임이 들어가야 하지만, 다른 유저의 닉네임이 들어갈 수 있기 때문에 확인이 필요한 거죠.
그림9 : 개인화 텍스트 영역 인식 결과
이미지 검증 기능
배너 안에 있는 개인화 이미지를 인식해서 해당 배너가 잘 생성되었는지 확인합니다.
예를 들어 유저의 주 캐릭터가 ‘엔젤릭버스터’ 라면, 배너 안에 ‘엔젤릭버스터’ 이미지가 들어가야 하지만 다른 직업인 ‘아델’ 이미지가 들어갔는지 검증하는 과정을 거치는 거죠.
그림10 : 개인화 이미지 영역 인식 결과

1. 텍스트 QA 기능 구현

첫째, QA 진행이 필요한 배너 이미지에서 이미지 OCR 기능을 통해 이미지 내 텍스트를 추출합니다.
둘째, 해당 텍스트 내에서 개인화 텍스트 부분을 검증하는 과정을 거치게 됩니다.
그림11 : 텍스트 QA 프로세스 단계
<실제 QA 모델 데모 테스트>
아래 이미지처럼 오류 텍스트가 감지된 개인화 배너를 확인 할 수 있습니다.
그림12 : 실제 QA 모델 데모 테스트 설명 이미지

2. 이미지 QA 기능 구현

이미지 QA 모델은 Siamese Network 기반으로 설계되었습니다. Siamese Network의 구조는 두 장의 이미지를 입력받고 동일한 모델로 특징을 추출합니다. 이때 추출된 특징을 비교해 두 이미지의 유사한 정도를 0 ~ 1 값으로 수치화하고, 유사도 값이 1에 가까울수록 두 이미지가 일치한다고 판단합니다.
아래는 이미지 QA 절차입니다.
첫째, 최초 1회 사용자가 개인화 이미지 영역을 지정하고, 개인화 이미지 종류별로 1장씩 저장소에 저장합니다. (저장된 이미지는 개인화 이미지 QA에 활용됩니다.)
그림13 : 개인화 이미지 영역 인식 결과
둘째, 이미지 URL을 이용해 개인화 배너 이미지를 1장씩 불러오면서 개인화 이미지 영역의 이미지를 추출합니다.
셋째, 추출된 개인화 이미지가 유저의 주 캐릭터 이미지와 일치하는지 체크합니다. 일치하지 않는다면 유저 닉네임과 함께 불일치 결과를 로그에 남깁니다.
그림14 : 이미지 QA 프로세스
위 과정을 거쳐 이미지 QA 모델은 잘못 생성된 개인화 이미지를 구분합니다.

나가며

지금까지 공유드린 개인화 QA 모델 개발기 어떠셨나요?
텍스트 인식 및 이미지 일치 여부 검증의 시간 단축과 성능 개선은 계속해서 진행하고 있습니다. 이후 발전된 QA 모델에서는 사용자가 개인화 이미지 영역을 지정하는 절차를 생략하는 완전 자동화를 목표하고 있습니다.
시간이 지남에 따라 사람이 진행하는 반복적인 작업들이 자동화 되어가고 있습니다. 반복 작업의 자동화를 통해 정확한 배너를 빠르게 전달하고, 니즈에 맞는 내용을 담은 개인화 배너 노출을 목표하고 있습니다.
이번 블로그 읽어주셔서 감사합니다.

Reference

Related Sites
 넥슨 게임 포탈
인텔리전스랩스 소개
인재 영입
인텔리전스랩스 블로그 운영 정책
 테크블로그 문의 devrel@nexon.co.kr