본문 바로가기

코오딩

[논문] 딥러닝을 활용한 맥주추천시스템 개발

반응형

진짜루

 

학사 나부랭이가 쓴 유사 논문입니다.

읽으시기전에 참고하시라구...

졸업조건이라서 썼고...

교수님들은 읽지도 않으셨으니

참고하시면서 읽으시면 됩니다.


초 록

 

 

맥주에는 많은 종류가 있다. 그러나 현재 대부분의 술자리에서는 희석식 소주와 라거 맥주만이 소비되고 있는 현황이다. MZ세대가 사회 주류로 진입하면서 개성을 살린 다양한 주류에 대한 요구가 발생하고 있다. 주류시장도 이에 발맞추어 다양한 종류의 맥주와 증류주, 고급화된 전통주 등으로 대응하려고 노력 중이지만, 아직도 소비자는 수많은 종류의 주류 앞에서 어떤 걸 마셔야 할지 고민하고 있으며 다양한 증류주와 전통주에 관심은 있으나 접근성이 떨어져 고민하는 일이 많아지고 있다. 그러나 취향에 맞는 주류를 추천해주는 서비스는 찾아볼 수 없으며 부족하게나마 선택에 도움을 주는 요소는 메뉴판이나 편의점 쇼케이스에 붙어있는 매우 간략한 설명글이 전부이다.

이에 본 연구에서는 사용자가 기존에 선호하는 주류를 설문 받아 그 값을 기반으로 데이터를 분석하고 딥러닝과 다층 레이어 퍼셉트론 등의 기계학습 모델을 활용하여 개개인 사용자의 취향에 맞는 적절한 맥주를 추천하는 시스템들을 분석하고 최종적으로 구현한다. 추천 시스템 구현을 위해 중 클래스 분류를 위한 MLP based Softmax DNN(Deep Neural Network, DNN) 알고리즘과 연관규칙분석 알고리즘 Apriori 알고리즘을 비교 분석하였다.

 

주요어: 맥주, MLP based Softmax DNN, Apriori, MLP

---

 

영어로는 그냥 파파고 돌림

 


 

차례입니다.


1 장 서 론

 

술의 역사는 상당히 오래되었다. 나무에 과일이 떨어진 곳에서 발효가 진행되었던 것을 동물이 마시고, 그 후 인간들도 마시며 자연스럽게 술의 기원이 되었을 거라 생각된다.

술은 우울증과 긴장감을 해소하여 안정감을 주고, 인간관계를 가깝게도 해 주며, 원수로 지내던 사이를 친구로 만들어버릴 정도로 마법 같은 존재다. 친한 사람들을 더욱더 친하게 만들며 똑같은 일상에서 벗어날 수 있도록 색다른 재미를 준다. 중국의 역사서 한서(漢書)에서는 술을 하늘이 내려준 복이라고 불렀다. 술의 역사는 인류의 역사만큼 오래되었고 미래에도 함께할 것이다.

술에도 여러 종류가 있다. 그중 맥주를 보면 정말 많은 종류가 있는데, 맥주를 양조할 때의 효모의 특성에 따라 상면발효와 하면 발효로 나뉘게 된다. 효모가 위로 떠 오르면 에일(Ale)’, 아래로 가라앉으면 라거(Lager)’가 되며, 에일(Ale) 종류는 밝은 색상을 띄며 구운 맥아를 사용해 쌉쌀한 맛이 특징인 페일에일(Pale Ale), 흰색에 가까운 투명한 색을 띄고 풍부한 과일 향과 풍성한 거품, 가벼운 맛이 특징인 바이젠(Weizen)과 달콤한 맛과 더불어 깊은 훈제 향과 진한 초콜릿 색을 띠는 포터(Porter), 까맣게 탄 맥아를 사용해 탄 맛이 나는 짙은 갈색의 스타우트(Stout) 이렇게 네 종류로 나눠 볼 수 있으며, 효모가 아래로 가라앉으면 라거(Lager)라고 하며, 라거에도 연수를 사용하고 홉을 많이 넣어 만든 황금빛을 띠는 필스너(Pilsner), 색이 어둡고 검은색과 갈색을 띄지만 쌉쌀한 맛이 덜하고 부드러운 둔켈(Dunkel), 우리가 가장 자주 접하는 가볍고 탄산이 강해 목 넘김이 좋은 페일라거(Pale Lager)가 있다. 맥주의 이 많은 장르에는 어울리는 페어링과 장소와 상황이 있다. 그러나 현재 우리 사회는 상황, 장소와 무관하게 희석식 소주와 라거 맥주만 접할 수 있고 어떤 장소더라도 오직 저 두 종류의 주류가 주로 소비되고 있다.

MZ세대가 사회의 주류로 자리 잡기 시작하면서 이전 세대와는 다른, 개성을 중시하는 등의 소비 업계에 기존에 없던 새로운 성향이 나타나고 있다. 2019년 기획재정위원회에서 전체 회의를 통해 맥주와 막걸리(탁주)에 대한 과세체계를 기존 종가세에서 종량세로 전환하는 내용의 주세법 개정안을 통과시켰다. 이에 따라 맥주와 막걸리의 가격을 기준으로 과세하지 않고 양과 알코올 분에 비례해 세금을 매기는 방식으로 바뀌었다. 정책적으로 시장의 파이를 키워, 접근성을 높이고 수제 맥주와 수입 맥주 등 주류시장 활성화를 위해 노력하고 있다.

 

 

[그림 1] 종량

 

세 전환 후 맥주 세금 및 생맥주 가격 변동 추이[01]

 

주류시장도 이에 발맞추어 다양한 종류의 신상 맥주와 인기를 끌었던 다양한 콜라보, 지역의 특색을 살린 로컬 브루어리(양조장)등이 참여하는 맥주 축제 등으로 대응하고 있으나 이들의 취향을 제대로 공략하고 있는 종류는 많지 않다. 소비자는 수많은 종류의 맥주 앞에서 어떤 걸 마셔야 할지 고민하고 있고 다양한 종류의 맥주와 관심은 있으나 접근성이 떨어져 고민하는 일이 많아지고 있지만 취향에 맞는 주류를 추천해주는 서비스는 찾아볼 수 없고, 선택에 도움을 주는 요소는 메뉴판이나 편의점 쇼케이스에 붙어있는 매우 간략한 설명글이 전부이기에 충분히 훌륭한 맥주들이 빛을 보지 못하고 시장에서 사라지고 마는 실정이다.

이에 본 연구에서는 다양한 맥주의 종류들에 대한 소개와 더불어 추천시스템 알고리즘을 적용하여 분석한다. 또한 MZ세대 약 100명에게 설문을 진행하여 가장 선호하는 맥주를 조사하여 이 결과를 분류한다.

추천 시스템 구현에 가장 많이 사용되는 MLP based Softmax DNN(Deep Neural Network) 기법과 연관규칙분석 알고리즘 Apriori 기법을 직접 설문 받은 데이터를 기반으로 구현하고 나온 결과에 대해 만족도 조사를 진행하였다.


 

아무튼 그렇다는 뜻
뭐 그냥 인트로죠 여기까진

2 장 관련 연구

2.1 맥주의 종류

맥주는 와인과 함께 가장 오래된 술의 종류 중 하나이다. 맥주는 값이 싼 곡물을 이용해 만들어 접근성이 좋고 많이 소비되었다. 맥주는 발효과정에 효모를 일부러 주입(Injection)하게 되는데 이는 발효를 빠르게 하기 위해서이다. 맥주는 보리를 중심으로 값싸고 다양한 곡물을 재료로 하여 빚어지게 되는데 이 때문에 조금만 시간이 지나도 변질이 일어나게 된다. 이는 발효과정에서도 큰 걸림돌로 작용하였고 맥주 제조자들은 최대한 빠른 발효를 위해 효모를 주입하게 되었다. 실제로 파스퇴르의 연구 전, 과거의 맥주들은 제조부터 유통 소비까지 최대 8일을 넘지 않도록 관리되었다고 한다. 당시 냉장 기술이 충분히 발달하지 않기도 했지만 변질되기 쉬운 맥아즙의 특성이 가장 큰 이유라고 알려져 있다.

 

[그림2] Syrian mercenary drinking beer in the company of his Egyptian wife and child c1350 BC PhotographBettmann/Corbis[02]

 

짧은 유통기간을 가지는 맥주는 모두 상면발효(High Fermentation)를 통해 만들어지는 것들이었다. 상면발효 맥주들은 효모가 발효되는 위치가 맥주의 윗부분에서 이루어지고 비교적 높은 온도에서 발효가 이루어진다. 20도 정도 온도에서 발효가 진행되는데, 미생물은 따듯할수록 더 활발하게 활동하여 상당히 빠른 발효속도를 지녀 변질의 위험이 컸다. 변질을 막기 위해 도수를 높이고 홉을 많이 첨가한 India Pale Ale(IPA) 같은 새로운 장르의 맥주를 개발해내기도 하였으나 홉의 양을 늘리는 그것만으로는 한계가 있었고 결국 하면 발효 맥주가 본격적으로 생산 및 소비되게 되는 계기가 된다.

냉장 기술의 발전과 함께 독일 및 체코에서 하면 발효(Low Fermentation)의 적용되기 시작하였다. 상면발효와는 반대로 맥주의 아랫부분에서 발효하며 10도 정도의 낮은 온도에서 발효가 이루어진다. 최초의 하면 발효 맥주들은 추운 겨울에 만드는 겨울용 맥주였으나 냉장 기술이 발달하며 사계절 내내 만들고 유통할 수 있게 되며 오늘날 우리가 주로 마시는 맥주의 형태가 되었다.

 

2.1.1 발효효모에 따라- 상면발효

상면발효맥주는 흔히 Ale(에일)이라고 불린다. 발효과정 중 거품과 함께 상면으로 떠오르는 성질의 효모로 제조하는 맥주를 가리킨다. 발효 온도가 높고 효모량이 많으며 강하고 풍부한 맛과 향을 갖는 맥주로 주로 유럽에서 인기가 많다. 에일을 양조할 때는 제빵 등에 사용되는 사카로미세스 세례 비 시(Saccharomyces cerevisiae)라는 효모를 사용한다. 효모를 섭씨 21도 근처의 온도로 두거나 발효과정 중 발효 온도가 변화를 거듭하면 과일 향이 나는 에스테르(Ester)가 형성되기도 한다. 에일에는 Pale Ale, India Pale Ale, PorterStout, Weizen, Wit bier 등의 장르가 있다.

Pale Ale, 페일 에일은 페일몰트 라는 보리에 싹을 틔워 발효한 맥아를 사용한다. 오늘날 만나 볼 수 있는 대부분의 에일이 페일 에일이다. 밝은색의 맥아를 사용해 에일 중 가장 밝은색을 지닌다.

India Pale Ale, 인디아 페일에일은 줄여서 IPA라고도 많이 쓴다. 상면발효맥주의 종주국인 영국은 홉 함량과 알코올 도수를 높이면 저장성이 향상된다는 것을 이용하여 알코올과 홉 함량을 높인 맥주를 인도까지 맥주를 운송하는 데 사용하였고, 다량의 홉으로 인한 풍미가 매력으로 다가와 이 이름을 갖게 되었다. 솔향을 연상시키는 강렬한 홉 맛과 강한 맛이 특징이며 텁텁하고 쓴맛이 강하게 나는 경향을 지닌다.

PorterStout, 초기의 포터 맥주는 브라운 맥아를 사용하여 어두운색을 유도하였었으나 요즘은 일반 맥아를 볶거나 태워서 사용한다. 스타우트는 맥아를 조금 더 태워서 사용하게 된다. 따라서 비슷한 색 계열의 맥주가 나오지만, 포터는 초콜릿 향, 스타우트는 주로 커피 향이 두드러지게 된다.

Weizen, Wit beer는 흔히 밀맥주라고 칭하나 전통적인 보리, , 효모, 홉의 구성에 밀을 추가하는 것이다. 독일식 밀맥주(Weizen) 과 벨기에식 밀맥주(Belgian Wit bier)로 나뉘는데, 독일식 밀맥주의 경우 빌헬름 4세가 맥주 순수령(Reingeitsgebot)을 내렸을 때 바이에른 지역만 이 맥주를 양조할 수 있게 하여 오늘날 하나의 장르로 자리를 잡게 되었다.

벨기에식 밀맥주는 밀맥주의 구성에 고수, 오렌지껍질, 각종 허브 등을 첨가함으로써 벨기에식 밀맥주만의 독특한 맛을 나타내게 된다.

2.1.2 발효효모에 따라 하면 발효

하면 발효 맥주는 흔히 라거라고 부른다. 발효가 끝나면 효모가 바닥으로 가라앉는데, 이 때문에 하면 발효라고 부른다. 저온인7도에서15도 사이에서 최적의 조건을 지니며 에일 효모보다 성장이 느리게 진행된다. 라거 맥주들은 알코올 도수가 낮은 편이고 색도 맑은 호박색으로 밝다. 향과 깊은 맛이 별로 없는 대신 깔끔하고 시원한 청량감을 지닌다. 페일라거와 필스너, 미국식 부가물 라거와 켈러비어 등이 있다.

Pale Lager, 페일라거는 가장 일반적인 라거를 말한다. 연한 황금색과 적당한 쌉쌀함, 그리고 청량감을 갖는 맥주이다. 유럽 각지에서 발달하였으며 홉 향을 줄여 섬세한 맛을 지닌다.

Pilsner, 필스너는 체코의 필젠 지역에서 개발된 밝고 투명한 라거의 한 종류로, 세계 맥주 시장의 대부분을 차지할 만큼 유행하는 스타일이 되었다. 홉이 강조되었고 맥아 향과 곡 향을 균형을 맞췄다.

American Adjunct Lager, 미국식 부가물 라거는 보리와 홉을 줄이고 쌀이나 옥수수, 녹말을 섞어 대량생산에 유리하게 만든 스타일이다. 대부분의 국산 맥주도 전부 여기에 속한다. 맥주 자체로의 맛은 약하지만, 청량감이 뛰어나고 탄산 맛이 강해 쉬운 목 넘김을 강조한다.

Kellerbier, 켈러비어는 독일어로 지하실(Keller)이라는 이름이 붙은 맥주인데, 위스키처럼 오크통에 담아 지하실에서 숙성시키기 때문에 붙은 이름이다. 로컬 브루어리등에서 다양한 오크통에서 시도한 다양한 맥주를 선보이고 있다. 한번 사용된 오크통에는 먼저 발효된 술의 맛과 향을 만든 미생물들이 맥주의 맛에 영향을 주게 된다. 이 점을 살려 다양한 마케팅 요소로 활용하고 있다.

Radler, 라들러는 라거 맥주를 베이스로 음료수를 섞은 탄산주이다. 도수가 낮고 제조가 쉬워 다양한 종류가 있다. 망고 맥주나 파인애플 맥주 등 낮은 도수에 과일 맛이 나는 경우 대부분 라들러로 분류된다.


알중*인 제게
이정도는 참고자료도 필요없을 수준이었는데
확인용으로 좀 보긴 했음
하지만 너무너무 쉬웠다
쉽게 써진 논문...

*알중 : 알콜 중독자

2.3.1 Deep Neural Networks for Youtube Recommendations

일반적으로 알려진 추천 알고리즘이나 시스템은 유튜브 정도의 큰 시스템에서는 잘 동작하지 않는다. 실시간으로 모델이 바뀌기도 하고 학습해야 할 데이터의 규모가 매우 크기 때문이며, 엄청나게 많은 이용자와 일치하는 동영상들을 제공하되 지연성도 지켜야 한다.

[그림 3] 유튜브 추천시스템 개관[03]

 

 

 

유튜브 추천 동영상의 기본 구조는 후보군 생성’-> ‘랭킹순서의 두 가지 레이어로 구성된다.

이 두 레이어를 구성하고 후보자를 생성할 때는 협업 필터링을 적용하여 간단한 수준의 개인화를 시킨다. ‘협업 필터링이란 많은 사용자로부터 얻은 정보

에 따라 사용자들의 관심사를 자동으로 예측하게 해주는 방법을 뜻한다.

[그림 4] 유튜브 추천시스템 후보 생성 모델 구조[04]

 

추천시스템의 네트워크는 사용자가 시청한 동영상들을 평균(Average) 처리하여 영상 벡터(Watch Vector)로 변환하고, 사용자가 검색한 검색어도 평균 처리 후 검색 벡터(Search Vector)로 변환한다. 추가로 지역과 영상 나이와 나이, 성별 등의 특성을 벡터로 치환한다. 검색어를 시간 순서대로 처리하지 않고 평균을 내서 처리하는 이유는 최근 검색어에 대한 부분만 학습해 최근 검색 결과에 대한 추천 동영상만 추천하도록 편향될 수 있기 때문에 평균으로 처리해서 사용한다. 유튜브 이용자들은 새로 업로드되는 영상에 흥미를 갖는다. 따라서 새로 업로드된 영상 위주로 추천해주는 것이 중요하나, 오래된 영상일수록 조회 수가 높고 학습이 많이 되어있어 오래된 영상을 추천할 가능성이 크다. 따라서 영상에 나이를 붙여 오래된 영상일수록 가중치를 낮추도록 하였다.

[그림 5] 유튜브 추천시스템 랭킹 생성 모델 구조[05]

 

순위 레이어의 뉴럴 네트워크에서는 사용자의 정보를 조금 더 자세하게 추가하고, 동영상 자체의 정보를 연속형 벡터로 치환하여 모델의 피처로 사용한다. 그리고 각 비디오의 점수를 매기고 학습하여 사용자에게 최종 노출되게 한다. 추천 레이어를 생성할 때, 특정 시간(t)에 이용자가 C라는 정보를 가지고 있을 때 수백만 개의 동영상(i) 각각을 볼 확률을 계산한다. 그리고 정답 데이터는 영상에 대해 좋아요 와 설문 참여 등이 아닌, 영상을 끝까지 본 경우를 Positive example로 한다. 유튜브의 자체 추천 결과만으론 편향된 결과가 나와 다른 사이트에서의 유입도 모두 포함하였다. 그리고 추천 결과를 예측할 때 무작위 예측보다 더 효과적인 시점에서 과거 데이터만 가지고 다음 선택을 예측한다. 랭킹 모델은 사용자가 특정 채널에서 얼마나 많은 영상을 봤는지, 특정 토픽의 동영상을 본 지 얼마나 지났는지, 과거 시청 여부 등과 더불어 어떤 후보자 추천에서 왔는지, 점수는 얼마인지 등의 데이터도 모두 활용한다. 또 클릭 빈도수 기반으로 처리 과정을 거친 후 평균을 구하여 사용한다.

일반적으로 알려진 추천 알고리즘이나 시스템은 유튜브 정도의 큰 시스템에서는 잘 동작하지 않는다. 실시간으로 모델이 바뀌기도 하고 학습해야 할 데이터의 규모가 매우 크기 때문이며, 엄청나게 많은 이용자와 일치하는 동영상들을 제공하되 지연성도 지켜야 한다.

[그림 3] 유튜브 추천시스템 개관[03]

 

유튜브 추천 동영상의 기본 구조는 후보군 생성’-> ‘랭킹순서의 두 가지 레이어로 구성된다.

이 두 레이어를 구성하고 후보자를 생성할 때는 협업 필터링을 적용하여 간단한 수준의 개인화를 시킨다. ‘협업 필터링이란 많은 사용자로부터 얻은 정보

에 따라 사용자들의 관심사를 자동으로 예측하게 해주는 방법을 뜻한다.

[그림 4] 유튜브 추천시스템 후보 생성 모델 구조[04]

 

추천시스템의 네트크는 사용자가 시청한 동영상들을 평균(Average) 처리하여 영상 벡터(Watch Vector)로 변환하고, 사용자가 검색한 검색어도 평균 처리 후 검색 벡터(Search Vector)로 변환한다. 추가로 지역과 영상 나이와 나이, 성별 등의 특성을 벡터로 치환한다. 검색어를 시간 순서대로 처리하지 않고 평균을 내서 처리하는 이유는 최근 검색어에 대한 부분만 학습해 최근 검색 결과에 대한 추천 동영상만 추천하도록 편향될 수 있기 때문에 평균으로 처리해서 사용한다. 유튜브 이용자들은 새로 업로드되는 영상에 흥미를 갖는다. 따라서 새로 업로드된 영상 위주로 추천해주는 것이 중요하나, 오래된 영상일수록 조회 수가 높고 학습이 많이 되어있어 오래된 영상을 추천할 가능성이 크다. 따라서 영상에 나이를 붙여 오래된 영상일수록 가중치를 낮추도록 하였다.

[그림 5] 유튜브 추천시스템 랭킹 생성 모델 구조[05]

 

순위 레이어의 뉴럴 네트워크에서는 사용자의 정보를 조금 더 자세하게 추가하고, 동영상 자체의 정보를 연속형 벡터로 치환하여 모델의 피처로 사용한다. 그리고 각 비디오의 점수를 매기고 학습하여 사용자에게 최종 노출되게 한다. 추천 레이어를 생성할 때, 특정 시간(t)에 이용자가 C라는 정보를 가지고 있을 때 수백만 개의 동영상(i) 각각을 볼 확률을 계산한다. 그리고 정답 데이터는 영상에 대해 좋아요 와 설문 참여 등이 아닌, 영상을 끝까지 본 경우를 Positive example로 한다. 유튜브의 자체 추천 결과만으론 편향된 결과가 나와 다른 사이트에서의 유입도 모두 포함하였다. 그리고 추천 결과를 예측할 때 무작위 예측보다 더 효과적인 시점에서 과거 데이터만 가지고 다음 선택을 예측한다. 랭킹 모델은 사용자가 특정 채널에서 얼마나 많은 영상을 봤는지, 특정 토픽의 동영상을 본 지 얼마나 지났는지, 과거 시청 여부 등과 더불어 어떤 후보자 추천에서 왔는지, 점수는 얼마인지 등의 데이터도 모두 활용한다. 또 클릭 빈도수 기반으로 처리 과정을 거친 후 평균을 구하여 사용한다.

일반적으로 알려진 추천 알고리즘이나 시스템은 유튜브 정도의 큰 시스템에서는 잘 동작하지 않는다. 실시간으로 모델이 바뀌기도 하고 학습해야 할 데이터의 규모가 매우 크기 때문이며, 엄청나게 많은 이용자와 일치하는 동영상들을 제공하되 지연성도 지켜야 한다.

[그림 3] 유튜브 추천시스템 개관[03]

 

유튜브 추천 동영상의 기본 구조는 후보군 생성’-> ‘랭킹순서의 두 가지 레이어로 구성된다.

이 두 레이어를 구성하고 후보자를 생성할 때는 협업 필터링을 적용하여 간단한 수준의 개인화를 시킨다. ‘협업 필터링이란 많은 사용자로부터 얻은 정보

에 따라 사용자들의 관심사를 자동으로 예측하게 해주는 방법을 뜻한다.

[그림 4] 유튜브 추천시스템 후보 생성 모델 구조[04]

 

추천시스템의 네트워크는 사용자가 시청한 동영상들을 평균(Average) 처리하여 영상 벡터(Watch Vector)로 변환하고, 사용자가 검색한 검색어도 평균 처리 후 검색 벡터(Search Vector)로 변환한다. 추가로 지역과 영상 나이와 나이, 성별 등의 특성을 벡터로 치환한다. 검색어를 시간 순서대로 처리하지 않고 평균을 내서 처리하는 이유는 최근 검색어에 대한 부분만 학습해 최근 검색 결과에 대한 추천 동영상만 추천하도록 편향될 수 있기 때문에 평균으로 처리해서 사용한다. 유튜브 이용자들은 새로 업로드되는 영상에 흥미를 갖는다. 따라서 새로 업로드된 영상 위주로 추천해주는 것이 중요하나, 오래된 영상일수록 조회 수가 높고 학습이 많이 되어있어 오래된 영상을 추천할 가능성이 크다. 따라서 영상에 나이를 붙여 오래된 영상일수록 가중치를 낮추도록 하였다.

[그림 5] 유튜브 추천시스템 랭킹 생성 모델 구조[05]

순위 레이어의 뉴럴 네트워크에서는 사용자의 정보를 조금 더 자세하게 추가하고, 동영상 자체의 정보를 연속형 벡터로 치환하여 모델의 피처로 사용한다. 그리고 각 비디오의 점수를 매기고 학습하여 사용자에게 최종 노출되게 한다. 추천 레이어를 생성할 때, 특정 시간(t)에 이용자가 C라는 정보를 가지고 있을 때 수백만 개의 동영상(i) 각각을 볼 확률을 계산한다. 그리고 정답 데이터는 영상에 대해 좋아요 와 설문 참여 등이 아닌, 영상을 끝까지 본 경우를 Positive example로 한다. 유튜브의 자체 추천 결과만으론 편향된 결과가 나와 다른 사이트에서의 유입도 모두 포함하였다. 그리고 추천 결과를 예측할 때 무작위 예측보다 더 효과적인 시점에서 과거 데이터만 가지고 다음 선택을 예측한다. 랭킹 모델은 사용자가 특정 채널에서 얼마나 많은 영상을 봤는지, 특정 토픽의 동영상을 본 지 얼마나 지났는지, 과거 시청 여부 등과 더불어 어떤 후보자 추천에서 왔는지, 점수는 얼마인지 등의 데이터도 모두 활용한다. 또 클릭 빈도수 기반으로 처리 과정을 거친 후 평균을 구하여 사용한다.

 

이건 그냥 퍼온거입니다
영어논문을 제가 읽었으면
학점이 고등학교 내신 수준은 아녔겠죠
인서울했겠지 심지어 농어촌이었으니까

그냥 유튜부가 어떻게 추천하나
이정도만 알고 계셔도 충분합니다
그 이야기이기도 하고요

3 장 시스템 분석 및 비교

 

 

3.1 데이터 크롤링 및 수집

맥주의 다양한 종류는 선택의 범위가 넓다는 장점으로 다가올 수도 있지만 반대로 취향의 맥주를 찾는 것이 그만큼 어려워지는 단점으로 작용할 수도 있다. 또한 맛에 대한 평가는 매우 주관적이고 의미고 살아온 환경이나 경험해본 음식의 종류에 따라 매우 다르기에 객관적으로 분류가 매우 어렵다. 그러나 이러한 점은 대체로 그런 평가를 한다.’처럼 경향성을 파악하면 대중이 납득할 만한 평가를 할 수는 있다. 따라서 이 문제를 해결하기 위해 많은 사용자가 많은 맥주를 마신 후 후기를 남기고, 토론하는 리뷰 사이트(https://www.beeradvocate.com/)를 활용하였다. 리뷰가 주관적이긴 하지만 비교적 섬세하게 작성되었고, 많은 수의 사람들이 동의하였기에 크롤링해서 사용하도록 하였다.

 

[그림6] 데이터 크롤링 코드[06]

많은 리뷰가 시각, 후각, 촉각, 미각을 많이 활용하여 작성된 경향을 볼 수 있었다. 리뷰들을 살펴보면 맛을 대부분 감각으로 표현한다는 점을 확인하였고 토큰화를 진행하였다. 토큰화를 진행하며 숫자로 표기된 토큰과 3글자 미만의 단어를 모두 제외하였다.

토큰 빈도수 상위 20개 중 자주 등장하지만, 맥주의 맛을 설명해주지 않는 “TASTE”, “FLAVOR” 등의 단어는 제외하였다.

그러나 외국 맥주 사이트를 기반으로 크롤링을 진행한 만큼 우리나라 맥주의 데이터는 찾아보기 힘들고, 공감이 어려워 새로운 데이터의 필요성을 느꼈다. 그래서 설문지를 자체 제작하여 새로운 자료를 수집하고 정리하였다.

 

자체 제작 설문조사에서 맥주의 리스트는 접근성이 좋은 편의점 맥주 리스트를 활용하였고 필요한 경우 직접 구매도 진행하였다. SNS 매체를 활용하여 설문을 진행하였고 다양한 주류를 접해보지 못한 나이대인 20대 초반-중반을 대상으로 하여 약2일 동안 약 100명에게 맥주 선호도에 대한 답변을 수집할 수 있었다. 특히 설문을 좋아하는 맥주를 모두 고를 수 있게 하여 맥주 종류들 사이에 경향성을 찾을 수 있도록 설문을 진행하였고 추가로 선호하는 맥주의 장르 또한 동시에 설문을 진행하여 좋아하는 장르와 맥주의 장르가 일치하는지 확인할 수 있어 신뢰도를 확보할 수 있게 진행하였다.

접근할 수 있는 편의점 3곳에서 판매하는 맥주 중 시즌 한정 맥주와 중복 주류 등을 제외하고 종합하였다. 또한 추가로 국내외 다양한 로컬 브루어리에서 제조 판매하는 맥주 또한 반영할 수 있도록 하여 최종적으로 101명에게 54종의 맥주에 대해 기호도를 조사할 수 있었다. 그 후 이 맥주들의 맛을 설명하는 키워드(TASTE NOTE)를 종합하고 추가로 데이터를 확보하였다. 사용자별 맥주 선택의 경향을 파악하기 위해 선택하고 선호하는 맥주 리스트도 정리하였다.


이 의의는 내가 직접 설문받아서 제작했다는데에 의의가 있죠
이거하려고 학생회했나 싶을정도로
백명분의 설문을 하루만에 모으긴했음

3.3.1 MLP-based Softmax DNN

 

위 기법은 다층 레이어 퍼셉트론 방식에 Softmax 함수를 적용한 DNN(Deep Neural Network) 방식이다. 다층 레이어 퍼셉트론 MLP(Multi-Layer Perceptron)은 퍼셉트론들로 이루어진 층(Layer) 여러 개를 순차적으로 붙여놓은 형태를 말한다. 데이터를 행렬로 입력받아 데이터를 처리하게 된다. 입력층과 출력층 사이에 여러 개의 은닉층(Hidden Layer)으로 이루어진 인공 신경망을 말한다. 최종 출력 단계에서 Softmax를 활성화 함수로 사용한다. Softmax 함수는 선택해야 하는 선택지의 총개수를 K라고 할 때 K 차원의 벡터를 입력받아 각 클래스에 대한 확률을 추정한다.

 

[그림 10] MLP based Softmax DNN 개념도[10]

 

본 연구에서는 57종의 맥주를 대상으로 진행하기에 선택지의 총개수 K = 57이다. Softmax 함수는 여러 개의 연산 결과를 정규화하여 모든 클래스의 확률값의 합을 1로 만든다. 행과 열에 모두 맥주의 이름을 입력하고, A 맥주를 고른 사람이 B 맥주를 고를 확률을 계산하고 이 값을 전부 입력하였다. 그 후 이 과정을 반복하여 BEER_FINAL. CSV 파일을 구성하였다.

 

그 후 이 데이터 세트를 SCIKIT-LEARN을 이용해 전처리해 주었다. 먼저 다음 공식에 따라 표준화를 진행한다.

다음 공식에 따라 그대로 표준화를 진행한다. 그 후 손쉬운 처리를 위해 Label Encoder를 이용하여 행렬값으로 변환시켜준다. 그 후 맥주들의 종류를 행으로, 스케일러가 변환한 값을 target이라고 지칭하며 y에 대입한다. 그 후 train_Dataset 이라는 값에 Custom Dataset 함수에 앞서 행으로 들어가는 맥주의 종류 X 와 스케일러가 변환한 targety로 해서 대입한다. Custom Dataset 함수는 x_datay_data를 넘겨받아 적재해주는 함수이다. MLP 클래스 1번 선형변환에선 총 54종의 맥주 종류를 받아 512개의 퍼셉트론에 이어준다. 그 후 512개의 퍼셉트론을 2번 레이어에선 256개에 이어준다. 그 후 3번 레이어에선 다시 128개의 레이어에 이어준다. 그 후 4번 레이어에선 128개의 퍼셉트론을 다시 num_classes의 개수, 54개에 이어준다. 이를 그림으로 요약하면 다음과 같다.

 
 

다층 레이어 방식의 가장 큰 목표는 INPUT DATA에 대한 OUTPUT을 가장 잘 예상하는 가중치를 찾는 것이다. 학습 셋을 이용하여 출력을 구하고 출력에 대한 에러를 구한 후 에러가 줄어드는 방향을 찾아 역전파(Backpropagation) 과정을 통해 알맞은 가중치를 찾는다. 역전파 과장은 입력층에서 출력층으로 향하는 것이 아닌 반대로 출력층에서 입력층 방향으로 계산하면서 가중치를 업데이트하는 과정이다. 출력 결과를 미분의 연쇄법칙(Chain Rule)에 따라 값의 오차가 최소가 되도록 가중치를 조정하여 최적의 학습 결과를 찾아가는 방법이다. 여러 층을 활용함으로써 추후 서술할 Apriori 모델보다 더 높은 정확도를 갖게 되었으며 실제로 더 많은 데이터와 함께 적용된다면 더욱더 개인화된 추천이 가능할 것이다. 또한 새로운 데이터가 들어왔을 때도 학습된 데이터를 기반으로 더욱 정확한 값을 추천해줄 것으로 보인다. 다층 레이어 퍼셉트론은 머신러닝 기반의 다른 알고리즘과는 다르게 데이터를 비선형으로 만들 수 있다. 비선형으로 데이터를 만들면 오차 등을 배제할 수 있고, 연관성이 없는 데이터가 나오는 것을 방지하며 완전히 새로운 데이터를 적재하였을 때도 스스로 판단하여 최적의 값을 유도해준다. 여러 데이터가 추가되더라도 대처할 수 있기에 매우 유연하고 효과적이라고 판단된다.

본 모델은 입력값과 출력값만 주어지고 여러 개의 계층을 순환하며 활성화 함수와 가중치 값을 계속 변화를 준다. 본 모델에서는 ReLU(Rectified Linear Unit) 활성화 함수를 사용하였는데, 이 함수는 xy보다 크면 기울기가 1인 직선, 0보다 작으면 0이 되는 함수이다. 값이 양수면 자기 자신을 반환하고 음수면 0을 반환하게 설계되어있다. 이 함수를 사용하는 이유는 기존 시그모이드(Sigmoid) 함수 등의 문제점인 특정 양수값에 수렴하여 기울기 소실(Vanishing Gradient) 문제가 발생하지 않고, 기존 함수에 비해 매우 빠르고

일차함수의 모양을 보이기에 계산이 간편하다는 장점이 있다. 그 후 모델을 훈련한다. 훈련된 모델은 역전파 과정과 가중치 업데이트 과정을 앞서 지정해 둔 EPOCH의 값인 100회 반복한다. 그 후 모델에 선호하는 맥주에 대한 배열을 적재하여 최종적으로 그 값을 바탕으로 선호하는 맥주를 출력하게 된다.

 

모델의 정확도는 94.44%이다. 그 후 원하는 데이터인 맥주 추천받기 위해 recom이라는 함수를 생성한다. 이 함수는 test를 매개변수로 받는데, test는 테스트 데이터 세트를 의미한다. 처리를 위해 tensor 형으로 변경한 데이터를 to(DEVICE) 명령어를 통해 다시 CPU로 변환하여 가져온다. 그 후 54칸의 배열을 만들어 KEY_VALUE_RESULT를 저장한다. 그리고 정렬을 위해 SORTED_RESULT를 이용한다. 그 후 FOR 문을 만들어 54번 반복하며 상위 5개 확률이 높은 맥주를 추천하는데, 이 과정에서 먼저 입력한 5개와 겹치면 continue를 통해 다음 맥주를 추천하게 된다.

[그림 13] MLP based Softmax DNN 추천시스템 결과[13]

 

[그림 18]17번 맥주, 6번 맥주, 3번 맥주, 2번 맥주, 30번 맥주에 임의로 선호도를 입력하여 추천받은 결과이다. 점수가 높은 순으로 정렬하고 높은 순서에 해당하는 열의 제목을 그대로 출력하여 맥주가 추천된다. 최종적으로 매우 높은 정확도를 보이며 5개까지 추천해줌으로써 매우 바람직한 모델이라고 할 수 있다. MLP based Softmax DNN 모델은 테스트시 결과가 94.44%가 나왔다.


 
아무튼 이릏게 기가막히게 추천을 해준다 이말이야
그니까 가상으로 네개의 필터를 만들고
값이 그 네개의 레이어 안에서 이리갔다 저리갔다
가중치가 보내주면 가고아니면 돌아오고
그런거 반복해서최적의 값을 찾는 모양.

 

 

그 후 추천 시스템의 정확도 점검을 위해 설문 응답자를 대상으로 2차 설문을 진행하였다. 먼저 1차 설문시에 선택한 맥주 종류와 장르를 구분하고, 수기로 입력을 진행하며 propList라는 변수의 개수를 늘려가며 모델에 학습결과를 넣어 그 결과를 받아오는 recom 함수의 매개변수로 테스트 모델 형태로 만들어주는 makeTest 함수에 선호도 값을 매개변수로 전달하여 결과를 받아오도록 하였다. 이때 선호도는 선호하는 장르에 따라 0.9로 조절하였으며 이때 선호하지 않는 장르의 맥주 선호도는 0.6으로 상대적으로 낮은 값을 선택하여 일괄 진행하였다. 그 후 선택 결과에 따른 추첨 결과를 설문 참여자들에게 재전송하여 결과에 얼마나 만족하는지에 대하여 2차 조사를 진행하였다.

백분율 100퍼센트로 환산하여 기준 응답자 10238명이 논문 작성 시기까지 응답을 회신하였고 전혀 만족하지 못했다’ 3명과 매우 만족한다.’ 12명 등 초기 설문시 응답한 맥주의 종류가 자세하고 종류가 다양할수록 만족도가 더 높은 경향을 보였다. 특히 설문 결과와 동일하게 카스’, ‘테라맥주가 선호하는 맥주에 포함되어 있을 경우 위 두 맥주가 포함되어있는 카테고리인 라거종류의 맥주를 추천하는 경향성을 보인다. 또한 에일 카테고리의 맥주를 주로 선택한 사용자의 경우 라거를 고른 사용자에 비해 더욱 향과 맛이 다양한 맥주를 선택하거나 추천받는 경향성을 관찰할 수 있었다. 그러나 응답 표본의 개수가 턱없이 부족하고 많은 종류를 고른 사람은 맥주를 좋아하고 즐기는 사람인 경우가 많아 남들과 다른 결과를 보여주는 점 등을 고려하면 아직 더 많은 데이터가 필요하다.

 


그 후 피드백받은부분
추천시스템이 얼마나 정확한지
다시설문받았습니다

3.2.1 역할 기반 모델 Apriori

연관규칙분석(Association Rule)의 한 종류이다. 어떤 비교군의 집합이 번번이 발생하는가를 알려주는 일련의 규칙들을 생성하는 알고리즘이다.

 

위 그림과 표를 보고 카스를 사는 사람들은 테라도 산다.’라는 규칙을 찾아내었다고 했을 때 집합 간의 연관성 강도를 측정하는 데엔 아래 표와 같이 신뢰도, 지지도, 리프트 등의 지표로 판단하게 된다.

Apriori Algorithm은 모든 규칙에 대한 지표를 계산하지 않고, 최소한의 지지도(Support) 이상 되는 경우만을 탐색하여 효율적으로 계산한다.

지지도
( Support )
X Y가 함께 발생할 확률
P(AB) : frq(x,y)/N
신뢰도
( Confidence )
가 나왔을 때 y가 나올 확률
P(AB) / P(A) : frq(x,y)/frq(X)
리프트
( Lift )
XY의 독립을 가정했을 때 XY가 함께 일어난 사건을 XY가 서로 독립된 사건일 때 일어난 사건으로 나누는 것을 뜻한다.
B) / (P(A)*P(B)) = P (B|A) / P (B)

 

 

리프트값은 클수록 유리하다. 리프트값이 1이라면 두 비교군은 독립적이라는 의미이며 1보다 크면 양의 상관관계(우연적 기회보다 높은 확률), 1보다 작으면 음의 상관관계(우연적 기회보다 낮은 확률)를 지닌다.

 

Apriori 알고리즘에 따른 처리를 위해 설문 데이터를 맥주 종류를 행으로, 사용자들의 선택을 열로 처리하는 BEER_CHOICE이라는 데이터를 가공하여 pandas 데이터 프레임 형태로 적재하였다.

 
 

음과 같이 적재한 데이터에서 포함되었는지를 연관 규칙과 Apriori 규칙에 따라 one-hot encoding 하여 표현한다.

그 후 최소 지지도를 0.2, 연관관계 함수에 최소 신뢰도를 0.3으로 설정하였다.

[그림 17] 연관규칙분석 알고

 

리즘 결과 화면[17]

 

그 후 결과는 위 그림과 같다. ‘카스를 마신 사람과 테라를 마신 사람 규칙의 리프트 값이 1.582583이 나옴에 따라 규칙 사이에 유의미한 연관성이 있다고 나타내고 있다. 마찬가지로 버드와이저테라’, ‘테라호가든사이의 리프트값도 1.3 이상의 유의미한 값을 보여줌으로써 두 맥주 사이에 큰 연관성이 있다는 것을 확인할 수 있었다. 그러나 전문적인 설문조사 기관에서 조사한 결과가 아니어서 신뢰도가 낮고, 표본의 수가 부족하여 더 이상의 신뢰도를 갖는 값을 찾기가 불가능하다. 결론적으로 의미 있는 결과를 찾아보기에는 어려움이 많아 추천시스템으로 이용하기에는 부적합하나, 맥주 간의 상관관계를 파악하는 데에 적절하며 경향성을 찾기에 유리하다고 판단된다.


 

ㅇ이건 그냥 경향성찾기지
ㅋㅋㅋ

데이터가 턱없이 부족했음
이 값은 심지어 가공도 필요해

 

4 장 실행 결과

 

4.1 실행 결과

본 연구에서는 추천시스템에 사용되는 시스템을 비교 분석하였고 그 결과 유의미한 결론을 얻을 수 있었다.

그러나 지나치게 적은 표본과 낮은 신뢰도로 인하여 산정에 어려움을 겪었다.

MLP based Softmax DNN 모델은 심층신경망이 선택확률을 기반으로 하여 사용자 취향에 맞는 맥주를 상대적으로 정확히 추천해줌으로써 현재 상황에서 사용하기에 매우 적합하고, 유용하다고 할 수 있다. 94.44%의 신뢰도를 확보하였고 우선순위에 따라 최대 5개까지 추천해준다.

역할 기반 모델 Apriori 모델은 적은 표본에 의해 유의미한 표본이 매우 적게 나와 현재 데이터를 기반으로 하는 추천시스템으로서는 매우 부족하다. 그러나 데이터의 경향성을 확인할 수 있어 상황에 따라 유용하게 사용될 수도 있을 것이다.

성능 비교를 위해 장르가 비슷한 맥주 5종을 고르고, 비슷한 장르의 맥주를 추천하는지를 파악하기로 하였다. 선정한 종류는 모두 Radler 장르의 맥주이다, 라거의 한 장르로서 라거 맥주에 음료수를 섞어 만든 낮은 도수의 맥주이다. 예상 결과는 가볍게 즐길 수 있는 향이 약한 라거 종류와 허브 등이 첨가되어 가볍게 즐길 수 있는 벨기에 밀맥주와 라들러이다.

Tiger 레몬, Tiger 자몽, 애플 폭스, 써머스비 애플, 불닭 맥주 등의 맥주를 선호하는 사용자가 있다고 가정을 하고 각각 0.9, 0.9, 0.9, 0.5, 0.5만큼의 선호도를 보인다고 정의했을 때 [그림19]과 같은 결과를 얻을 수 있었다,

 

[그림 18] 임의의 사용자 맥주 추천 결과[18]

가볍고 깔끔하며 향이 약해 목 넘김이 쉽고 도수가 상대적으로 낮은 라거 종류가 많이 추천되었다. 하이네켄과 카스, 칭따오 맥주 모두 라거 중 페일 라거 장르에 속하며 예상한 대로 가볍게 즐길 수 있는 맥주가 추천되었다. 또한 향이 강하고 탄산을 강조한 크로코와 상큼한 첫맛과 자극적인 쓴맛을 자랑하는 백스 맥주가 추천되었다.

100명 정도의 적은 데이터밖에 구할 수 없었으나 상당히 우수한 수준의 예측 시스템이 식별되었다. 그 후 추가로 진행한 설문에서도 높은 수준의 정확도를 보이는 것으로 보아 만족할만한 결과를 얻을 수 있었다. 다만 더 많은 입력을 실행하였을 때의 결과가 더 정확하나 많은 입력값을 넣은 사용자의 값과 유사하게 도출되는 것으로 보아 고차원의 맞춤형 설문 결과를 얻기 위해선 더 많은 입력값과 더불어 더 많은 사용자 데이터가 필요하다고 판단된다. 보다 양질의 데이터를 확보하여 본 모델에 추가로 충분한 데이터를 학습시킨다면 더욱더 정확한 결과를 얻을 수 있을 것이다.

 


여긴 솔직히 놀랐던 부분
생각보다 잘 추천해준다
놀랍다 그죠

5 장 결론 및 향후 과제

 

본 논문에서는 제1장 서론을 시작으로 제2장 관련 연구, 3장 시스템 분석 및 비교, 4장 실행 결과까지 심층적으로 맥주의 종류와 분류, 여러 추천시스템의 적용과 맥주 추천까지 진행된다. 그리고 최종적으로 가장 효과적인 모델을 제안한다.

향후 연구과제로는 더 높은 신뢰도와 더 많은 추천 결과를 위한 다양한 모델에 대한 전문 설문 기관을 통한 설문조사와 더 많은 표본조사, 추가로 새롭게 출시되는 맥주들과 최종적으로는 와인과 양주 종류와 전통주까지 데이터를 확보하여 인류의 친구인 술을 다양하고 적절하게 즐길 수 있도록 도와주는 것이 본 연구의 최종목표이다.

추가로 인터페이스를 개선하고 효과적인 선택지를 구현하여 쉽게 적절한 값을 얻어 갈 수 있도록 개선하는 것이 향후 목표이다. 이를 위해서 자료수집 과정의 자동화와 더불어 처리시간을 단축해야 하며, 보다 접근성을 높이기 위한 GUI 인터페이스와 다양한 기기에 이식하는 등의 접근성을 높이는 조치가 수반되어야 할 것이다.


이제 누군가 이걸로 앱 만들어주면 될듯
일단 전 컴맹이라 그런거 못함

참 고 문 헌

 

[1] Deep Neural Networks for YouTube Recommendations Paul Covington, Jay Adams, Emre Sargin Google Mountain View, CA {pcovington, jka,msargin@google.com

[2] 구글 디밸로퍼 https://developers.google.com

[3] 한국주류산업협회 http://www.kalia.or.kr/mobile/main.php

[4] 맥주 막걸리 50여 년 만에 종량세로 개편 스포츠서울 http://www.sportsseoul.com/news/read/772385

[5] 포춘코리아 스페셜리포트 이제는 취향 경제 시대 케이스스터디 3 http://www.fortunekorea.co.kr/news/articleView.html?idxno=11033

[6] MSELOSS Pytorch.org https://pytorch.org/docs/stable/

generated/torch.nn.MSELoss.html

[7] Keras Adam - https://keras.io/api/optimizers/adam/

[8] https://codetorial.net/tensorflow/get_attribute_of_neuron_layers.html

[9] Google Colab : https://colab.research.google.com/github/google/eng-edu/blob/main/ml/recommendation-systems/recommendation-systems.ipynb?hl=ko#scrollTo=8vRUh2Mzo4s1

[10] 딥러닝에서 데이터 표준화, 정규화가 필요한 이유- 공부기록하려고만든블로그 - https://toyourlight.tistory.com/38

[11] 알 수 있는 유튜브 추천 알고리즘

https://medium.com/curg/%EC%95%8C%EC%88%98%EC%9E%88%EB%8A%94-%EC%9C%A0%ED%8A%9C%EB%B8%8C-%EC%B6%94%EC%B2%9C-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-1fbeb1a6d5db

[12] 판다스 기초 정리 https://doorbw.tistory.com/172

[13] pandas dataframe text, csv,파일 불러오기 - R, Python 분석과 프로그래밍의 친구 https://rfriend.tistory.com/250

[14] 추천시스템 실습 코드 : https://github.com/SeongBeomLEE/Tobigs_Recommendation_System_Seminar/blob/main/Week2_Recommendation_Seminar_Code.ipynb

[15] 판다스 Nan 0으로 대체 https://www.delftstack.com/ko/howto/python-pandas/how-to-replace-all-the-nan-values-with-zeros-in-a-column-of-a-pandas-dataframe/

[16] 연관성분석 in python https://wotres.tistory.com/entry/Association-Rule-%EC%97%B0%EA%B4%80%EC%84%B1-%EB%B6%84%EC%84%9D-in-python

[17] 연관규칙분석 https://ratsgo.github.io/machine%20learning/2017/04/08/apriori/

[18] 유튜브 추천 문제에서 쓰의는 DNN https://ratsgo.github.io/machine%20learning/2017/04/08/apriori/

[19] 상면 발효와 하면 발효 (Studies on Fermentation) https://beer.tistory.com/entry/%EC%83%81%EB%A9%B4-%EB%B0%9C%ED%9A%A8%EC%99%80-%ED%95%98%EB%A9%B4-%EB%B0%9C%ED%9A%A8-Studies-on-Fermentation

[20] <Studies on Fermentation: The Diseases of Beer, Their Causes, and the Means of Preventing Them> (발효에 대한 연구: 맥주 변질의 발생 이유와 예방법

[21] The beer of yesteryear https://www.theguardian.com/lifeandstyle/wordofmouth/2010/oct/27/old-ale-beer-history

[22] 맥주의 색은 이것으로 결정된다? 플레이그라운드 브루어리 https://www.playgroundbrewery.com/%EB%A7%A5%EC%A3%BC%EC%9D%98-%EC%83%89%EC%9D%80-%EC%9D%B4%EA%B2%83%EC%9C%BC%EB%A1%9C-%EA%B2%B0%EC%A0%95%EB%90%9C%EB%8B%A4/

[23] Apriori 알고리즘 기반의 개인화 정보 추천시스템 설계 및 구현에 관한 연구* A Study on Design and Implementation of Personalized Information Recommendation System based on Apriori Algorithm 김 용 (Yong Kim)* https://koreascience.kr/article/JAKO201209857782097.pdf

[24] 수제맥주 전문점의 맥주 추천 서비스에 관한 연구 색체를 활용한 취향정보를 중심으로 홍익대학교 국제디자인전문대학원 디자인경영전공 강명국

[25] 와인소비자의 개인가치가 와인선택속성과 선택행동에 미치는 영향 계명대학교 대학원 관광경영학과 이희수

[26] 음악가사의 분석을 통한 사용자기반의 음악 추천시스템 제안 머신러닝을 사용한 음악추천시스템 제안 숭실대학교 핀테크 융합학과 류슬기


그 외에도 기타 나를 알게모르게 도와준
고대의 티스토리 블로그들과 네이버 블로그,
나랑 같은 문제로 고민한
스택오버플로우 개발자님들
감사합니다
덕분이에요

뉴턴은 거인의 어깨에서 좀 더 앞을 봤다고 했나 그런데

저도요

파스퇴르 논문까지 볼줄이야

네 열심히 살아볼께요

 

반응형

'코오딩' 카테고리의 다른 글

동적 2차원 배열_  (0) 2020.03.22