Share           Pin It

지난 주에 외신의 관심을 받은 논문이 arxiv.org에 올라왔습니다. 페이스북의 데이터사이언스팀과 코넬대학이 공동으로 수행해서 제출한 'Romantic Partnerships and the Dispersion of Social Ties: A Network Analysis of Relationship Status on Facebook'이라는 제목의 논문입니다. 제목과 같이 페이스북의 소셜그래프를 분석해서 많은 친구들 중에서 연인 또는 부부 관계인 연결을 테스트 데이터 상에서는 60%의 정확도로 판별이 가능하다는 논문입니다. 논문/연구에 사용된 몇 가지 가정들이 옳으냐 그러냐에 따라서 결과를 달리 해석할 수 있지만, 일단 그 가정들이 일반성을 띈다고 가정하겠습니다.

두 사람이 친구일 개연성은 그들이 공유하는 mutual friends의 수로 (합리적) 추론이 가능한데, 그들이 연인/부부 관계임을 그 숫자만으로 판별하기 어렵다고 합니다. (참고로, 공동친구의 수는 embeddedness라는 measure로 측정됩니다.) Embeddedness로 연인관계를 예측하면 정확도가 2~30%정도에 지나지 않는다고 합니다. 그런데 두 사람이 공유하는 친구의 다양성 -- dispersion이라는 measure를 만듬 -- 을 확인하면 그들이 연인관계인지 단순 친구인지를 판별할 정확도가 60%정도까지 된다고 합니다. 이미 연인/부부 관계인 사람들을 대상으로 판단력을 평가했기 때문에 60%정도의 정확도를 얻었지, 이 측정치를 가지고 미래의 연인/부부관계로의 발전가능성을 예측한다면 이보다는 낮을 것으로 예상됩니다.

사람들이 소셜네트워크에 대해서 작은 오해를 하고 있습니다. 자신의 소셜그래프를 단순히 자신을 허브로 둔 하나의 묶음 (불가사리와 같은 형태를 가진)으로 생각한다는 점입니다. 즉, 자신을 중심으로 모든 사람들이 연결된 방사형을 생각합니다. 그런데 실제 소셜그래프를 자신을 포함한 여러 clique 또는 그룹 -- 구글+에서 circle로 표현하는 -- 으로 구성되어있습니다. 그리고 개별 클릭은 almost fully connected network를 형성합니다. 즉, 학교친구 (초/중/고/대학생 친구들) 그룹, 회사 (현재 직장, 이전 직장들) 그룹, 동호회나 교회와 같은 각종 모임들의 그룹들이 생깁니다. 이런 다양한 그룹들의 특징은 '내'가 포함되어있다는 점이고, 개별 그룹에 속하는 멤버들은 대부분 서로 알고 있는 형태를 가지게 됩니다.

이런 소셜그래프의 모습을 생각해본다면 위의 연구결과가 쉽게 이해가 됩니다. 즉, 다양한 그룹에 공통적으로 겹친다면 그만큼 다양한 장소와 시간에서 서로 만날 기회가 많다는 것이 되고, 그렇게 자주 만나면서 서로에 대해서 더 잘 알아가고 결국에는 연인 관계로 발전할 수가 있습니다. 그런데, 학교동창생과 같이 특정 그룹에서만 일면식이 있는데 연인관계로 발전한 경우에도 시간이 지나면서 자연스레 다양한 그룹들을 공유하게 됩니다. 연애의 기간이 길어지면서 상대방의 친구들이나 동료들과 자주 접촉을 하게 되고, 그러면서 상대의 그룹/클릭들에 자연스레 연결이 만들어지는 것은 당연합니다. 그렇기에 단순히 연결의 수가 아닌, 연결의 다양성을 통해서 연인/부부관계를 대략 판별이 가능합니다. 역으로 embeddedness만으로 연인관계를 예측할 수 없었던 이유는 큰 clique에 속하는 두 사람은 자연스레 큰 embeddedness를 가지게 됩니다. 이는 그저 큰 그룹 내의 두 멤버의 관계를 나타낼 뿐, 이를 가지고 두 사람의 사적 친밀도를 보여줄 수 없습니다. 어쩌면, 큰 그룹의 속했기 때문에 (인터랙션을 고려하지 않는다면) 오히려 친밀도가 떨어질지도 모릅니다.

연인/부부관계로 발전한 후에는 연결의 다양성이 확보가 됩니다. 그러나 단순히 몇 번의 접촉을 통해서 연인으로 발전한 경우라면 아직 연결의 다양성이 만들어지기 전이라서 단순히 현재 연결의 다양성만으로 특정인의 연인이 누구다 또는 누가 될 것이다라고 판단하면 큰 오류를 발생시킬 수 있습니다. 그렇기에 소셜그래프에서의 연결 다양성은 현재 상태의 판단에는 나름 성과를 보이나, 미래 예측의 지표로는 정확도가 많이 떨어질 듯합니다. (상관관계와 인과관계의 차이)

이 논문을 읽으면서 그러면 개별 연결의 질을 어떻게 정할 수 있을까?에 대한 고민이 생깁니다. 앞서 제시되었던 embeddedness와 같이 연결의 수가 연결의 질과 동조하겠지만, 실제 연결에서는 그것 이상의 다른 변수/조건이 있을 듯합니다. 그리고 논문에서 사용된 dispersion 지표도 연인/부부관계를 판단하는 방편으로 연결의 질을 계량화해줄 수 있지만, 다른 형태의 연결의 질을 나타내지는 않습니다. 연결의 질에 대한 일반화가 가능할까요?

페이스북 페이지: https://www.facebook.com/unexperienced

댓글을 달아 주세요

Share           Pin It
 제가 처음 '소셜검색 My Drawing of Social Search'라는 글을 적은지도 벌써 3개월이 지났습니다. 1편에서는 현재 여러 분야에서 말하는 소셜검색의 정의를 다루었고, 2편에서는 블로고스피어와 다음뷰를 중심으로 소셜그래프의 관계에 대한 제 생각을 정리했습니다. 2편에서 첨부한 그림을 통해서 모든 것을 파악할 수가 있지만, 제가 생각하기에 소셜 블로고스피어는 블로깅을 하는 글작성자, 작성된 글을 읽고 평가를 하는 글추천자, 그리고 양질의 글들을 소비하는 글소비자로 구성됩니다. 작성자, 추천자, 소비자를 별도의 객체로 볼 이유도 없고, 또 굳이 이들 사이의 (일반) 소셜릴레이션이 존재한다고 말할 이유도 없습니다. 지난 2편의 그림을 바탕으로, 제가 생각하는 소셜검색에서의 소셜랭킹모델에 대해서 이번 포스팅에서 다루도록 하겠습니다. 제가 말하는 것이 완벽한 소셜검색/랭킹모델은 아니고, 원시적인 형태임을 밝힙니다. 지난 3개월동안 부지런히 노력을 해서, 해당 모델을 구현하고 시연해봤더라면 지금쯤 새로운 서비스를 오픈했거나 재미있는 논문을 출판했을텐데, 저의 게으름이 아직 아이디어를 아이디어 수준에 머물도록 내버려두었습니다.

 검색에서 (검색)랭킹이 사용자가 입력한 키워드/검색어와 해당 키워드를 포함한 문서와의 연관성으로 측정되듯이, 기본적으로 소셜검색랭킹도 검색어와 문서와의 연관성으로 표현될 수 있습니다. 다만, 아무게의 글을 찾는 것이 아니라, 내가 알고 있는 친구나 전문가의 글을 찾는다는 점에서 일반 검색랭킹과는 차이점을 줍니다. 그리고, 일반 소셜그래프에서의 소셜검색이 아니라, 다음뷰/메타블로그를 중심으로한 블로고스피어에서의 소셜검색랭킹을 다룬다는 점에서도 (일반)소셜검색랭킹과도 차별점을 둡니다. 제가 구상하는 구체적인 소셜검색랭킹모델을 설명하기에 앞서, 간단한 노테이션 notation을 먼저 정리하겠습니다.

 객체 Object
  • q: 사용자가 입력한 검색어 query (또는 keyword)
  • d: 주어진 검색어 q를 포함한 문서 document (본 포스팅에는 나오지 않을 것이지만, D는 이런 d들의 합을 뜻하겠죠.)
  • w: 2편의 그림에서 글작성자 writer
  • c: 2편의 그림에서 글소비자 consumer
  • r: 2편의 그림에서 글추천자 recommender
 함수 Method/Function
  • Rnk(d, q): 랭킹함수 - 사용자가 입력한 검색어 q와 검색엔진이 찾은 문서 d와의 최종 랭킹점수
  • M(d, q): 매칭점수 - 사용자가 입력한 검색어 q와 문서 d 사이의 매칭정도, 보통 relevance라고 말함
  • R(d): 검색된 문서 d의 최신점수, recency
  • E(w, q): 사용자가 입력한 검색어 q에 대한 글작성자 w의 전문성, expertise
  • I(w, c): 사용자/글소비자 s와 글작성자 w와의 친밀도, intimacy
  • P(d | r): 글추천자 r의 authority에 바탕을 둔 글의 인기도, popularity (e.g., 추천회수)
  • A(w): 글작성자 w의 인기도/권위도, authority
 이상의 노테이션만을도 제가 구상했던 원시적인 소셜검색랭킹모델이 완성이 됩니다. 최종적으로 소셜랭킹은

더보기

입니다. 소셜랭킹모델에 사용된 함수 f는 경우에 따라서 곱하기 (*)가 될 수도 있고, 더하기 (+)가 될 수도 있고, 아니면 더 복합한 수식/로직으로 중무장할 수도 있습니다.

 개별 함수를 다시 설명하면, 매칭점수 M(d, q)는 Information Retrieval에서 사용하던 단순 블리언 boolean 매칭을 사용하거나, 조금더 복잡한 Okapi BM25 (BM의 경우, 파라메터설정에 따라서 BM27, .. 등의 다양한 이름을 가지지만, BM25가 가장 일반적인 모델임)을 그대로 사용하면 됩니다. 최신점수 R(d)의 경우, 특수한 경우가 아니면, 가장 최근에 업데이트된 최신문서가 높은 랭킹점수를 갖도록 하는 것입니다. 함수정의에 따라서 연속함수나 계단식함수를 정의할 수 있고, 최신성의 기준도 많은 실험을 통해서 얻어야 합니다. 매칭점수와 최신점수는 일반 검색랭킹의 그것들과 동일합니다. 현재 구상중인 소셜랭킹의 차별점은 이후에 나오는 전문성, 친밀도, 인기도, 및 권위도에 있습니다. 간단히 설명하자면, 글쓴이의 전문성은 특정 검색어 q에 반응하는 문서들 D 중에서, 검색어 q에 전문성을 가진 글쓴이에 의해서 작성된 문서 d가 가장 높은 랭킹을 받도록 하는 것입니다. 글쓴이의 전문성은 이제까지 블로깅한 모든 내용을 바탕으로 평소에 자주 사용하던 단어/주제 등을 미리 학습시켜둬야 합니다. 글쓴이와 검색자의 친밀도가 소셜검색의 가장 차별점입니다. 단순히 친구 (또는 검색자가 지정한 전문가)가 작성한 글중에서 q에 반응하는 문서 d만을 보여주는 것입니다. 단순히 검색범위를 제한한다는 의미로 보시면 됩니다. 그렇지만, 소셜그래프상에서 친구의 숫자가 적은 경우, '친구의 친구'와 같이 확장된 소셜그래프에서 문서를 검색해주게 됩니다. 개념적으로 검색범위를 축소시키기 때문에 일반 검색보다 더 쉽게 느껴질 수 있지만, 역으로 검색범위가 좁아지기 때문에 기술적으로 더 많은 어려움을 가지게 됩니다. 친밀도에 대한 부분은 대부분의 소셜검색/서비스와 관련된 문서들이 다루고 있는 부분이니 자세한 내용은 생략하겠습니다. 다섯번째로, 글의 인기도의 경우는 보통 다음뷰나 디그에서 보여주는 추천회수로 보시면 됩니다. 그런데, 모든 추천이 동일한 가중치를 받는 것이 아닙니다. 지금 다음뷰에서 오픈에디터라는 제도를 활용하듯이, 평소에 양질의 추천을 하는 이들의 추천에 더 높은 점수를 부여하고, 또는 스팸/어뷰징 추천자의 추천은 점수를 제하거나 감산하는 것도 방법에 포함될 수 있습니다. 그리고, 소셜의 개념을 더 확장해서 '친구/지인'이 추천한 글에 대해서는 더 높은 인기도를 받도록 조정을 할 수도 있습니다. 마지막으로, 글작성자의 권위도의 경우는 전문성과 개념상 중복되는 부분도 있지만, 전문성의 경우 검색어에 종속 (query-dependent)된 개념이지만, 권위도의 경우 검색어 비종속 개념입니다. 예를 들어, 트위터에서 이찬진님, 이외수님, 박경철님 등과 같이 이미 특정 분야에 권위를 가진 분들이 작성한 글을, 일반인들이 작성한 것보다 먼저 보여준다는 개념입니다. 이런 글쓴이의 권위는 쉽게는 소셜그래프의 인링크 개수로 점수화할 수도 있고, 아니면 다음뷰/디그에서 글을 발행했을 때 얻을 수 있는 예상추천수 등으로 권위도를 측정할 수가 있습니다.

 제가 원시적인 소셜검색랭킹모델을 장황하게 설명했지만, 이런 수식적 모델보다 더 중요한 것이 있습니다. 바로 Query Intent 또는 User Intent라고 불리는 사용자/검색어 의도입니다. 현재 소셜검색이 주목을 받고 있는 것이, 단순히 친구의 글을 보여주겠다는 것이 아니라 사용자의 의도에 더 부합한 글을 보여주겠다는 것입니다. 그렇기에, 아무리 좋은 소셜검색모델을 가진다고 하더라도 검색어/사용자의도를 제대로 파악을 하지 못한다면 제대로된 소셜검색결과를 제공해줄 수가 없습니다. 그리고, 검색어의 의도에 맞도록 위에서 제시된 여러 점수체계들이 유기적이고 동적으로 설정되어야 합니다. ... (오늘은 여기까지)

댓글을 달아 주세요

Share           Pin It
 올해도 여전히 '소셜'이 화두다. 저같이 IT업계에 몸을 담은 테키들뿐만 아니라, 일반인들에게도 소셜은 특별하다. 인터넷 자이언트 구글조차도 제대로 엮어내지 못하는 (현재까지 대부분 실패한) 분야가 소셜인데, 하찮아보이던 자그마한 벤쳐기업들인 페이스북이나 트위터는 나름 성공했던 분야가 소셜이다. 그런데 소셜이란 어느날 갑자기 하늘에서 떨어진 것이 아니다. 사람을 뜻하는 한자어 '인간 人間'도 뜻을 풀어보면 '사람 사이' 즉 소셜이다. 수렵 또는 목축생활에서 벗어나 경작을 하면서부터 인간은 모여서 마을을 만들었다. 물론, 그전의 수렵 및 목축 생활에서도 서로를 보호하기 위해서 가족 단위로 군집을 이루었다. 아니, 사람의 탄생 자체가 소셜이 아닌가? 남여 두 사람이 만나야, 새로운 생명체가 탄생한다. 혼자가 불완전해서 두명이 모이고 또 새끼를 치고 그렇게 가계를 형성하고, 그러면서 이웃 가계와 경쟁도하고 협력도하면서 마을을 형성하고, 또 뭉치고 흩어지고는 반복하면서 인류의 역사에서 소셜/사회는 뗄레야뗄 수가 없는 개념이었다. (종교 얘기는 아니지만) 성경에서도 태초의 하나님이, 유일신이지만, '우리'라고 불렀다. 더 깊은 개념으로 삼위일체라는 용어를 사용하지만,... 그리고 남자 (아담)가 외로워보여서 여자 (하와/이브)를 만들었다고 한다. 그리고 그네들이 아이를 낳았다고 한다. 사람에서 시작하지 않고, 신에서 시작해서 소셜은 부정할 수 없는 개념이다. 그런데, 이런 자연스러운 개념이 기술을 만나면서 새롭게 부각되고 있다. 2000년대 초의 원시적인 싸이월드나 마이스페이스, 어쩌면 90년대 후반의 한메일과 카페, 들이 등장하더니, 10년이 지난 지금에는 페이스북이 자이언트 구글을 제치고 가장 많은 PV를 만들어내는 인터넷 대표 서비스가 되었다. 여기까지 소셜에 대한 얘기다. 그렇다. 태초에는 아니었지만, 인터넷에는 구글이 있다. 구글이 무엇이냐? 구글링 googling이 검색하다라는 의미로 쓰인다. 구글은 검색이다. 구글은 인터넷의 지배자다. 그 지배자가 하룻강아지인 페이스북과 트위터를 만났다. 기술적으로, 검색이 소셜을 만났다. 그래서 태어나는 것이 '소셜검색'이다. 서론이 길었지만, 오늘은 이 소셜검색에 대해서 얘기해보고 싶다. 

 소셜을 정의하는 방법도 여러가지고, 검색을 정의하는 방법도 여러가지다. 그렇기에 소셜검색을 정의하는 방법은 더 다양하다. 모든 이들의 생각을 나열할 수도 없고, 하나로 묶을 수도 없으니 생각나는 대표적인 정의 또는 관점만 살펴보자. 그리고, 위키피디아에서 social search를 찾아보면 현재 나름 소셜검색을 지원해주는 수많은 기업들의 이름을 볼 수가 있다.
  • 소셜네트워크검색: 가장 쉬운 개념이다. 소위 말하는 마이스페이스, 페이스북, 또는 트위터 등의 소셜네트워크 서비스 내에 존재하는 다양한 정보나 사람을 검색하는 것을 소셜검색이라고 부르는 이들이 있다. 가장 직관적인 관점이다. 이걸 굳이 더 자세하게 설명해서 뭣하리요...
  • 소셜그래프(서클)검색: 이건 좀 더 확장되었으면서, 가장 소셜검색에 가까운 개념이다. 소셜그래프 또는 소셜서클은 나와 연결된 사람들 (또는 그들의 글)을 뜻한다. 그렇다. 나와 연결된 이들이나 그들의 생각/글을 검색하는 것이 소셜검색이다. 그래서, 나와 얼마나 가까우냐가 중요한 요소로 작용한다. 단순히 트위터의 팔로잉 관계로만 있다고 소셜그래프에 넣을 것인가? 아니면 같은 학교를 졸업했는 사람을 소셜그래프에 넣을 것인가? 등과 같은 짜증나게 많은 요인들을 또 고민해야 한다. 어쨌던 간단히 많은 연결이 있으면 가깝다 (intimacy 친밀도)고 말할 수가 있다. 트위터의 팔로잉 관계면서 페이스북의 친구라면 엄청 가까운 걸로 착각할 수도 있다. 여기에 같은 지역이나 나이 또는 학교 등을 포함시키면... 에휴, 더 나아가 이메일 송수신기록이나 채팅기록 등까지 포함시키면 더욱 조밀한 소셜그래프를 만들 수가 있다. ... 그러고 보니, 소셜서클은 사람보다는 그들의 글에 더 맞는 개념인 것같다. (이건 그냥 개인 추측이다.) 지루한 설명을 했지만 소셜그래프/서클검색은 소셜네트워크검색보다 조금 더 복잡하다. SN검색이 하나의 네트워크만 고려하면 되지만, 이것은 여러 개의 네트워크들의 중첩효과까지도 고려해야 한다. ...
  • 소셜필터링 또는 소셜추천: 간혹 소셜검색을 이렇게 사용하는 이들도 있다. 기본적으로 협업필터링 collaborative filtering (CF)와 비슷한 개념이다. 단지 CF는 사람사이의 관계에 대한 고려는 없이 전체 군집에서 비슷한 성향의 사람군이나 제품군을 묶어서 추천해주는 것이지만, SF에서는 CF의 기본 필터링/추천방법론에 소셜이라는 사람사이의 관계를 넣었다는 것이 특징적이다. 즉, 분야의 전문가나 많은 군중이 추천해주는 것보다는 내 친구가 추천해주는 것을 더 믿는다라는 기본 가정에서 시작한다. 그래서, 종종 이렇게 말한다. 오늘날 (소셜넷트워킹에서) 신뢰 Trust는 권위 Authority보다는 친밀도 Intimacy에 있다. 사실, 요즘 책의 서평을 보면 소위 전문가들의 추천사는 못 믿겠다. 입에 발린 추천이 늘려있다. 그렇기에 내 친구가 추천해주는 책을 읽게 된다. (소셜필털링인 아닌) 친구의 추천은 또 다른 장점이 있다. 그 친구는 나의 context 정보를 알고 있다는 거다. 나의 학력수준이나 평소에 관심사를 알고 있기에 친구는 내게 더 적합한 책이나 서비스, 제품을 추천해줄 것이다. (신뢰의 바탕 위에) 역으로, 친구의 추천을 받았을 때도, 내가 친구의 컨텍스트를 이미 알고 있기에 그 친구가 왜 이런 제품을 추천해줬는지를 짐작할 수 있다. 소셜필터링/추천이 더욱 고도화되고 앞서 말한 소셜그래프가 더욱 명확히 되면, 이런 컨텍스트 정보도 지식의 형태로 사용이 가능해질 것이다. 그러면, 사람과 사람의 관계에서 추천을 해주듯이 소셜필터링/추천으로 소개받은 제품이나 글들이 더욱 신뢰를 가질 수 있고, 더욱 보고 싶어질 것이다. ... 여담으로, 트위터에서 나의 평소 트윗기록을 본 사람들은 내가 올린 단축URL들이 보통 영어로된 IT관련 소식이라는 걸 짐작하고 그냥 무시하거나 한번쯤 클릭해서 보거나 등의 행동을 일으킬 것이다. 이게 소셜추천이면서 컨텍스트추천의 일례다. 너무 러프하고 비직관적인 예를 들어서 미안합니다.
  • (Updated) 크라우드서치: 소셜검색의 중요한 측면 중에 하나가 크라우드검색 (Crowd search) 또는 Search by Social/Crowd를 들 수 있습니다. 앞에 제시된 소셜검색들은 소셜그래프 상에 있는 데이터/정보를 검색하는 것이지만, 크라우드서치는 소셜그래프에 의한 검색입니다. 즉, 트위터나 페이스북에 궁금한 점을 질문하면, 자신의 소셜 그래프 내에 속한 사람들이 답변을 달아주는 것입니다. 네이버 지식인지 모든 이에게 질문을 하고 답변을 받는 것에 반해서, 크라우드서치는 자신과 친분 및 관계가 있는 이들에게만 질문을 하고 답변을 받는, 형태측면에서는 조금 클로즈드 closed 질의입니다.
  • 그리고,... 또 당신이 생각하는 그 모든 소셜검색도 소셜검색이다.
  • 아, 그리고 중요한 것... 사람추천... Aardvark와 같이 정보를 보여주는 것이 아니라, 전문가나 친구를 보여주는 경우도 존재한다. Aardvark에 큰 기대를 걸었는데, 스스로 구글의 품에 들어간 것이 아직까지도 아쉽다. 구글의 품에서 더 큰 성공을 거둘 것을 기대하지만, 구글 검색 패러다임을 바꾸어줄 Aardvark 검색 패러다임을 기대했는데... 애도

 진짜 본론에 들어가기 전에 서론과 본론의 서론이 너무 길어졌다. 벌써 힘이 빠져서 제대로된 본론을 적지 못하고 그냥 간략히 결론으로 가자.

 대략적으로 제가 구상중인 소셜검색은... 친구관계와 전문성이 동시에 만족시켜주는 걸 생각하고 있습니다. 똑부러지게 보여드릴 단계가 아니라서 구체적으로 말씀드리진 못하지만,... 그냥 검색의 랭킹의 관점에서 다음의 요소들이 고려되어야 합니다.
  • (당연히) 검색어와의 관련성 (전통적인 검색엔진)
  • 글작성자의 전문성 (이 부분이 제가 특히 주목하는 부분인데, 자세한 것은 생략, Aardvark가 일부 구현)
  • 글작성자와의 친밀도 (전통적인 소셜검색엔진)
  • 최신성 (전통 검색엔진에서도 중시를 하는 부분이지만, 소셜검색에서는 더욱 중요합니다.)
죄송합니다. 진짜 본론은 다음에 기회를 만들어서 작성하겠습니다.

댓글을 달아 주세요

  1. Favicon of http://dreamreader.tistory.com BlogIcon dreamreader 2010.03.07 03:39 신고 Address Modify/Delete Reply

    리플 남겨주셔서 방문해 봤습니다. ^^
    쓰신 블로그 글에서 열정이 느껴져서 대단하다 생각되네요. ^^
    아직 트위터 등 소셜 쪽은 하지 않고 있지만
    소셜 쪽에는 아무래도 사생활적인 메시지가 많을 것 같아서
    개인적으로는 소셜 검색은 그리 찬성하지는 않는 쪽입니다. ㅎ