<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>알아가는 즐거움</title>
	<atom:link href="http://www.4four.us/feed" rel="self" type="application/rss+xml" />
	<link>http://www.4four.us</link>
	<description>책, 인터넷, 검색</description>
	<lastBuildDate>Sat, 28 Apr 2012 15:08:12 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Mining of Massive Datasets 4장</title>
		<link>http://www.4four.us/article/2012/04/mining-of-massive-datasets-chapter-04</link>
		<comments>http://www.4four.us/article/2012/04/mining-of-massive-datasets-chapter-04#comments</comments>
		<pubDate>Thu, 26 Apr 2012 10:31:45 +0000</pubDate>
		<dc:creator>SL</dc:creator>
				<category><![CDATA[note]]></category>
		<category><![CDATA[algorithm]]></category>
		<category><![CDATA[approximation]]></category>
		<category><![CDATA[hash]]></category>
		<category><![CDATA[information-retrieval]]></category>

		<guid isPermaLink="false">http://www.4four.us/?p=4443</guid>
		<description><![CDATA[Anand Rajaraman과 스탠포드 대학교의 Jeff Ullman 교수1가 공저한 Mining of Massive Datasets 책을 사려고 하면 7만 원이 넘지만, PDF 파일은 여기에서 무료로 다운받을 수 있다. 이 책 4장의 제목은 Mining Data Streams이다. 밀물처럼 쓸려오는 거대한 데이터의 흐름을 효율적으로 처리하는 기법들을 소개하고 있다. 이 글에서는 대충 어떤 문제들을 해결하려고 하는지만 정리해보자. 바탕에 깔린 전략은 해쉬(Hash) 함수를 [...]]]></description>
			<content:encoded><![CDATA[<div class="alignright">
<div class="ttbReview">
<table>
<tbody>
<tr>
<td><a href="http://www.aladin.co.kr/shop/wproduct.aspx?ISBN=1107015359&amp;ttbkey=ttblseuny1334003&amp;COPYPaper=1"><img src="http://image.aladin.co.kr/product/1295/24/coversum/1107015359_1.jpg" alt="" border="0"/></a></td>
</tr>
</tbody>
</table>
</div>
</div>
<p><a href="http://twitter.com/#!/anand_raj" target=_blank>Anand Rajaraman</a>과 스탠포드 대학교의 <a href="http://infolab.stanford.edu/~ullman/" target=_blank>Jeff Ullman 교수</a><sup><a href="http://www.4four.us/article/2012/04/mining-of-massive-datasets-chapter-04#footnote_0_4443" id="identifier_0_4443" class="footnote-link footnote-identifier-link" title="맞다, Advising students for success를 쓴 그 Ullman 교수다.">1</a></sup>가 공저한 Mining of Massive Datasets 책을 사려고 하면 7만 원이 넘지만, PDF 파일은 <a href="http://infolab.stanford.edu/~ullman/mmds.html" target=_blank>여기</a>에서 무료로 다운받을 수 있다. 이 책 4장의 제목은 Mining Data Streams이다. 밀물처럼 쓸려오는 거대한 데이터의 흐름을 효율적으로 처리하는 기법들을 소개하고 있다. 이 글에서는 대충 어떤 문제들을 해결하려고 하는지만 정리해보자. 바탕에 깔린 전략은 해쉬(Hash) 함수를 이용해서 근삿값을 찾겠다는(Approximate) 것이다. 스트림 데이터의 예로 검색엔진에 유입되는 쿼리를 생각해보자.<span id="more-4443"></span><br />
<font face="courier"><br />
t1  t2  t3  t4  t5  t6  t7  &#8230;  tn<br />
q1  q2  q1  q3  q2  q2  q3  &#8230;  qn<br />
</font><br />
t1 ~ tn은 각 쿼리가 들어온 타임스탬프이고, 그 아래의 q는 그 타이밍에 들어온 쿼리이다. 그리고 각 쿼리의 유입수를 c로 표기한다. 위의 예에서, 유니크한 쿼리의 개수는 3개이며, q1과 q3는 각각 2번, q2는 3번 검색되었으므로, c1은 2, c2는 3, c3은 1이다.</p>
<h3>1. Sampling</h3>
<p>첫 번째 문제는 샘플링이다. 정말로 엄청나게 많은 데이터가 몰려와서 전부 저장하는 게 불가능하다면, 어쩔 수 없이 일부만 샘플링해서 처리 및 저장을 해야 한다. 그때 단순히 랜덤으로 샘플을 고르기보다는 특정한 키(Key)를 정해서 그 키에 해쉬함수를 적용한 결과에 따라 샘플링을 하는 게 좋다. 쿼리 스트림 예에서라면, 타임스탬프 t보다는 쿼리 q를 키로 쓰는 게 낫고, 또 그보다 나은 키가 있다.</p>
<h3>2. Filtering</h3>
<p>두 번째 문제는 필터링이다. 만약 유입된 쿼리 중에서, 내가 미리 정해놓은 셋에 속하는 것만 남기고 싶다면 어떻게 해야 할까? 참고로, 미리 찜해놓은 쿼리의 개수는 10억 개 정도 된다. 이럴 때 쓸 만한 방법으로 Bloom Filtering을 소개하고 있다. 해쉬값을 계산해서 비트에 저장하는 방법이다.</p>
<h3>3. Counting Distinct Elements</h3>
<p>타임스탬프 t1부터 t100000000까지, 즉 1억 개의 유입 쿼리 중에서 유니크한 쿼리의 개수를 알고 싶다면? 정확한 수치를 계산하려면, 모든 쿼리를 다 저장해야 하므로 공간복잡도가 매우 커진다. 그러나 대략적인 추정으로도 충분하다면 Flajolet-Martin 알고리즘을 이용할 수 있다. 이 또한 해쉬함수를 활용해서 근사하는 방식이다.</p>
<h3>4. Estimating Moments</h3>
<p>이 책에서는 Second Moment를 c1^2 + c2^2 + &#8230; + cn^2로 정의했고, 이 값은 쿼리의 검색횟수 분포가 얼마나 쏠렸있는지를 나타낸다. 각 쿼리의 유입수를 모두 알아야 하기 때문에 Second Moment 계산은 비용이 많이 드는 작업이다. 이럴 땐, 쿼리 일부의 유입수만 가지고 전체의 모멘트를 추정하는 Alon-Matias-Szegedy 알고리즘을 고려해볼 만하다.</p>
<h3>5. Counting in a Window</h3>
<p>지금까지는 각 타임스탬프마다 유입 쿼리가 찍힌 스트림을 가지고 얘기했다. 이제 예를 바꿔보자. 쿼리별로 스트림이 따로 있으며, 각 타임스탬프에는 해당 시점의 쿼리가 바로 그 쿼리인지 여부가 1 또는 0으로 표기되어 있다. 저~ 위의 예에서, q2의 스트림은 (0, 1, 0, 0, 1, 1, 0)으로 표현될 것이다. (좀더 일반화하면 타임스탬프마다 그 쿼리가 유입된 횟수가 적혀있다고 해도 된다. 단위 시간 당 유입량) 그랬을 때, 마지막 k개의 타임스탬프 내에서 1이 몇 개인지 세는 문제다. 가령, 어제 하루 동안 이 쿼리가 들어온 횟수는? 지난 일주일은? 최근 15일은? 이렇게 임의의 k를 얘기했을 때 거의 바로 대답할 수 있어야 한다. 이 문제는 지금까지와는 달리 좀더 복잡한 자료구조를 도입해야 하며, 이를 위해 Datar-Gionis-Indyk-Motwani, 줄여서 DGIM 알고리즘이 제안되었다.</p>
<h3>6. Decaying Windows</h3>
<p>마지막이다. 5번에서는 k의 값을 지정했었는데, 그러면 최근 k개 데이터는 똑같은 가중치로 반영되고, k+1번째 데이터부터는 그냥 버려진다. 이보다 조금 더 부드럽게(smooth) 셀 수는 없을까? 물론, 가능하다. 아래 그림에서 직사각형의 Sliding Window 대신 곡선 함수를 이용해서 오래된 데이터의 가중치는 낮추면 된다. 계산 효율이 좋을 뿐 아니라, 최근 데이터가 없는 지나치게 낡은 데이터를 걸러내기도 용이하다는 게 장점이다.<img src="http://www.4four.us/wordpress/wp-content/uploads/2012/04/exponentially_decaying_window.png" alt="" title="Exponentially Decaying Window" width="428" height="150" class="aligncenter size-full wp-image-4448" /></p>
<p>이상, Mining of Massive Datasets 4장에서 해결하려고 하는 문제들을 정리해봤다. 구체적인 해답은 책에 잘 나와있다. <!-- WSA: rules for context 'example-post-bottom' did not apply --></p>
<div id="crp_related"><h3>자동으로 찾은 관련글</h3><ul><li><a href="http://www.4four.us/article/2009/03/advising-students-for-success-2" rel="bookmark"></a><a href="http://www.4four.us/article/2009/03/advising-students-for-success-2" rel="bookmark" class="crp_title">Advising Students for Success</a></li><li><a href="http://www.4four.us/article/2010/08/weka-explorer" rel="bookmark"></a><a href="http://www.4four.us/article/2010/08/weka-explorer" rel="bookmark" class="crp_title">Weka: Explorer와의 첫만남</a></li><li><a href="http://www.4four.us/article/2007/12/programming-collective-intelligence" rel="bookmark"></a><a href="http://www.4four.us/article/2007/12/programming-collective-intelligence" rel="bookmark" class="crp_title">Programming Collective Intelligence: 첫인상</a></li><li><a href="http://www.4four.us/article/2010/09/japanese-novel-night-walk" rel="bookmark"></a><a href="http://www.4four.us/article/2010/09/japanese-novel-night-walk" rel="bookmark" class="crp_title">밤은 짧아 걸어 아가씨야: 한 줄 감상</a></li></ul></div><ol class="footnotes"><li id="footnote_0_4443" class="footnote">맞다, <a href="http://www.4four.us/article/2009/03/advising-students-for-success-2" target=_blank>Advising students for success</a>를 쓴 그 Ullman 교수다.</li></ol><img src="http://www.4four.us/wordpress/?ak_action=api_record_view&id=4443&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.4four.us/article/2012/04/mining-of-massive-datasets-chapter-04/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>허위 리뷰를 찾는 기술의 발전</title>
		<link>http://www.4four.us/article/2012/04/detecting-opinion-spam</link>
		<comments>http://www.4four.us/article/2012/04/detecting-opinion-spam#comments</comments>
		<pubDate>Thu, 19 Apr 2012 13:18:42 +0000</pubDate>
		<dc:creator>SL</dc:creator>
				<category><![CDATA[paper]]></category>
		<category><![CDATA[classification]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[lie-detection]]></category>
		<category><![CDATA[opinion-spam]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[spam]]></category>

		<guid isPermaLink="false">http://www.4four.us/?p=4420</guid>
		<description><![CDATA[얼마 전에 허위로 작성된 리뷰를 찾으려는 연구를 소개했다. 자연어 처리 기법으로 리뷰 내용을 분석해서 상상으로 꾸며진 글을 분류하는 것이었는데, 흥미가 생겨서 관련 연구를 더 찾아봤다. 역시나 최근 몇 년 동안 꾸준하게 연구해온 사람들이 있었고, 또 그 방법론에서도 눈에 띄는 흐름이 있었다. 2008년 WSDM에 나온 Opinion Spam and Analysis를 보면, 리뷰 문서 단위로 보면서 각각이 스팸인지 [...]]]></description>
			<content:encoded><![CDATA[<p>얼마 전에 <a href="http://www.4four.us/article/2012/04/spam-deceptive-opinion-spamdetection" target=_blank>허위로 작성된 리뷰를 찾으려는 연구</a>를 소개했다. 자연어 처리 기법으로 리뷰 내용을 분석해서 상상으로 꾸며진 글을 분류하는 것이었는데, 흥미가 생겨서 관련 연구를 더 찾아봤다. 역시나 최근 몇 년 동안 꾸준하게 연구해온 사람들이 있었고, 또 그 방법론에서도 눈에 띄는 흐름이 있었다.</p>
<p>2008년 WSDM에 나온 Opinion Spam and Analysis를 보면, 리뷰 문서 단위로 보면서 각각이 스팸인지 아닌지 판정하려고 한다. 여기서 스팸이라 함은, 흔히 생각하는 그런 말도 안 되는 광고 문서가 아니라 특정 상품을 홍보하거나 혹은 깎아내릴 목적으로 작성된 가짜 리뷰(Fake Review) 혹은 의견 스팸(Opinion Spam)을 말한다.<sup><a href="http://www.4four.us/article/2012/04/detecting-opinion-spam#footnote_0_4420" id="identifier_0_4420" class="footnote-link footnote-identifier-link" title="저자들은 그런 것까지 포함하여 스팸 종류를 3가지로 구분하지만, 핵심은 이런 가짜 리뷰 찾기다.">1</a></sup> 여기서 궁금한 점은 세 가지다. (1) 리뷰가 허위로 작성된 스팸인지 아닌지 어떻게 알까? (2) 스팸 판정 모델을 만들려면 학습에 쓸 데이터가 있어야 하는데 그건 어떻게 구했을까? 마지막으로 (3) 어떤 특성(Feature)을 이용해서 분류했을까?<span id="more-4420"></span></p>
<p>논문에서 저자들이 하소연(?)하는 것처럼, 글 내용만 보고 그게 진실한 리뷰인지 홍보성인지 알기는 사람도 힘들다. 그러니까 스패머들이 그런 짓을 하는 거겠지만.. 아무튼 이 연구에서는 중복된 내용이 여기저기 많이 나오는 리뷰를 스팸이라고 가정했다. 제품을 칭찬하는 글을 하나 잘 써놓고 이 제품 저 제품에 재활용하는 경우가 많다는 점을 이용한 것이다. 그럼 그런 리뷰를 골라내려면 어떤 특징을 이용할 수 있을까? 논문에 나오는 것들 몇 개만 나열해보자.</p>
<ul>
<li>리뷰 길이, 리뷰에 대한 사람들의 평가</li>
<li>리뷰가 작성된 순서 (광고가 목적이라면, 첫리뷰로 올리는 게 효과적이므로)</li>
<li>긍정적/부정적 단어의 비율</li>
<li>리뷰 내용과 제품 소개 내용과의 유사도</li>
<li>리뷰 평점과 다른 사람들의 평점과의 일치도</li>
<li>리뷰어가 쓴 리뷰 중에서 제품의 첫리뷰였던 비율</li>
</ul>
<p>이때까지만 해도 -리뷰 작성자 정보를 사용하긴 하지만 일단은- 리뷰 자체의 특성을 이용해서 스팸을 찾으려고 노력하고 있었다. 하지만, 2년 후 CIKM에 발표된 Detecting Product Review Spammers using Rating Behaviors에서는 리뷰가 아닌 사용자 단위로 스패머를 찾으려고 하는 변화가 발견된다. 이 논문의 저자 목록에는 앞의 논문 Opinion Spam and Analysis를 쓴 Nitin Jindal과 Bing Liu가 포함되어 있다. 저자들에 따르면, 접근 방식을 바꾼 이유는 개별 리뷰보다는 작성자의 행위로부터 스팸 증거를 찾는 게 더 쉽기 때문이다. (A user centric approach is preferred over the review centric approach as gathering behavioral evidence of spammers is easier than that of spam reviews.)</p>
<p>그럼 사용자의 어떤 특징을 분석했을까? 우선, 동일한 제품에 비슷한 내용과 평점의 리뷰를 여러 번 올리는 행위를 찾아냈고, 그 사람이 올린 평점이 다른 사람들과 얼마나 비슷했는지를 살폈으며, 다른 리뷰가 없을 때 재빨리 리뷰를 올려서 사람들의 판단을 흐트려뜨리려 한 정도를 점수화했다. 요소 뿐만 아니라 평가 방법에서도 발전이 있었는데, 중복 문서를 스팸으로 간주했던 2년 전과 달리 이번에는 직접 학생들을 리쿠르팅해서 그들에게 스패머 여부를 판정해달라고 했다. 아래와 같은 프로그램을 만들어서 제공했다니 평가 작업이 조금은 수월했을 듯싶다.<br />
<a href="http://dl.acm.org/citation.cfm?id=1871437.1871557&amp;coll=DL&amp;dl=GUIDE&amp;CFID=78088411&amp;CFTOKEN=38934004"><img src="http://www.4four.us/wordpress/wp-content/uploads/2012/04/spammer_eval_software.png" alt="" title="Spammer Evaluation Software" width="552" height="329" class="aligncenter size-full wp-image-4423" /></a></p>
<p>문서 단위. 그리고 문서 작성자 단위. 그 다음은 뭘까? 그 답이 올해 월드와이드웹 컨퍼런스에 올라온 Spotting Fake Reviewer Groups in Consumer Reviews에 담겨 있다. 이 논문에서는 집단적으로 스팸 리뷰를 작성하는 그룹을 발견하려는 연구를 싣고 있으며, 역시나 Bing Liu의 이름이 저자 목록에 올라 있다.</p>
<p>대충 읽은 만큼 간단히 소개하면, 이 연구에서는 같은 제품에 동시에 리뷰를 남기는 사용자 집합들을 찾아낸 뒤, 이 그룹이 정말 스패머들인지 판단하는 방법을 제시했다. 예를 들면,</p>
<ul>
<li>특정 그룹의 사람들이 어떤 제품의 리뷰를 막 몰아서 올렸는가</li>
<li>그 그룹의 평가 점수가 그룹에 속하지 않은 사람들의 점수와 많이 다른가</li>
<li>그룹 사람들의 리뷰 내용이 비슷한가</li>
<li>그룹 사람들이 동시에 리뷰를 남긴 제품의 개수 (이 값이 크다는 것은, 그룹 멤버들의 취향이 비슷해서일 수도 있지만 리뷰 조작 사주를 받았기 때문일 수도 있다.)</li>
</ul>
<p>같은 특징을 분석해서 그룹의 스팸성을 판정한다.</p>
<p>게다가, 스패머 여부를 판정하기 위해 전문가를 초빙했다고 한다. Rediff Shopping과 eBay의 직원 8명을 데려다가 8주 동안 스팸 그룹 후보들을 보여주고 스팸이다/아니다/모르겠다(boardline)로 평가받았더니 그들간의 일치도가 완벽에 가까웠다고 자랑한다. (Fleiss’ multi-rater kappa 0.79)</p>
<p>일련의 연구들을 보면서 드는 생각을 적어보자면,</p>
<p>1. 스팸 리뷰를 찾기 위해서 문서 -> 사용자 -> 집단으로 범위를 넓혀서 분석하는 흐름이 흥미롭고, 평가 데이터를 고도화해가는 과정도 재미있다. 역시 어느날 하늘에서 뚝 떨어지는 연구는 없나 보다. 또, 자세히 살펴보면, Spotting Fake Reviewer Groups in Consumer Reviews가 나오기 1년 전에 같은 컨퍼런스에 예비 연구 격인 포스터가 Detecting Group Review Spam이라는 제목으로 제출되었다. Opinion Spam Analysis도 역시 1년 전 다른 컨퍼런스의 포스터 Review Spam Detection으로 예고되었다. 예전에 포스터 하나 꼴랑 내고 풀페이퍼에는 결국 실패한 나로서는 이들의 뚝심이 조금 부럽다.</p>
<p>2. 마지막 논문의 그룹 분석 방법은 리뷰 스패머 찾는 용도 외에도 여기저기 써먹을 데가 많아 보인다. 무엇이 되었건 특정한 아이템을 매개로 공통적으로 발견되는 사용자 그룹을 찾고 그들의 공통된 특성을 분석하면&#8230; 좋은 쪽으로는 비슷한 사용자 찾기나 추천 시스템. 나쁜 쪽으로는 이른바 커뮤니티 속 알바 찾기가 아닌가 -_- <!-- WSA: rules for context 'example-post-bottom' did not apply --></p>
<div id="crp_related"><h3>자동으로 찾은 관련글</h3><ul><li><a href="http://www.4four.us/article/2010/03/document-quality-measurement" rel="bookmark"></a><a href="http://www.4four.us/article/2010/03/document-quality-measurement" rel="bookmark" class="crp_title">문서의 품질을 자동으로 측정할 수 있을까?</a></li><li><a href="http://www.4four.us/article/2010/02/why-we-tag-motivations-for-annotation-in-mobile-and-online-media" rel="bookmark"></a><a href="http://www.4four.us/article/2010/02/why-we-tag-motivations-for-annotation-in-mobile-and-online-media" rel="bookmark" class="crp_title">Why We Tag: Motivations for Annotation in Mobile and Online Media &#8211; CHI 2007</a></li><li><a href="http://www.4four.us/article/2012/04/spam-deceptive-opinion-spamdetection" rel="bookmark"></a><a href="http://www.4four.us/article/2012/04/spam-deceptive-opinion-spamdetection" rel="bookmark" class="crp_title">스팸 댓글과 홍보성 가짜 리뷰 판별</a></li><li><a href="http://www.4four.us/article/2009/12/random-walks-on-the-click-graph" rel="bookmark"></a><a href="http://www.4four.us/article/2009/12/random-walks-on-the-click-graph" rel="bookmark" class="crp_title">Random Walks on the Click Graph &#8211; SIGIR 2007</a></li></ul></div><ol class="footnotes"><li id="footnote_0_4420" class="footnote">저자들은 그런 것까지 포함하여 스팸 종류를 3가지로 구분하지만, 핵심은 이런 가짜 리뷰 찾기다.</li></ol><img src="http://www.4four.us/wordpress/?ak_action=api_record_view&id=4420&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.4four.us/article/2012/04/detecting-opinion-spam/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>국민의 뜻</title>
		<link>http://www.4four.us/article/2012/04/result-of-election</link>
		<comments>http://www.4four.us/article/2012/04/result-of-election#comments</comments>
		<pubDate>Thu, 12 Apr 2012 13:18:16 +0000</pubDate>
		<dc:creator>SL</dc:creator>
				<category><![CDATA[thought]]></category>
		<category><![CDATA[election]]></category>
		<category><![CDATA[machine-learning]]></category>

		<guid isPermaLink="false">http://www.4four.us/?p=4405</guid>
		<description><![CDATA[기계학습(Machine Learning)의 목적은 결국 예측(Prediction)이다. 예측이라고 해서 미래를 내다본다는 뜻이 아니라, 가령 어떤 사진이 성인 이미지인지를 기계적으로 (사람이 알려주기 전에 미리) 판단한다는 얘기다. 그러기 위해서는 컴퓨터 알고리즘에 성인 이미지를 입력해서 패턴을 학습시켜야 한다. 그래야 기존에 관찰되지 않았던 새로운 데이터가 나타났을 때에도 적절하게 분류해서 처리할 수 있다. 이 과정에서 중요한 것을 두 개만 꼽으라면, 첫 번째는 [...]]]></description>
			<content:encoded><![CDATA[<p>기계학습(Machine Learning)의 목적은 결국 예측(Prediction)이다. 예측이라고 해서 미래를 내다본다는 뜻이 아니라, 가령 어떤 사진이 성인 이미지인지를 기계적으로 (사람이 알려주기 전에 미리) 판단한다는 얘기다. 그러기 위해서는 컴퓨터 알고리즘에 성인 이미지를 입력해서 패턴을 학습시켜야 한다. 그래야 기존에 관찰되지 않았던 새로운 데이터가 나타났을 때에도 적절하게 분류해서 처리할 수 있다.</p>
<p>이 과정에서 중요한 것을 두 개만 꼽으라면, 첫 번째는 학습 알고리즘의 효율성과 정확도이다. 배우려는 능력이나 의지가 없는 학생에게는 아무리 좋은 과외교사를 붙여놔도 효과가 없다. 두 번째는 학습 데이터의 양과 질이다. 훈련용 데이터, 예를 들어 각종 이미지와 그 각각 성인성 여부가 주어지면, 기계학습 알고리즘은 이미지의 속성(Feature)을 뽑아내고, 각 속성과 성인성과의 관계를 학습하여, 속성들으로부터 성인성 여부를 판정하는 모델을 만든다. 만약 의미있는 패턴을 발견할 만큼 데이터가 충분하지 않다거나, 혹은 특정 패턴에 편향되어 있으면 아무리 알고리즘이 똑똑해도 배우는 데 한계가 있다. 훈련에 쓰인 정답셋에 오류가 있다면, 학습된 모델은 완전히 잘못된 예측을 할 것이다.<span id="more-4405"></span></p>
<p>선거는 정치행위에 대한 일종의 정답셋을 만드는 과정이다. 위의 예에 적용하면, 정치인/정당은 개별 사진이며, 공약이나 과거 정치 행적은 그 사진의 속성이다. 그리고, 득표율은 국민들이 사진에 붙인 레이블이다. (성인 이미지인가, 아닌가) 한 가지 차이가 있다면, 정치인/정당은 사진인 동시에 학습하는 알고리즘이라는 점이다. 성인 이미지를 판별하는 알고리즘처럼 정치인도 데이터를 통해 학습한다. 선거 득표율에 가장 큰 영향을 끼치는 속성이 무엇인가? 소속 정당? 공약? 의정활동? 3년 전에 국회에서 던진 찬성 혹은 반대표? 과거에 어떤  삶을 살았으며, 어떤 정책을 지지/반대했는지보다 유명세나 이미지가 득표율에 더 크게 반영된다면, 그런 것이 더 중요하다고 신호를 보내는 것이다. 의도했건 아니건 모델은 정답셋을 최대한 잘 예측하고 그에 적응하려고 하기 때문에 결국 현실도 유권자들이 신호한 대로 될 공산이 크다.</p>
<p>학습 알고리즘을 평가할 때, 정답셋에 명백한 패턴이 있는데 왜 발견하지 못했냐고 타박할 수는 있어도, 입력 데이터에 존재하지 않았던 무언가를 찾아내지 못했다고 나무랄 수는 없다. 게다가, 정답셋은 말 그대로 정답이다. 성인 이미지의 세계를 벗어나 현실로 나오면, 주권자의 선택은 평가의 대상이 아니라 그 자체가 추구해야 할 어떤 목표라고 봐야 하지 않을까? 개개인 나름대로의 합리적인 과정을 통해 나온 판단은 존중받아야 할 의견이지, 비난의 대상이 아니다. 그럴 거면 선거는 왜 하겠는가. (심지어 투표 기권조차도 &#8216;나보다 더 관심있고 잘 아는 다른 사람의 선택을 믿고 따르겠다&#8217;는 의지의 표현으로 볼 수도 있다.)</p>
<p>그럼에도, 기계와 달리 사람은 맹목적으로 정답셋에 피팅(Fitting)하지 않는다. 왜냐하면 인간은 불완전한 존재라서, 정보의 불균형, 인지 부하 등으로 인해 언제나 합리적인 최선의 선택을 내리기는 힘들다는 걸 알기 때문이다. 마치 효율적 시장가설이 대체로 맞다가도 특정 기간 동안 무너져 내린다거나 분식회계로 기업의 주가가 잘못 평가되는 것처럼 말이다. 그래서 정치인들은 정답셋의 생성에 영향을 끼치기 위해 학습 데이터에 새로운 속성을 추가하는가 하면, 기존 속성을 더 자세히 분석한 추가 정보를 제공하기도 한다. 또는, 어떤 속성이 중요하니 가중치를 높여달라고도 한다. (이런 걸 프레임 또는 의제 설정이라고 불러도 될 텐데, 바로 언론이 중요한 이유이다.)</p>
<p>횡설수설하고 있는데, 하고픈 말은 이거다. 1인 1표로 정치인을 뽑는 사회에서 선거 결과는 가장 왜곡없는 민심이며, 연령/세대의 투표율/성향 탓하는 건 의미가 없다. 누가 뭐래도 선거에서 당선된 이들은 그곳 유권자들의 마음에 가장 가까웠던 인물이다. 이것을 부정하고는 말이 안 된다. 그러나 인간은 기계보다 훨씬 유연한 사고 능력을 갖고 있느니 만큼 현재의 입력 데이터에 무조건적으로 적응할 필요도 없다. 다른 사람들의 평가 기준에 동의할 수 없다면, 그 기준에 대한 논의부터 다시 시작하고, 필요하면 설득을 시도하면 된다. 결국 판단은 개개인의 몫이며, 사회는 그에 맞추어질 것이다.<!-- WSA: rules for context 'example-post-bottom' did not apply --></p>
<div id="crp_related"><h3>자동으로 찾은 관련글</h3><ul><li><a href="http://www.4four.us/article/2009/09/learning-more-about-active-learning" rel="bookmark"></a><a href="http://www.4four.us/article/2009/09/learning-more-about-active-learning" rel="bookmark" class="crp_title">Learning More about Active Learning</a></li><li><a href="http://www.4four.us/article/2007/12/programming-collective-intelligence" rel="bookmark"></a><a href="http://www.4four.us/article/2007/12/programming-collective-intelligence" rel="bookmark" class="crp_title">Programming Collective Intelligence: 첫인상</a></li><li><a href="http://www.4four.us/article/2009/10/what-is-learning-to-rank" rel="bookmark"></a><a href="http://www.4four.us/article/2009/10/what-is-learning-to-rank" rel="bookmark" class="crp_title">Learning to Rank: 개념만 간단히</a></li><li><a href="http://www.4four.us/article/2010/11/bias-variance-tradeoff" rel="bookmark"></a><a href="http://www.4four.us/article/2010/11/bias-variance-tradeoff" rel="bookmark" class="crp_title">Bias-Variance Tradeoff: 경험에서 배울 때 주의사항</a></li></ul></div><img src="http://www.4four.us/wordpress/?ak_action=api_record_view&id=4405&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.4four.us/article/2012/04/result-of-election/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>평가가 중요하다</title>
		<link>http://www.4four.us/article/2012/04/evaluation-is-difficult</link>
		<comments>http://www.4four.us/article/2012/04/evaluation-is-difficult#comments</comments>
		<pubDate>Tue, 10 Apr 2012 18:50:58 +0000</pubDate>
		<dc:creator>SL</dc:creator>
				<category><![CDATA[thought]]></category>
		<category><![CDATA[algorithm-for-life]]></category>
		<category><![CDATA[evaluation]]></category>
		<category><![CDATA[information-retrieval]]></category>
		<category><![CDATA[measure]]></category>
		<category><![CDATA[ranking]]></category>

		<guid isPermaLink="false">http://www.4four.us/?p=4394</guid>
		<description><![CDATA[보통 검색 랭킹 알고리즘을 평가할 때 NDCG 척도를 사용한다. 여기에 깔린 아이디어를 한 마디로 말하면, 더 나은 문서를 상위에 올려줄수록 좋은 랭킹이라는 것이다. 5점 짜리 문서와 4점 문서가 있을 때, 5점을 위에 보여주는 게 낫다는 당연한 생각을 수식으로 만들고, 이상적인 결과와 비교했을 때의 상대적인 성능을 정량화해 놓은 것이 NDCG이다. 그런데&#8230; 서로 다른 두 개의 랭킹 [...]]]></description>
			<content:encoded><![CDATA[<p>보통 검색 랭킹 알고리즘을 평가할 때 <a href="http://freesearch.pe.kr/archives/1574" target=_blank>NDCG 척도</a>를 사용한다. 여기에 깔린 아이디어를 한 마디로 말하면, 더 나은 문서를 상위에 올려줄수록 좋은 랭킹이라는 것이다. 5점 짜리 문서와 4점 문서가 있을 때, 5점을 위에 보여주는 게 낫다는 당연한 생각을 수식으로 만들고, 이상적인 결과와 비교했을 때의 상대적인 성능을 정량화해 놓은 것이 NDCG이다. 그런데&#8230;</p>
<p>서로 다른 두 개의 랭킹 함수 A, B를 만들었다. 그리고 각자 나름대로 최고라고 생각하는 문서를 5개씩 뽑아왔다. 이를 평가해보니 [4, 4, 4, 4, 4]와 [5, 3, 2, 2, 2]로 나왔다. 즉, A가 찾은 문서는 모두 4점(=꽤 만족)이었고, B가 찾은 문서는 1등은 5점(=완벽)이었지만 2등 이하는 좀 별로였다. 누가 더 잘했다고 봐야 할까?<span id="more-4394"></span></p>
<p>아마 쿼리 성격과 검색한 사람의 의도에 따라 다를 것이다. &#8220;영화 어벤져스 개봉일&#8221; 같은 쿼리는 의도가 단순명확하므로 1등에 정답이 나오기만 하면 된다. 하지만, &#8220;유럽여행&#8221;에 대해서는 정답이라고 할 만큼 완벽한 문서가 있을 것 같지 않다. 따라서 최고의 문서 하나를 고르려 애쓰기보다는 알찬 내용의 글을 여러 개 보여주는 게 효과적이면서도 안전한 전략이다.</p>
<p>의도가 분명하고 정답이 있는 쿼리에 대해서도 NDCG 척도로 품질을 평가하는 게 합당할까? 물론, 1등에 정답이 나오고 2등 이하에 이를 보완하는 추가 정보가 나오는 게 이상적이긴 하다. 하지만 위에서처럼 A와 B 중 하나를 골라야 하는 상황이라면 어떤 평가 척도를 쓰는지에 따라 최종 결정이 달라질 수 있다. 이 경우에는 A로 낙찰.</p>
<p>야후 연구자들이 2009년 CIKM에 낸 논문 Expected Reciprocal Rank for Graded Relevance에서 조금 다른 평가 척도가 제안되었다. 대충 요약하면, 마지막으로 클릭된 문서가 가장 만족스러웠다고 가정하는 Cascade Model의 전통에 기대어, 최고로 좋은 문서의 순위의 역수의 기댓값을 계산하는 것이다. 그래서 이름이 Expected Reciprocal Rank, 줄여서 ERR이다. 더 쉽게 말하면, 베스트 문서가 몇 등에 나오는지를 품질을 평가하겠다는 것으로서, 어벤져스 개봉일 정보가 1등에 딱 나오느냐가 중요하지 그 밑에 뭐가 나오는지는 크게 개의치 않겠다는 시크한 평가 메트릭이다.</p>
<p>구글은 랭킹 튜닝에 기계학습을 쓰지 않는다고 하는데, Bing의 마이크로소프트나 야후는 <a href="http://www.4four.us/article/2009/10/what-is-learning-to-rank" target=_blank>랭킹학습(Learning-to-rank; LTR)</a>을 적용하는 데 적극적이라고 알려져 있다. 사람이든 기계든 무언가를 잘 배웠는지 확인하려면 시험을 쳐서 그들이 제출한 답안지의 점수를 매겨봐야 한다. 그러면 그들은 점수를 보고 다음 번 시험에서 높은 점수를 받기 위한 전략을 다시 짤 것이고, 이 과정이 반복되면 결국 평가 척도에 최적화된 결과물이 나올 것이다. 똑같은 학습 알고리즘이라도 NDCG와 ERR 중 무엇을 타겟으로 했는지에 따라 꽤 다른 모델을 내놓을 수 있다.</p>
<p>그래서 평가가 중요하다. 학업성취도를 평가할 때 전체 과목의 평균을 중시하는 척도를 쓰면, 학생들은 정말 좋아하고 잘하는 과목에 집중하기보다는 못하는 과목이 없게 하려고 노력할 것이다.<sup><a href="http://www.4four.us/article/2012/04/evaluation-is-difficult#footnote_0_4394" id="identifier_0_4394" class="footnote-link footnote-identifier-link" title="사람이 그렇게 수동적이고 단순한 존재는 아니지만 어느 정도는..">1</a></sup> 작업능력을 평가할 때, 꾸준하게 좋은 성과를 내는 것과 기복이 있지만 잘할 때는 감동적인 결과를 내는 것 중 무엇을 높게 치는지에 따라서 그 조직의 문화가 결정될 수 있다. 평가는 개개인의 행동에 직접적인 피드백을 줌으로써 행동에 영향을 끼치기 때문이다.</p>
<p>우리는 일상 속에서 수많은 판단을 내리고 끊임없이 평가를 한다. 그 대상에는 사용하는 물건, 함께 하는 사람은 물론이고 자기 자신까지 포함된다. 나의 평가는 직간접적으로 그 대상의 행동에 영향을 끼쳐서 결국 나에게로 되돌아온다. 그러니까 평가를 잘 해야 한다, 귀찮고 어렵더라도.<!-- WSA: rules for context 'example-post-bottom' did not apply --></p>
<div id="crp_related"><h3>자동으로 찾은 관련글</h3><ul><li><a href="http://www.4four.us/article/2009/10/what-is-learning-to-rank" rel="bookmark"></a><a href="http://www.4four.us/article/2009/10/what-is-learning-to-rank" rel="bookmark" class="crp_title">Learning to Rank: 개념만 간단히</a></li><li><a href="http://www.4four.us/article/2010/07/sigir-2010-papers1" rel="bookmark"></a><a href="http://www.4four.us/article/2010/07/sigir-2010-papers1" rel="bookmark" class="crp_title">SIGIR 2010에서 관심이 가는 논문들 &#8211; 첫 번째</a></li><li><a href="http://www.4four.us/article/2008/06/keyword-weightin-zipfs-law" rel="bookmark"></a><a href="http://www.4four.us/article/2008/06/keyword-weightin-zipfs-law" rel="bookmark" class="crp_title">키워드의 가중치 구하기와 Zipf&#8217;s Law</a></li><li><a href="http://www.4four.us/article/2007/12/tf-idf-computing-keyword-weighting-document" rel="bookmark"></a><a href="http://www.4four.us/article/2007/12/tf-idf-computing-keyword-weighting-document" rel="bookmark" class="crp_title">TF-IDF: 문서와 단어 사이의 연관도를 측정하는 방법</a></li></ul></div><ol class="footnotes"><li id="footnote_0_4394" class="footnote">사람이 그렇게 수동적이고 단순한 존재는 아니지만 어느 정도는..</li></ol><img src="http://www.4four.us/wordpress/?ak_action=api_record_view&id=4394&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.4four.us/article/2012/04/evaluation-is-difficult/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>스팸 댓글과 홍보성 가짜 리뷰 판별</title>
		<link>http://www.4four.us/article/2012/04/spam-deceptive-opinion-spamdetection</link>
		<comments>http://www.4four.us/article/2012/04/spam-deceptive-opinion-spamdetection#comments</comments>
		<pubDate>Fri, 06 Apr 2012 13:42:06 +0000</pubDate>
		<dc:creator>SL</dc:creator>
				<category><![CDATA[paper]]></category>
		<category><![CDATA[classification]]></category>
		<category><![CDATA[content-analysis]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[lie-detection]]></category>
		<category><![CDATA[machine-learning]]></category>
		<category><![CDATA[opinion-spam]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[spam]]></category>

		<guid isPermaLink="false">http://www.4four.us/?p=4364</guid>
		<description><![CDATA[이곳은 댓글이 거의 달지지 않는 블로그지만, 스팸 댓글마저 없는 것은 아니다. 매일 아침 워드프레스의 Akismet 플러그인이 격리해놓은 스팸들을 지우며 정갈한 마음으로 하루를 시작한다. 그러다 우연히 어느 블로그의 글을 읽고 생각했다. 엘리자(Eliza)에서 썼던 것과 비슷한 방법으로 본문과 관련된 척하는 글, 거기다가 각종 자연어처리 기술을 적용해서 그럴 듯하게 꾸며낸 글을 필터링할 수 있을까? 엘리자(Eliza)는 고전적인 대화형 프로그램으로서, [...]]]></description>
			<content:encoded><![CDATA[<p>이곳은 댓글이 거의 달지지 않는 블로그지만, 스팸 댓글마저 없는 것은 아니다. 매일 아침 워드프레스의 Akismet 플러그인이 격리해놓은 스팸들을 지우며 정갈한 마음으로 하루를 시작한다. 그러다 우연히 <a href="http://lingpipe-blog.com/2012/03/31/natural-language-generation-for-spam/ " target=_blank>어느 블로그의 글</a>을 읽고 생각했다. <a href="http://www.aistudy.com/demo/ELIZA.htm" target=_blank>엘리자(Eliza)</a>에서 썼던 것과 비슷한 방법으로 본문과 관련된 척하는 글, 거기다가 각종 자연어처리 기술을 적용해서 그럴 듯하게 꾸며낸 글을 필터링할 수 있을까?<span id="more-4364"></span></p>
<p>엘리자(Eliza)는 고전적인 대화형 프로그램으로서, 상대방이 한 말에서 패턴을 찾아 질문을 던지도록 고안되었다. 대충 이런 식이다.</p>
<blockquote><p>
환 자 : 저는 항상 기분이 침울해요<br /> 컴퓨터 : 당신이 침울하다니 참 안됐군요<br /> 환 자 : 제 남자 친구가 저를 이곳에 오게 만들었어요.<br /> 컴퓨터 : 당신의 남자 친구가 당신을 이곳에 오게 만들었다구요?<br /> 환 자 : 그래요. 전 도움이 필요해요.<br /> 컴퓨터 : 어떤 도움이 필요하지요?<br /> 환 자 ;: 어머니와 사이 좋게 지내질 못하거든요.<br /> 컴퓨터 : 당신 가족에 대해 이야기 좀 해 주겠어요?
</p></blockquote>
<p>댓글에 적용한 아주 단순한 예를 찾자면 <a href="http://www.4four.us/article/2008/06/poisson-distribution#respond" target=_blank>이런 정도</a>??;;</p>
<p>대부분의 스팸은 그 목적상 링크를 걸 수밖에 없고, 그 링크를 잘 분석하면 내용과 상관없이 불순한 의도의 댓글을 골라낼 수 있다. 하지만, 스팸 방지 기술이 발전할수록 스패머들도 머리를 쓴다. 정말 말도 안 되는, 효과가 있기나 할까 싶은 스팸도 많지만, 요즘은 교묘하게 광고를 하는 댓글이 더러 눈에 띈다. 이사가 힘들다고 푸념하는 글에다가, &#8220;저도 얼마 전에 이사했는데 짐이 많아서 힘들더라고요, 여기저기 업체 알아보다가 ooo에서 했는데 꽤 괜찮았어요&#8221; 이런 식으로 댓글을 다는 것이다. 업자가 손수 썼는지, 기계적인 알고리즘이 자동으로 썼는지는 모르겠으나 (적어도 아직까지는 전자일 가능성이 크겠지?) 요런 타입은 본문과 관련있는 내용에 링크도 긴가민가 하므로 구분하기가 쉽지 않다. 결국은 작성자 정보(IP 등)에 의존해서 스팸 여부를 판별하는 게 가장 현실적이지 않나 싶다.</p>
<p>그런데 사실 이런 건 애교에 불과하다. 정말로 짜증을 유발하고 멀쩡한 글에 대한 신뢰도까지 떨어뜨리는 녀석은 따로 있다. 바로 홍보 목적으로 작성된 가짜 리뷰들이다. 요즘 음식점이나 상품에 대한 리뷰, 영화 평점이나 기타 후기들을 그대로 믿는 사람이 얼마나 될까?</p>
<p>그런 문제는 미국도 마찬가지였는지 가짜 리뷰를 판별하는 방법에 대한 <a href="http://aclweb.org/anthology/P/P11/P11-1032.pdf " target=_blank>코넬대의 연구</a>가 <a href="http://www.acl2011.org/" target=_blank>2011년 ACL(Association for Computational Linguistics)</a>에 실렸다. 믿을 만한 실제 리뷰와 홍보 목적으로 꾸며쓴 가상의 리뷰를 구분하는 알고리즘을 만들겠다는 것인데, 어떻게 했을까?</p>
<p>저자들은 먼저 호텔 리뷰를 대상으로 잡았다. 그리고 사람을 써서 호텔에 실제로 투숙한 고객인 양 위장해서 리뷰를 쓰도록 했다. 이 작업에는 Amazon Mechanical Turk(AMT)를 이용했다고 한다. (실제로 이런 홍보 리뷰를 써주는 업체에 의뢰했다면 더 흥미로웠을 텐데&#8230; 쉽진 않겠지) 비교 대상으로 삼을 진짜 리뷰를 고르는 것도 쉽지는 않다. 연구진은 TripAdvisor라는 호텔 리뷰 사이트에 실제로 올라온 리뷰 중에서 5점 만점이면서, 적당히 길고, 무엇보다도 사용자가 처음으로 쓰지 않은 리뷰를 진실한 리뷰로 뽑았다. 마지막 조건이 중요한데, 가입하고 처음으로 쓴 리뷰가 5점이라면, 그리고 그후로 다른 리뷰가 없다면, 그 사람의 진정성에 의구심이 생기는 게 당연하다. 선거철마다 반복되는 인터넷 커뮤니티 &#8216;알바&#8217; 논란도 보통 최근에 가입하고 논란의 여지가 있는 글만 반복해서 올리는 사람 중심으로 벌어지지 않던가.</p>
<p>아무튼 이렇게 데이터를 구해놓고, 가짜를 식별하기 위한 여러 기계학습 알고리즘을 연구해서 실험했다. 당연히 분류가 잘 됐으니까 논문으로 출판되었을 테고.. 분류 성능보다는 이들이 보고한 두 문서 그룹 간의 차이에 더 관심이 간다.</p>
<p>먼저 품사(Part Of Speech; POS)의 분포다. 진짜 리뷰에는 명사, 형용사, 전치사, 한정사(the, my), 등위접속사(and, but)가 상대적으로 많고, 가짜 리뷰에는 동사, 부사, 대명사, 전치한정사<sup><a href="http://www.4four.us/article/2012/04/spam-deceptive-opinion-spamdetection#footnote_0_4364" id="identifier_0_4364" class="footnote-link footnote-identifier-link" title="all the students의 all, twice the price의 twice처럼 한정사 앞에 쓰이는 말">1</a></sup>가 많았다고 한다. 특히, 최상급 표현이 가짜 리뷰에 더 많았다고 하는데, 홍보가 목적이라는 점을 생각하면 과장 표현이 많을 수밖에 없고 그에 따른 자연스러운 결과로 보인다.</p>
<p>두 그룹 사이에는 품사 뿐만 아니라 중요한 단어에서도 차이가 나타났다. 진짜 리뷰에는 감각을 전달하는(sensorial) 단어가 빈번하고, 특히 장소와 관련되어 구체적인 표현이 많았다. 논문에서는 small, bathroom, on, location 등을 예로 들고 있다.</p>
<p>재미난 건 이런 연구가 갑자기 툭 튀어나온 게 아니라 이미 유구한 역사와 전통을 갖고 있다는 점이다. 맥락은 약간 다르지만, 사실 vs 상상(Informative vs Imaginary) 문서 비교나 장르 식별 등의 선행 연구가 있었고, 결과도 이 연구에서 찾아낸 패턴과 대체로 일치한다. 리뷰 사이트에 전문적으로 글을 올리는 사람과 AMT에서 일회성 과제로 받아 상상력으로 글을 쓰는 사람 사이의 근본적인 차이(ex. 글솜씨나 관련지식) 등 지적하고픈 게 있지만, 비슷한 연구들에서 일관되게 그런 경향이 나타났다니까 좀더 믿음이 간다.</p>
<p>문제는 이런 게 공개될수록 가짜 리뷰어들 또한 진화한다는 점이다. 그럼 가짜를 걸러내기가 더 어려워질 테고, (알고리즘 뿐만 아니라 사람이 봐도 구분하기 힘든) 가짜가 판을 치면 전반적인 신뢰도가 떨어지고.. 결국 완전무결한 답은 내가 아는 사람의 글이 있는 소셜 네트워크일까?<!-- WSA: rules for context 'example-post-bottom' did not apply --></p>
<div id="crp_related"><h3>자동으로 찾은 관련글</h3><ul><li><a href="http://www.4four.us/article/2010/12/first-book-review-with-withblog" rel="bookmark"></a><a href="http://www.4four.us/article/2010/12/first-book-review-with-withblog" rel="bookmark" class="crp_title">도서 리뷰 첫경험 회고</a></li><li><a href="http://www.4four.us/article/2012/04/detecting-opinion-spam" rel="bookmark"></a><a href="http://www.4four.us/article/2012/04/detecting-opinion-spam" rel="bookmark" class="crp_title">허위 리뷰를 찾는 기술의 발전</a></li><li><a href="http://www.4four.us/article/2009/10/what-is-learning-to-rank" rel="bookmark"></a><a href="http://www.4four.us/article/2009/10/what-is-learning-to-rank" rel="bookmark" class="crp_title">Learning to Rank: 개념만 간단히</a></li><li><a href="http://www.4four.us/article/2010/03/document-quality-measurement" rel="bookmark"></a><a href="http://www.4four.us/article/2010/03/document-quality-measurement" rel="bookmark" class="crp_title">문서의 품질을 자동으로 측정할 수 있을까?</a></li></ul></div><ol class="footnotes"><li id="footnote_0_4364" class="footnote">all the students의 all, twice the price의 twice처럼 한정사 앞에 쓰이는 말</li></ol><img src="http://www.4four.us/wordpress/?ak_action=api_record_view&id=4364&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.4four.us/article/2012/04/spam-deceptive-opinion-spamdetection/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>클릭 분석과 편향 문제</title>
		<link>http://www.4four.us/article/2012/04/bias-in-click-analysis</link>
		<comments>http://www.4four.us/article/2012/04/bias-in-click-analysis#comments</comments>
		<pubDate>Sun, 01 Apr 2012 04:01:47 +0000</pubDate>
		<dc:creator>SL</dc:creator>
				<category><![CDATA[note]]></category>
		<category><![CDATA[bias]]></category>
		<category><![CDATA[click-analysis]]></category>
		<category><![CDATA[human-behavior]]></category>
		<category><![CDATA[information-retrieval]]></category>

		<guid isPermaLink="false">http://www.4four.us/?p=4346</guid>
		<description><![CDATA[검색 결과 페이지에서 사용자가 어떤 문서를 클릭했는지의 정보는 검색 품질에 대한 가장 직접적인 피드백이다. 사람들이 알아서 자기가 원하는 문서를 클릭할 것이므로, 검색엔진은 적당히 랭킹해서 문서를 노출해보고 일정 시간이 흐른 뒤에 CTR(Click-through rate, 노출 대비 클릭)이 높은 순으로 재정렬하면 그만이라고 생각할 수도 있다. 만약 그랬다면, 검색엔진의 성능은 결국 얼마나 많은 문서를 보유하고, 얼마나 많은 사용자가 방문하는지만으로 [...]]]></description>
			<content:encoded><![CDATA[<p>검색 결과 페이지에서 사용자가 어떤 문서를 클릭했는지의 정보는 검색 품질에 대한 가장 직접적인 피드백이다. 사람들이 알아서 자기가 원하는 문서를 클릭할 것이므로, 검색엔진은 적당히 랭킹해서 문서를 노출해보고 일정 시간이 흐른 뒤에 CTR(Click-through rate, 노출 대비 클릭)이 높은 순으로 재정렬하면 그만이라고 생각할 수도 있다. 만약 그랬다면, 검색엔진의 성능은 결국 얼마나 많은 문서를 보유하고, 얼마나 많은 사용자가 방문하는지만으로 결정났을 것이다. (뭐 딱히 틀린 말만은 아니라고 생각하지만&#8230;)<br />
 <br />
클릭 분석에서 반드시 고려해야 하는 요소 중 하나로, 노출 편향(Presentation Bias) 또는 위치 편향(Position Bias)이라는 문제가 있다. 상위에 노출되는 문서가 대체로 더 많이 노출되고 그 결과로 더 많이 클릭되는 것이다.<span id="more-4346"></span> 검색엔진이 가장 좋은 문서를 제일 위에 보여주려고 노력하기는 하지만, 1위와 2위 문서의 품질 차이가 미미하더라도 클릭률은 크게 차이가 난다. 보통 위에서부터 아래로 문서를 훑어보기 때문에 당연한 결과이다. 하지만, 클릭은 그 문서의 매력에 대한 지표가 될 수 있을지는 몰라도, 그 문서의 만족도를 말해주지는 않는다. 막상 방문해보니 생각했던 것과 다른 내용이라 실망한 경험 다들 있지 않은가.</p>
<p>이렇게 편향되고 혼란스러운 클릭의 소용돌이 속에서 의미있는 문서를 찾아내기 위해 연구자들은 사람들의 클릭 행위를 모델링하기 시작했다. 이른바 클릭 모델(Click Model)이라는 것인데, 사람들이 검색 결과 페이지에서 어떻게 행동할 것이라는 가정을 세우고, 실제 관찰된 데이터를 바탕으로 각 문서의 점수를 추정하는 방법이다. (처음에는 광고의 노출 순서에 따른 CTR을 예측하려는 목적으로 시작된 듯한데<sup><a href="http://www.4four.us/article/2012/04/bias-in-click-analysis#footnote_0_4346" id="identifier_0_4346" class="footnote-link footnote-identifier-link" title="Predicting clicks: estimating the click-through rate for new ads">1</a></sup>, 이제는 검색 랭킹에서 빠질 수 없는 요소가 되었다.)</p>
<p>그 가정이라는 것이 대단히 거창한 내용은 아니고 그냥 상식적인 것이다. 사람들은 검색 결과를 위에서부터 아래로 훑는다는 것, 문서 써머리를 본 뒤에 괜찮아 보이면 클릭한다는 것, 그 문서에 만족하지 못했으면 아래 문서를 계속 찾아본다는 것, 필요하면 쿼리를 바꿔서 계속 검색한다는 것, 뭐 이런 내용들이다. 이 가정과 파라미터 추정 방법에 따라 다양한 클릭 모델이 제안되었고, 이들은 관습적으로 3글자짜리 영문 이니셜 이름으로 불린다. (ex. UBM, BBM, DBN, SUM, GCM, DCM, TCM, WPC 등)</p>
<p>간단한 상황을 가정해보자. 쿼리 q를 입력하면 위에서부터 차례대로 d1, d2, d3, d4 문서가 노출된다. 100명이 q를 검색했고, 100명 모두 d1을 클릭했다. 그중 일부(A)는 더이상 다른 문서를 클릭하지 않고 떠났고, 또 다른 일부(B)는 d3를 클릭했다. (편의상 d2와 d4는 아무도 클릭하지 않았다고 하자.)</p>
<p>이 100명 중에서 검색 결과 페이지에서 d1의 써머리를 &#8220;본&#8221;(examine) 사람은 몇 명일까? 당연히 100명이다. 그럼 d3의 써머리를 본 사람은 몇 명일까? 간단히 대답할 수 없는 문제다. 잘 알려진 모델인 <a href="http://dl.acm.org/citation.cfm?id=1390334.1390392&#038;coll=DL&#038;dl=GUIDE&#038;CFID=94745100&#038;CFTOKEN=40574431" target=_blank>UBM</a>에서는 특정 문서를 사용자가 볼 확률을 알기 위해서 상단에서 클릭된 문서의 순위와 그 문서와의 거리를 이용한다. d1을 클릭한 사람이 d2 ~ d4를 볼 확률이 다 다르고, d2를 클릭한 사람이 d3, d4를 볼 확률도 다 제각각이라는 얘기다.<br />
 <br />
반면, 또 다른 유명한 모델인 <a href="http://dl.acm.org/citation.cfm?id=1526709.1526711&#038;coll=DL&#038;dl=GUIDE&#038;CFID=94745100&#038;CFTOKEN=40574431" target=_blank>DBN</a>에서는 특정 문서를 볼 확률은 그 위에 노출된 문서의 매력도와 만족도에 영향을 받는다고 본다. 위에 예로 든 상황에서 d2가 있는데도 그아래의 d3가 클릭되었다는 것은 d2가 별로 매력적이지 않았다는 뜻 아닐까? 또, d1을 보고난 후에 d3를 다시 클릭한 사용자는 d1에 만족하지 못한 것이 아닐까?</p>
<p>가볍게 한 번 생각해보자. A와 B의 비율이 (80:20)이면, 즉 d1을 읽은 사용자의 80%는 그대로 떠났고, 20%는 또 다른 문서를 클릭했다면 d1은 얼마나 좋은 문서일까? d1과 d3중 어떤 문서가 더 좋을까?</p>
<p>모르긴 몰라도 80%가 더 이상 다른 문서를 클릭하지 않았다면 d1은 퍽 만족스러운 문서가 아니었을까? 20%가 d3를 클릭했다고는 해도 그 이유가 d1에 정보가 부족해서인지 확신하기는 쉽지 않다.</p>
<p>만약 A:B의 비율이 (50:50)이라면? 이제는 d1의 품질에 약간은 의심을 가져도 될 것 같다. 더군다나 d2가 버티고 있는데도 굳이 d3를 선택한 사람이 50%라는 것은 d3로의 클릭 쏠림이 단순한 우연이 아니라는 생각이 든다.</p>
<p>비율이 (20:80) 정도가 되면 이제는 d1에게 1등이라는 자리가 과분한 게 아닐까라는 고민이 깊어진다. d3를 상위에 보여주는 걸 심각하게 고려해볼 때가 되었다. 이 경우에도 d1과 d3의 CTR은 각기 100%, 80%이지만, d1의 클릭이 많은 것은 단순히 위에 노출되었기 때문이래도 무방해 보인다.</p>
<p>CTR이라는 단순명료한 지표가 있음에도 복잡하게 클릭 모델링을 하는 데에는, 이렇듯 열악한 노출 조건 하에서도 선전하는 좋은 문서를 찾아내고, 반대로 유리한 조건에 그냥 묻어가는 꽃가루 문서를 걸러내고자 하는 의도가 있다. 문제는 균형점을 찾는 것이다. 아래쪽 문서의 클릭에 과도한 가중치를 주면, 검색 결과의 안정성이 떨어지고 어뷰징 행위에도 허약해진다. 따라서 어느 정도는 보수적으로 접근할 수밖에 없을 것이다. 아래쪽 문서가 더 좋다는 신호가 충분히 나올 때까지는 쉽사리 1등을 흔들지 않는 것이다.</p>
<p>어느 해산물 부페에 가서, 현재 거기에 생선 공급하는 업체보다 우리가 더 신선한 고기를 싸게 줄 테니까 우리랑 거래합시다 라고 하면, 아 네 좋습니다 할까? 어느 정도 만족하면서 서비스 잘 쓰고 있는 사용자들한테 가서, 우리는 이런저런 새 기능이 있고 좀더 빠르니까 이제부터 우리 서비스 써주세요 하면 아이고 잘됐네요 하면서 옮겨와 줄까?</p>
<p>아래쪽 문서의 클릭이 좀 많다고 그걸 1등에 올릴 수 없듯이, 현재 어느 정도 잘 쓰고 있는 것보다 좀더 나은 것이 나왔다고 쉽게 갈아탈 수 없다. 지금 그다지 만족스럽지는 않지만 그마저도 잃을까 불안하고, 새것에 대한 신뢰가 부족하기 때문이다. 이럴 때 중요한 전략은 레퍼런스 사례를 최대한 많이 만들어서 불안감을 씻고, 가끔씩 오는 기회를 놓치지 않고 만족감을 주어서 신뢰감을 높이는 것이다.</p>
<p>가끔 1등 아래에 있는 문서들을 클릭해보았을 때, 만족을 넘어선 감동을 주고, 그런 경험이 충분히 누적되면 마음놓고 1등으로 올려줄 수 있을 것이다. 그러기 위해서는 일단 검색 결과 첫 페이지에라도 나오는 것이 중요하다. 사람들이 2등, 3등 문서를 덜 본다고는 하지만, 2페이지 이후의 문서와는 아예 비교가 되지 않는다. 품질 좋은 문서를 적어놓으면 사람들이 알아서 찾아 읽을 것이라며 기다리는 것이 잘못은 아니지만, 기왕이면 쉽게 눈에 띄는 곳에 갖다 놓아서 노출수를 높이고, 그렇게 얻은 기회를 잘 활용해서 신뢰도를 높여가는 전략, 꼭 SEO(Search Engine Optimization, 검색엔진 최적화)에만 해당하는 얘기는 아닐 것이다.</p>
<p>PS. 클릭 모델에 대해 관심이 있으면 마이크로소프트 쪽에서 <a href="http://www.google.com/url?sa=t&#038;rct=j&#038;q=click%20model%20tutorial&#038;source=web&#038;cd=3&#038;ved=0CDsQFjAC&#038;url=http://research.microsoft.com/en-us/people/chaoliu/clickmodeltutorial_cikm09.ppt&#038;ei=qXZLT_28N6qImQXnv7iYDg&#038;usg=AFQjCNE-WGRbTYBixJ6UMTyfiAKirfj9YA" target=_blank>2009년 CIKM 튜토리얼을 한 자료</a>가 도움이 될 것이다.<!-- WSA: rules for context 'example-post-bottom' did not apply --></p>
<div id="crp_related"><h3>자동으로 찾은 관련글</h3><ul><li><a href="http://www.4four.us/article/2010/08/dealing-with-ambiguous-query" rel="bookmark"></a><a href="http://www.4four.us/article/2010/08/dealing-with-ambiguous-query" rel="bookmark" class="crp_title">모질대세: 모호한 질의어에 대처하는 검색엔진의 자세</a></li><li><a href="http://www.4four.us/article/2009/12/random-walks-on-the-click-graph" rel="bookmark"></a><a href="http://www.4four.us/article/2009/12/random-walks-on-the-click-graph" rel="bookmark" class="crp_title">Random Walks on the Click Graph &#8211; SIGIR 2007</a></li><li><a href="http://www.4four.us/article/2009/10/the-next-ui-breakthrough-command-lines-donald-a-norman-3" rel="bookmark"></a><a href="http://www.4four.us/article/2009/10/the-next-ui-breakthrough-command-lines-donald-a-norman-3" rel="bookmark" class="crp_title">The Next UI Breakthrough: Command lines &#8211; Donald A. Norman</a></li><li><a href="http://www.4four.us/article/2009/12/behavioral-classification-on-the-click-graph-www-2008" rel="bookmark"></a><a href="http://www.4four.us/article/2009/12/behavioral-classification-on-the-click-graph-www-2008" rel="bookmark" class="crp_title">Behavioral Classification on the Click Graph &#8211; WWW 2008</a></li></ul></div><ol class="footnotes"><li id="footnote_0_4346" class="footnote"><a href="http://dl.acm.org/citation.cfm?id=1242572.1242643&#038;coll=DL&#038;dl=GUIDE&#038;CFID=94745100&#038;CFTOKEN=40574431" target=_blank>Predicting clicks: estimating the click-through rate for new ads</a></li></ol><img src="http://www.4four.us/wordpress/?ak_action=api_record_view&id=4346&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.4four.us/article/2012/04/bias-in-click-analysis/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>검색이 잘 안 될 때 사람들의 행동 변화 연구</title>
		<link>http://www.4four.us/article/2012/03/detecting-searcher-frustration</link>
		<comments>http://www.4four.us/article/2012/03/detecting-searcher-frustration#comments</comments>
		<pubDate>Tue, 20 Mar 2012 20:35:07 +0000</pubDate>
		<dc:creator>SL</dc:creator>
				<category><![CDATA[web]]></category>
		<category><![CDATA[human-behavior]]></category>
		<category><![CDATA[information-retrieval]]></category>
		<category><![CDATA[query-difficulty]]></category>

		<guid isPermaLink="false">http://www.4four.us/?p=4335</guid>
		<description><![CDATA[검색엔진에서 원하는 정보를 찾지 못할 때 사용자의 행동이 어떻게 달라지는지 조사한 결과를 구글 연구진이 발표한 게 있다. 처음에는 쿼리 입력해서 나오는 결과를 훑어본 뒤 적당한 문서를 클릭하고, 필요하면 쿼리를 바꾸기도 하고 그러는데, 몇 번을 반복해도 원하는 정보가 안 나오면 슬슬 행동에 변화가 나타난다고 한다. 한숨을 쉬거나 손톱을 물어뜯기도 하고, 검색 결과 화면을 향해 멍때리는 자학(!)과 [...]]]></description>
			<content:encoded><![CDATA[<p>검색엔진에서 원하는 정보를 찾지 못할 때 사용자의 행동이 어떻게 달라지는지 조사한 결과를 구글 연구진이 <a href="http://googleresearch.blogspot.com/2010/09/frowns-sighs-and-advanced-queries-how.html" target=_blank>발표</a>한 게 있다. 처음에는 쿼리 입력해서 나오는 결과를 훑어본 뒤 적당한 문서를 클릭하고, 필요하면 쿼리를 바꾸기도 하고 그러는데, 몇 번을 반복해도 원하는 정보가 안 나오면 슬슬 행동에 변화가 나타난다고 한다. 한숨을 쉬거나 손톱을 물어뜯기도 하고, 검색 결과 화면을 향해 멍때리는 자학(!)과 좌절(!)의 모습이 관찰되었다.<span id="more-4335"></span></p>
<p>구글 정도 되면 웬만해서는 사용자들이 결과에 만족해서 떠날 것이므로 어떤 쿼리에서 사람들이 불만족했는지 알아내는 것이 성능 튜닝에서 중요한 부분을 차지할 것이다. 하지만 -모니터에 웹캠을 달아서 사용자의 모습을 관찰하지 않는 다음에야- 위와 같은 사용자 행동은 현재로서는 감지하기 어렵다. 그대신, 연구자들은 검색엔진에서 이용해볼 만한 신호로 아래의 요소를 제시했다.</p>
<ul>
<li>질문형 쿼리(use of question queries)</li>
<li>고급 연사자 활용(use of advanced operators)</li>
<li>검색 결과 페이지에 머무는 시간의 절대량 및 비율의 증가(spending more and a larger proportion of the time on the search result page)</li>
<li>검색 세션에서 쿼리 길이가 길어지다가 다시 짧아지는 현상(formulating the longest query in the middle of the session)</li>
</ul>
<p>물론, 어느 하나만으로는 충분하지 않고 이들을 잘 결합해서 사용자의 만족 여부를 추정해야 한다고는 하는데.. 이걸로는 아직 많이 부족해 보인다.<!-- WSA: rules for context 'example-post-bottom' did not apply --></p>
<div id="crp_related"><h3>자동으로 찾은 관련글</h3><ul><li><a href="http://www.4four.us/article/2010/06/how-to-find-time-sensitive-queries" rel="bookmark"></a><a href="http://www.4four.us/article/2010/06/how-to-find-time-sensitive-queries" rel="bookmark" class="crp_title">시간성이 중요한 쿼리를 어떻게 찾을까?</a></li><li><a href="http://www.4four.us/article/2010/08/sigir-2010-papers2" rel="bookmark"></a><a href="http://www.4four.us/article/2010/08/sigir-2010-papers2" rel="bookmark" class="crp_title">SIGIR 2010에서 관심이 가는 논문들 &#8211; 두 번째</a></li><li><a href="http://www.4four.us/article/2010/06/time-based-language-model-cikm-2003" rel="bookmark"></a><a href="http://www.4four.us/article/2010/06/time-based-language-model-cikm-2003" rel="bookmark" class="crp_title">Time-Based Language Models &#8211; CIKM 2003</a></li><li><a href="http://www.4four.us/article/2012/04/bias-in-click-analysis" rel="bookmark"></a><a href="http://www.4four.us/article/2012/04/bias-in-click-analysis" rel="bookmark" class="crp_title">클릭 분석과 편향 문제</a></li></ul></div><img src="http://www.4four.us/wordpress/?ak_action=api_record_view&id=4335&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.4four.us/article/2012/03/detecting-searcher-frustration/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>인터랙티브 캐릭터와 스토리 자동 생성</title>
		<link>http://www.4four.us/article/2012/03/interactive-story-generation</link>
		<comments>http://www.4four.us/article/2012/03/interactive-story-generation#comments</comments>
		<pubDate>Tue, 20 Mar 2012 11:04:15 +0000</pubDate>
		<dc:creator>SL</dc:creator>
				<category><![CDATA[thought]]></category>
		<category><![CDATA[artificial-intelligence]]></category>
		<category><![CDATA[autonomous-agent]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[ideation]]></category>

		<guid isPermaLink="false">http://www.4four.us/?p=4326</guid>
		<description><![CDATA[가끔씩 이런 생각을 한다. 드라마나 만화 속 캐릭터를 전혀 다른 스토리 환경에 등장시키면 어떻게 될까? 재미나게 봤던 &#8220;노다메 칸타빌레&#8221; 속 엽기발랄 노다메를 &#8220;짱구는 못말려&#8221;의 짱구와 붙여놓으면? 미드 &#8220;24시&#8221;의 잭 바우어가 그 무대포 성격을 유지한 채 한국 드라마 속 직장에 입사한다면? 잘 상상되지는 않지만 어떨지 좀 궁금하기는 하다. 그래서 생긴 질문. 개성 뚜렷한 캐릭터들을 만들고, 배경을 [...]]]></description>
			<content:encoded><![CDATA[<p>가끔씩 이런 생각을 한다. 드라마나 만화 속 캐릭터를 전혀 다른 스토리 환경에 등장시키면 어떻게 될까? 재미나게 봤던 &#8220;노다메 칸타빌레&#8221; 속 엽기발랄 노다메를 &#8220;짱구는 못말려&#8221;의 짱구와 붙여놓으면? 미드 &#8220;24시&#8221;의 잭 바우어가 그 무대포 성격을 유지한 채 한국 드라마 속 직장에 입사한다면? 잘 상상되지는 않지만 어떨지 좀 궁금하기는 하다.</p>
<p>그래서 생긴 질문. 개성 뚜렷한 캐릭터들을 만들고, 배경을 적당히 설정한 뒤에, 이 안에서 자기들끼리 쿵짝쿵짝하게 함으로써 뭔가 재미난 이야기를 자동으로 만들 수는 없을까?<span id="more-4326"></span></p>
<p>그와 관련된 연구 하나가 <a href="http://tees.openrepository.com/tees/bitstream/10149/58294/1/58294.pdf" target=_blank>여기</a>에 있다. 2002년에 나온 건데.. 개별 캐릭터에 목적을 설정하고, 이를 달성할 수 있는 다양한 방법과 플래닝 알고리즘을 준 뒤에 그들끼리 자동으로 스토리를 만들어가도록 하는 거다. 캐릭터는 계획과 상황에 따라 행동하는데, 이 과정에서 서로에게 영향을 끼쳐 스토리가 창발(emerge)하기를 기대한다. 게임처럼 사용자가 개입해서 캐릭터의 행동을 돕거나 방해할 수도 있으며, 그에 따라 스토리도 다르게 생성될 수 있도록 하는 게 목표다. 이 작업에서는 유명한 미국드라마 &#8220;프렌즈&#8221;의 캐릭터들을 가지고 스토리를 만들었다.</p>
<p>결과를 보면 알겠지만, 무척 단순한 수준이고 (어쨌든 눈에 보이는 스토리로는 말이다), 또 이런 방식으로 만들어진 스토리가 흥미로울 거라는 보장도 없다. 컴퓨터가 상당한 수준의 지식과 상식추론 능력을 갖출 때까지는 요원한 일일지 모른다. 그럼에도 이런 연구에 관심이 많이 가는 이유는, 내가 직접적으로 설계하지 않는 행동을 스스로 찾아서 하는 알고리즘이 가지는 묘한 매력 때문이다. 왠지 기특하달까.</p>
<p>심즈(Sims)라는 게임이 있다. 초기 버전밖에 안 해봐서 현재 어디까지 발전했는지는 모르겠는데, 심시티의 인간 버전이라고 생각하면 된다. 게임 속 세상에서 캐릭터(심, Sim)들은 저마다의 삶을 살고 있다. 게이머는 거기에 끼어들어서 그들의 집을 꾸미거나 옷을 사준다. 그러면 심들은 바뀐 환경에 적응하여 행동을 바꾼다. 나의 액션에 대한 리액션을 보는 맛이 새로웠지만, 특별한 목표가 없어서인지 쉽게 질려버렸다. 다른 전략 시뮬레이션 게임, 문명이나 삼국지 같은 류도 비슷했다. 처음에는 집중해서 하지만, 어느 정도 지나고 나면 왠지 모르게 식상해지고, RPG 게임이 그리워지곤 했다. 내가 온라인 게임에 재미를 붙이지 못한 것도 비슷한 이유인 것 같다.</p>
<p>바로, 몰입할 수 있는 스토리의 부재.</p>
<p>매체 속 사용자의 자유도를 높이는 동시에 그에 대한 반응을 똑똑하게 만들고, 둘 사이의 상호작용 과정에서 그럴듯한 스토리를 자동으로 만들 수 있다면 꽤 흡입력 있는 뭔가가 나오지 않을까?<!-- WSA: rules for context 'example-post-bottom' did not apply --></p>
<div id="crp_related"><h3>자동으로 찾은 관련글</h3><ul><li><a href="http://www.4four.us/article/2011/12/book-science-essay-for-presidents" rel="bookmark"></a><a href="http://www.4four.us/article/2011/12/book-science-essay-for-presidents" rel="bookmark" class="crp_title">대통령을 위한 과학 에세이: 사회 문제에 과학의 잣대를 갖다대면?</a></li><li><a href="http://www.4four.us/article/2011/02/computational-humor" rel="bookmark"></a><a href="http://www.4four.us/article/2011/02/computational-humor" rel="bookmark" class="crp_title">컴퓨터가 유머를 이해할 수 있다면</a></li><li><a href="http://www.4four.us/article/2011/12/measuring-influence" rel="bookmark"></a><a href="http://www.4four.us/article/2011/12/measuring-influence" rel="bookmark" class="crp_title">영향력을 측정하는 방법</a></li><li><a href="http://www.4four.us/article/2011/05/preventing-spoiler" rel="bookmark"></a><a href="http://www.4four.us/article/2011/05/preventing-spoiler" rel="bookmark" class="crp_title">스포일러 방지를 위한 연구</a></li></ul></div><img src="http://www.4four.us/wordpress/?ak_action=api_record_view&id=4326&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.4four.us/article/2012/03/interactive-story-generation/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>정량화 작업을 하면서 배운 것</title>
		<link>http://www.4four.us/article/2012/03/lessons-from-quantization</link>
		<comments>http://www.4four.us/article/2012/03/lessons-from-quantization#comments</comments>
		<pubDate>Mon, 12 Mar 2012 13:46:54 +0000</pubDate>
		<dc:creator>SL</dc:creator>
				<category><![CDATA[thought]]></category>
		<category><![CDATA[algorithm-for-life]]></category>
		<category><![CDATA[evaluation]]></category>
		<category><![CDATA[measure]]></category>
		<category><![CDATA[review]]></category>

		<guid isPermaLink="false">http://www.4four.us/?p=4317</guid>
		<description><![CDATA[나는 태생적으로 기록하고 티내기를 좋아한다. 이렇게 블로그에 글을 쓰고 있는 게 단적인 예다. 뿐만 아니라 매일 가계부를 쓰고, 운동 내역과 몸무게의 변화를 기록한다. 요즘은 내 기분과 감정 상태까지 기록해서 분석해볼까 그러고 있다. 하지만, 이 글에서 쓰려는 정량화가 이런 측정을 말하는 것은 아니다. 그보다는 직집적으로 측정되지 않는 것을 손에 잡히는 수치로 표현하려는 것이다. 이런 말을 하면, [...]]]></description>
			<content:encoded><![CDATA[<p>나는 태생적으로 기록하고 티내기를 좋아한다. 이렇게 블로그에 글을 쓰고 있는 게 단적인 예다. 뿐만 아니라 매일 가계부를 쓰고, 운동 내역과 몸무게의 변화를 기록한다. 요즘은 내 기분과 감정 상태까지 기록해서 분석해볼까 그러고 있다. 하지만, 이 글에서 쓰려는 정량화가 이런 측정을 말하는 것은 아니다. 그보다는 직집적으로 측정되지 않는 것을 손에 잡히는 수치로 표현하려는 것이다.</p>
<p>이런 말을 하면, 우리 삶이 그렇게 단순히 숫자로 표현되는 게 아니라는 반응이 종종 돌아오기도 하는데, 나 또한 그렇게 생각한다. 세상은 그렇게 단순하지 않다고 입버릇처럼 얘기한다. 그럼에도 불구하고 이런 정량화 시도가 의미있다고 생각하는 이유는 그 과정에서 우리가 스스로를 더 잘 이해할 수 있으며, 더 잘 생각하는 방법을 배울 수 있다고 믿기 때문이다.</p>
<p>게다가 이런 정량화의 문제는 우리가 인지하지 못할 뿐이지 일상 생활에서 수시로 맞닥뜨린다. 가령, 주말에 친구와 만나기로 했을 때, 어디서 만나 무엇을 먹을지 정하는 문제가 그렇다.<span id="more-4317"></span> 우리에겐 수많은 선택지가 있다.</p>
<ul>
<li>싼 걸 먹을까, 비싼 걸 먹을까?</li>
<li>가깝고 익숙한 동네 맛집에 갈까, 전에 누군가 추천한 새로운 레스토랑에 갈까?</li>
<li>멀지만 한적한 교외로 나갈까, 사람 우글대지만 교통이 편리한 시내로 갈까?</li>
<li>기타 등등&#8230;</li>
</ul>
<p>이 문제를 정량화한다면, 각 장소의 적절함/만족도를 수치로 표현하고 그중 가장 점수 높은 곳을 택하는 문제가 될 것이다. 그럼 먼저 적절함/만족도에 영향을 끼치는 요소를 뽑아내야 하는데, 그 답은 이미 위에 적은 질문 안에 다 있다. 비용. 접근성. 호사스러움. 일단 이 정도가 나왔다.</p>
<p>이제 각 선택지(즉 만날 장소)의 비용과 접근성, 호사스러움을 점수화 한 뒤에 이들을 합쳐서 그 선택지의 최종 점수를 결정하면 된다. 호사스러움은 다분히 주관적인 요소이므로 객관적인 점수화는 힘들고 개인이 적당히 알아서 정해야 한다. (물론, 호사스러움을 다시 세분화해서, 가령 직원의 친절도, 메뉴의 희귀함, 소파의 안락함 등의 합으로 정량화할 수도 있을 것이다.) 그에 비해, 음식값과 거기까지 가는 데 걸리는 시간은 예측할 수 있으므로 비용과 접근성은 상대적으로 간단해 보인다.</p>
<p>복잡하게 하려면 그또한 얼마든지 가능하다. 예를 들어, 한끼 5천원하는 식당 A와 2만원하는 식당 B가 있을 때, A의 비용 점수가 B의 비용 점수보다 4배 더 높아야 할까? 만약 한끼 10만원하는 식당 C가 있다면, C의 비용 점수는 B보다 5배 더 높으면 충분할까?</p>
<p>세상에는 다양한 사람들이 있다. 한 끼 배를 채우는 데 5천원 이상 쓰는 건 아깝다고 생각하는 사람 P가 있는가 하면, 맛만 좋다면 2만원까지 쓰겠다는 사람 Q도 있다. P의 경우는 가격이 5천원만 넘어가도 점수가 급격히 떨어질 것이고, Q의 경우는 2만원까지는 그럭저럭 완만한 형태의 점수 그래프가 나올 것이다. 각자가 생각하는 식사 예산에 따라서 가격 대비 비용 점수 그래프는 다양한 모양을 띤다.</p>
<p>아무튼 어찌어찌해서 각 요소의 점수가 나왔다고 치자. 이제 이들을 합쳐서 최종 점수를 구해야 하는데, 그러려면 각 요소의 중요성을 결정해야 한다. 어차피 소화되면 똑같은 밥을 먹는 데 돈을 쓰는 건 낭비라고 생각하는 사람 R이 있는가 하면, 인생에서 밥을 먹는 횟수는 한정되어 있으므로 식사는 의무가 아니라 누려야 할 기회라고 생각하는 사람 S도 있다.</p>
<p>앞에서 말한 5천원/2만원의 P/Q와 비슷해 보이지만, 분명한 차이가 있다. P와 Q는 가격의 변화에 민감하지만, 지금 얘기하는 R과 S는 가격 &#8220;점수&#8221;의 변화에 민감하다.<sup><a href="http://www.4four.us/article/2012/03/lessons-from-quantization#footnote_0_4317" id="identifier_0_4317" class="footnote-link footnote-identifier-link" title="서로 구분하기는 했지만 둘 사이에 상관관계는 분명히 있다.">1</a></sup> 극단적으로 얘기해서 비용의 가중치를 0.000001로 엄청 작게 해버리면, 비용 점수가 아무리 차이가 나더라도 최종 선택에는 별 영향을 끼치지 못할 것이다. 반대로 가중치가 너무 크면, 사소한 가격차이가 너무 과장되어 약간의 비용을 절감하려다 오히려 좋은 기회를 날릴 수도 있다. 즉, 각 요소만 점수화하는 것이 아니라 그 요소의 중요도 역시 적절하게 수치화해야 한다.</p>
<p>써놓고 보니 참 당연한 얘기지만, 이로부터 배운 점을 몇 가지 써본다.</p>
<ol>
<li>어떤 결정을 내릴 때는 그와 관련된 요소를 최대한 찾아내야 한다. 억지스러운 게 있더라도 일단은 다 뽑아서 나열한다. 정 필요없으면 나중에 가중치를 0으로 해버리면 된다.</li>
<li>각 요소에 대한 자기만의 평가 기준을 만들고 그에 따라 점수를 매긴다. 그 과정에서 각 요소에 내가 얼마나 민감한지 생각해볼 수 있고, 받아들일 수 있는 한계점을 설정할 수도 있을 것이다.(ex. &#8216;난 밥 먹는 데 얼마까지 쓸 준비가 되어 있는가?&#8217;) 중요한 점은 이런 생각을 명시적으로 해본다는 것이다.</li>
<li>마지막으로 개별 요소의 중요성을 결정한다. 이때 주의할 점은, 이미 갖고 있는 것을 당연하게 여긴 나머지 그 중요도를 과소평가하는 경향이다. 예를 들면, 위의 예에서 음식의 위생에 대해서는 별로 중요하게 여기지 않았다. 한국의 식당 위생에 대해서는 어느 정도 신뢰하고 있기 때문에 암묵적으로 모든 선택지의 위생 점수를 엇비슷하게 주고 가중치도 그렇게 높게 책정하지 않았다. 하지만 항상 그랬던 것은 아니다. 경험을 돌이켜보면, 이집트나 중국을 여행하는 동안에는 물 하나 사먹을 때도 가격이나 시원함 뭐 이런 것보다는 브랜드와 위생에 훨씬 높은 가중치를 부여했었다. 그때는 그게 당연하지 않았기 때문이다. 우리가 무언가를 당연하게 여기는 것은 그게 이미 주어졌기 때문이지 그게 중요하지 않기 때문이 아니다. 나의 요구사항과 현재 상황에 따라 적절하게 가중치를 매기는 것은 그래서 중요하다. 그러지 않으면, 외국에서 한국에서와 동일한 기준으로 물을 사먹고 배탈이 나서 여행 기간 내내 화장실에서 괴로워하며 소중한 것은 잃고난 후에야 그 소중함을 깨닫는다는 격언을 곱씹고 있었을지도 모를 노릇이다.</li>
</ol>
<p>눈에 보이는 것을 평가하기는 그나마 좀 쉬운 편이다. 남이 해놓은 결과를 보고 &#8216;간단하네&#8217;라고 여기거나 그 작업에서 잘못된/아쉬운 것을 발견하기는 쉽지 않던가. 물론 그런 것도 필요하지만, 그와 동시에 내가 지금 평가하고 있는 것의 눈에 보이지 않는 가치 -평가받고 있는 바로 그것이 이미 해결했기 때문에 당연하게 여겨지는- 를 찾아내는 안목 또한 필요하다. 이것이 내가 소소한 정량화 경험을 통해서 얻은 작은 교훈이다.<!-- WSA: rules for context 'example-post-bottom' did not apply --></p>
<div id="crp_related"><h3>자동으로 찾은 관련글</h3><ul><li><a href="http://www.4four.us/article/2009/12/display-random-posts-in-wordpress-sidebar" rel="bookmark"></a><a href="http://www.4four.us/article/2009/12/display-random-posts-in-wordpress-sidebar" rel="bookmark" class="crp_title">오래된 블로그 글 랜덤으로 보여주기 &#8211; 워드프레스</a></li><li><a href="http://www.4four.us/article/2011/02/take-advantage-of-constraints" rel="bookmark"></a><a href="http://www.4four.us/article/2011/02/take-advantage-of-constraints" rel="bookmark" class="crp_title">모든 일에 마감시간을 정하라</a></li><li><a href="http://www.4four.us/article/2012/04/evaluation-is-difficult" rel="bookmark"></a><a href="http://www.4four.us/article/2012/04/evaluation-is-difficult" rel="bookmark" class="crp_title">평가가 중요하다</a></li><li><a href="http://www.4four.us/article/2010/06/how-to-find-time-sensitive-queries" rel="bookmark"></a><a href="http://www.4four.us/article/2010/06/how-to-find-time-sensitive-queries" rel="bookmark" class="crp_title">시간성이 중요한 쿼리를 어떻게 찾을까?</a></li></ul></div><ol class="footnotes"><li id="footnote_0_4317" class="footnote">서로 구분하기는 했지만 둘 사이에 상관관계는 분명히 있다.</li></ol><img src="http://www.4four.us/wordpress/?ak_action=api_record_view&id=4317&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.4four.us/article/2012/03/lessons-from-quantization/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>부천 성북동 생돈까스</title>
		<link>http://www.4four.us/article/2012/01/at-a-crowded-restaurant</link>
		<comments>http://www.4four.us/article/2012/01/at-a-crowded-restaurant#comments</comments>
		<pubDate>Sun, 01 Jan 2012 13:16:17 +0000</pubDate>
		<dc:creator>SL</dc:creator>
				<category><![CDATA[thought]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[management]]></category>

		<guid isPermaLink="false">http://www.4four.us/?p=4302</guid>
		<description><![CDATA[부천에 있는 성북동 생돈까스집에 저녁을 먹으러 갔다. 익히 들은 대로 대기줄이 길었다. 네 팀 정도가 앞에 있었고, 기다리는 동안에도 우리 뒤에 계속 사람들이 와서 붙었다. 돈까스 1인분의 가격은 7,000원, 양은 무척 많았으나 맛이 특출난 정도는 아니었다. 줄 서 있는 사람들을 물끄러미 바라보다가, 이들이 자발적인 가게 홍보 외에도 다른 실질적인 효과를 만들어낼 것 같다는 생각이 들었다. [...]]]></description>
			<content:encoded><![CDATA[<p>부천에 있는 성북동 생돈까스집에 저녁을 먹으러 갔다. 익히 들은 대로 대기줄이 길었다. 네 팀 정도가 앞에 있었고, 기다리는 동안에도 우리 뒤에 계속 사람들이 와서 붙었다. 돈까스 1인분의 가격은 7,000원, 양은 무척 많았으나 맛이 특출난 정도는 아니었다.</p>
<p>줄 서 있는 사람들을 물끄러미 바라보다가, 이들이 자발적인 가게 홍보 외에도 다른 실질적인 효과를 만들어낼 것 같다는 생각이 들었다. 일단 영업시간 동안 식당의 가동률(회전률?)을 높여주지 않는가. 밥을 먹으면서 머릿속으로 간단하게 계산기를 두드려봤다.<span id="more-4302"></span></p>
<ul>
<li>테이블 9개</li>
<li>테이블당 보통 2명이 앉아 있었고, 먹는 메뉴들을 슬쩍 보니 돈까스 하나에 면 하나가 많았다. (7,000원 + 5,000원)</li>
<li>평균 체류시간은 대략 30분</li>
<li>식사 피크타임은 점심 11시부터 13시까지 2시간, 저녁 17시부터 19시까지 2시간, 총 4시간</li>
</ul>
<p>만약 평균적으로 테이블이 하나씩 비어 있다면 매출은 얼마나 될까?</p>
<blockquote><p>테이블 8개 * 12,000원 * 2 * (120분 / 30분) = 768,000원</p></blockquote>
<p>대기하는 고객이 있음으로써 발생하는 효과는 두 가지가 있다.</p>
<ol>
<li><strong>가동률 상승</strong>: 테이블이 비자 마자 바로 다음 손님을 받을 수 있다.</li>
<li><strong>체류시간 감소</strong>: 기다리면서 메뉴를 미리 골라두는 것도 있고, 또 눈앞에 기다리는 사람이 보이면 먹는 속도나 다 먹은 후 행동이 아무래도 빨라지지 않을까?</li>
</ol>
<p>이 효과를 고려해서 테이블 9개가 꽉 차서 활용되고, 체류시간이 5분 감소한다고 가정하면,</p>
<blockquote><p>테이블 9개 * 12,000원 * 2 * (120분 / 25분) = 1,080,000원</p></blockquote>
<p>부정확한 추측과 작위적인 가정으로 계산한 것이기는 하지만, 매출 40% 상승?<sup><a href="http://www.4four.us/article/2012/01/at-a-crowded-restaurant#footnote_0_4302" id="identifier_0_4302" class="footnote-link footnote-identifier-link" title="테이블 가동률 상승보다는 체류시간 감소로 인한 효과가 크게 잡혔다.">1</a></sup> 돈까스를 다른 데보다 많이 준다고 비용이 그만큼 늘었을 것 같지는 않은데 말이다.</p>
<p>이 말인즉슨, 음식량을 늘리든 아니면 뭐 다른 유인책을 쓰든 간에 손님이 스스로 가게 앞에서 기다리게 만들 수만 있다면 그로부터 얻을 수 있는 게 생각보다 많다는 뜻 아닐까?<!-- WSA: rules for context 'example-post-bottom' did not apply --></p>
<div id="crp_related"><h3>자동으로 찾은 관련글</h3><ul><li><a href="http://www.4four.us/article/2009/03/creditcard-for-asiana-mileage" rel="bookmark"></a><a href="http://www.4four.us/article/2009/03/creditcard-for-asiana-mileage" rel="bookmark" class="crp_title">아시아나 삼성애니패스 플래티늄카드</a></li><li><a href="http://www.4four.us/article/2007/12/fileless-desktop-user-interface" rel="bookmark"></a><a href="http://www.4four.us/article/2007/12/fileless-desktop-user-interface" rel="bookmark" class="crp_title">파일없는 데스크탑 인터페이스가 가능할까?</a></li><li><a href="http://www.4four.us/article/2008/07/two-reasons" rel="bookmark"></a><a href="http://www.4four.us/article/2008/07/two-reasons" rel="bookmark" class="crp_title">두 가지 이유</a></li><li><a href="http://www.4four.us/article/2011/11/how-i-lost-my-iphone-again" rel="bookmark"></a><a href="http://www.4four.us/article/2011/11/how-i-lost-my-iphone-again" rel="bookmark" class="crp_title">그날밤 내가 자는 동안 무슨 일이?</a></li></ul></div><ol class="footnotes"><li id="footnote_0_4302" class="footnote">테이블 가동률 상승보다는 체류시간 감소로 인한 효과가 크게 잡혔다.</li></ol><img src="http://www.4four.us/wordpress/?ak_action=api_record_view&id=4302&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.4four.us/article/2012/01/at-a-crowded-restaurant/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

