gimmesilver's blog

Agbird.egloos.com

포토로그 마이가든



뉴욕 시장이 프로그래밍을 배운다 단상

기사 원문: http://www.bbc.co.uk/news/technology-16440126

뉴욕 시장인 마이클 블룸버그는 온라인 컴퓨터 코딩 수업을 받기로 결심했다.
(이에 따라) 블룸버그 시장은 'Code Year'라고 하는, 좀 더 많은 사람들이 코딩을 하도록 장려하는 캠페인에 참여 중인 18만 명 이상의 사람들과 함께 하게 된다. 
그는 트위터를 통해 "내 올해 목표는 2012년에 Codecademy(Code Year의 교육 프로그램)에서 코딩을 배우는 것이다.' 라고 밝혔다.

이 수업에 참여하는 사람들은 매주 이메일을 통해 인터랙티브한 강의를 받게 된다.
캠페인에서는 참여자가 (수업을 통해) 그들이 알고 있는 웹사이트나 앱을 개발하게 될 것이라고 약속했다.
트위터에서 '#codeyear'라는 해쉬태그를 사용한 수 천개의 글을 클릭해 보면 이에 대한 확인이 가능하다.

일부 트윗에서는 이 뉴스에 대해 런던 시장인 보리스 존슨이 블룸버그 시장의 사례를 따라 프로그래밍을 배울지에 대해 궁금해 하고 있다. 
런던 시장의 대변인은 BBC와의 인터뷰에서 존슨 시장은 그의 좋은 친구인 마이클 블룸버그에게 다시 한번 존경심을 표하며, 만약 재 당선된다면 코딩 수업에 그와 함께 참여하는 것을 검토해 볼 예정이라고 전했다.
그러나 예전 (런던) 시장이자 영국 노동당 후보인 켄 리빙스턴은 시장은 시의 문제를 해결하는데 모든 시간을 쏟아야 한다고 비판했다.
리빙스턴은 BBC와의 인터뷰에서 "만약 내가 시장에 당선된다면 나는 너무 바빠서 어떤 수업도 들을 수 없을 것이다." 라고 말했다.
런던 시장 선거는 5월에 열릴 예정이다.

블룸버그 시장이 코딩 실력을 쌓아 무엇을 하고 싶어 하는지는 불분명하지만 그가 (코딩을) 배우기로 결심한 것은 사람들의 프로그래밍에 대한 관심이 부흥하는 시기와 일치한다.
작년 10월 발간된 'Next Gen 보고서(http://www.nesta.org.uk/events/assets/features/next_gen)'에서는 영국 학교의 컴퓨터 수업에 대한 내용이 실렸다. 공동 저자인 알렉스 호프는 BBC에서 코딩은 "차세대 라틴 언어"가 되어야 한다라고 말했다. (관련링크: http://www.bbc.co.uk/news/technology-15916677)

Code Year를 주관하는 신생 기업인 Codecademy는 이 회사의 공동 설립자가 프로그래밍을 배우는데 좌절한 경험을 살려 작년 8월에 설립되었다.
미국 사이트에는 자바 스크립트 프로그래밍을 위한 웹 기반의 무료 초보 강좌를 제공하고 있는데 개설된지 한달 만에 6백만 개 이상의 강의가 만들어 졌다.

한편, (Codecademy의) 공동 설립자인 자크 심즈는 블룸버그 시장의 위와 같은 결정에 대해 한마디로 '대박(Awesome)'이라고 말했다.

* * * * *

 얼마 전 우리 회사 CEO가 신년사 말미에 올 연말에는 전 직원을 대상으로 프로그래밍 언어 중 하나인 자바 스크립트 시험을 보겠다고 해서 회사 내에서 뿐만 아니라 외부에서도 이슈가 됐다.(http://biz.chosun.com/site/data/html_dir/2012/01/10/2012011002862.html)
 원래 작년 팀장 워크샵 때만 해도 "우리 회사 팀장들은 직군을 떠나 모두 프로그래밍을 할 줄 알아야 한다고 생각한다.' 였었는데 몇 달 사이에 전 직원 확장 버전이 나온 것이다.

 위 글을 보면 영국에서는 프로그래밍을 의무 교육으로 실시하려는 움직임까지 있는것 같다.

 혹자는 굳이 전문 기술이라 할 수 있는 프로그래밍을 관련 업종이 아닌 사람까지 배워야 하나 라고 생각할지 모른다. 그러나 불과 20년 전만 하더라도 컴퓨터로 문서를 작성하는 것 역시 전문 기술이었다는 점을 생각한다면 위에서 주장하는 "코딩은 차세대 라틴 언어" 라는 주장이 빈말은 아닐 듯 싶다.

 p.s. 위 글에서 소개하고 있는 codecademy는 프로그래밍 기초 과정을 웹으로 배울 수 있는 사이트인데(http://www.codecademy.com) 꽤 잘만든 사이트인것 같다. 
 p.p.s. 한편 우리나라에서는 이고잉이라는 블로거가 생활 코딩이라는 이름을 걸고 초보자를 위한 프로그래밍 강좌를 열고 있다. (http://opentutorials.org/)

게임 데이터를 활용한 어뷰징 탐지 기법 관련 연구들 데이터분석

 '저와 함께 대용량 게임 데이터를 분석하실 분을 찾습니다' 라는 글에 어떤 분이 '하고 싶은 연구였는데 이미 NC에서 하고 있었다'며 좌절하는 트랙백(http://nunix.egloos.com/3784333)을 달으셨는데 사실 이렇게 게임 데이터를 분석해서 오토 프로그램이나 계정 도용 등을 탐지하는 기법에 대한 연구는 생각 외로 학계에서도 이미 많이 하고 있다.

 특히 흔히 '오토' 혹은 '게임 봇' 이라고 부르는 자동 사냥 프로그램을 탐지하는 기법에 대한 연구가 꽤 활발한데 마침 최근에 이와 관련해서 잘 정리한 블로그 글을 하나 발견했다. (http://www.aurumahmad.com/vwe/gold-farming/)
 참고로 외국에서는 이렇게 오토 프로그램 등을 이용해서 게임 화폐나 아이템을 모아 이것을 팔아서 돈을 버는 행위를 'gold farming(http://en.wikipedia.org/wiki/Gold_farming)' 이라고 한다. 

 어떻게 보면 이런 류의 탐지는 전형적인 분류(classification) 문제라 할 수 있다. 여러 개의 메일 중에서 스팸 메일을 걸러내는 것처럼 게임 상의 캐릭터들 중에서 자동 사냥 프로그램과 일반 유저를 분류하는 것이다. 물론 '분류'가 아닌 반복 패턴을 찾는 문제나 행위 유사도 클러스터링 등등 다양한 시도들도 있다. 아무튼 이런 것들이 모두 '데이터 마이닝' 하는 사람한테는 꽤 좋은 떡밥이 된다.

 문제는 이런 분석을 제대로 하기 위해서는 충분한 양의 게임 로그 및 관련 정보가 필요한데 당연히 대부분의 게임 회사는 이런 사용자 데이터를 외부에 공개하지 않는다는 점이다. 이렇듯 게임 데이터가 굉장히 매력적인 자료임에도 불구하고 관련 연구가 다른 분야에 비해 많이 활성화 되지 못하고 사람들에게 널리 알려지지 않는 가장 큰 이유는 (웹과는 달리) 자료 접근이 대단히 폐쇄적이기 때문이다.

 그나마 극히 일부 게임에서 연구 목적을 위해 데이터를 제공하고 있기에 그래도 논문들이 꾸준히 나오고 있는데 우리 회사의 경우도 '아이온' 게임 데이터를 산학 협동 연구 목적으로 고려대에 제공한 적이 있다(그리고 이를 통해 여러 편의 논문이 나왔다). 

 참고로 게임 데이터 분석을 주제로 한 논문 몇 개를 아래에 나열해 본다.

 
 그리고 얼마 전 우리 팀에서도 학회에 봇 탐지 관련 논문을 하나 냈다. 솔직히 그리 잘 쓴 논문은 아니지만 안 쓴것 보단 낫지 싶어 조심스레 올려본다.



저와 함께 대용량 게임 데이터를 분석하실 분을 찾습니다. 데이터분석

제목처럼 저희 팀에서 함께 일할 분을 찾습니다.
채용 공고 및 접수는 https://recruit.ncsoft.net/korean/careers/adoptionview.aspx?BNo=2186 에서 확인하시면 됩니다.

위 채용 공고에서 미처 하지 못했던 이야기를 하자면...

 링크를 보시면 아시겠지만 제가 근무하고 있는 곳은 엔씨소프트라는 게임 회사입니다. 현재 하고 있는 일은 데이터 분석 및 시스템 개발인데 그 중에서도 특히 fraud detection 분야를 담당하고 있습니다.
 fraud detection은 말 그대로 불법적인 행동을 찾아내는 것을 말하며 예를 들어 카드 회사나 금융 결제 업체에서 도용 행위를 탐지하기 위해 평소 고객의 소비 패턴과 다른 소비 행태를 탐지해서 도용 피해를 막는 등의 분석 기법을 말합니다. 
 저희 팀에서는 사용자의 게임 활동을 분석해서 계정 도용이나 오토 프로그램을 이용한 어뷰징 행위 등을 탐지하기 위해 유사한 분석 기술을 활용하고 있습니다.

 게임은 (물론 그 자체로도 매력있지만) 데이터 분석의 관점에서 볼 때 매우 매력있는 곳입니다. 웹에 비해 규모가 다소 작지만 (그렇다 해도 다루는 데이터의 양은 수백 GB ~ 수십 TB 수준입니다.) 다양성의 측면에서는 단연 그 어떤 분야도 압도합니다. 
 어쩌면 현실과 가장 유사한 곳은 게임이 아닐까 싶습니다. 그러면서도 거의 모든 활동을 관찰할 수 있습니다. 제 능력이 부족해서 하고 있지는 못하지만 다양한 사회학적 기법들을 실험하고 관찰할 수 있는 최고의 조건일지 모릅니다.

 물론 이를 위해선 다양한 분석을 시도할 수 있는 튼실한 분석 인프라가 필요합니다.

 이와 관련해서 이야기 해보자면, 저희 팀의 상위 조직은 '데이터 정보 센터'인데 이름에서 알 수 있듯이 데이터에서 정보를 추출하는 일과 관련된 모든 일을 수행하는 조직입니다. 기존에 수행하던 BI 분석 뿐 아니라 최근 이슈가 되고 있는 '빅 데이터' 분석을 위한 인프라를 몇 년 전부터 구축하고 운영해오고 있는데 이렇게 분산 인프라를 개발/구축/운영하는 팀에서부터 통계 분석 및 데이터 마이닝을 통한 다양한 고객 분석을 수행하는 팀까지 여러 계층의 팀이 존재합니다. 
 아직 부족한 점도 많고 갈 길도 머얼~지만 그래도 국내에서는 꽤 높은 수준의 인프라가 아닌가 생각합니다. 

 이왕 말 나온김에 팀에 대해 잠깐 더 얘기해보죠.

 위에서 언급했다시피 fraud detection 분야를 담당하고 있고 이를 위해 데이터 분석과 시스템 개발을 모두 수행하고 있습니다. 하지만 이를 위해 데이터 모델러와 시스템 개발자로 분업화 되어 있진 않습니다. 각자 갖고 있는 강점의 차이는 있겠지만 전 모든 사람이 분석과 개발을 다 잘 해야 제대로 된 데이터 분석이 가능하다고 생각합니다. 그래서 링크에 나와 있다시피 프로그래밍을 할 줄 아는 데이터 분석가가 필요합니다.
 솔직히 말하자면 직접 하둡으로 로그 데이터 정제해서 탐사 분석을 수행하고 간단한 마이닝 알고리즘도 구현할 줄 알며 그렇게 해서 나온 데이터 분석 결과를 보고서로 만들 줄 아는 사람이면 좋겠습니다.......만 뭐 이건 그냥 '저 김태희랑 결혼하고 싶어요.' 정도로 받아들이시고, 그저 지금 당장 이런 역량을 갖추지 못했다 하더라도 이런 제 생각에 공감하는 분이길 바랍니다.

 팀에서 가급적 다양한 데이터 분석을 시도하고 있습니다. 올 한해 동안 산학 프로젝트를 수행하기도 했고 팀 자체적으로도 몇 가지 새로운 분석 기법을 탐지 시스템에 적용했는데 이에 관해서 두 편의 논문을 한 국제(근데 주관은 한국이에요) 학술 컨퍼런스에 제출했습니다. (그래서 연말에 말레이시아로 놀러가요~)

 뭐 쓰다보니 자랑 섞인 이야기만 주욱 적었는데 사람 낚으려다 보면 의례 그런거니까 알아서 걸러서 받아 들이시고, 그저 좋은(많이는 필요없어요...) 분들이 지원해 주셨으면 좋겠습니다.

(바쁘신 분들을 위한) 세줄 요약:
  • 게임은 대단히 매력적인 데이터 분석 소스이다.
  • 우리 회사 분석 인프라 참 잘 되어 있다.
  • 우리 팀 빡세지만 좋다.

p.s. 과제있습니다. 지원 시 과제물을 제출하셔야 합니다.

삼성의 특허 보상금 단상

http://www.nocutnews.co.kr/show.asp?idx=1942740

특허 보상 50만원 밖에 안된다고 볼멘 소리하는 것도 우습고...
'특허로 회사가 벌어들이는 수익이 어마어마한데 말도 안되는 금액이'라고 불만 표한 직원이 있다고 하던데 정말 순수하게 니 생각만으로 만든 특허로 번 수익(로열티)인지 궁금하기도 하고...
그래서 대체 애플은 특허 보상금으로 직원에게 얼마 주는지에 대한 언급도 없고...

사실 특허는 그 자체가 가치있는 경우는 거의 대부분 없다고 봐도 된다. 그 보단 어떤 서비스나 제품을 만듦에 있어서 부수적으로 나오는 산출물 정도이며 괜히 이거 등록안했다가 다른 회사나 특허 사냥꾼에게 잘못 걸려서 된통 당하지 않게 방어 수단으로 등록하는 것이 더 큰 목적이다. 
즉, 특허가 가치를 발휘하려면 실제 그 특허를 이용한 서비스를 잘 만드는 것이 필요하다. 그러니 특허로 보상을 하는 것이 아니라 실제 구현된 서비스나 제품을 통해 보상을 하는 것이 더 공정한 보상 시스템이라 생각한다.

게다가 실제 법무팀이 있는 회사에서 특허 써본 사람은 다 알겠지만 출원자가 특허 등록하는데 소요하는 시간은 거의 없다. 그저 변리사 앞에서 1시간 정도 떠들면 변리사가 다 알아서 수십 페이지 짜리 문서로 잘 만들어서 출원까지 다 해준다. 

결국 특허를 통해 뭔가 큰 걸 보상 받겠다는 것은 그저 거저 먹겠다는 생각이라고 밖에 안 보인다. 아무리 중요한 아이디어라 해도 어떻게 그걸 잘 구현했느냐가 중요하며 따라서 보상은 특허가 아니라 그 특허를 활용한 제품을 통해 받는 것이 옳다고 생각한다.

p.s. 보상금 문제는 그렇고...반면 강제로 특허 할당하는 건 확실히 쓰레기 제도인것 같다...

게임 캐릭터 관계 그래프 시각화 데이터분석

네트워크 분석용 라이브러리 중 하나인 igraph(http://igraph.sourceforge.net/)를 사용해서 게임 캐릭터 간 관계를 시각화한 자료이다.
igraph는 C, R, python 버전을 제공하는데 난 R을 사용하고 있고 다른 팀 동료는 python 버전을 사용하고 있다. 
낮은 버전임에도 불구하고 안정적이고 다양한 기능 및 그래프 알고리즘을 지원하고 있어서 각종 네트워크 지표 뽑을 때 꽤 편하지만 오픈 소스라 문서화는 다소 미흡하다(그래도 오픈 소스치고는 잘 되어 있는 편이다).

아래 그림은 두 종류의 온라인 게임에서 캐릭터들의 관계를 각각 그래프로 표현한 것이다. 그래프를 그리는 방식에는 여러 가지 알고리즘이 있는데 여기서는 fruchterman-reingold 알고리즘을 사용했다. 
fruchterman-reingold 알고리즘은 일종의 힘기반(force-based) 알고리즘으로 노드는 척력, 엣지는 인력이 작용한다고 가정하고 반복 계산을 통해 그래프를 배치하는 방식이다. 
초딩 시절 한번쯤 해봤던 유리 판에 철가루를 뿌려놓고 판 아래에 자석을 갖다댔을 때의 모습과 대충 비슷하다고 생각하면 된다. 
물론 아래 그림 그리는데 저런 복잡한 알고리즘을 굳이 알 필요는 없고 igraph에서 제공하는 여러 가지 레이아웃 방식 중 하나를 결정해주기만 하면 된다.

그래프 그리기는 대개의 경우 많은 메모리와 계산 시간을 필요로 하며 엣지의 수가 많아질 수록 소요 시간이 기하급수적으로 증가한다.
예를 들어 엣지의 수가 수천 개 수준이면 1분 이내에 그림이 나오지만 만 개 정도만 돼도 몇 십분이 걸리며 10만 개 정도 되면 퇴근 무렵 돌려놓고 다음 날 아침에 오면 대충 완성되어 있다.
참고로 아래 그림들 중 첫 번째 그림은 엣지 수가 약 45만 개 정도되는데 회사 노트북에서는 out of memory가 나서 집에 있는 PC로 돌렸더니 대략 일주일 정도 걸렸다...(두 번째 그림은 약 30만 개의 엣지인데 사흘 정도 걸렸다.)

어쨌든 아래와 같은 수준의 그래프 시각화는 사실 그 자체에서 어떤 정보를 얻기 위한 목적보다는 흥미나 낚시질의 목적이 좀 더 강하다. 
다시 말하면 여러분은 낚였다...(ㅈㅅ)

<그림 1> 난 이거보면 아이언맨2에 나오는 신물질이 생각난다.

<그림 2> 이건 조커 내지는 세균맨의 느낌이...

블로터닷넷의 소셜 분석에 대한 아쉬움 데이터분석

관련링크:

 블로터닷넷에서 그루터라는 회사와 함께 트위터 메시지 분석을 했다. 위 기사 내용을 보니 솔직히 소셜 분석이라고 하기엔 좀 과장된 느낌이다. 그냥 '소셜 서비스 컨텐츠'를 대상으로 한 '텍스트 분석'에 더 가까운 것 같다. 
아마 그 이유는 마지막 링크의 인터뷰에서 나와 있듯이 소셜 분석에 대한 경험이 없다보니 뭘 분석해야 할지 모르는 상태에서 일단 할 줄 아는 것부터 시작해서 이것 저것 통계를 뽑아 봤기 때문이 아닐까 싶다(사실 나 역시 데이터 분석을 하는 입장에서 이 상황이 어떤지 대충 이해가 간다).

 그렇다하더라도 뭔가 분석을 했다기 보단 사실 나열에만 그친 것 같아 아쉬운 면이 많다. 데이터를 분석할 때는 '목적'이 분명해야 한다. 물론 대개 처음에 분석을 시작할 때는 이런 목적이 불분명할 때가 많다. 때문에 이것 저것 찔러보는 '탐사적 분석(exploratory analysis)' 과정이 필요하다. 하지만 이런 탐사적 분석은 대부분 과정이지 결과가 아니다. 이를 통해 인사이트를 얻고 나면 구체적인 가설을 세우고 검증하기 위한 추가 분석이 필요하다.

 그런데 위 기사 어디를 봐도 왜 트위터 글을 분석했는지에 대한 이유가 나와 있지 않다. 그냥 블로터닷넷 창간 5주년을 맞아 분석해 봤단다. 그저 트위터 한글 이용자들의 현황을 보고 싶었다는 내용도 있다. 이용자들의 현황을 통해 구체적으로 어떤 것을 '하고'('알고'가 아니다) 싶었던 걸까? 이에 대해 언급한 내용은 없다. 이런 질문을 해보긴 했는지 궁금하다. 

 물론 비즈니스 측면을 떠나 순수한 지적 호기심을 갖고 데이터를 살펴 보고 싶었을지도 모른다. 그렇다고 한다면 분석이 지나치게 피상적이다. 이것 저것 찔러봤을 뿐 그 때 나온 결과를 보고 추가적인 질문이나 가설을 통해 더 깊이 파고 들어가는 소위 'drill down'이 전혀 없다. 

 가령, 지하철역 중에서 가장 트윗이 많이 발생한 곳은 시청역이란다. 왜 그럴까? 그냥 유동 인구가 많기 때문인지 아닌지 확인해 볼 필요가 있다. 1~4호선 지하철 역 별 이용자 수 통계는 서울 메트로 홈페이지에 가면 쉽게 내려 받을 수 있다(그리고 이 사실은 구글링을 통해 더 쉽게 알 수 있다). 내가 방금 확인해 보니 이용자 수가 가장 많은 역은 강남역인데 시청역의 대략 2배 정도 규모이다(2011년 1~7월 이용자수가 강남역은 약 2,100만명이고 시청역은 1,2호선 다 합해서 약 1,000만명이다). 따라서 유동 인구수가 원인은 아닌 것 같다.

 한 가지 짐작가는 구석이 있다. 최근 몇 년 사이에 시청역 앞 광장에서 온갖 집회가 많이 있었으니 이 집회에 참가했던 사람들이 집회 진행 상황을 실시간으로 트윗했기 때문인지 모른다. 그럼 정말 그런지 가설을 검증해 볼 수 있다. 시청역 앞에서 발생한 트윗의 생성 시간을 시청 앞 집회 기간과 비교해 보는 것이다. 만약 정말 집회 때문이라고 한다면 어떤 집회에서 가장 많은 트윗이 발생했을까? 역시 분석 가능하다. 더 나아가 각 집회마다 언론에서 다룬 기사 수와 트윗 수 간에 상관 분석을 해 볼 수도 있다. 앞선 결과를 토대로 트위터 이용자 성향과 비슷한(혹은 반대되는) 언론사 순위를 매길 수도 있다. (뭐 결과야 안봐도 뻔하지만...)

 계속해서 기사를 보면 기자가 월별 트윗 변화량 분석에서 노무현 서거와 트윗 증가량 간의 상관성에 대한 의견을 피력한 내용이 있는데 여기서도 단지 의견에서 그치는 것이 아니라 검증 분석을 진행했으면 하는 아쉬움이 있다. 해당 기간 발생한 트윗에서 '노무현' 혹은 '서거' 등의 단어가 들어간 트윗 수를 세기만 했어도 어느 정도 간단한 검증은 가능 했을 것이다(이 때 카이 제곱 같은 걸 쓰면 더 그럴 듯 하다). 어쨌든 적어도 'ㅋㅋㅋ'의 빈도 수를 세는 작업보다는 더 가치있었을 것이다.

 데이터 분석에서 가장 중요한 요소를 꼽으라면 '호기심'이라 생각한다. 호기심이란, 계속 질문을 던지고 그 질문에 대한 답을 알고 싶어 계속 데이터를 들여다 보게끔 하는 힘이다. 그런데 위 기사에서 소개한 데이터 분석 내용에는 사실과 의견만 있을 뿐 호기심을 찾아 볼 수 없었다. 그 점이 가장 아쉽다. 

 p.s. 글 다 써 놓고 생각해 보니 내가 그저 사람들 클릭질이나 유도해 보려고 쓴 기사에다 대고 괜한 짓 한건 아닌지 싶다.

웹서핑과 생산성의 상관 관계, 실시간 데이터 활용의 중요성 기타등등

Why employees should surf the web at workhttp://www.cio.com/article/688767/Why_Employees_Should_Surf_the_Web_At_Work

 세 그룹으로 나눠 생산성 및 업무 만족도 등을 조사한 결과 작업 전 다른 활동을 한 그룹보다 웹 서핑을 한 그룹이 생산성 및 만족도 면에서 좋은 평가를 받았다. 근데 과도한 웹 서핑은 오히려 업무 생산성에 악영향을 준다. 그렇다고 웹 서핑 시간을 조절하기 위한 모니터링 정책은 좋지 않다. 가장 좋은 건 직원 각자가 자율적인 분위기에서 웹 서핑 시간을 조절할 수 있도록 정책을 잘 마련하는 거라고...누가 그걸 몰라! (버럭)

직원들을 감시할까 방임할까?http://www.infuture.kr/1017

 적절한 직원 모니터링은 생산성 향상에 도움이 되지만 과도한 감시는 악영향을 끼친다...아 그걸 누가 모르냐구! (버럭)


질문: 실시간 데이터 활용이 중요한 가장 큰 이유는 무엇인가요?
답변: (데이터 분석에 시간이 너무 오래 걸리면) 당신이 어떤 질문에 대해 답을 찾았을 때 최초에 그 질문을 왜 했는지 까먹을 수 있기 때문입니다. 

헉...이런 참신한 답변같으니라구...



그래프 이론과 소셜 네트워크 분석 예 데이터분석

관련 링크
 graph theory 1: http://20bits.com/articles/graph-theory-part-i-introduction/

 위에 3개 링크는 네트워크 분석에 필요한 기초적인 그래프 이론을 설명한 글이다. 1,2 에서는 주요 용어 및 대수 표기법과 개념에 대해 간략하게 설명하고 있으며 3에서는 이런 이론을 토대로 실제 소셜 서비스 등에서 네트워크 분석을 어떻게 활용할 수 있는지 예를 들어 설명하고 있다. 
 마케팅 관점에서 소위 '입소문(word-of-mouth)' 효과를 최대한 내기 위해선 어떤 사람들에게 타켓 마케팅을 해야 할 지 결정할 때 네트워크 분석을 사용할 수 있다. 즉, 사람들 간의 관계 네트워크를 분석해서 가장 큰 영향력을 발휘하는 사람을 찾아 그들에게 마케팅을 집중하면 효율적인 마케팅이 가능한 것이다. 
 이런 타켓 선정 시 가장 쉽게 생각할 수 있는 것이 '가장 많은 사람들과 접촉하는 사람' 즉, degree centrality 가 높은 사람이다. 여기서 더 나아가 직접적으로 접촉하는 사람(degree)은 적지만 여러 집단 간의 연결고리가 되는 핵심 인물을 찾는게 필요할 수도 있는데 이 때는 eigenvector centrality 나 혹은 betweenness centrality 등을 이용할 수 있다. 

high-degree.png
<그림1. degree가 높은 사람, 출처: http://20bits.com/articles/graph-theory-part-iii-facebook/>

low-degree.png
<그림 2. degree는 낮지만 영향력이 큰 사람, 출처: 상동>

 마지막 링크는 소셜 네트워크 분석을 이용한 또 다른 활용예인데 어떤 상품이나 소문이 사회 네트워크 상에서 어떻게 퍼져나가는지를 예측하는데 사용하는 모델 두 가지를 소개하고 있다. 가령 우리는 주위에 애플빠가 일정 수 이상 늘어나면 덩달아 자신도 애플빠가 되는 경우가 있는데 이런 관점에서 확산 현상을 설명하는 것이 threshold model 이고, 뽐뿌질에 능한 애플빠에 의해 점차 주변 사람들이 애플 제품을 지르게 되는 것으로 확산 현상을 설명하는 것이 cascading model 이다.

 위 글에서는 초기 제품 확산에는 cascading model로 설명이 가능하지만 일정 규모 및 기간이 지나 성숙된 상황에서는 threshold model 이 더 적합하다고 한다. 결국 적절히 혼합해서 사용하라는 얘기...


Java enum tutorial 프로그래밍

관련링크: http://javarevisited.blogspot.com/2011/08/enum-in-java-example-tutorial.html

 우리가 년도를 표기할 때 기원 전/후로 구분하듯이 자바는 버전 5 전/후로 나눌 수 있다. 그만큼 자바는 5에서 매우 큰 변화가 있었는데 그 중에서도 돋보이는 특성이 enum 이다. 단순히 '열거형'이라고 부르기에는 아쉬울만큼 많은 응용이 가능한 풍부한 표현력를 가졌으면서도 깔끔한 문법을 자랑한다. 심지어 오래도록 자바 프로그래머들을 괴롭혀 왔던 완벽한 싱글톤 구현도 enum 이 등장하면서 매우 쉬워졌다.
 위 링크는 자바 enum 키워드를 예제와 함께 자세히 설명한 좋은 글이다.

마블 코믹스에서 가장 사교적인 슈퍼 영웅은 캡틴 아메리카 데이터분석

관련링크:
  Social characteristics of the Marvel Universe: http://arxiv.org/PS_cache/cond-mat/pdf/0202/0202174v1.pdf

 위 링크는 지금까지 발행된 약 13,000권의 마블 코믹스 잡지에 등장한 캐릭터 및 같은 잡지에 등장한 캐릭터 관계를 이용해서 네트워크 특성을 분석한 논문이다. 보통 논문을 보다 보면 정말 유용한 자료도 있는 반면 대체 이런 건 왜 연구한 건가 싶은 것도 있는데 이렇게 쓸모 없어 보이는 것들은 다시 재미조차 없는 논문과 그래도 비교적 재밌게 읽을 수 있는 논문으로 나눌 수 있다. 그리고 위 논문은 후자(쓸모없지만 재미는 있는)에 해당한다.
 논문의 저자들 역시 위 논문을 쓴 이유를 http://bioinfo.uib.es/~joemiro/marvel/graph.html 에 장황하게 적어놨는데, 역시나 특별히 어떤 학술적 성과를 위해서라기 보다는 일반인에게 친숙한 마블 코믹스 캐릭터를 소재로 삼음으로써 네트워크 분석 기법에 대한 친숙함을 느끼게 하는 것에 그 목적이 있다.

 어쨌든 위 논문은 마블 코믹스 캐릭터의 사회 네트워크를 분석해서 여러 가지 지표들, degree 분포나 클러스터링 계수, 노드 간 거리 등등의 값을 소개하고 있다. 결론적으로 마블 코믹스 사회 네트워크도 실 세계에서의 사회 네트워크와 유사한 특성을 갖고 있더라 인데 전반적으로 네트워크 분석에 대한 기본적인 사항들을 접하기에 괜찮은 논문인 것 같다.

 참고로 마크 뉴먼이 쓴 'The mathematics of networks(http://www-personal.umich.edu/~mejn/papers/palgrave.pdf)' 는 위 논문보다 내용은 다소 딱딱하지만 네트워크 분석에서 사용되는 주요 지표 및 개념을 핵심만 잘 정리한 논문이다.

 끝으로 위 논문 중간에 보면 캐릭터들의 degree에 대해 언급하고 있는데 제목에서 적었듯이 가장 많은 캐릭터들과 함께 출현하는 캐릭터는 '캡틴 아메리카' 이다. ;)



1 2 3 4 5 6 7 8 9 10 다음