딥러닝을 활용한 뉴스 메타 태깅

if kakao
if kakaoif kakao
딥러닝을 활용한 뉴스 메타 태깅
김기도(olaf.kido)
kakao corp.(미래미디어파트)
배경
뉴스 메타데이터 (News Metadata)
콘텐츠 분석 정보언론사 제공 속성
뉴스 기사의 특징을 설명하는 정보들
기자
카테고리
언론사 형태 분류
내용 분류
이미지 분석
ML / DL
2018년 8월 7일자 인입 기사
뉴스 메타데이터 (News Metadata)
다양한 메타데이터를 확보하여 사용자에게 필요한 콘텐츠 제공에 활용
유익한 /
관심있는 /
필요한 것을
보고싶다!
컨텐츠의
특성들
다양한
메타데이터
=
Image: commons.wikimedia.org
뉴스 메타 태깅 시스템
메타데이터 생성과 활용이 잘 되려면 데이터의 유통이 간단해야 함
SILO
FLOW
Produce Consume
목차
1. 기사 형태 분류 하기
• Convolution Neural Network로

기사 형태 분류 하기
• 학습 데이터셋 구성 ~ 최종 모델 결과



2. 뉴스 메타 태깅 시스템
• 모델을 활용하는 메타 태깅 시스템 개발
• 데이터 흐름 및 System Design



3. 향후 과제
#텍스트분류
#딥러닝모델
#딥러닝개발
#메타데이터플랫폼 #다하는데요

...
발표에서 주로 다루는 것
학습
데이터
구성
모델
선정
메타데이터
기획
모델
구현
테스트 및
평가
모델
배포
서비스
운영
파라미터
설정
모델
API 구현
메타 태깅
설계/구현
딥러닝 스터디 한 것을 잘 활용해보려고
서비스 개발에 도전한 이야기!!!
딥러닝을 활용한
뉴스 메타 태깅
1. 기사 형태 분류 하기
2. 뉴스 메타 태깅 시스템
3. 향후 과제
기사 형태 분류
- 육하원칙 위주로 기술
- 스트레이트 기사라고 함
- 사건, 인물에 대한 심층 취재 기사
- 르포, 스케치, 인터뷰 등
사실 전달형 기사 (A) 해설/묘사형 기사 (B)
2018년 8월 21일자 인입 기사
이산상봉 이틀 째..'가족끼리' 개별상봉 및 오찬(종합)
남북 이산가족들이 상봉 행사 이틀째인 21일 개별상봉을 통해 좀 더 밀착된 시간을 보
낸다. 양측 가족들은 이날 오전 10시10분께 우리 측 상봉단의 숙소인 금강산 외금강
호텔의 각 객실에서 개별 상봉을 시작했다.
사실 전달형과 해설/묘사형을 나누는 문제로 정의
기사 형태 분류
2018년 8월 20일자 인입 기사
- 육하원칙 위주로 기술
- 스트레이트 기사라고 함
- 사건, 인물에 대한 심층 취재 기사
- 르포, 스케치, 인터뷰 등
사실 전달형 기사 (A) 해설/묘사형 기사 (B)
워리어 플랫폼 입고 사격해보니 '99점'
5 (5 ) . 5
, , , , . 

. , .
사실 전달형과 해설/묘사형을 나누는 문제로 정의
기사 형태 분류
2018년 8월 20일자 인입 기사
- 육하원칙 위주로 기술
- 스트레이트 기사라고 함
- 사건, 인물에 대한 심층 취재 기사
- 르포, 스케치, 인터뷰 등
사실 전달형 기사 (A) 해설/묘사형 기사 (B)
워리어 플랫폼 입고 사격해보니 '99점'
5 (5 ) . 5
, , , , . 

. , .
사실 전달형과 해설/묘사형을 나누는 문제로 정의
정보량이 많고 오래 읽을 만한 내용의
기사들을 찾는 특징 중 하나
Text Classification by
Character based Convolution Neural Network
• 논문
• Text understanding from scratch
• Character based convolution neural network (X Zhang, J Zhao, Y LeCun)
• 모델
• 6개 Convolution Layer
• 3개 Fully Connected Layer
• 구현
• Tensorflow
Image: X Zhang, J Zhao, Y LeCun. Character based convolution neural network (NIPS 2015)
뉴스 기사 분석을 위한 고려 사항들
뉴스 기사 콘텐츠를 “있는 그대로” 분석에 활용
• 형태소 분석, Word Embedding 보다는 Character 단위 처리

==> 기사 제목이나 본문의 특징적 기호 활용 (예: [날씨], (종합), “나혼자”) 

• 한글, 한자 Romanization (로마자 변환, 음역)

==> alphabet space 안에서 처리 (예: ⽂정부, ⾭ "소득성장 가속”)

• 문자와 단어의 순서 보존하여 기사의 문투 학습

==> 1D Convolution
…
<-channel
->
(num
ofalphabet)
<- length ->
( j o n g h a p ) b e i , u r i g u k m
( j o n g h a p ) b e i , u r i g u k m
학습 데이터 구성
정답을 가지고 있지 않은 문제의 정답셋을 만들어 내기
• 기사 형태별 샘플을 구할 수 있는 기준을 찾음
• 예: 기사의 길이 A=[500, 1200], B=[3000
• 오분류된 (mislabelled) 데이터가 있을 수 있음
• 오분류 패턴이 일관되지 않다면 패턴 학습 대세에 영향 적음

(예: 특정 키워드, 특정 언론사 모두 오분류)
Step 1. 근사기준
뉴스 도메인 전문가!
➕
• 우리에겐 뉴스 전문가들이 있다!
• 학습 데이터(샘플), 테스트 데이터(전수)를 검수
Step 2. 보완책
Image: kakaofriends.com
시험 범위가 확정되었으니 시험을 보자!
• 학습 데이터
• 총 뉴스 44.2만건
• 사실전달 : 해설/묘사 : 기타 = 10:1:10
• 제목+본문 concat하여 600 char만 사용 (로마자 변환 후 기준)
해설/묘사형 기사들을 더 모으자!!!
학습 데이터 구성
• Validation Accuracy: 79.3%
• Test Accuracy: 79.8% — 하지만, 해설/묘사 Recall: 42.5%
• 특징
• 해설/묘사형 기사의 수가 너무 적어서 분류가 잘 안됨
테스트 결과
참고서를 더 읽어보고 시험을 보자!
• 학습 데이터
• 총 뉴스 55만건
• 사실전달 : 해설/묘사 : 기타 = 2:1:2
• 제목+본문 concat하여 600 char만 사용 (로마자 변환 후 기준)
기사 본문을 더 길게 학습 해보자!
학습 데이터 구성
• Validation Accuracy: 83.3%
• Test Accuracy: 82.2% — 해설/묘사 Recall: 62.0%
• 특징
• 사실전달 기사의 표현을 잘 학습 (언제 누가 뭐했다, OO에 따르면, 보도했다)
• 해설/묘사 기사 중에서도 해설기사나 인터뷰 기사를 높은 확률 값으로 분류
• 그러나 재현율이 낮음
테스트 결과
시험 범위를 늘렸으니 다시 시험을 보자!
• 학습 데이터
• 총 뉴스 55만건
• 사실전달 : 해설/묘사 : 기타 = 2:1:2
• 제목+본문 concat하여 1014 char를 사용 (로마자 변환 후 기준)
학습 데이터 구성
• Validation Accuracy: 82.76%
• Test Accuracy: 81.22% — 해설/묘사 Recall: 74.68%
• 특징
• 해설/묘사 기사 재현율 상승
• 연재, 기획코너 기사를 높은 확률 값으로 분류
• 600 char 학습 시 ‘기타’ 기사로 잘 분류하던 기사들을 헷갈려하는 경우도 있음
• 예) ‘오늘의 운세’류 기사 중 일부 길이가 긴 것들
테스트 결과
모델 앙상블 (Ensemble)
학습 모델마다 특성이 다르므로 이를 결합하여 결과 변동성을 줄임
Model #1
Model #2
Add(Model[#1:2][A]), 

Add(Model[#1:2][B]), 

Add(Model[#1:2][C]).
Dataset #1
Dataset #2
• Accuracy: 83.7% (+1.5%)
• 해설/묘사 Recall: 75.9% (+1.2%)
모델이 서로 놓치는 부분을 보완해줌
기사 형식 분류 결과
사실 전달 기사 분류 결과
2018년 08월 23일 인입 기사
1 연준, 트럼프 압박에도 '9월 긴축' 예고.."곧 금리인상 적절"(종합)
2 파리 교외서 30대 남성 흉기 휘둘러 3명 사상(종합)
3 브라질 "베네수엘라 난민 이달 말부터 단계적으로 분산이주"
4 英, 신용카드 결제비용 증가 등 '노딜브렉시트' 대비 지침 발표(종합)
5 백악관 "미일정상 통화..강력한 대북제재 유지 약속"(종합)
해설/묘사 기사 분류 결과
1 [기고]학교 시민교육을 제도화하자
2 [우보세] 신바람 한점 없는 오너들
3 청년'에서 '엄마'로, 제2의 정치 인생 맞이하는 신보라
4 [사설]문재인 정부 첫 개각, 국정쇄신 계기로 삼아야
5 [조한욱의 서양 사람] 의적의 탄생
기사 형식 분류 결과
딥러닝 고장내는 기사
2018년 08월 23일 인입 기사
A : B : C
=
35% : 31% : 34%
1. 기사 형태 분류 하기
2. 뉴스 메타 태깅 시스템
3. 향후 과제
뉴스 메타 태깅 시스템
뉴스 발행 후 메타데이터를 ‘생성’하고 ‘유통’시키는 플랫폼
Design Goals
실시간 프로세싱
메타 태그 생성의 비동기성
메타 태그 생성 기술의 다양성
• 기사가 들어오는 대로 바로 메타데이터를 생성
• 다양한 조직과 플랫폼이 메타 데이터 생성에 참여
• 각 메타데이터 생성은 비동기적으로 이루어져야

(예외: 메타데이터간 의존성이 있는 경우)
• 기계학습, 딥러닝 플랫폼의 다양성을 수용할 수 

있어야
뉴스 메타 태깅 시스템
-NEWS TOPIC- -TAGS TOPIC-1
+
메타데이터 생성 서비스
(예: 기사 형태 분류)
메타데이터 생성 서비스
2 3
4
CMS
메타데이터 consumer
5
• 콘텐츠와 메타데이터를 함께 feeding
• News Topic에서 콘텐츠와 메타데이터 흐름을 모두 Tracking
• 동일 뉴스 - 동일 메타데이터가 중복 처리 되지 않도록 해야
• 콘텐츠+메타데이터를 조합하여 새로운 메타데이터를 만들기 용이
메타 데이터의 생성과 소비가 함께 이루어지는 흐름
System Architecture
Ensemble 

API
Ensemble 

API
Inferrer API
Inferrer API
Inferrer API
Inferrer API
Inferrer API
Inferrer API
-NEWS TOPIC- -TAGS TOPIC-
메타데이터 생성 = Ensemble - Inferrer API Services
Meatadata API Services
Inferrer API
• / API

• API 

• Dockerizing + 

• 

• API / , Ensemble
역할 및 기능
Ensemble 

API
Ensemble 

API
Inferrer API
Inferrer API
Inferrer API
Inferrer API
Inferrer API
Inferrer API
Inferrer API
기사 형태 분류 CNN API 사례
Docker
Tensorflow
Model
Flask App
uWSGIwaitress
class TensorflowModel:
def __init__(self, tag, signature_key, input_key, output_key, path):
self.sess = tf.Session(graph=tf.Graph())
meta_graph_def = tf.saved_model.loader.load(self.sess, [tag], path)
signature = meta_graph_def.signature_def
tensor_name_x = signature[signature_key].inputs[input_key].name
tensor_name_yhat = signature[signature_key].outputs[output_key].name
self.input = self.sess.graph.get_tensor_by_name(tensor_name_x)
self.model = self.sess.graph.get_tensor_by_name(tensor_name_yhat)
• uWSGI + Flask + Tensorflow API
• tf.saved_model API로 학습한 모델을 protobuf로 export / import
기사 형태 분류 API 구현
Ensemble API
• Inferrer API 호출
• 각 모델에 필요한 입력 값 (Feature) 생성
• 기사 형식 분류의 예: 한글 romanization
• 모델 추론 결과 Ensemble 로직 처리
• 메타데이터 서비스의 Gateway
• 공통 기능: authorization, logging 등
역할 및 기능
• spring-webflux로 개발
• 여러 소스(Inferrer API, 기타 Feature 생성을 위한)에서 정보를 취합
• 병렬-비동기 처리 구조의 이점
구현
Image: pexels.com
Ensemble API
Feature
(Model #1)
{ “title”: “오늘의 날씨”, 

“contents": “날씨는 대체로…” ,
“press”: kakaonews,

“category”: 999,

}
Inferrer API
(Model #1)
Feature
(Model #2)
Inferrer API
(Model #2)
Feature
(Model #3)
Inferrer API
(Model #3)
Calculate
Ensemble
{ “api”: “news-type”,
“value”: 0 }
(FlatMap) (Merge)
(Map)
Message Flow Control
-NEWS TOPIC- -TAGS TOPIC-
Filtering
Invoke
Ensemble
Post-
process
Produce
Message Flow Control
• 

• message parsing & filtering

• Ensemble API , 

• 

•
역할 및 기능
Message Flow Control
Apache Nifi
• Data Flow 개발이 간단 

(다양한 데이터 source, sink 지원)
• 각 처리 단계별로 in/out 처리량과 데이터 모니터링

(Data provenance)
• nifi-registry와 연동하면 Data Flow 형상 관리 가능
특징
Metadata Flow
Ensemble 

API
Ensemble 

API
Inferrer API
Inferrer API
Inferrer API
Inferrer API
Inferrer API
Inferrer API
-NEWS TOPIC- -TAGS TOPIC-
{ “title”: “오늘의 날씨”, 

“contents": “오늘 전국 날씨는” 

}
req:

{ “news”: “oneulyinalssioneulyi

jeongug ” }
{ “tagGroup”: “news”,
“tagKey”: “news-type”,
“value”: 0 }
res:

{ “valueName": “model403”,

“valueType”: “List”,

“values”: [ 0.7, 0.1, 0.2 ] }
기사 형태 분류 사례
CMS
Filtering
Post-
process
Produce
Invoke
Ensemble
1. 기사 형태 분류 하기
2. 뉴스 메타 태깅 시스템
3. 향후 과제
향후 과제
• 딥러닝 모델 품질 관리
• 오분류 사례 수집 및 모델 재학습
• (현재는 시간별 분류 결과량 Trend 모니터링)

• 다양한 메타데이터 추가
• 기사 내용의 특징 분석
• 기사 내 사진, 차트, 인포그래픽 분석
• 음성 뉴스 및 동영상을 활용한 다양한 실험
Thank you!
Image: kakaofriends.com
1 de 34

Mais conteúdo relacionado

Mais procurados

Reference Data ManagementReference Data Management
Reference Data ManagementProfinit
473 visualizações23 slides
Data warehouseData warehouse
Data warehouseshachibattar
832 visualizações34 slides
Data warehouseData warehouse
Data warehouseRishabh Dogra
2K visualizações14 slides
DATA WAREHOUSINGDATA WAREHOUSING
DATA WAREHOUSINGKing Julian
232.3K visualizações48 slides
Big Data technology LandscapeBig Data technology Landscape
Big Data technology LandscapeShivanandaVSeeri
544 visualizações85 slides

Mais procurados(20)

Business Intelligence conceptsBusiness Intelligence concepts
Business Intelligence concepts
BXBsoft Business Inteligence 2.6K visualizações
Reference Data ManagementReference Data Management
Reference Data Management
Profinit473 visualizações
Data warehouseData warehouse
Data warehouse
shachibattar832 visualizações
Data warehouseData warehouse
Data warehouse
Rishabh Dogra2K visualizações
DATA WAREHOUSINGDATA WAREHOUSING
DATA WAREHOUSING
King Julian232.3K visualizações
Big Data technology LandscapeBig Data technology Landscape
Big Data technology Landscape
ShivanandaVSeeri544 visualizações
Business Intelligence Presentation 1 (15th March'16)Business Intelligence Presentation 1 (15th March'16)
Business Intelligence Presentation 1 (15th March'16)
Muhammad Fahad15K visualizações
Business AnalyticsBusiness Analytics
Business Analytics
Jignesh Kariya1.9K visualizações
Data warehouse inmon versus kimball 2Data warehouse inmon versus kimball 2
Data warehouse inmon versus kimball 2
Mike Frampton16.4K visualizações
Implementing business intelligenceImplementing business intelligence
Implementing business intelligence
Alistair Sergeant566 visualizações
Data Modeling, Data Governance, & Data QualityData Modeling, Data Governance, & Data Quality
Data Modeling, Data Governance, & Data Quality
DATAVERSITY10.4K visualizações
Organisational information systemsOrganisational information systems
Organisational information systems
mrscjrobertson5.7K visualizações
Introduction to Business IntelligenceIntroduction to Business Intelligence
Introduction to Business Intelligence
Almog Ramrajkar59.8K visualizações
Dbms modelsDbms models
Dbms models
devgocool66.1K visualizações
Information visualization - introductionInformation visualization - introduction
Information visualization - introduction
Katrien Verbert6.2K visualizações
Introduction to data warehousing   Introduction to data warehousing
Introduction to data warehousing
Girish Dhareshwar1.8K visualizações
ETL and its impact on Business IntelligenceETL and its impact on Business Intelligence
ETL and its impact on Business Intelligence
IshaPande200 visualizações
Advanced data modelingAdvanced data modeling
Advanced data modeling
Dhani Ahmad4.4K visualizações

Similar a 딥러닝을 활용한 뉴스 메타 태깅

데이터 분석 1 - 소개데이터 분석 1 - 소개
데이터 분석 1 - 소개Jaewook Byun
98 visualizações28 slides
MementoMemento
Memento지운 배
272 visualizações48 slides
Java script 강의자료_ed13Java script 강의자료_ed13
Java script 강의자료_ed13hungrok
2.2K visualizações70 slides

Similar a 딥러닝을 활용한 뉴스 메타 태깅(20)

딥러닝 세계에 입문하기 위반 분투딥러닝 세계에 입문하기 위반 분투
딥러닝 세계에 입문하기 위반 분투
Ubuntu Korea Community943 visualizações
데이터 분석 1 - 소개데이터 분석 1 - 소개
데이터 분석 1 - 소개
Jaewook Byun98 visualizações
Memento, 그 사람에 대한 모든 정보Memento, 그 사람에 대한 모든 정보
Memento, 그 사람에 대한 모든 정보
Jiun Bae323 visualizações
MementoMemento
Memento
지운 배272 visualizações
Java script 강의자료_ed13Java script 강의자료_ed13
Java script 강의자료_ed13
hungrok2.2K visualizações
언리얼 리플렉션 & CDO.pptx언리얼 리플렉션 & CDO.pptx
언리얼 리플렉션 & CDO.pptx
MUUMUMUMU20 visualizações
Ruby on Rails와 함께 하는 애자일 웹 개발Ruby on Rails와 함께 하는 애자일 웹 개발
Ruby on Rails와 함께 하는 애자일 웹 개발
Sukjoon Kim1.9K visualizações
Deep learning framework 제작Deep learning framework 제작
Deep learning framework 제작
Tae Young Lee2.3K visualizações
Machine Learning with Apache Spark and ZeppelinMachine Learning with Apache Spark and Zeppelin
Machine Learning with Apache Spark and Zeppelin
Dataya Nolja164 visualizações
메이크챗봇 자연어기초메이크챗봇 자연어기초
메이크챗봇 자연어기초
김용범 | 무영인터내쇼날6.1K visualizações
[강의] OOP 개요[강의] OOP 개요
[강의] OOP 개요
Nohyun Kee1.2K visualizações
코드스쿼드 iOS 교육 ML 발표자료코드스쿼드 iOS 교육 ML 발표자료
코드스쿼드 iOS 교육 ML 발표자료
HyunwooJung14171 visualizações
Meta starsMeta stars
Meta stars
Sohyeon Kim269 visualizações
파이썬을 활용한 웹 크롤링파이썬을 활용한 웹 크롤링
파이썬을 활용한 웹 크롤링
HWANGTAEYONG1.8K visualizações
2016년 인문정보학 Sql세미나 1/32016년 인문정보학 Sql세미나 1/3
2016년 인문정보학 Sql세미나 1/3
in2acous211 visualizações

Mais de if kakao(20)

카카오커머스를 지탱하는 Angular카카오커머스를 지탱하는 Angular
카카오커머스를 지탱하는 Angular
if kakao11.5K visualizações
프렌즈타임 웹앱 삽질기프렌즈타임 웹앱 삽질기
프렌즈타임 웹앱 삽질기
if kakao5.8K visualizações
딥러닝을 이용한 얼굴 인식딥러닝을 이용한 얼굴 인식
딥러닝을 이용한 얼굴 인식
if kakao8.7K visualizações
눈으로 듣는 음악 추천 시스템눈으로 듣는 음악 추천 시스템
눈으로 듣는 음악 추천 시스템
if kakao3.1K visualizações
Keynote / 2018Keynote / 2018
Keynote / 2018
if kakao1.5K visualizações
카카오 봇 플랫폼 소개카카오 봇 플랫폼 소개
카카오 봇 플랫폼 소개
if kakao3.6K visualizações
카카오뱅크 모바일앱 개발 이야기카카오뱅크 모바일앱 개발 이야기
카카오뱅크 모바일앱 개발 이야기
if kakao15.3K visualizações
다음 모바일 첫 화면 개선기다음 모바일 첫 화면 개선기
다음 모바일 첫 화면 개선기
if kakao1.4K visualizações
Kakao Cloud Native Platform, 9rumKakao Cloud Native Platform, 9rum
Kakao Cloud Native Platform, 9rum
if kakao2.9K visualizações
카프카, 산전수전 노하우카프카, 산전수전 노하우
카프카, 산전수전 노하우
if kakao4K visualizações
스프링5 웹플럭스와 테스트 전략스프링5 웹플럭스와 테스트 전략
스프링5 웹플럭스와 테스트 전략
if kakao7.4K visualizações

딥러닝을 활용한 뉴스 메타 태깅

  • 1. 딥러닝을 활용한 뉴스 메타 태깅 김기도(olaf.kido) kakao corp.(미래미디어파트)
  • 3. 뉴스 메타데이터 (News Metadata) 콘텐츠 분석 정보언론사 제공 속성 뉴스 기사의 특징을 설명하는 정보들 기자 카테고리 언론사 형태 분류 내용 분류 이미지 분석 ML / DL 2018년 8월 7일자 인입 기사
  • 4. 뉴스 메타데이터 (News Metadata) 다양한 메타데이터를 확보하여 사용자에게 필요한 콘텐츠 제공에 활용 유익한 / 관심있는 / 필요한 것을 보고싶다! 컨텐츠의 특성들 다양한 메타데이터 = Image: commons.wikimedia.org
  • 5. 뉴스 메타 태깅 시스템 메타데이터 생성과 활용이 잘 되려면 데이터의 유통이 간단해야 함 SILO FLOW Produce Consume
  • 6. 목차 1. 기사 형태 분류 하기 • Convolution Neural Network로
 기사 형태 분류 하기 • 학습 데이터셋 구성 ~ 최종 모델 결과
 
 2. 뉴스 메타 태깅 시스템 • 모델을 활용하는 메타 태깅 시스템 개발 • 데이터 흐름 및 System Design
 
 3. 향후 과제 #텍스트분류 #딥러닝모델 #딥러닝개발 #메타데이터플랫폼 #다하는데요
 ...
  • 7. 발표에서 주로 다루는 것 학습 데이터 구성 모델 선정 메타데이터 기획 모델 구현 테스트 및 평가 모델 배포 서비스 운영 파라미터 설정 모델 API 구현 메타 태깅 설계/구현 딥러닝 스터디 한 것을 잘 활용해보려고 서비스 개발에 도전한 이야기!!! 딥러닝을 활용한 뉴스 메타 태깅
  • 8. 1. 기사 형태 분류 하기 2. 뉴스 메타 태깅 시스템 3. 향후 과제
  • 9. 기사 형태 분류 - 육하원칙 위주로 기술 - 스트레이트 기사라고 함 - 사건, 인물에 대한 심층 취재 기사 - 르포, 스케치, 인터뷰 등 사실 전달형 기사 (A) 해설/묘사형 기사 (B) 2018년 8월 21일자 인입 기사 이산상봉 이틀 째..'가족끼리' 개별상봉 및 오찬(종합) 남북 이산가족들이 상봉 행사 이틀째인 21일 개별상봉을 통해 좀 더 밀착된 시간을 보 낸다. 양측 가족들은 이날 오전 10시10분께 우리 측 상봉단의 숙소인 금강산 외금강 호텔의 각 객실에서 개별 상봉을 시작했다. 사실 전달형과 해설/묘사형을 나누는 문제로 정의
  • 10. 기사 형태 분류 2018년 8월 20일자 인입 기사 - 육하원칙 위주로 기술 - 스트레이트 기사라고 함 - 사건, 인물에 대한 심층 취재 기사 - 르포, 스케치, 인터뷰 등 사실 전달형 기사 (A) 해설/묘사형 기사 (B) 워리어 플랫폼 입고 사격해보니 '99점' 5 (5 ) . 5 , , , , . . , . 사실 전달형과 해설/묘사형을 나누는 문제로 정의
  • 11. 기사 형태 분류 2018년 8월 20일자 인입 기사 - 육하원칙 위주로 기술 - 스트레이트 기사라고 함 - 사건, 인물에 대한 심층 취재 기사 - 르포, 스케치, 인터뷰 등 사실 전달형 기사 (A) 해설/묘사형 기사 (B) 워리어 플랫폼 입고 사격해보니 '99점' 5 (5 ) . 5 , , , , . . , . 사실 전달형과 해설/묘사형을 나누는 문제로 정의 정보량이 많고 오래 읽을 만한 내용의 기사들을 찾는 특징 중 하나
  • 12. Text Classification by Character based Convolution Neural Network • 논문 • Text understanding from scratch • Character based convolution neural network (X Zhang, J Zhao, Y LeCun) • 모델 • 6개 Convolution Layer • 3개 Fully Connected Layer • 구현 • Tensorflow Image: X Zhang, J Zhao, Y LeCun. Character based convolution neural network (NIPS 2015)
  • 13. 뉴스 기사 분석을 위한 고려 사항들 뉴스 기사 콘텐츠를 “있는 그대로” 분석에 활용 • 형태소 분석, Word Embedding 보다는 Character 단위 처리
 ==> 기사 제목이나 본문의 특징적 기호 활용 (예: [날씨], (종합), “나혼자”) 
 • 한글, 한자 Romanization (로마자 변환, 음역)
 ==> alphabet space 안에서 처리 (예: ⽂정부, ⾭ "소득성장 가속”)
 • 문자와 단어의 순서 보존하여 기사의 문투 학습
 ==> 1D Convolution … <-channel -> (num ofalphabet) <- length -> ( j o n g h a p ) b e i , u r i g u k m ( j o n g h a p ) b e i , u r i g u k m
  • 14. 학습 데이터 구성 정답을 가지고 있지 않은 문제의 정답셋을 만들어 내기 • 기사 형태별 샘플을 구할 수 있는 기준을 찾음 • 예: 기사의 길이 A=[500, 1200], B=[3000 • 오분류된 (mislabelled) 데이터가 있을 수 있음 • 오분류 패턴이 일관되지 않다면 패턴 학습 대세에 영향 적음
 (예: 특정 키워드, 특정 언론사 모두 오분류) Step 1. 근사기준 뉴스 도메인 전문가! ➕ • 우리에겐 뉴스 전문가들이 있다! • 학습 데이터(샘플), 테스트 데이터(전수)를 검수 Step 2. 보완책 Image: kakaofriends.com
  • 15. 시험 범위가 확정되었으니 시험을 보자! • 학습 데이터 • 총 뉴스 44.2만건 • 사실전달 : 해설/묘사 : 기타 = 10:1:10 • 제목+본문 concat하여 600 char만 사용 (로마자 변환 후 기준) 해설/묘사형 기사들을 더 모으자!!! 학습 데이터 구성 • Validation Accuracy: 79.3% • Test Accuracy: 79.8% — 하지만, 해설/묘사 Recall: 42.5% • 특징 • 해설/묘사형 기사의 수가 너무 적어서 분류가 잘 안됨 테스트 결과
  • 16. 참고서를 더 읽어보고 시험을 보자! • 학습 데이터 • 총 뉴스 55만건 • 사실전달 : 해설/묘사 : 기타 = 2:1:2 • 제목+본문 concat하여 600 char만 사용 (로마자 변환 후 기준) 기사 본문을 더 길게 학습 해보자! 학습 데이터 구성 • Validation Accuracy: 83.3% • Test Accuracy: 82.2% — 해설/묘사 Recall: 62.0% • 특징 • 사실전달 기사의 표현을 잘 학습 (언제 누가 뭐했다, OO에 따르면, 보도했다) • 해설/묘사 기사 중에서도 해설기사나 인터뷰 기사를 높은 확률 값으로 분류 • 그러나 재현율이 낮음 테스트 결과
  • 17. 시험 범위를 늘렸으니 다시 시험을 보자! • 학습 데이터 • 총 뉴스 55만건 • 사실전달 : 해설/묘사 : 기타 = 2:1:2 • 제목+본문 concat하여 1014 char를 사용 (로마자 변환 후 기준) 학습 데이터 구성 • Validation Accuracy: 82.76% • Test Accuracy: 81.22% — 해설/묘사 Recall: 74.68% • 특징 • 해설/묘사 기사 재현율 상승 • 연재, 기획코너 기사를 높은 확률 값으로 분류 • 600 char 학습 시 ‘기타’ 기사로 잘 분류하던 기사들을 헷갈려하는 경우도 있음 • 예) ‘오늘의 운세’류 기사 중 일부 길이가 긴 것들 테스트 결과
  • 18. 모델 앙상블 (Ensemble) 학습 모델마다 특성이 다르므로 이를 결합하여 결과 변동성을 줄임 Model #1 Model #2 Add(Model[#1:2][A]), 
 Add(Model[#1:2][B]), 
 Add(Model[#1:2][C]). Dataset #1 Dataset #2 • Accuracy: 83.7% (+1.5%) • 해설/묘사 Recall: 75.9% (+1.2%) 모델이 서로 놓치는 부분을 보완해줌
  • 19. 기사 형식 분류 결과 사실 전달 기사 분류 결과 2018년 08월 23일 인입 기사 1 연준, 트럼프 압박에도 '9월 긴축' 예고.."곧 금리인상 적절"(종합) 2 파리 교외서 30대 남성 흉기 휘둘러 3명 사상(종합) 3 브라질 "베네수엘라 난민 이달 말부터 단계적으로 분산이주" 4 英, 신용카드 결제비용 증가 등 '노딜브렉시트' 대비 지침 발표(종합) 5 백악관 "미일정상 통화..강력한 대북제재 유지 약속"(종합) 해설/묘사 기사 분류 결과 1 [기고]학교 시민교육을 제도화하자 2 [우보세] 신바람 한점 없는 오너들 3 청년'에서 '엄마'로, 제2의 정치 인생 맞이하는 신보라 4 [사설]문재인 정부 첫 개각, 국정쇄신 계기로 삼아야 5 [조한욱의 서양 사람] 의적의 탄생
  • 20. 기사 형식 분류 결과 딥러닝 고장내는 기사 2018년 08월 23일 인입 기사 A : B : C = 35% : 31% : 34%
  • 21. 1. 기사 형태 분류 하기 2. 뉴스 메타 태깅 시스템 3. 향후 과제
  • 22. 뉴스 메타 태깅 시스템 뉴스 발행 후 메타데이터를 ‘생성’하고 ‘유통’시키는 플랫폼 Design Goals 실시간 프로세싱 메타 태그 생성의 비동기성 메타 태그 생성 기술의 다양성 • 기사가 들어오는 대로 바로 메타데이터를 생성 • 다양한 조직과 플랫폼이 메타 데이터 생성에 참여 • 각 메타데이터 생성은 비동기적으로 이루어져야
 (예외: 메타데이터간 의존성이 있는 경우) • 기계학습, 딥러닝 플랫폼의 다양성을 수용할 수 
 있어야
  • 23. 뉴스 메타 태깅 시스템 -NEWS TOPIC- -TAGS TOPIC-1 + 메타데이터 생성 서비스 (예: 기사 형태 분류) 메타데이터 생성 서비스 2 3 4 CMS 메타데이터 consumer 5 • 콘텐츠와 메타데이터를 함께 feeding • News Topic에서 콘텐츠와 메타데이터 흐름을 모두 Tracking • 동일 뉴스 - 동일 메타데이터가 중복 처리 되지 않도록 해야 • 콘텐츠+메타데이터를 조합하여 새로운 메타데이터를 만들기 용이 메타 데이터의 생성과 소비가 함께 이루어지는 흐름
  • 24. System Architecture Ensemble 
 API Ensemble 
 API Inferrer API Inferrer API Inferrer API Inferrer API Inferrer API Inferrer API -NEWS TOPIC- -TAGS TOPIC- 메타데이터 생성 = Ensemble - Inferrer API Services Meatadata API Services
  • 25. Inferrer API • / API • API • Dockerizing + • • API / , Ensemble 역할 및 기능 Ensemble 
 API Ensemble 
 API Inferrer API Inferrer API Inferrer API Inferrer API Inferrer API Inferrer API
  • 26. Inferrer API 기사 형태 분류 CNN API 사례 Docker Tensorflow Model Flask App uWSGIwaitress class TensorflowModel: def __init__(self, tag, signature_key, input_key, output_key, path): self.sess = tf.Session(graph=tf.Graph()) meta_graph_def = tf.saved_model.loader.load(self.sess, [tag], path) signature = meta_graph_def.signature_def tensor_name_x = signature[signature_key].inputs[input_key].name tensor_name_yhat = signature[signature_key].outputs[output_key].name self.input = self.sess.graph.get_tensor_by_name(tensor_name_x) self.model = self.sess.graph.get_tensor_by_name(tensor_name_yhat) • uWSGI + Flask + Tensorflow API • tf.saved_model API로 학습한 모델을 protobuf로 export / import 기사 형태 분류 API 구현
  • 27. Ensemble API • Inferrer API 호출 • 각 모델에 필요한 입력 값 (Feature) 생성 • 기사 형식 분류의 예: 한글 romanization • 모델 추론 결과 Ensemble 로직 처리 • 메타데이터 서비스의 Gateway • 공통 기능: authorization, logging 등 역할 및 기능 • spring-webflux로 개발 • 여러 소스(Inferrer API, 기타 Feature 생성을 위한)에서 정보를 취합 • 병렬-비동기 처리 구조의 이점 구현 Image: pexels.com
  • 28. Ensemble API Feature (Model #1) { “title”: “오늘의 날씨”, 
 “contents": “날씨는 대체로…” , “press”: kakaonews,
 “category”: 999,
 } Inferrer API (Model #1) Feature (Model #2) Inferrer API (Model #2) Feature (Model #3) Inferrer API (Model #3) Calculate Ensemble { “api”: “news-type”, “value”: 0 } (FlatMap) (Merge) (Map)
  • 29. Message Flow Control -NEWS TOPIC- -TAGS TOPIC- Filtering Invoke Ensemble Post- process Produce Message Flow Control • • message parsing & filtering • Ensemble API , • • 역할 및 기능
  • 30. Message Flow Control Apache Nifi • Data Flow 개발이 간단 
 (다양한 데이터 source, sink 지원) • 각 처리 단계별로 in/out 처리량과 데이터 모니터링
 (Data provenance) • nifi-registry와 연동하면 Data Flow 형상 관리 가능 특징
  • 31. Metadata Flow Ensemble 
 API Ensemble 
 API Inferrer API Inferrer API Inferrer API Inferrer API Inferrer API Inferrer API -NEWS TOPIC- -TAGS TOPIC- { “title”: “오늘의 날씨”, 
 “contents": “오늘 전국 날씨는” 
 } req:
 { “news”: “oneulyinalssioneulyi
 jeongug ” } { “tagGroup”: “news”, “tagKey”: “news-type”, “value”: 0 } res:
 { “valueName": “model403”,
 “valueType”: “List”,
 “values”: [ 0.7, 0.1, 0.2 ] } 기사 형태 분류 사례 CMS Filtering Post- process Produce Invoke Ensemble
  • 32. 1. 기사 형태 분류 하기 2. 뉴스 메타 태깅 시스템 3. 향후 과제
  • 33. 향후 과제 • 딥러닝 모델 품질 관리 • 오분류 사례 수집 및 모델 재학습 • (현재는 시간별 분류 결과량 Trend 모니터링)
 • 다양한 메타데이터 추가 • 기사 내용의 특징 분석 • 기사 내 사진, 차트, 인포그래픽 분석 • 음성 뉴스 및 동영상을 활용한 다양한 실험