확인되지 않은 여러 소문과 유행이 횡행하던 2016년하반기, ‘엄청난 내부고객’을 보유한 대한민국 ‘굴지의 조직’의 인공지능 프로젝트에 참여했다. 그들의 주장과는 달리 데이터는 빈약했다. 그것은 머신러닝 알고리즘을 만들기 이전 단계의 컨설팅이었고 빅데이터 연구를 수행할 회사를 코디네이트 해야 했다. 적합한 회사는 두 곳이었는데, 그 중 한 곳은 국방부를 비롯한 큼지막한 빅데이터 프로젝트를 꽤 많이 수행한 곳이었고 오너는 아주 오래 전에 프로젝트를 함께 했던 경험이 있었다. 또 한 곳은 지방의 ‘원’자 붙은 국립대학에 입주한 스타트업 기업으로 한창 시각 분석 알고리즘을 개발하고 있었다. 두 번째 회사의 오너는 엔지니어링 경험이 있는 인문학자라고 해 두자.

콘텐츠 추천 알고리즘의 현황

콘텐츠 추천 알고리즘은 여러 곳에서 다양하게 연구되고 있다. 내가 관심 있는 것은 이런 것이 아니었다.

사례분석

SK Planet Code Sprint (2015)

문제: VOD 추천 – 특정 기간 동안의 고객별 컨텐츠 구매 기록이 주어지고, 해당 고객이 향후 어떤 컨텐츠를 구매할지 예측하는 문제입니다. 2014년 9월 1일부터 2015년 2월 28일 까지의 컨텐츠 구매 이력을 바탕으로 2015년 3월 1일부터 2015년 3월 31일까지의 구매를 예측합니다. 컨텐츠는 영화, 국내 드라마, 해외 드라마, 애니메이션의 4가지 카테고리로 구분 가능합니다. 구매 예측은 4가지 카테고리 중, 영화 구매 예측으로 합니다. 단, 중복 예측은 불가합니다.

결과: 85팀 중 75팀 평가 불가였으며  다음은 2위 수상자의 해설 중 일부다. 전체는 다음 링크에서 확인 (http://readme.skplanet.com/?p=11340)

Collaborative Filtering 1.1. 사용자 유사성 기반 – 사용자 간 유사성을 구한 다음 주어진 사용자와 가장 비슷한 사용자 N명을 구하고, 그 사용자들이 본 VOD 중에서 주어진 사용자가 보지 않은 VOD를 추천하는 방식 1.2. VOD 유사성 기반 – VOD 간의 유사성을 구한 다음, 주어진 사용자가 본 VOD와 비슷한 VOD를 추천하는 방식

Singular Value DecompositionSVD는 m x n 행렬 A를 다음과 같은 3개 행렬을 곱으로 나타내는 방법입니다.
A = B S C
B: m x k 행렬
S: k x k 대각행렬
C: k x n 행렬
대각 행렬 S의 각 원소에 제곱근을 취한 행렬을 s라고 하면 A = B s C = U V (단, U = B s, V = s C)

Netflix의 추천 알고리즘

Netflix Prize는 넷플릭스 사용자들의 영화 별점 데이터를 가지고 2006년 10월부터 2009년 7월까지 약 3년에 걸쳐 이어진 기계학습을 통한 영화 평가 데이터 예측 대회.  본 대회를 통해 대표적인 추천 알고리즘인 ‘collaborative filtering’이 발전하고 공유. 특히 우승팀의 SVD를 활용한 SVD++는 이후 굉장히 많은 분야에서 활용. 연구 분야의 발전 뿐 아니라 Netflix는 성공적인 대회 개최를 통해 큰 홍보효과를 얻었고 넷플릭스 영화추천 시스템 성능 향상. 당시 대회의 우승 상금은 US $1,000,000..

넷플릭스는 SVD(특이값 분해), 앙상블 메소드 등을 도출한다. SVD에 대해서는 다음 링크 참조 (https://en.wikipedia.org/wiki/Singular-value_decomposition). 또한 관심있는 사람은 다음을 참고하라.

NETFLIX PRIZE: 다이내믹했던 알고리즘 대회  (SHALOMEIR’S BLOG)  
Recommendation System :협업 필터링을 중심으로 (카이스트 전산학과 응용 알고리즘 연구실)
SVD로 VOD 추천하기 (김대환, SK planet Code Sprint 2015 Round 2)
특이 값 분해(Singular Value Decomposition, SVD)의 활용 (다크 프로그래머) 
http://rosaec.snu.ac.kr/meet/file/20120728b.pdf

위 네개의 링크는 http://readme.skplanet.com/?p=11340 에서 가져 온 것이다. 이 네이버 블로그에 있는 의미 심장한 문구를 소개 한다.

추천의 정확도가 높은 것은 – 어떤 의미에서는 – 뻔하다, 식상하다라는 느낌을 줄 가능성이 크다. 결국 추천이 고객에게 어떤 제안을 해서 만족감을 주는 것이라면 의외성(Serendipity)와 다양성(Diversity) 그리고 고객의 선택권(Choice)까지 설계에 포함되어야 한다. 이것은 단지 추천의 평점을 잘 예측하는 것과는 다른 곳에 있다.

그래서, 넷플릭스는 이를 보완하기 위해, 영화에 대한 텍사노미를 만들고 A/B 테스트를 하고 있다.

실험설계 관점의 방법론 검토

인공지능이란 단어가 폭발적으로 인기를 끌기 이전 수십년 동안 데이터마이닝 방법론이 발달되어 왔다. 신경망을 포함한 광의의 데이터마이닝 방법론에는 다음과 같이 다양한 기법들이 있다.

  • 회귀분석
  • 의사결정
  • 의사결정트리
  • 신경망
  • 지도학습기법
  • 차원축소기법
  • 연관규칙분석
  • 군집분석
  • 비선형 모형화 기법  – 커널방법론
  • 축소추정법
  • 앙상블
  • 서포트 벡터 기계
  • 다범주 분류
  • 일범주 분류
  • 상관 분석
  • 함수형 자료 분석
  • 순위 측정

이들 방법들을 적용하기 전, 실험 설계 관점에서, 가설을 검증하는 경우의 순환 오류에 대해 알아 보자. 이 프로젝트는 학술적 목적이 아니었으므로, 적당한 수준에서 가설에 대한 합의가 필요했다.

1. 관심을 가질 만한

인구통계학적 특성(외부동기) vs 검색(인지적 추리, 판단, 결정의 내부동기)의 동기 혹은 내적인 다른 의도는 서로 표리 상반하다는 가설의 경우, 데이터의 비중 n:1 이므로 내부동기인 검색을 (n+1)배 가산 후, 평균 이후의 비교를 위해 표준점수로 환산, 다른 사람들의 표준점수 보다 유의한 정도의 차이를 가질 경우 가설을 지지한다 했을 때, 이는 전건 긍정의 오류로 비과학적인 Pseudo-Psychology.

2. 완료율이 높을 만한

필수과목인 미이수과정(외부동기) vs 1번항목(외부+내부 동기) 혹은 내적인 다른 의도는 서로 표리상반하다는 가설의 경우, 비중 (n+1):1 이므로 내부동기인 검색을 (n+2)배 가산 후 평균, 이후 1번과 동일 방법 및 동일한 비과학적 의의를 가진다

3. 만족도가 높을 만한

1번 항목과 2번 항목의 편차의 절대값이 다른 사람들에 비해 유의하게 작을 수록 만족도 높다는 메타적인 가설에서 출발하는 경우, 전체 모수를 지정하기 어려우며, 혹은 전체적으로 이미 편향 되었을 경우(모두가 거짓말을 하는 경우) 전건의 가설 검증 어려움.

그래서, 위와 같은 비과학적인 합의를 거친 후에 사용되어야 할 데이터 산출은 다음과 같았다: 의무과정 중 미이수, 최근 검색한 과정이 속한 분류, 가장 많이 수강한 과정(소속 기관의 다른 회원, 동일직급, 동일성별, 동일 연령대).

필수인 의무 과정을 한번에 알 수 있게 해달라는 요청과 같이 관성적으로 수업에 임하며, 수업평가에서 대부분 거짓말을 한다는 두가지 행동 패턴을 널리 알려진 자명한 사실로 취급하여 가설 검증에 대한 방법론은 제외 적합헸다. 결론적으로 우선적으로 순위측정 방법을 사용하고, 연관규칙 및 반발항목 집합분석 방법의 일부 사용하는 것이 적합했다.

이건 공공연한 비밀이지만, 사실상 오늘날 대부분의 통계적 프로젝트는 비과학적인 전건긍정의 오류, 순환오류를 무시하고 진행되고 있다. 이는 실험심리학자에 의한 실험설계를 하지 않고, 시장조사를 해서 논문을 쓰거나, 마케팅 조사를 하는 거의 모든 일에 해당한다. 그런데 빅데이터를 인공지능으로 분석해 뭘 알아내겠다는 인간들이 많다.

교육 분야 빅데이터 분석 적용 방안

당연히, 위의 것과 같은 것에 신경을 쓰거나 장기적, 종단적 연구에 돈을 들이는 한국인은 없다.

이 글은, 이 블로그의 다른 글들이 그렇듯 계속 이어진다.

Juno
Author

한국표준협회 경쟁력향상센터 수석전문위원 nahojun@sodec.co.kr

답글 쓰기