<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="/resources/xsl/jats-html.xsl"?>
<article article-type="research-article" dtd-version="1.1" xml:lang="ko" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<front>
	<journal-meta>
		<journal-id journal-id-type="publisher-id">jkits</journal-id>
		<journal-title-group>
		<journal-title>한국지식정보기술학회 논문지</journal-title>
		<journal-title xml:lang="en">Journal of Knowledge Information Technology and Systems</journal-title>
		</journal-title-group>
		<issn pub-type="ppub">1975-7700</issn>
		<publisher>
		<publisher-name>한국지식정보기술학회</publisher-name>
		<publisher-name xml:lang="en">Korea Knowledge Information Technology Society</publisher-name>
		</publisher>
	</journal-meta>
	<article-meta>
		<article-id pub-id-type="publisher-id">jkits_2020_15_06_991</article-id>
		<article-id pub-id-type="doi">10.34163/jkits.2020.15.6.008</article-id>
		<article-categories>
			<subj-group>
				<subject>Research Article</subject>
			</subj-group>
		</article-categories>
		<title-group>
			<article-title>전자상거래 추천 모델 개발 플랫폼을 위한 오픈 아키텍쳐 및 Open API</article-title>
			<trans-title-group xml:lang="en">
				<trans-title>An Open Architecture and Open API for e-Commerce Recommendation Model Development Platform</trans-title>
			</trans-title-group>
		</title-group>
		<contrib-group>
			<contrib contrib-type="author" xlink:type="simple">
				<name-alternatives>
					<name name-style="eastern">
						<surname>김</surname>
						<given-names>철진</given-names>
					</name>
					<name name-style="western" xml:lang="en">
						<surname>Kim</surname>
						<given-names>Chul Jin</given-names>
					</name>
				</name-alternatives>
				<xref ref-type="fn" rid="fn001">*</xref>
				<xref ref-type="aff" rid="A1"><sup>1</sup></xref>
			</contrib>
			<contrib contrib-type="author" xlink:type="simple">
				<name-alternatives>
					<name name-style="eastern">
						<surname>정</surname>
						<given-names>지현</given-names>
					</name>
					<name name-style="western" xml:lang="en">
						<surname>Jeong</surname>
						<given-names>Ji Hyun</given-names>
					</name>
				</name-alternatives>
				<xref ref-type="aff" rid="A2"><sup>2</sup></xref>
			</contrib>
			<contrib contrib-type="author" xlink:type="simple">
				<name-alternatives>
					<name name-style="eastern">
						<surname>조</surname>
						<given-names>천우</given-names>
					</name>
					<name name-style="western" xml:lang="en">
						<surname>Jo</surname>
						<given-names>Cheon Woo</given-names>
					</name>
				</name-alternatives>
				<xref ref-type="aff" rid="A2"><sup>2</sup></xref>
			</contrib>
			<contrib contrib-type="author" xlink:type="simple">
				<name-alternatives>
					<name name-style="eastern">
						<surname>변</surname>
						<given-names>동훈</given-names>
					</name>
					<name name-style="western" xml:lang="en">
						<surname>Byun</surname>
						<given-names>Dong Hun</given-names>
					</name>
				</name-alternatives>
				<xref ref-type="aff" rid="A2"><sup>2</sup></xref>
			</contrib>
					</contrib-group>
		<aff-alternatives id="A1">
			<aff><sup>1</sup><italic>인하공업전문대학 컴퓨터시스템과 교수</italic></aff>
			<aff xml:lang="en"><italic>Department of Computer Systems and Engineering, Inha Technical College</italic></aff>
		</aff-alternatives>
		<aff-alternatives id="A2">
			<aff><sup>2</sup><italic>인하공업전문대학 컴퓨터시스템과 학부생</italic></aff>
			<aff xml:lang="en"><italic>Department of Computer Systems and Engineering, Inha Technical College</italic></aff>
		</aff-alternatives>
		<author-notes>
			<fn id="fn001"><label>*</label><p>Corresponding author is with the Department of Computer Systems and Engineering, Inha Technical College, 100 Inha-ro Nam-gu Incheon, 22212, KOREA.</p><p><italic>E-mail address</italic>: <email>cjkim@inhatc.ac.kr</email></p></fn>
		</author-notes>
		<pub-date pub-type="ppub">
			<month>12</month>
			<year>2020</year>
		</pub-date>
		<volume>15</volume>
		<issue>6</issue>
		<fpage>991</fpage>
		<lpage>1000</lpage>
		<history>
			<date date-type="received">
				<day>19</day>
				<month>10</month>
				<year>2020</year>
			</date>
			<date date-type="rev-recd">
				<day>26</day>
				<month>10</month>
				<year>2020</year>
			</date>
			<date date-type="accepted">
				<day>11</day>
				<month>12</month>
				<year>2020</year>
			</date>
		</history>
		<permissions>
			<copyright-statement>&#x00A9; 2020 KKITS All rights reserved</copyright-statement>
			<copyright-year>2020</copyright-year>
		</permissions>
		<abstract>
		<title>요약</title>
		<p>전자상거래의 추천 서비스는 필수적인 기능으로서 상품 검색, 주문 처리, 장바구니 등의 기능과 연계하여 서비스되므로 매출 증대에 중요한 역할을 한다. 이러한 추천 서비스는 전자상거래를 개발하는 개발자들에게 고도의 기술력을 요구하므로 특정 인공지능 엔지니어에 의해 개발되거나 외부 추천 솔루션을 도입하여 적용한다. 외부 솔루션이나 외부 개발 업체에 의한 추천 서비스 통합은 개발하는 전자상거래 서비스의 요구사항을 만족할 수 없으며 잦은 데이터 변경에 따른 유지보수의 신속성을 제공할 수 없다. 이에 특정 도메인에 맞는 추천 서비스들을 일반화시켜서 제공하거나, 추천 서비스를 개발하기 위한 일반화된 개발 플랫폼의 연구가 활발하게 진행되고 있다. Amazon Personalize 서비스나 Microsoft Azure Machine Learning 서비스 등이 개발자에 의해 추천 서비스를 개발하기 위한 일반화된 도구이다. 그러나 이러한 추천 모델 개발 도구들은 추천 모델을 생성하기 위해 요구하는 학습 데이터에 대해 필수 데이터 정보를 정의해야 하는 작업 부하가 존재한다. 본 논문에서는 학습 데이터를 분석하기 위한 데이터들 간의 연관 분석 알고리즘을 이용하여 데이터에 대한 정의 없이 학습 알고리즘을 도출한다. 또한, 도출된 학습 알고리즘을 기반으로 추천 모델 개발과 검증을 위한 Open API를 제안한다. 실험에서는 공개된 전자상거래의 트랜잭션 데이터를 활용하여 학습 알고리즘 도출 및 Open API를 검증하며, 이를 통해 추천 모델 개발 플랫폼의 오픈 아키텍쳐에 대한 적합성을 파악한다.</p>
		</abstract>
		<trans-abstract xml:lang="en">
		<title>ABSTRACT</title>
		<p>e-Commerce recommendation service is an essential function and plays an important role in increasing sales since it is provided in connection with functions such as product search, order processing, and shopping cart. This recommendation service requires a high level of technology from developers developing e-commerce, so it is developed by a specific artificial intelligence engineer or applied by introducing an external recommendation solution. Integration of recommended services by external solutions or external development companies cannot satisfy the requirements of e-commerce services to be developed, and cannot provide rapid maintenance due to frequent data changes. Accordingly, research on a generalized development platform for generalizing and providing recommendation services suitable for a specific domain or developing a recommendation service is being actively conducted. Amazon Personalize service and Microsoft Azure Machine Learning service are generalized tools for developing recommended services by developers. However, these recommendation model development tools have a workload of defining essential data information for training data required to generate a recommendation model. In this paper, we derive a learning algorithm without defining data by using an association analysis algorithm between data for analyzing learning data. Also, based on the derived learning algorithm, we propose an Open API for developing and verifying a recommendation model. In the experiment, the learning algorithm is derived and the open API is verified by using the open transaction data of the e-commerce transaction. Through this, the suitability of the open architecture of the recommendation model development platform is verified.</p>
		</trans-abstract>
		<kwd-group kwd-group-type="author" xml:lang="en">
<title>K E Y W O R D S</title>
			<kwd>Recommendation model development platform</kwd>
			<kwd>Learning model</kwd>
			<kwd>Data association analysis algorithm</kwd>
			<kwd>Model development open API</kwd>
			<kwd>Validation open API</kwd>
		</kwd-group>
	</article-meta>
</front>
<body>
<sec id="sec001" sec-type="intro">
	<title>1. 서 론</title>
	<p>전자상거래의 추천 서비스는 필수적인 기능으로서 상품 검색, 주문 처리, 장바구니 등의 기능과 연계하여 서비스되므로 매출 증대에 중요한 역할을 한다[<xref ref-type="bibr" rid="B001">1</xref>]. 이러한 추천 서비스는 전자상거래를 개발하는 개발자들에게 고도의 기술력을 요구하므로 특정 인공지능 엔지니어에 의해 개발되거나 외부 추천 솔루션을 도입하여 적용한다. 외부 솔루션이나 외부 개발 업체에 의한 추천 서비스 통합은 개발하는 전자상거래 서비스의 요구사항을 만족할 수 없으며 잦은 데이터 변경에 따른 유지보수의 신속성을 제공할 수 없다. 이에 특정 도메인에 맞는 추천 서비스들을 일반화시켜서 제공하거나, 추천 서비스를 개발하기 위한 일반화된 개발 플랫폼의 연구가 활발하게 진행되고 있다. 본 논문에서는 전자상거래 추천 모델 개발 플랫폼의 오픈 아키텍쳐와 학습 알고리즘을 기반으로 추천 모델 개발과 검증을 위한 Open API(Applicaiton Programming Interface)를 제안한다. 추천 모델 개발 플랫폼의 오픈 아키텍쳐와 Open API는 일반화된 학습 모델개발 도구의 기반을 제공할 것이다.</p>
	<p>본 논문의 구성은 다음과 같다. 2장에서는 추천 개발 플랫폼과 관련된 서비스와 기존 연구를 분석하며, 3장은 추천 모델 개발 플랫폼을 위한 오픈 아키텍쳐와 추천 모델 개발 및 검증 Open API를 제안한다. 4장에서는 공개된 전자상거래 데이터를 활용하여 제안한 추천 모델 개발 플랫폼의 오픈 아키텍쳐와 Open API의 적합성을 검증한다. 5장에서는 결론을 맺고 추가 연구과제의 방향성을 제시한다.</p>
</sec>
<sec id="sec002">
	<title>2. 관련연구</title>
	<p>본 장에서는 추천 모델을 개발하기 위한 서비스 및 관련 연구를 분석하며 본 연구에서 제안하는 추천 모델 개발을 위한 오픈 아키텍쳐와의 차이점을 분석한다.</p>
	<sec id="sec002-1">
		<title>2.1 Amazon Personalize 서비스</title>
		<p>Amazon Personalize[<xref ref-type="bibr" rid="B002">2</xref>]는 머신러닝(Machine Learning) 기반의 학습 모델을 개발하기 위한 일반화된 서비스이다. 학습 모델을 개발하기 위해 데이터 그룹 생성, 학습 데이터 입력, 학습 모델 생성, 학습 모델 평가, 배포, 추천 서비스 단계로 구성된다. 학습 데이터는 기본적으로 3개의 데이터인 User-Item Interaction, User, Item으로 구성된다. 각각의 데이터는 필수적인 필드와 선택적으로 필드를 추가하여 구성한다[<xref ref-type="bibr" rid="B003">3</xref>,<xref ref-type="bibr" rid="B004">4</xref>].</p>
		<p>Amazon Personalize는 학습 모델을 생성하기 위해 자체적인 학습 알고리즘을 제공한다. 제공되는 알고리즘으로는 DeepFM(Deep Factorization Machines), FFNN(Feed-Forward Neural Network), HRNN(Hierarchical Recurrent Neural Network), PersonalizePeranking, Popularity-baseline, SIMS(The Item-to-item similarities)이 있으며, AutoML 기능을 통해 자동으로 알고리즘을 선택할 수 있다. Amazon Personalize는 생성된 학습 모델의 ARN(Amazon Resource Name)과 Customized Personalization API를 통해 외부 서비스에 연동한다.</p>
		<p>본 연구는 Amazon Personalize 와 다르게 추천 개발의 Open API를 제공하여 독립적으로 추천 모델을 개발하거나 추천 개발 도구를 개발할 수 있는 기반을 제공할 수 있을 것이다.</p>
	</sec>
	<sec id="sec002-2">
		<title>2.2 Azure ML 서비스</title>
		<p>Microsoft의 Azure ML[<xref ref-type="bibr" rid="B005">5</xref>]은 학습 모델을 개발하기 위한 클라우드 기반의 머신러닝 서비스이다. 학습 모델을 개발하기 위해 학습 모델 생성, 모델 패키지, 모델 검증, 배포 단계로 구성된다. Azure ML은 학습 모델을 시각적으로 개발할 수 있도록 실험 도구를 제공한다. Azure ML은 실험 도구를 이용하여 다양한 학습 알고리즘을 적용할 수 있으며 생성된 학습 모델에 대해 API Key를 제공한다. 이렇게 생성된 API Key와 RESTful API를 통해 외부 서비스와 연동할 수 있다. Azure ML와 연동되는 외부 서비스는 Azure ML의 학습 모델을 통해 추천 서비스를 제공하므로 종속되어 운영된다. 이에 반해 본 연구는 독립적으로 운영되거나 개발될 수 있도록 Open API를 제공하여 독립 플랫폼을 제공할 수 있는 기반을 제공한다.</p>
	</sec>
	<sec id="sec002-3">
		<title>2.3 양방향 추천 캘리콘텐츠 오픈마켓 플랫폼 설계</title>
		<p>연구 [<xref ref-type="bibr" rid="B006">6</xref>]은 예술적 감성의 문장이나 그림의 디지털 콘텐츠인 캘리콘텐츠(CalliContents, Calligraphy Contents)의 양방향 추천 서비스를 제공하기 위한 오픈 플랫폼의 아키텍쳐를 제안한다. 3rd 파티 캘리 콘텐츠 서비스 플랫폼의 기반을 제공하는 것을 목적으로 Open API 형태로 외부 서비스와 연동할 수 있는 기능과 도구를 지원한다. 제공되는 도구로는 웹 개발자 도구, 웹 콘솔, Open API, 캘리콘텐츠 DB, 그리고 실시간 캘리콘텐츠 감성 추천 엔진으로 구성된다. 감성 추천 엔진은 사용자에 의해 요구하는 캘리콘텐츠 제작 명세를 기반으로 추천 정보를 제공한다. 추천 알고리즘은 행위 기반 협업 필터링을 기반으로 추천된다.</p>
		<p>연구 [<xref ref-type="bibr" rid="B006">6</xref>]은 캘리콘텐츠를 추천하기 위한 시스템으로 외부 시스템과의 연동을 위해 Open API를 제공하므로 확장성을 제공하고 있다. 본 연구에서 Open API를 제공하여 오픈 플랫폼으로서의 확장성을 제공하는 측면에서 유사하지만, 학습 데이터에 따른 다양한 학습 알고리즘을 적용하기 위한 방안에서는 한계를 보인다.</p>
	</sec>
	<sec id="sec002-4">
		<title>2.4 머신러닝을 활용한 금융상품 추천 플랫폼</title>
		<p>연구 [<xref ref-type="bibr" rid="B007">7</xref>]은 머신러닝 기반으로 사용자의 소비 패턴을 분석하여 금용상품을 추천하기 위한 플랫폼을 제안한다. 사용자의 카드 사용 내역을 수집하여 학습한 후 적절한 금융상품을 추천한다. 학습을 위해 사용되는 모델은 MLP와 LSTM 두가지를 사용한다. MLP(MultiLayer Perceptron) 모델은 1년, 3개월, 1개월 단위로 수집된 소비 내역 데이터를 학습하여 예측 모델을 생성한다. LSTM 모델은 매달 소비 내역 데이터를 학습하여 다음달의 소비 내역을 예측한다. MLP와 LSTM 모델의 예측값을 기반으로 최종 예측 패턴을 도출한다.</p>
		<p>연구 [<xref ref-type="bibr" rid="B007">7</xref>]은 사용자의 금융 사용 내역을 학습하여 금용상품을 추천을 하기 위한 추천 플랫폼으로서 본 연구에서 제안한 추천 모델 개발 플랫폼과 비교하여 개발의 유연성이 제한적이다.</p>
	</sec>
</sec>
<sec id="sec003" sec-type="methods">
	<title>3. 추천 모델 개발 플랫폼의 오픈 아키텍쳐 및 Open API</title>
	<p>본 연구에서는 추천 모델을 개발하기 위한 플랫폼의 오픈 아키텍쳐 및 제안된 아키텍쳐를 기반으로 하는 Open API를 제안한다.</p>
	<sec id="sec003-1">
		<title>3.1 추천 모델 개발 플랫폼의 오픈 아키텍쳐</title>
		<p>추천 모델 개발 플랫폼을 위한 오픈 아키텍쳐는 &#x003C;<xref ref-type="fig" rid="f001">그림 1</xref>&#x003E;과 같다.</p>
		<p>추천 모델 개발 플랫폼 오픈 아키텍쳐의 계층은 추천 자원(Recommendation Resource) 계층, 추천 엔진(Recommendation Engine) 계층, 그리고 추천 Open API(Recommendation Open API) 계층으로 구성된다.</p>
		<fig id="f001" orientation="portrait" position="float">
			<label>그림 1.</label>
			<caption>
				<title>추천 모델 개발 플랫폼의 계층 아키텍쳐</title>
				<p>Figure 1. Layer Architecture of Recommendation Model Development Platform</p>
			</caption>
			<graphic xlink:href="../ingestImageView?artiId=ART002663713&amp;imageName=jkits_2020_15_06_991_f001.jpg" position="float" orientation="portrait" xlink:type="simple"></graphic>
		</fig>
		<p>추천 엔진 계층의 추천 모델 생성 엔진(Recommendation Model Generation Engine)과 커스터마이제이션 서비스(Customization Service)을 기반으로 추천 모델(Recommendation Model)이 생성되며, 검증 엔진(Verification Engine)은 생성된 추천 모델을 기반으로 모델의 정확성을 검증한다. 추천 모델은 운영 시점에 서비스될 수 있도록 데이터베이스에 저장된다.</p>
		<p>추천 엔진 계층에서 제공된 추천 모델 생성 및 검증은 추천 모델 개발 플랫폼을 위한 Open API 형태로 제공될 수 있다. 추천 Open API 계층에서는 추천 모델 개발 Open API와 검증 Open API를 제공하며 추천 서비스에서 이용될 수 있는 추천 Open API를 제공한다.</p>
		<p>&#x003C;<xref ref-type="fig" rid="f002">그림 2</xref>&#x003E;의 흐름 아키텍쳐에서와 같이 추천 모델 생성 엔진은 커스터마이제이션 서비스를 통해 학습 알고리즘을 변경하여 추천 모델 개발 Open API의 개발 플랫폼 서비스로 제공한다. 검증 엔진 또한 검증 Open API의 모델 검증 서비스로 제공한다. 선택된 학습 알고리즘에 의해 학습된 추천 모델은 데이터베이스에 관리되며 추천 서비스에 제공된다.</p>
		<fig id="f002" orientation="portrait" position="float">
			<label>그림 2.</label>
			<caption>
				<title>추천 모델 개발 플랫폼의 흐름 아키텍쳐</title>
				<p>Figure 2. Flow Architecture of Recommendation Model Development Platform</p>
			</caption>
			<graphic xlink:href="../ingestImageView?artiId=ART002663713&amp;imageName=jkits_2020_15_06_991_f002.jpg" position="float" orientation="portrait" xlink:type="simple"></graphic>
		</fig>
		<p>학습 알고리즘을 선택하기 위한 커스터마이제이션 서비스의 구조는 &#x003C;<xref ref-type="fig" rid="f003">그림 3</xref>&#x003E;과 같다. 거래 데이터, 사용자 데이터, 상품 데이터를 기반으로 데이터들간의 연관 분석을 통해 학습 알고리즘을 도출한다. 각 데이터의 ID를 기반으로 데이터들 간의 연관 거리(Association Distance)을 분석하여 어떠한 알고리즘이 적절할지를 분석한다. 연관 거리 분석은 데이터들 간의 다중성(Multiplicity)을 기반으로 한다.</p>
		<fig id="f003" orientation="portrait" position="float">
			<label>그림 3.</label>
			<caption>
				<title>커스터마이제이션 서비스 구조</title>
				<p>Figure 3. Customization Service Structure</p>
			</caption>
			<graphic xlink:href="../ingestImageView?artiId=ART002663713&amp;imageName=jkits_2020_15_06_991_f003.jpg" position="float" orientation="portrait" xlink:type="simple"></graphic>
		</fig>
		<p>데이터 연관 분석 알고리즘은 &#x003C;<xref ref-type="fig" rid="f004">그림 4</xref>&#x003E;와 같이 데이터의 타입과 데이터들 간의 다중성을 분석한다. 데이터 타입 분석은 데이터에 시계열을 의미하는 데이터 타입이 포함되어 있는지 분석한다. 년/ 월/일로 구분하는 ISO8601[<xref ref-type="bibr" rid="B008">8</xref>] 형식으로 정의되어 있거나, Unix의 Timestamp 형식으로 정의되어 있는지 분석한다. 시계열성이 확인될 경우 해당 필드를 기반으로 학습 알고리즘으로 RNN(Recurrent Neural Network)[<xref ref-type="bibr" rid="B009">9</xref>]이나 LSTM(Long Short Term Memory)[<xref ref-type="bibr" rid="B010">10</xref>,<xref ref-type="bibr" rid="B011">11</xref>]을 사용할 수 있는 가능성이 도출된다.</p>
		<fig id="f004" orientation="portrait" position="float">
			<label>그림 4.</label>
			<caption>
				<title>데이터 연관 분석 알고리즘</title>
				<p>Figure 4. Data Association Analysis Algorithm</p>
			</caption>
			<graphic xlink:href="../ingestImageView?artiId=ART002663713&amp;imageName=jkits_2020_15_06_991_f004.jpg" position="float" orientation="portrait" xlink:type="simple"></graphic>
		</fig>
		<p>데이터셋에서 시계열 필드를 제외한 다른 필드를 분석하여 특정 필드가 평점(Rating)의 형태를 지니는지 확인 한다. 평점 데이터를 지닌 필드가 확인되면 협업적 필터링(CF)을 활용할 수 있는 가능성이 생긴다. 이와 같이 시계열성 및 평점 형태의 데이터 분석이 완료된 후에 데이터들 간의 다중성 분석을 수행한다. 전자상거래의 거래 데이터, 사용자 데이터, 상품 데이터를 기반으로 거래 ID는 사용자 ID를 하나 밖에 가질 수 없는 1:1의 관계이므로, 해당 관계가 각 필드에 대해서 도출되지 않는다면 전제 조건인 거래 ID는 한 명의 사용자에게만 대응하는 속성을 위배하므로 어떠한 데이터인지를 파악하기 어려워지므로 종료하게 된다. 그러나, 해당 관계가 도출이 된다면 거래 ID와 사용자 ID를 도출한다. 또한 거래 ID와 사용자 ID에 대한 N:M 관계를 갖는 필드는 상품 ID로 도출된다. 이렇게 도출된 데이터 정보를 통해 학습 알고리즘의 선택의 기반을 제공할 수 있다.</p>
	</sec>
	<sec id="sec003-2">
		<title>3.2 추천 모델 개발 및 검증 Open API</title>
		<p>본 장에서는 추천 모델 개발 플랫폼 오픈 아키텍쳐를 기반으로 추천 모델 개발 및 검증을 위한 Open API를 제안한다.</p>
		<p>추천 모델 개발을 위한 Open API를 위한 구현 코드는 &#x003C;<xref ref-type="fig" rid="f005">그림 5</xref>&#x003E;와 같다. 학습 알고리즘을 입력 변수로 받으며 학습 데이터 파일을 입력으로 학습을 수행하여 추천 모델을 생성한다. 개발자 정보와 프로젝트를 정보는 추천 모델 개발 플랫폼에 프로젝트를 관리하기 위해 입력 받는다.</p>
		<fig id="f005" orientation="portrait" position="float">
			<label>그림 5.</label>
			<caption>
				<title>추천 모델 개발 Open API 코드</title>
				<p>Figure 5. Recommended model development Open API code</p>
			</caption>
			<graphic xlink:href="../ingestImageView?artiId=ART002663713&amp;imageName=jkits_2020_15_06_991_f005.jpg" position="float" orientation="portrait" xlink:type="simple"></graphic>
		</fig>
		<p>추천 모델 개발 코드를 기반으로 Open API와 입력 매개변수는 &#x003C;<xref ref-type="fig" rid="f006">그림 6</xref>&#x003E;과 같다. 추천 모델 개발 Open API인 ‘<uri>http://localhost:8000/api/modeling</uri>’ 은 &#x003C;<xref ref-type="fig" rid="f005">그림 5</xref>&#x003E;의 Modeling 서비스를 호출한다. 매개변수 model은 학습 알고리즘명을 의미하며 file_name은 학습 데이터 파일명을 의미한다.</p>
		<fig id="f006" orientation="portrait" position="float">
			<label>그림 6.</label>
			<caption>
				<title>추천 모델 개발 Open API</title>
				<p>Figure 6. Recommended model development Open API</p>
			</caption>
			<graphic xlink:href="../ingestImageView?artiId=ART002663713&amp;imageName=jkits_2020_15_06_991_f006.jpg" position="float" orientation="portrait" xlink:type="simple"></graphic>
		</fig>
		<p>모델 검증을 위한 Open API 구현 코드는 &#x003C;<xref ref-type="fig" rid="f007">그림 7</xref>&#x003E;과 같다. 추천 모델 개발 Open API에서 개발된 학습 모델을 입력으로 받으며 추천 사용자 ID와 추천 상품 ID를 입력받아 검증을 수행한다. 추천 서비스 또한 검증에서 사용되는 동일한 코드를 사용한다.</p>
		<fig id="f007" orientation="portrait" position="float">
			<label>그림 7.</label>
			<caption>
				<title>추천 검증 Open API 코드</title>
				<p>Figure 7. Recommended Validation Open API code</p>
			</caption>
			<graphic xlink:href="../ingestImageView?artiId=ART002663713&amp;imageName=jkits_2020_15_06_991_f007.jpg" position="float" orientation="portrait" xlink:type="simple"></graphic>
		</fig>
		<p>모델 검증 개발 코드를 기반으로 모델 검증 Open API와 입력 매개변수는 &#x003C;<xref ref-type="fig" rid="f008">그림 8</xref>&#x003E;과 같다.</p>
		<fig id="f008" orientation="portrait" position="float">
			<label>그림 8.</label>
			<caption>
				<title>모델 검증/추천 Open API 코드</title>
				<p>Figure 8. Model Validation/Recommendation Open API code</p>
			</caption>
			<graphic xlink:href="../ingestImageView?artiId=ART002663713&amp;imageName=jkits_2020_15_06_991_f008.jpg" position="float" orientation="portrait" xlink:type="simple"></graphic>
		</fig>
		<p>검증 Open API인 ‘<uri>http://localhost:8000/api/validation</uri>’은 &#x003C;<xref ref-type="fig" rid="f007">그림 7</xref>&#x003E;의 Validation 서비스를 호출한다. 매개변수 model은 학습된 추천 모델을 의미하며 user_id와 item_id는 추천 받고자 하는 사용자 id와 관심 상품 id를 의미한다.</p>
	</sec>
</sec>
<sec id="sec004" sec-type="Results">
	<title>4. 실험 및 평가</title>
	<p>본 실험에서는 협업적 필터링에 사용될 수 있는 데이터셋인 평점이 포함된 Movie-lens 데이터셋[<xref ref-type="bibr" rid="B012">12</xref>]을 활용하며, 시계열 데이터로 UCI(University of California, Irvine)에서 제공하는 트랜잭션 데이터인 Online Retail 데이터셋[<xref ref-type="bibr" rid="B013">13</xref>], 그리고 Retail Rocket[<xref ref-type="bibr" rid="B014">14</xref>]을 활용한다. 거래 ID, 사용자 ID, 상품 ID, 혹은 Rating 데이터에 대해 &#x003C;<xref ref-type="fig" rid="f004">그림 4</xref>&#x003E;의 데이터 연관 분석 알고리즘을 통해 학습 알고리즘 도출을 검증한다. 또한 Open API를 통해 Online Retail 데이터셋을 이용하여 추천 모델 생성 및 검증을 수행한다.</p>
	<fig id="f009" orientation="portrait" position="float">
			<label>그림 9.</label>
			<caption>
				<title>Movie Lens 데이터에 대한 알고리즘 도출 결과</title>
				<p>Figure 9. Algorithm derivation result for Movie Lens data</p>
			</caption>
			<graphic xlink:href="../ingestImageView?artiId=ART002663713&amp;imageName=jkits_2020_15_06_991_f009.jpg" position="float" orientation="portrait" xlink:type="simple"></graphic>
		</fig>
		<fig id="f010" orientation="portrait" position="float">
			<label>그림 10.</label>
			<caption>
				<title>UCI Online Retail 데이터에 대한 알고리즘 도출 결과</title>
				<p>Figure 10. Algorithm derivation result for UCI Online Retail data</p>
			</caption>
			<graphic xlink:href="../ingestImageView?artiId=ART002663713&amp;imageName=jkits_2020_15_06_991_f010.jpg" position="float" orientation="portrait" xlink:type="simple"></graphic>
		</fig>
		<fig id="f011" orientation="portrait" position="float">
			<label>그림 11.</label>
			<caption>
				<title>Retail Rocket 데이터에 대한 알고리즘 도출 결과</title>
				<p>Figure 11. Algorithm derivation result for Retail Rocket data</p>
			</caption>
			<graphic xlink:href="../ingestImageView?artiId=ART002663713&amp;imageName=jkits_2020_15_06_991_f011.jpg" position="float" orientation="portrait" xlink:type="simple"></graphic>
		</fig>
	<p>학습 알고리즘 도출 실험에 대해 &#x003C;<xref ref-type="fig" rid="f009">그림 9</xref>&#x003E;, &#x003C;<xref ref-type="fig" rid="f010">그림 10</xref>&#x003E;, &#x003C;<xref ref-type="fig" rid="f011">그림 11</xref>&#x003E; 결과와 같이 도출되었다. 데이터 연관 분석을 통해 거래 ID, 사용자 ID, 상품 ID, 그리고 평점 정보가 도출되었으며, 데이터들 간의 다중성 분석을 통해 학습 알고리즘을 도출 하였다. Movie-lens 학습 데이터에 대해서는 CF(Collaboration Filtering) 알고리즘[<xref ref-type="bibr" rid="B015">15</xref>]을 도출하였으며, Online Retail 과 Retail Rocket 학습 데이터에 대해서는 시계열성을 기반으로 RNN 알고리즘을 도출하였다.</p>
	<fig id="f012" orientation="portrait" position="float">
			<label>그림 12.</label>
			<caption>
				<title>학습 모델 개발 Open API의 실험 결과(1)</title>
				<p>Figure 12. Experiment Results(1) of Learning Model Development Open API</p>
			</caption>
			<graphic xlink:href="../ingestImageView?artiId=ART002663713&amp;imageName=jkits_2020_15_06_991_f012.jpg" position="float" orientation="portrait" xlink:type="simple"></graphic>
		</fig>
		<fig id="f013" orientation="portrait" position="float">
			<label>그림 13.</label>
			<caption>
				<title>학습 모델 개발 Open API의 실험 결과(2)</title>
				<p>Figure 13. Experiment Results(2) of Learning Model Development Open API</p>
			</caption>
			<graphic xlink:href="../ingestImageView?artiId=ART002663713&amp;imageName=jkits_2020_15_06_991_f013.jpg" position="float" orientation="portrait" xlink:type="simple"></graphic>
		</fig>
	<p>도출된 학습 알고리즘을 기반으로 학습 모델 개발 Open API의 실험 결과는 &#x003C;<xref ref-type="fig" rid="f012">그림 12</xref>&#x003E;, &#x003C;<xref ref-type="fig" rid="f013">그림 13</xref>&#x003E;과 같다. 본 실험에서 도출된 학습 알고리즘은 RNN 계열의 LSTM으로 정확도(Accuracy)[<xref ref-type="bibr" rid="B016">16</xref>]는 32.6%인 추천 모델을 생성하였다.</p>
	<p>&#x003C;<xref ref-type="fig" rid="f012">그림 12</xref>&#x003E;, &#x003C;<xref ref-type="fig" rid="f013">그림 13</xref>&#x003E;에서 생성된 추천 모델을 기반으로 &#x003C;<xref ref-type="fig" rid="f008">그림 8</xref>&#x003E;의 검증 Open API를 활용하여 &#x003C;<xref ref-type="fig" rid="f014">그림 14</xref>&#x003E;, &#x003C;<xref ref-type="fig" rid="f015">그림 15</xref>&#x003E;와 같은 실험 결과가 도출되었다. 본 검증에서는 사용자 ID ‘17850’의 관심 상품 ID ‘15’에 대해 추천 상품으로 상품 ID ‘2860’, ‘337’, ‘830’, ‘2648’, ‘1276’을 도출하였다.</p>
	<fig id="f014" orientation="portrait" position="float">
			<label>그림 14.</label>
			<caption>
				<title>추천 모델 검증 Open API의 실험 결과(1)</title>
				<p>Figure 14. Experiment Results(1) of Recommendation Model Validation Open API</p>
			</caption>
			<graphic xlink:href="../ingestImageView?artiId=ART002663713&amp;imageName=jkits_2020_15_06_991_f014.jpg" position="float" orientation="portrait" xlink:type="simple"></graphic>
		</fig>
		<fig id="f015" orientation="portrait" position="float">
			<label>그림 15.</label>
			<caption>
				<title>추천 모델 검증 Open API의 실험 결과(2)</title>
				<p>Figure 15. Experiment Results(2) of Recommendation Model Validation Open API</p>
			</caption>
			<graphic xlink:href="../ingestImageView?artiId=ART002663713&amp;imageName=jkits_2020_15_06_991_f015.jpg" position="float" orientation="portrait" xlink:type="simple"></graphic>
		</fig>
	<p>본 실험을 통해 학습 알고리즘 도출과 이를 통한 추천 모델 개발 Open API와 추천 모델 검증 Open API의 실험을 통해 추천 모델 개발 플랫폼의 아키텍쳐가 적합함을 확인하였다.</p>
</sec>
<sec id="sec005" sec-type="Conclusion">
	<title>5. 결 론</title>
	<p>본 연구에서는 전자상거래 추천 서비스 개발을 위한 일반화된 개발 플랫폼을 위한 오픈 아키텍쳐를 제안하였다. 또한 오픈 아키텍쳐를 기반으로 개발자가 전자상거래의 기존 기능에 추천 서비스를 개발하여 통합할 수 있도록 Open API를 제안하였다. 추천 모델 개발 플랫폼의 오픈 아키텍쳐에서는 데이터들 간의 연관 분석을 통해 학습 데이터에 대한 정보를 분석하여 어떠한 학습 알고리즘을 적용해야 할지를 제공한다. 기존의 추천 모델 개발 도구들이 학습 데이터의 정보에 대해 정의해야 하는 측면에서 차별성을 갖는다. Open API는 추천 모델을 개발하기 위한 API와 검증을 위한 API를 제공하여 전자상거래의 개발 모듈에 통합하여 개발할 수 있다. 실험을 통해 추천 모델 개발 플랫폼의 오픈 아키텍쳐와 Open API가 적합함을 파악하였다. 향후에는 추천 모델 개발 플랫폼의 오픈 아키텍쳐와 Open API를 활용하여 추천 모델 개발의 절차가 통합 서비스 되는 통합 개발 환경(IDE, Integrated Development Environment)을 연구한다.</p>
</sec>
</body>
<back>
<ref-list>
<title>References</title>
<!--[1] B. M. Sarwar, G. Karypis, J. A. Konstan, and J. T. Riedl, Analysis of recommendation algorithms for e-commerce, Proc. of 2nd ACM Conference on Electronic Commerce, pp. 158-167, 2000.-->
<ref id="B001">
<label>[1]</label>
<element-citation publication-type="paper">
<person-group>
<name><surname>Sarwar</surname><given-names>B. M.</given-names></name>
<name><surname>Karypis</surname><given-names>G.</given-names></name>
<name><surname>Konstan</surname><given-names>J. A.</given-names></name>
<name><surname>Riedl</surname><given-names>J. T.</given-names></name>
</person-group>
<year>2000</year>
<article-title>Analysis of recommendation algorithms for e-commerce</article-title>
<conf-name>Proc. of 2nd ACM Conference on Electronic Commerce</conf-name>
<fpage>158</fpage><lpage>167</lpage>
<pub-id pub-id-type="doi">10.1145/352871.352887</pub-id>
</element-citation>
</ref>
<!--[2] Amazon Personalize, https://aws.amazon.com/ko/personalize/?nc2=h_ql_prod_ml_per, retrieved Aug. 2020.-->
<ref id="B002">
<label>[2]</label>
<element-citation publication-type="webpage" publication-format="web">
<source>Amazon Personaliz</source>
<comment><uri>https://aws.amazon.com/ko/personalize/?nc2=h_ql_prod_ml_per</uri>retrieved Aug. 2020</comment>
</element-citation>
</ref>
<!--[3] D. Stern, R. Herbrich, and T. Graepel, Matchbox: large scale online bayesian recommendations, In Proceedings of the 18th international conference on World wide web.-->
<ref id="B003">
<label>[3]</label>
<element-citation publication-type="paper">
<person-group>
<name><surname>Stern</surname><given-names>D.</given-names></name>
<name><surname>Herbrich</surname><given-names>R.</given-names></name>
<name><surname>Graepel</surname><given-names>T.</given-names></name>
</person-group>
<article-title>Matchbox: large scale online bayesian recommendations</article-title>
<conf-name>Proceedings of the 18th international conference on World wide web</conf-name>
<pub-id pub-id-type="doi">10.1145/1526709.1526725</pub-id>
</element-citation>
</ref>
<!--[4] AWS Dataset Schema, https://docs.aws.amazon.com/personalize/latest/dg/how-it-works-dataset-schema.html, retrieved September 2020.-->
<ref id="B004">
<label>[4]</label>
<element-citation publication-type="webpage" publication-format="web">
<source>AWS Dataset Schema</source>
<comment><uri>https://docs.aws.amazon.com/personalize/latest/dg/how-it-works-dataset-schema.html</uri>retrieved September 2020</comment>
</element-citation>
</ref>
<!--[5] Microsoft Azure Machine Learning, https://studio.azureml.net/, retrieved Aug. 2020.-->
<ref id="B005">
<label>[5]</label>
<element-citation publication-type="webpage" publication-format="web">
<source>Microsoft Azure Machine Learning</source>
<comment><uri>https://studio.azureml.net/</uri>retrieved Aug. 2020</comment>
<comment>retrieved</comment>
</element-citation>
</ref>
<!--[6] K. Y. So, Y. H. Lee, K. H. Moon, and K. M. Ko, Design of bi-directional recommend calligraphy contents open-market platform, Journal of Korea Multimedia Society, Vol. 18, No. 12, pp. 1586-1593, 2015.-->
<ref id="B006">
<label>[6]</label>
<element-citation publication-type="journal">
<person-group>
<name><surname>So</surname><given-names>K. Y.</given-names></name>
<name><surname>Lee</surname><given-names>Y. H.</given-names></name>
<name><surname>Moon</surname><given-names>K. H.</given-names></name>
<name><surname>Ko</surname><given-names>K. M.</given-names></name>
</person-group>
<year>2015</year>
<article-title>Design of bi-directional recommend calligraphy contents open-market platform</article-title>
<source>Journal of Korea Multimedia Society</source>
<volume>18</volume><issue>12</issue>
<fpage>1586</fpage><lpage>1593</lpage>
<pub-id pub-id-type="doi">10.9717/kmms.2015.18.12.1586</pub-id>
</element-citation>
</ref>
<!--[7] W. J. Yang, S. B. Song, C. E. Kim, and H. H. Min, Personal consumption pattern forecast and financial products recommendation with machine learning, Proceeding of The Korean Institute of Information Scientists and Engineers, pp. 1402-1403, 2020.-->
<ref id="B007">
<label>[7]</label>
<element-citation publication-type="paper">
<person-group>
<name><surname>Yang</surname><given-names>W. J.</given-names></name>
<name><surname>Song</surname><given-names>S. B.</given-names></name>
<name><surname>Kim</surname><given-names>C. E.</given-names></name>
<name><surname>Min</surname><given-names>H. H.</given-names></name>
</person-group>
<year>2020</year>
<article-title>Personal consumption pattern forecast and financial products recommendation with machine learning</article-title>
<conf-name>Proceeding of The Korean Institute of Information Scientists and Engineers</conf-name>
<fpage>1402</fpage><lpage>1403</lpage>
</element-citation>
</ref>
<!--[8] ISO 8601-1:2019, Date and time-Representations for information interchange, https://www.iso.org/standard/70907.html, retrieved Aug. 2020.-->
<ref id="B008">
<label>[8]</label>
<element-citation publication-type="webpage" publication-format="web">
<source>ISO 8601-1:2019, Date and time-Representations for information interchange</source>
<comment><uri>https://www.iso.org/standard/70907.html</uri>, retrieved Aug. 2020</comment>
</element-citation>
</ref>
<!--[9] Recurrent neural network(RNN) tutorial-part 1, http://aikorea.org/blog/rnn-tutorial-1, retrieved August 2020.-->
<ref id="B009">
<label>[9]</label>
<element-citation publication-type="webpage" publication-format="web">
<source>Recurrent neural network(RNN) tutorial-part 1</source>
<comment><uri>http://aikorea.org/blog/rnn-tutorial-1</uri>, retrieved August 2020</comment>
</element-citation>
</ref>
<!--[10] Y. Bengio, P. Simard, and P. Frasconi, Learning long-term dependencies with gradient descent is difficult, Journal of IEEE Transactions on Neural Networks, Vol. 5, No. 2, pp. 157-166, Mar. 1994.-->
<ref id="B010">
<label>[10]</label>
<element-citation publication-type="journal">
<person-group>
<name><surname>Bengio</surname><given-names>Y.</given-names></name>
<name><surname>Simard</surname><given-names>P.</given-names></name>
<name><surname>Frasconi</surname><given-names>P.</given-names></name>
</person-group>
<year>1994</year>
<month>Mar.</month>
<article-title>Learning long-term dependencies with gradient descent is difficult</article-title>
<source>Journal of IEEE Transactions on Neural Networks</source>
<volume>5</volume><issue>2</issue>
<fpage>157</fpage><lpage>166</lpage>
<pub-id pub-id-type="doi">10.1109/72.279181</pub-id>
</element-citation>
</ref>
<!--[11] S. Hochreiter, and J. Schmidhuber, Long short-term memory, Neural Computation, Vol9, No. 8, pp. 1735-1780, 1997.-->
<ref id="B011">
<label>[11]</label>
<element-citation publication-type="journal">
<person-group>
<name><surname>Hochreiter</surname><given-names>S.</given-names></name>
<name><surname>Schmidhuber</surname><given-names>J.</given-names></name>
</person-group>
<year>1997</year>
<article-title>Long short-term memory</article-title>
<source>Neural Computation</source>
<volume>9</volume><issue>8</issue>
<fpage>1735</fpage><lpage>1780</lpage>
</element-citation>
</ref>
<!--[12] Movie lens dataset, https://grouplens.org/datasets/movielens/, retrieved Sep. 2020.-->
<ref id="B012">
<label>[12]</label>
<element-citation publication-type="webpage" publication-format="web">
<source>Movie lens dataset</source>
<comment><uri>https://grouplens.org/datasets/movielens/</uri>, retrieved Sep. 2020</comment>
<comment>retrieved</comment>
</element-citation>
</ref>
<!--[13] UCI online retail dataset, https://archive.ics.uci.edu/ml/datasets/online+retail, retrieved Sep. 2020.-->
<ref id="B013">
<label>[13]</label>
<element-citation publication-type="webpage" publication-format="web">
<source>rUCI online retail dataset</source>
<comment><uri>https://archive.ics.uci.edu/ml/datasets/online+retail</uri>, retrieved Sep. 2020</comment>
</element-citation>
</ref>
<!--[14] Retail rocket dataset, https://www.kaggle.com/retailrocket/ecommerce-dataset, retrieved Sep. 2020.-->
<ref id="B014">
<label>[14]</label>
<element-citation publication-type="webpage" publication-format="web">
<source>Retail rocket dataset</source>
<comment><uri>https://www.kaggle.com/retailrocket/ecommerce-dataset,retrieved</uri>, retrieved  Sep. 2020</comment>
</element-citation>
</ref>
<!--[15] J. Herlocker, J. A. Konstan, and J. Riedl, An empirical analysis of design choices in neighborhood-based collaborative filtering algorithms, Information Retrieval, Vol. 5, No. 4, pp. 287-310, 2002.-->
<ref id="B015">
<label>[15]</label>
<element-citation publication-type="journal">
<person-group>
<name><surname>Herlocker</surname><given-names>J.</given-names></name>
<name><surname>Konstan</surname><given-names>J. A.</given-names></name>
<name><surname>Riedl</surname><given-names>J.</given-names></name>
</person-group>
<year>2002</year>
<article-title>An empirical analysis of design choices in neighborhood-based collaborative filtering algorithms</article-title>
<source>Information Retrieval</source>
<volume>5</volume><issue>4</issue>
<fpage>287</fpage><lpage>310</lpage>
</element-citation>
</ref>
<!--[16] Accuracy and precision, https://en.wikipedia.org/wiki/Accuracy_and_precision, retrieved Aug. 2020.-->
<ref id="B016">
<label>[16]</label>
<element-citation publication-type="webpage" publication-format="web">
<source>Accuracy and precision</source>
<comment><uri>https://en.wikipedia.org/wiki/Accuracy_and_precision</uri>, retrieved Aug. 2020</comment>
</element-citation>
</ref>
</ref-list>
<ack>
<title>감사의 글</title>
<p>이 논문은 2020년도 정부(교육과학기술부)의 재원으로 한국연구재단의 지원을 받아 수행된 기초연구사업임(No. NRF-2018R1D1A1B07049667).</p>
</ack>
<bio>
	<p><graphic xlink:href="../ingestImageView?artiId=ART002663713&amp;imageName=jkits_2020_15_06_991_f016.jpg"></graphic><bold>Chul Jin Kim</bold> received both M.S. and Ph. D. degree in Computer Science from the Soongsil University in 1998 and 2004. He worked as a senior researcher in SAMSUNG Electronics from 2004 to 2009. He has been a professor in the of Computer Systems and Engineering at Inha Technical College since 2009. He research focus is software engineering, object-oriented&#x26;component technique, software architecture, customization, and deep learning.</p>
	<p><italic>E-mail address</italic>: <email>cjkim@inhatc.ac.kr</email></p>
	<p><graphic xlink:href="../ingestImageView?artiId=ART002663713&amp;imageName=jkits_2020_15_06_991_f017.jpg"></graphic><bold>Ji Hyun Jeong</bold> is currently studying bachelor's course in Dept. of Computer Engineering from Inha Technical College. He research focus is deep learning(product recommendation, audio recognition) and mobile service.</p>
	<p><italic>E-mail address</italic>: <email>jhjeong@itc.ac.kr</email></p>
	<p><graphic xlink:href="../ingestImageView?artiId=ART002663713&amp;imageName=jkits_2020_15_06_991_f018.jpg"></graphic><bold>Cheon Woo Jo</bold> is currently studying bachelor's course in Dept. of Computer Engineering from Inha Technical College. He research focus is Network Service(beacon), deep learning(product recommendation) and mobile service.</p>
	<p><italic>E-mail address</italic>: <email>cwjo@itc.ac.kr</email></p>
	<p><graphic xlink:href="../ingestImageView?artiId=ART002663713&amp;imageName=jkits_2020_15_06_991_f019.jpg"></graphic><bold>Dong Hun Byun</bold> is currently studying bachelor's course in Dept. of Computer Engineering from Inha Technical College. He research focus is Web Service, deep learning(product recommendation).</p>
	<p><italic>E-mail address</italic>: <email>dhbyun@itc.ac.kr</email></p>
</bio>
</back>
</article>
