필터 버블(Filter Bubble) 개념 필터 버블(Filter Bubble)은 사용자의 정보(위치, 클릭, 검색 이력 등)를 통해 개인화된 결과물을 기반으로 사용자가 필터링된 정보만을 접하게 되어 마치 거품처럼 사용자를 가둬버리는 현상을 말합니다. 이 용어는 미국의 정치 참여 시민단체 '무브온'의 이사장인 엘리 프레이저(Eli pariser)의 생각 조종자들(원제 The Filter Bubble, 2011)이라는 저서에 처음 등장하였습니다. 즉 어찌보면 개인화(Personalize)의 함정이 될 수 있는데 우리가 일반적으로 알 수 있는 것은 유튜브등을 통해서 특정 정치 성향의 내용을 보다보면, 온통 그 정치 성향의 컨텐츠로 도배를 하여 모든 사람들이 이런 생각을 하게 되는 착각에 빠지곤 합니다. 필터..
아마존 추천 시스템 미국에서 가장 추천을 많이 활용하는 기업 3개(넷플릭스, 구글, 아마존) 중 아마존(Amazon) 역시 넷플릭스와 구글처럼 독자적인 모습의 추천 사례들을 만들어 왔습니다. 사실 아마존은 다른 업체보다 추천 시스템을 빨리 사용했으며, 협업 필터링을 무려 2003년부터 사용한 것을 알 수 있습니다. 위 리포트는 아마존이 2003년도에 낸 리포트로 제목을 보면 알 수 있지만 Item-to-Item 기반의 협업 필터링을 사용했다는 것을 알 수 있습니다. 아마존은 협업필터링 중 특히 Item-to-Item에서 많은 효과를 보고 있다고 하는데 매출의 35% 이상을 추천 알고리즘으로 내고 있다고 말을 하기도 했습니다. 아마존은 현재 전자상거래가 가장 큰 매출을 차지하고 있지만, Prime Vide..
개체명은 단어의 의미를 어느정도 파악하기 위해서 사용하는 방법으로 단어의 꼬리표를 다는 방법이다. 예를 들어, 홍길동이라는 것은 사람이름이고, 삼성전자는 기업이름이라고 한다면, 컴퓨터는 문서의 내용을 어느정도 이해할 수 있게 된다. 게다가 많은 개체명의 경우 복합 명사인 경우가 많은데 의미와 함께 단어를 복합명사로 추출하여, 강력한 분석용 단어를 추출할수도 있게 된다. 형태소 분석은 순수하게 의미가 있는 단어로 최대한 잘게잘게 나누기 때문에 문장의 뜻을 정확하게 알기 위해서는 분명 필요한 기능일 수 있으나, 데이터 분석에서 사용을 하게 되는 경우 너무 작은 단위의 단어는 feature만 늘어나게 되고, 문서간의 유사도 등을 비교하거나 검색에서 문서를 찾을 때에도 비효율적이 된다. 개체명 구현 코드 (Ko..
금칙어는 자연어 처리(NLP)에서 원치 않는 데이터를 제거하기 위한 방법중 가장 효과가 좋은 방법입니다. 형태소 분석으로 생성된 품사라든지, 개체명 사전에서 생성된 개체명이 마음에 들지 않을 경우 금칙어 사전을 만들어서 대응을 하는 것이죠. 품사 사전이나 개체명 사전에서 지우면 되는 것이 아니냐 할 수 있는데 사전이라는 것은 다양한 곳에서 활용이 될 수 있으며, 특정 서비스에서만 제거가 필요한 경우가 있을 수 있기 때문이고, 제대로 추출이 되었지만 필요가 없을 수도 있기 때문입니다. 금칙어 예제 소스 private Set STOP_KWD; public void action() { setStopKwd(); Komoran komoran = new Komoran(DEFAULT_MODEL.FULL); Strin..
자연어처리에서 가장 많은 시간을 소요하는 것이 무엇일까? 현업이라면 아마 이런 말을 하지 않을까 싶다. 바로 사전을 만드는 작업이다. 자연어처리는 사전을 만들면 만들수록 품질이 좋아지게 되는데 이는 현재 존재하는 오픈 품사 사전이 매우 적으며, 개체명과 신조어 같은 것들이 포함이 되어 있지 않기 때문이다. 일반적으로 상용 검색엔진에서 제공하는 사전은 약 100만개 이상의 품사를 지원하고 활용하게 되는데 이는 이전 포스팅에서 작성한 형태소 분석 확인 사이트에서 엑소브레인(Exobrain)과 코모란(Komoran)의 형태소 분석 품질을 보면 쉽게 알 수 있다. 오픈소스를 활용해서 구축해야 하는 경우 일반적으로 사용자사전을 상황에 따라 많이 구축하게 되며, 이를 별도로 맡는 분들이 따로 계신다. 마치 딥러닝에..
코모란은 Java에서 사용하는 대표적인 오픈소스 형태소 분석기 중 하나이다. 사용하기가 매우 편리하고, 형태소 분석 성능 역시 뛰어나기 때문에 Java든 Python이든 많이 사용하고 있다. Pom.xml 우선 코모란을 설정하기 위해서 pom.xml 디펜던시(dependency)를 설정해야 하는데 코모란 디펜던시를 위해서 레파지토리도 추가해야 한다. Repository jitpack.io https://jitpack.io Dependency com.github.shin285 KOMORAN 3.3.4 위와 같이 pom.xml 설정이 완료되면, pom.xml을 업데이트하여, 디펜던시 jar 파일을 다운로드 한다. repository -> com -> github -> shin285 -> KOMORAN -> ..
형태소 분석을 하기 위해서는 당연히 형태소 분석기를 돌리면 되지만, 형태소 분석기를 교차검증 해야 될 필요도 있고 다른 형태소 분석기는 어떻게 분석을 하는지 알아야 될 때도 있다. 각설하고, 우리나라에는 대표적으로 형태소 분석을 확인할 수 있는 사이트가 여럿있지만 여기서는 2가지를 설명해보고자 한다. 엑소브레인(Exobrain) 엑소브레인은 한국전자통신연구원(ETRI, 에트리)와 국내 인공지능 및 검색업체와 같이 프로젝트를 한 사업으로 참여한 업체는 와이즈넛(Wisenut)과 솔트룩스(Saltlux) 등이 있다. 와이즈넛과 솔트룩스는 상용 검색엔진을 만드는 업체로 국내 다섯손가락 안에 드는 업체이기 때문에 자연어처리 기술이 매우 잘 발달되어 있다. 엑소브레인은 에트리와 국내 굴지의 업체들이 함께 만들었으..
자연어처리에 관련된 업무를 하기 위해서 가장 필요한 지식은 바로 품사에 대한 이해이다. 우리가 학창 시절에 공부를 했기 때문에 다들 품사가 무엇인지 어느정도 알고 있을테지만, 자연어처리를 더욱 잘 이해하기 위해서는 품사에 대한 이해를 학창 시절 이상으로 끌어올려야 한다. 게다가 자연어처리를 하는 대다수는 컴퓨터 공학을 전공한 이과생들이기 때문에 문과생들보다 품사에 대한 이해가 상대적으로 떨어질 수 있기에 자연어 처리를 할 때 사용하는 품사들의 종류가 무엇인지 조금 더 자세히 알아 볼 필요가 있다. 형태소 분석 품사를 붙이는 행위를 PoS(Part of Speech, 품사) Tagging이라고 한다. 형태소 분석은 의미있는 가장 작은 단위의 말(형태소)을 분석한다라는 뜻을 담고 있기에 Pos Tagging..
이전 포스팅에서는 넷플릭스(Netflix)에 대해서 알아보았다. 다만 많은 추천(Recommendation)을 연구하는 연구원과 다르게 일반 사용자들 특히 대한민국 국민들은 넷플릭스를 추천의 대명사처럼 생각하지는 않을 것이다. 왜냐하면 우리가 추천이라는 것을 별도로 인지하기 힘이 들며, 넷플릭스 추천의 경우 잘 만든 큐레이션 처럼 생각할 수 있기 때문이다. 그에 반해 한국 국민들은 유튜브의 추천 알고리즘을 긍정적이고 핫하게 생각하는 경우가 많다. "알 수 없는 유튜브의 추천 알고리즘이 나를 여기로 이끌었다"[1]와 같은 댓글처럼 유튜브의 추천 알고리즘은 많은 사용자들에게 매우 신기하고 경이로운 영역이며 사람들이 인공지능(AI)을 긍정적으로 평가할 수 있는 요소로 자리잡기도 했다. 브레이브 걸스 역주행 사..
최근들어 유튜브(Youtube)의 "오늘도 알 수 없는 유튜브 알고리즘이 나를 이 영상으로 끌고왔다" 라는 댓글이 밈처럼 퍼져서 추천의 상징처럼 되어가고 있지만 추천시스템을 만드는 사람에게는 넷플릭스(Netflix)를 떠올리지 않을 수 없다. 퀀텀 이론(Quantum Theory) 넷플릭스는 콘텐츠를 추천하는 것으로 큰 재미를 보았지만 어느 순간 추천의 한계를 느끼게 되었다. 이를 극복하기 위해 자체적으로 만든 퀀텀 이론(Quantum Theory)라는 것을 만들어 콘텐츠를 분류하였다. 더이상 분류할 수 없을 정도로 쪼개는 양자(Quantum) 단위로 7만 6000여개의 자체적인 장르를 만든 후 내부적으로 평가하는 과정을 통해서 영화별로 수많은 분류 태그를 만들고 데이터베이스를 만들었다. 이렇게 엄청난 ..
추천시스템의 개념 추천 시스템(Recommender System)에 대한 정의는 다음과 같이 정의 할 수 있다. 사용자의 행동 데이터와 대상 데이터(ex: 상품, 영화 등등)를 분석하여 사용자의 현재 상황에 가장 적절한 대상 데이터를 추천하는 시스템 적절한 추천을 만들기 위해서 수많은 사람들이 연구를 해왔고, 한 사이트내에서는 적게는 하나부터 많게는 몇백개(혹은 천개 이상일수도)의 알고리즘이 존재하기도 한다. 미국을 대표하는 FANG(Facebook, Amazon, Netflix, Google) 기업들 중, 추천 서비스를 매우 적극적으로 활용하는 기업이 아마존(Amazon)과 넷플릭스(Netflix)이고 특히 넷플릭스=추천서비스라는 기업으로 알려지게 되면서 그동안 국내에서도 등한시 했던 추천에 대한 연구..
머클트리(merkle tree), 머클루트(merkle root), 머클해시(merkle hash), 해시트리(hash tree) 다 비슷한 용어로 약간의 차이점만 있을 뿐 모두가 뜻하는 바는 동일하다. 우리가 암호화폐에 투자를 하거나 블록체인에 대해서 이해를 하려면 머클트리의 기술 정도는 이해를 할 수 있어야 하며 내용상 이해하기 어려운 것도 아니니 쫄 것도 없다. 머클트리는 암호화폐가 나오면서 만들어진 기술이 아니라, 1979년 랄프 머클이라는 사람이 만들어낸 개념으로, 일반적으로 트리 알고리즘들이 검색을 위해서 만들어졌다면 머클트리는 검증을 위해서 만들어진 트리이다. (여기까지 이해가 안되더라도 그냥 넘어가도록 한다) 머클트리의 구조 머클트리는 위와 같은 구조로 되어 있고, 최상위 블록헤더(Bloc..