온라인상에서 다루어지는 비정형 텍스트 데이터는 대용량이면서 비구조적 형태의 특성을 가지고 있기 때문에, 기존 관계형 데이터 모델의 저장 방식과 분석 방법만으로는 한계가 있다. 더군다나, 동적으로 발생하는 대량의 소셜 데이터를 활용하여 이용자의 반응을 실시간으로 분석하기란 어려운 상황이다. 이에 본 논문에서는 대용량 비정형 데이터(문서)의 의미를 빠르고, 용이하게 파악하기 위하여 데이터 셋에 대한 사전학습 없이, 문서 내 단어 비중에 따라 자동으로 토픽(주제)이 추출되는 시스템을 설계 및 구현하였다. 제안된 시스템의 토픽 모델링에 사용될 입력 단어는 N-gram알고리즘에 의하여 도출되어 복수 개의 단어도 묶음 처리할 수 있게 했으며, 또한, 대용량 비정형 데이터 저장 및 연산을 위하여 Hadoop과 분산 인메모리 처리 프레임워크인 Spark 기반 클러스터를 구성하여, 토픽 모델 연산을 수행하였다. 성능 실험에서는 TB급의 소셜 댓글 데이터를 읽어 들여, 전체 데이터에 대한 전처리 과정과 특정 항목의 토픽 추출 작업을 수행하였으며, 대용량 데이터를 클러스터의 디스크가 아닌 메모리에 바로 적재 후, 처리함으로써 토픽 추출 성능의 우수성을 확인할 수 있었다.
온라인상에서 다루어지는 비정형 텍스트 데이터는 대용량이면서 비구조적 형태의 특성을 가지고 있기 때문에, 기존 관계형 데이터 모델의 저장 방식과 분석 방법만으로는 한계가 있다. 더군다나, 동적으로 발생하는 대량의 소셜 데이터를 활용하여 이용자의 반응을 실시간으로 분석하기란 어려운 상황이다. 이에 본 논문에서는 대용량 비정형 데이터(문서)의 의미를 빠르고, 용이하게 파악하기 위하여 데이터 셋에 대한 사전학습 없이, 문서 내 단어 비중에 따라 자동으로 토픽(주제)이 추출되는 시스템을 설계 및 구현하였다. 제안된 시스템의 토픽 모델링에 사용될 입력 단어는 N-gram 알고리즘에 의하여 도출되어 복수 개의 단어도 묶음 처리할 수 있게 했으며, 또한, 대용량 비정형 데이터 저장 및 연산을 위하여 Hadoop과 분산 인메모리 처리 프레임워크인 Spark 기반 클러스터를 구성하여, 토픽 모델 연산을 수행하였다. 성능 실험에서는 TB급의 소셜 댓글 데이터를 읽어 들여, 전체 데이터에 대한 전처리 과정과 특정 항목의 토픽 추출 작업을 수행하였으며, 대용량 데이터를 클러스터의 디스크가 아닌 메모리에 바로 적재 후, 처리함으로써 토픽 추출 성능의 우수성을 확인할 수 있었다.
As on-line informal text data have massive in its volume and have unstructured characteristics in nature, there are limitations in applying traditional relational data model technologies for data storage and data analysis jobs. Moreover, using dynamically generating massive social data, social user'...
As on-line informal text data have massive in its volume and have unstructured characteristics in nature, there are limitations in applying traditional relational data model technologies for data storage and data analysis jobs. Moreover, using dynamically generating massive social data, social user's real-time reaction analysis tasks is hard to accomplish. In the paper, to capture easily the semantics of massive and informal on-line documents with unsupervised learning mechanism, we design and implement automatic topic extraction systems according to the mass of the words that consists a document. The input data set to the proposed system are generated first, using N-gram algorithm to build multiple words to capture the meaning of the sentences precisely, and Hadoop and Spark (In-memory distributed computing framework) are adopted to run topic model. In the experiment phases, TB level input data are processed for data preprocessing and proposed topic extraction steps are applied. We conclude that the proposed system shows good performance in extracting meaningful topics in time as the intermediate results come from main memories directly instead of an HDD reading.
As on-line informal text data have massive in its volume and have unstructured characteristics in nature, there are limitations in applying traditional relational data model technologies for data storage and data analysis jobs. Moreover, using dynamically generating massive social data, social user's real-time reaction analysis tasks is hard to accomplish. In the paper, to capture easily the semantics of massive and informal on-line documents with unsupervised learning mechanism, we design and implement automatic topic extraction systems according to the mass of the words that consists a document. The input data set to the proposed system are generated first, using N-gram algorithm to build multiple words to capture the meaning of the sentences precisely, and Hadoop and Spark (In-memory distributed computing framework) are adopted to run topic model. In the experiment phases, TB level input data are processed for data preprocessing and proposed topic extraction steps are applied. We conclude that the proposed system shows good performance in extracting meaningful topics in time as the intermediate results come from main memories directly instead of an HDD reading.
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
문제 정의
문서 데이터 내에서 특정 단어 묶음이 실제적으로 전체 문맥 속에서 개별 단어와 같은 역할을 하기 때문에 “단어 묶음을 잘 찾아낼 경우 해당 문서 전체를 잘 파악할 수 있다”고 판단하였으며, 이에 본 논문에서는 토픽 모델링시 개별 단어 입력보다는 N-gram의 결과물인 단어 묶음을 입력 값으로 사용함으로써 우수한 토픽 추출을 달성하고자 하였다.
제안 방법
2와 같다. LDA 토픽 모델의 입력 단어는 N-gram 알고리즘을 통하여 생성되며, 단순히 단어 하나를 입력 단위로 생각하지 않고 특정 단어들의 묶음을 한 단위로 보고 처리하였다. 먼저, 인터렉티브한 분석을 위하여 1) 함수적 언어의 절차적 처리와 SQL의 선언적 처리를 동시 만족할 수 있는 SparkSQL[12] 데이터 프레임으로 전체 텍스트 데이터를 읽어 들인다.
실험은 먼저 전처리 과정을 거친 “Fitness” 관련 댓글 내용인 비정형 데이터 셋에 대하여 N-gram 처리하였다. 그 후 LDA 모델을 통하여 토픽을 추출했으며, 토픽 당 단어 개수는 5로, 최대 반복 횟수는 50으로 고정하였다.
본 논문에서는 대용량 비정형 텍스트 데이터에 대한 토픽 추출 시스템을 설계 및 구축하였으며, N-gram을 이용하여 단어 묶음을 구분한 후, LDA 토픽 모델을 통한 토픽 추출 및 문서 데이터의 의미를 분석하였다. 제안된 시스템에서는 Hadoop과 Spark(분산 인메모리 처리 프레임워크) 기반으로 데이터 저장 및 연산 클러스터를 구성하였기 때문에, 데이터 처리시 디스크 접근을 최소화하고 모든 중간 산출 결과를 메모리상에서 처리하므로 고속의 처리 성능을 얻을 수 있다.
본 논문에서는 대용량 비정형 텍스트 데이터의 의미를 빠르고, 효율적으로 파악하기 위하여 데이터 셋에 대한 사전학습 없이(Unsupervised), 문서 내 단어 비중에 따라 자동으로 토픽(주제)이 추출되는 시스템을 설계 및 구현하였다. 제안된 시스템의 토픽 모델에 사용될 단어는 N-gram 알고리즘[2]에 의하여 도출되어 복수 개의 단어도 묶음 처리할 수 있게 했으며, 또한, 대용량 비정형 데이터 저장 및 연산을 위한 클러스터 관리자로 Hadoop의 YARN(Yet Another Resource Negotiator)[3]을 채택하였다.
본 분산처리 시스템은 다양한 비정형 문서 집합에서 토픽 들을 추출해 내기 위한 시스템으로 Spark 인메모리 분산 처리 플랫폼을 채택하여, 대용량 데이터에 대한 고속 분석이 가능하도록 설계하였다. 대용량 데이터의 저장을 담당하는 Hadoop 클러스터 상에 동작하는 Spark 플랫폼은, Fig.
제안된 시스템에서는 Hadoop과 Spark(분산 인메모리 처리 프레임워크) 기반으로 데이터 저장 및 연산 클러스터를 구성하였기 때문에, 데이터 처리시 디스크 접근을 최소화하고 모든 중간 산출 결과를 메모리상에서 처리하므로 고속의 처리 성능을 얻을 수 있다. 실험에서는 약 16억 개의 레코드로 구성된 1TB 소셜 댓글 데이터를 읽어 들여 전체 데이터에 대한 전처리 과정과 토픽 분석을 수행하였으며, 분석 시간 단축을 확인하였다.
실험은 먼저 전처리 과정을 거친 “Fitness” 관련 댓글 내용인 비정형 데이터 셋에 대하여 N-gram 처리하였다.
확률 이론에 기반한 토픽 모델은 텍스트로 구성된 문서 내에 숨겨져 있는 토픽(의미)들을 찾기 위해 고안된 통계적 추론 기법이며 대표적으로 PLSA[6]와 LDA가 있다. 이들 중 본 논문에서는 대용량 빅데이터 처리에 적합한, 즉, 분산-병렬 처리에 적합한 LDA 기법을 채택하여, Hadoop YARN 기반 Spark 클러스터 환경에서 토픽 추출 시스템을 설계 및 구현하였다. 한편, [7]에서는 LDA 토픽 모델을 Hadoop 기반 Mapreduce 프레임워크 상에서 온라인 학습기를 개발하였으나, 디스크 기반 연산을 수행함으로 인해, 인메모리 기반 Spark 에 비해 성능에 한계가 있다.
음절 단위로 N-gram 알고리즘을 적용했을 경우, n개의 문자열 크기만큼의 창(Window) 을 만들어 문자열을 왼쪽에서 오른쪽으로 한 단위씩 움직이며 추출되는 문자 요소 집합(Character Item Set)의 출현을 수집한다. 이러한 방식으로 두 개의 문자열 각각의 문자 요소 집합을 수집한 후 출현 빈도를 비교함으로써 두 문자열을 비교해서 그 결과를 수치로 표현한다. 이때 n 값은 의미가 있다고 생각하는 음절의 수로 지정하면 되는데, 이 값이 1인 경우는 Unigram, 2인 경우는 Bigram, 3인 경우는 Trigram 이라고 한다.
제안된 시스템의 토픽 모델에 사용될 단어는 N-gram 알고리즘[2]에 의하여 도출되어 복수 개의 단어도 묶음 처리할 수 있게 했으며, 또한, 대용량 비정형 데이터 저장 및 연산을 위한 클러스터 관리자로 Hadoop의 YARN(Yet Another Resource Negotiator)[3]을 채택하였다. 인메모리 기반의 Spark[4] 플랫폼을 적용하여 대용량 데이터에 대한 처리를 디스크에서 메모리로 옮겨 처리 속도를 높였다. 이는 Hadoop 클러스터에 분산 저장된 대용량 데이터 연산시 디스크 접근을 최소화하고 모든 중간 계산 데이터를 메모리에 올려놓은 상태에서 처리하므로 고속의 처리 효과를 얻을 수 있기 때문이다.
입력 데이터 셋에 대한 전처리 과정을 통해, 서브 항목 (Sub Item)이 “Fitness”인 데이터들 중에서 “댓글” 속성에 대해서만 추출하였으며, 이는 “Fitness” 서브 항목의 경우, 토픽 분류가 비교적 확실할 것으로 예상하였기 때문이며, 비 포함된 다른 서브 항목들도 동일한 실험 방식을 적용하여 토픽을 추출할 수 있다.
Spark는 RDD(Resilient Distributed Data)[9]라는 DAG(Directed Acyclic Graph) 형식의 데이터 단위 처리 구조를 사용하기 때문에 클러스터 구성하는 모든 Slave 노드의 메모리를 효율적으로 사용할 수 있으며, 이러한 이유로 기존 빅데이터 분석 플랫폼에서 사용 중인 MapReduce[10] 기법 적용시 발생하는 디스크 병목 현상이 제거되어 분석에 소요되는 시간을 획기적으로 줄일 수 있다[11]. 제안된 시스템에서는 Master 노드(Cluster Manager)에 YARN의 RM (ResourceManager)를 두었으며, 각각의 Slave 노드에는 AM (ApplicationMaster)과 NM(NodeManager)를 두어서, AM에서는 작업 스케줄링 처리를, NM는 데이터 처리를 담당하도록 했다.
대상 데이터
실험을 위해 구축된 프로토타입 클러스터는 1대의 Master 와 총 6대의 Slave 노드로 구성되어 있다. 실험환경 세부 스펙은 Table 1과 같으며, 클러스터 전체 메모리는 384 GB이며, HDD 용량은 64 TB가 된다.
이론/모형
다음으로 2) 토픽 추출을 위한 전처리 과정으로 문서 별 단어 분리 작업을 수행한 후, 각 문서 당 분리된 단어들에서 불용어(Stopword) 제거를 실시한다. 그 후, 3) 정제된 단어들로만 구성된 문서에 대하여 N-gram 알고리즘을 수행한다(Fig. 3 참조). 이때, 단어 개수를 달리하여 하나의 단어 묶음으로 처리한다.
본 논문에서는 대용량 비정형 텍스트 데이터의 의미를 빠르고, 효율적으로 파악하기 위하여 데이터 셋에 대한 사전학습 없이(Unsupervised), 문서 내 단어 비중에 따라 자동으로 토픽(주제)이 추출되는 시스템을 설계 및 구현하였다. 제안된 시스템의 토픽 모델에 사용될 단어는 N-gram 알고리즘[2]에 의하여 도출되어 복수 개의 단어도 묶음 처리할 수 있게 했으며, 또한, 대용량 비정형 데이터 저장 및 연산을 위한 클러스터 관리자로 Hadoop의 YARN(Yet Another Resource Negotiator)[3]을 채택하였다. 인메모리 기반의 Spark[4] 플랫폼을 적용하여 대용량 데이터에 대한 처리를 디스크에서 메모리로 옮겨 처리 속도를 높였다.
성능/효과
본 실험을 통해, 방대한 양의 비정형 데이터인 소셜 데이터 전체를 읽어 들여 분석하는데 인메모리 방식의 Spark를 이용할 경우 처리 속도에 대한 향상이 가능함을 확인하였고, 토픽 모델의 입력 값을 N-gram에 의하여 조정함으로써 문서 전체의 이해를 다양하게 선택할 수 있었다. 참고로, 정형 데이터를 주로 처리하는 관계형 데이터 모델에서는 TB급 용량의 레코드를 대상으로 한 간략한 SQL 질의 수행에 수 시간이 소요되는 것이 현실이다.
본 논문에서는 대용량 비정형 텍스트 데이터에 대한 토픽 추출 시스템을 설계 및 구축하였으며, N-gram을 이용하여 단어 묶음을 구분한 후, LDA 토픽 모델을 통한 토픽 추출 및 문서 데이터의 의미를 분석하였다. 제안된 시스템에서는 Hadoop과 Spark(분산 인메모리 처리 프레임워크) 기반으로 데이터 저장 및 연산 클러스터를 구성하였기 때문에, 데이터 처리시 디스크 접근을 최소화하고 모든 중간 산출 결과를 메모리상에서 처리하므로 고속의 처리 성능을 얻을 수 있다. 실험에서는 약 16억 개의 레코드로 구성된 1TB 소셜 댓글 데이터를 읽어 들여 전체 데이터에 대한 전처리 과정과 토픽 분석을 수행하였으며, 분석 시간 단축을 확인하였다.
후속연구
이는 Hadoop 클러스터에 분산 저장된 대용량 데이터 연산시 디스크 접근을 최소화하고 모든 중간 계산 데이터를 메모리에 올려놓은 상태에서 처리하므로 고속의 처리 효과를 얻을 수 있기 때문이다. 본 논문에서 채택한 확률론적 통계 이론에 바탕을 둔 LDA(Latent Dirichlet Allocation) 토픽 모델 기법[5]은 온라인 상의 비정형 데이터의 숨겨진 특징을 파악 하는 것뿐 아니라, 정보 검색, 인공지능, 바이오 인포메틱스 등과 같은 여러 분야에 다양하게 응용될 수 있다.
후속 연구로는 동적으로 발생하는 소셜 스트림 텍스트 데이터에 대한 처리를 돕기 위한 연산 플랫폼 설계와 이를 위한 다양한 토픽 분석 알고리즘에 대한 연구가 필요하다고 본다.
질의응답
핵심어
질문
논문에서 추출한 답변
PLSA 모델의 단점은 무엇인가?
LDA는 하나의 문서가 여러 개의 토픽으로 구성되어 있다고 가정한 다음, 이런 토픽들과 각 문서에서의 토픽 비율을 찾아내는 방법론이며, 각 문서를 구성하는 단어가 서로 독립 적이지 않다는 가정(Dirichlet Distribution)에서 단어를 생성 하는 조건에 따라 사후 확률을 추론한다. 한편, PLSA 모델은 하나의 문서 내에서 각 단어들이 하나의 토픽하고만 연관 되어 있기 때문에 문서 셋 전체에 걸쳐 나타나는 토픽 분포의 경향까지는 나타내지 못하며, 또한 주어진 데이터에 지나치게 맞춰지는 과적합(Over-Fitting) 등의 단점이 있다[5].
토픽 모델은 무엇인가?
즉 여러 형태의 뉴스기사, 블로그, 상품평 등이 혼재되어 있으며 이러한 텍스트 데이터로 구성된 문서 집합에서 의미 (Semantics)를 찾아내기 위한 방법으로, 최근 토픽 모델이 각광을 받고 있다[1]. 토픽 모델은 입력된 문서 집합에 대해 통계 기법을 적용하여 “문서 내에서 특정 단어들이 어떤 의미로 쓰였는지?” 구분해주는 기계학습(Machine Learning) 알고리즘이다 특히, 토픽 모델을 사용하면 문서 내용을 간결 하게 나타낼 수 있고, 단어 및 문서 간의 유사도 평가도 가능하기 때문에, 내용 구분이 모호한 비정형의 문서에서 데이터의 숨겨진 특징을 파악하는데 적합하다고 볼 수 있다.
본 논문에서 채택한 토픽 모델은 무엇인가?
확률 이론에 기반한 토픽 모델은 텍스트로 구성된 문서 내에 숨겨져 있는 토픽(의미)들을 찾기 위해 고안된 통계적 추론 기법이며 대표적으로 PLSA[6]와 LDA가 있다. 이들 중 본 논문에서는 대용량 빅데이터 처리에 적합한, 즉, 분산-병렬 처리에 적합한 LDA 기법을 채택하여, Hadoop YARN 기반 Spark 클러스터 환경에서 토픽 추출 시스템을 설계 및 구현하였다. 한편, [7]에서는 LDA 토픽 모델을 Hadoop 기반 Mapreduce 프레임워크 상에서 온라인 학습기를 개발하였으나, 디스크 기반 연산을 수행함으로 인해, 인메모리 기반 Spark 에 비해 성능에 한계가 있다.
참고문헌 (13)
D. M. Blei, "Probabilistic Topic Models," Communication of the ACM, Vol.55, No.4, pp.77-87, 2012.
P. F. Brown, P. V. deSouza, R. L. Mercer, V. J. D. Pietra, and J. C. Lai, "Class-Based N-gram Models of Natural Language," Computational Linguistics, Vol.18, No.4, pp.467-479, 1992.
V. K. Vavilapalli and A. C. Murthy, et al., "Apache Hadoop YARN: Yet Another Resource Negotiator," in Proceedings of the 4th annual Symposium on Cloud Computing ACM, No.5, pp.1-16, 2013.
M. Zaharia, M. Chowdhury, M. J. Franklin, S. Shenker, and I. Stoica, "Spark: Cluster Computing with Working Sets," in HotCloud, p.10, 2010.
D. M. Blei, A. Y. Ng, and M. J. Jordan, "Latent Dirichlet Allocation," Journal of Machine Learning Research, Vol.3, pp. 993-1022, 2003.
T. Hofmann, "Probabilistic Latent Semantic Indexing," in Proceedings of the 22nd Annual International SIGIR Conference on Research and Development in Information Retrival, pp.50-57, 1999.
J. Park and H. Oh, "Distributed Online Learning for Topic Models," Communications of the Korean Institute of Information Scientists and Engineers, Vol.32, No.7, pp.40-45, 2014.
K. Shvachko, et al., "The Hadoop Distributed File System," in Proceedings of the 26th IEEE Transactions on Computing Symposium on Mass Storage Systems and Technologies, pp. 1-10, 2010.
M. Zaharia, M. Chowdhury, T. Das, A. Dave, J. Ma, M. McCauley, M. Franklin, S. Shenker, and I. Stoica, "Resilient Distributed Datasets: A Fault-tolerant Abstraction for In-memory Cluster Computing," NSDI, Apr., 2012.
J. Dean and S. Ghemawat, "MapReduce: Simplified Data Processing on Large Clusters," in Proceedings of the 6th Symposium on Operating System Design and Implementation, pp.137-150, 2004.
K. Park, C. Baek, and L. Peng, "A Development of Streaming Big Data Analysis System Using In-memory Cluster Computing Framework: Spark," LNEE, Vol.393, pp.157-163, 2016.
M. Armbrust, R. S. Xin, C. Lian, Y. Huai, D. Liu, J. K. Bradley, X. Meng, T. Kaftan, M. J. Franklin, A. Ghodsi, and M. Zaharia, "Spark SQL: Relational data processing in Spark," in Proceedings of the 2015 ACM SIGMOD International Conference on Management of Data, pp. 1383-1394, 2015.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.