파이콘 코리아 2018 후기

파이콘 코리아 2018

지난 2018/08/18(토) ~ 19(일)에 파이콘이 개최되었고, 회사에서 지원을 받아서 다녀오게 되었습니다.
대부분의 머신러닝에 관한 세션을 들었고, 그에 대하여 한 포스팅에 상세히 설명은 어렵지만 간단한 후기 등을 작성 하려고 합니다.
혹시라도.. 이 글을 읽게 되실 분들 중, 이 세션은 내 발표인데 포스팅 안했으면 좋겠다 싶으신 분들은 바로 댓글 부탁드립니다.
세션들을 블로그에 박제(?) 하려는 의도는 아니고, 지난 파이콘 세션들이 기억이 안나는 나에 대한 채찍질일 뿐 입니다.

머신러닝으로 치매 정복하기

링크 : https://www.pycon.kr/2018/program/36
슬라이드 : https://www.slideshare.net/ParkSejin/2018-110482902

치매, 알츠하이머는 치료가 어렵고, 조기 진단을 통해서 진행 속도를 늦추는 정도에 불과 하다. 모든 성인은 노화 하면서 뇌가 위축이 되고, 치매가 걸리는 사람들은 뇌의 특정한 위치에서 다른 변화가 있을 것이며 이를 찾는것이 프로젝트의 목적.

상용 프로젝트는 성능이 안나오거나 기능이 부족한게 현실이다.
속도가 나오며, 진단을 통한 위험도를 제시하며, 뇌의 영역을 시각화 하는것이 해당 프로젝트의 차별점.

해상도가 중요한 데이터에서 사용하는 High ResNet

일반적인 CNN 은 pooling을 통하여 레이어를 점차 작게 하면서 데이터를 축소 시키지만, 해당 문제에서는 객체가 인식 되어야 해서 해상도가 필요한데 이러한 이미지 인식에 사용되는 방식은 High ResNet.

resnet의 구조는 중간에 뛰어넘는 지름길의 path를 두어서 성능을 향상 시켰다고 합니다.
resnet 구조


소설 쓰는 딥 러닝

슬라이드 : https://speakerdeck.com/dreamgonfly/soseol-sseuneun-dib-reoning-pycon-korea-2018
소설쓰는 딥러닝에 대한 챌린지에 참여.

문제점

한국어는 단어 형태소 하나하나 의미가 있기 때문에 뜻 파악이 어렵다. 문장이라는 특성상 아주 오래전의 문장도 영향을 줄 수 있는데 이를 학습하기 어렵다. 문장은 보통 길이가 길기 때문에 빠른 학습을 통한 모델 업데이트가 필요 하다.

Tokenizing

형태소 단위로 뜻을 가지는 한국어의 특성상 토큰화를 하는것이 중요하다.

토큰화를 하기 위해서 기존의 토크나이져를 분석하였고, 신조어를 더 효과적으로 사용 할 수 있는 soynlp를 사용

언어의 뜻을 해석하는 attention

RNN을 사용하지 않고 transformer 모델을 통하여 자연어 처리를 진행하려고 한다.
언어 번역등 단어들의 뜻에 연결을 이어가는데에 사용되는 알고리즘을 attention 이라고 한다.

attension
아래 그림은 딕셔너리 형태로 어텐션을 표현한 모습

단어의 뜻을 해석하는데에 다른 위치의 언어를 통해서 이하하는 self-attention.

뜻을 이해하는데에 있어서 여러 언어들을 통하여 이해하는 multi-head attention.

Transformer의 구조

좌측 인코더, 우측 디코더
input embedding : 텍스트 -> 숫자로의 변환
positional encoding : 문자에 따른 위치 정보 추가.
feed forward netywork layer normalization residual connection : 피드 포워드 방식.
아웃풋 : 다음에 리턴할 단어.
인풋 : 지금까지 생성한 단어.


transformer의 장점 : 30배의 빠른 속도.
단점 : 길이가 길수록 계산량은 매우 커짐.


Memory Network

Q.A
Q.A 문제의 구조의 핵심인 메모리라는 특징을 이용해 구조를 단순화.
Memory Network
전체 구조

결과

이미지는 생략.
사람이 읽을만한 내용의 소설이 완성됨. 하지만 이름을 그, 그녀로 한정되기만 하고, 스토리가 이어지긴 하지만 전체적인 관점에서는 내용이 없는 결과.

딥러닝을 이용한 로그 기반의 게임 AI 개발

하이퍼커넥트에서 자동 광고 성과 측정 시스템 구축하기


하이퍼 커넥트는 대표적인 "아자르" 어플을 통해서 수익을 얻고 있으며, 수익 극대화를 통해서 구글, 페이스북 등의 업체에 광고를 진행중에 있다.
아자르


배치 관리

이에 대하여 광고의 성과 측정을 위해서 주기적으로 배치 job을 진행하고 있으며, 이를 효율적으로 관리하기 위해서 airflow라는 오픈소스를 사용 한다.
airflow 대시보드
airflow를 통해서 job들의 연관성을 그래프로 표현 할 수 있고, 분산 처리도 가능하다.

매칭에 따른 행동의 가치 추산

아자르라는 매칭 시스템의 특성상, 사용자가 아무리 돈을 지불 하려는 의사가 있어도 상대방이 없으면, 수익이 나지 않는다. 이때 파트너가 될 사용자가 매칭이 된다면, 해당 사용자가 돈을 지불하지 않았더라도, 해당 행동은 가치를 산정 할 수 있고, 이를 표현하기 위하여 페이지 랭크를 사용하고 있다. 지불 가능성이 많은 사용자와 매칭이 된 파트너도 매출에 영향을 끼치게 되므로 점수를 많이 줄 수 있고, 이러한 사용자들을 끌어 들이는 광고는 성공적 이라도 할 수 있다.


페이지 랭크

LTV를 통한 광고의 잠재 가치 추산

일반적으로 광고를 통한 수익보다 광고의 지출이 적다면, 광고는 내려야 한다. 하지만 해당 광고를 통해서 수익은 바로 나지 않는 경우가 대부분이고, 해당 매출은 지금 바로 산출 하는데에는 상식적으로는 어려움이 있다. 하지만 이러한 가치를 추산이 가능하면 더욱더 효율적인 광고 집행이 가능하고 이러한 개념을 LTV라고 한다.
광고의 잠재적 가치 산정

LTV를 산정하기 위해 BG/NBD 모델을 사용하고 이는 고객마다 일정한 비율로 구매하고 서로 다른 비율을 가진다 라는 것을 의미 한다.
구매 빈도

이탈 빈도
감마 감마 모델

LTV를 산정하는 LifeTimes

이러한 잠재적 가치를 산정하기 위해서 파이썬의 LifeTimes라는 오픈소스를 활용 가능하고, 아래 그래프는 
아자르 데이터를 통해서 실제로 얼추 맞는 모습을 보여준다.

인공지능 슈퍼마리오의 거의 모든것

추천 시스템을 위한 어플리케이션 서버 개발 후기 @ kakao

슬라이드 : https://www.slideshare.net/kimkwangseop/pycon-korea-2018-python-application-server-for-recommender-system-110602118
해당 발표에서는 추천 시스템 알고리즘을 다루지는 않았다.
추천 시스템의 기본적인 지식은 생략..

카카오 추천 시스템의 요구사항

미리 추천도를 계산하는 방식은 카카오 시스템에는 부적합하여 실시간 분석이 되어야 한다. 안정적인 성능이 필요하며 관계형 분석 기능도 필요하는 등 매우 복잡한 요구사항이 존재 한다.
카카오 추천 시스템의 요구사항


기획자, 개발자 들의 복잡한 요구 사항.

기존 추천 시스템에는 없는 기획자들의 요구 사항. 성능. 협업하는 개발자들의 api 단순화 요청 등.

실시간 분석 기능이 부족한 상용 툴

대부분의 데이터 베이스는 실시간 분석 기능을 지원해주지 않거나 지원해주어도 카카오에서 원하는 성능은 나오지 않는다. 그래서 카카오는 데이터베이스는 상용 데이터베이스를 사용하고, 실시간 분석 기능에 초점을 맞춘다.
데이터 베이스 벤치마킹

실시간 분석 시스템 직접 구현

카카오에서는 직접 실시간 분석을 지원해주는 시스템을 직접 구현하였다고 한다.
카카오 추천 시스템
시스템 구성을 위해 공통 쿼리 결과들을 redis를 통해서 캐싱을 하고, 적절한 부하 분산을 위해 샤딩을 진행. $filter연산은 mongodb 가 빨라서 데이터베이스에서 처리를 하고, $group연산은 어플리케이션에서 구현.
추천 시스템만의 특성상, 출력 개수, 보지 않은 데이터 확인을 위한 쿼리 구현. 
추천 시스템 쿼리 필터링


Topic Modeling & Word Embedding 그리고 화장품


화장품 업체의 데이터 엔지니어.
대부분 도메인이 마찬가지겠지만, 화장품 업체의 상품평들을 분석하는데에 있어서 가장 어려운 점은 당연 키워드 분석이다.
많은 제품명이 있으며, 젊은 여성 고객층이 사용하다 보니 많은 신조어가 존재.
그를 위한 고군분투.

Latent Dirichlet allocation




땀내를 줄이는 Data와 Feature 다루기

댓글

이 블로그의 인기 게시물

포켓몬 고 17셀 확인 포고맵 사용 방법

HTTP 오류 500.19 - Internal Server Error 에러 처리법

고려대학교 야간대학원 중간 후기