Doc2vec, Word2vec처럼 각각의 단어를 벡터로 표현하고자하는 시도가 꽤 있어왔다. 이런 벡터표현은 단순히 bag-of-words으로 표현하거나, one-of-k (흔히 one-hot vector)라고 부르는 방법으로 표현할 수 있다. 그러나 이러한 시도들은 여러 문제가 있었고, word2vec으로 더 밀도있는 표현방식(denser representation)을 사용했다. 한 단어를 doc2vec으로 임베딩하여 표현할 수 있었듯이, document 또는 paragraph을 벡터로 표현할 수 있는데 왜 supervised paragraph2vec가 필요한건가? 이에 대한 장점은 있는건가? 이에 대한 대답을 Supervised Paragraph Vector: Distributed representations of words, documents, and class에서 찾을 수 있다.

 

 

 

 

Supervised paragraph vector가 필요한 이유?


 

범용적인 임베딩모델(예, doc2vec, paragraph2vec 이하 PV)은 정말 단순한 알고리즘으로 hidden layer가 하나만 존재하여 매우 학습이 편하고, 쓰기도 편하지만, 임베딩에 다음과 같은 문제가 있다. word2vec의 CBOW(continous bag of words)을 생각하면, 단어벡터(word vector, 단어를 임베딩한 벡터)를 구문론적(syntactical)으로 학습하기도하고, 의미론적(semantic)적으로 학습하기도 한다. 예를 들어, "the cat sat on the mat"이라면, cat을 예측할땐, 주변단어인 the와 sat을 이용해서 예측한다. 따라서 유사한 단어가 동시에 많이 출현될수록, 같은 벡터로 표현될 확률이 높고, 주변단어의 쓰임이 비슷하게 나왔을 때도, 유사한 벡터로 임베되는 경향이 있다 (Figure 1. A). 하지만, 해결해야하는 문제가 감정분석(sentimental analysis)로, wonderful과 amazing이 같은 그룹으로, terrible, awful이 부정그룹으로 분리되서 해야한다면 어떨까? 동시출현 또는 유사한 단어가 많이 출현하는 것을 학습하여 임베딩하는 word2vec의 이런 학습방식은 특정테스크에 모두 걸맞게 쓰기가 쉽지가 않다. 이런 일반화된 분석방법으로는 이런 임베딩의 표현의 의사결정바운더리(decision boundary)을 긋기가 쉽지않다. 본 논문은 word2vec, paragraph2vec, doc2vec의 제한점을 해결하고자 시도했던 논문이다. 

word2vec의 출력에이어의 

 

 

 

SPV의 핵심 아키텍처


해결방법은 다음과 같다. word2vec의 아키텍처와 같이 하나의 입력레이어, 하나의 히든레이어, 하나의 출력레이어로 구성한다(Figure 4-A). 좌측에 아키텍처의 구성을보면, $x1,..., x_{\gamma}$까지는 한 문단에 들어가있는 단어가 one hot vector로 변환된 벡터를 의미한다. 각각 one-hot vector로 표시할 때, 총 단어의 개수가 V라면, V개 원소의 개수를 가지고, 원소중 하나만 1인 벡터가 된다. 차이점이라면, 다음과 같은 벡터들도 입력값에 전달된다. 바로 도큐먼트의 one-hot vector인 $p$와 클레스의 라벨인 $z$가 추가로 전달된다는 것이다. 아래의 그림에서는 $p$은 전체 문서(documents)의 수를 의미한다. $z$은 클레스라벨을 의미해서, $M$개의 클레스가 존재한다고 했을 때, 각각 하나하나를 one-of-K(one-hot)벡터로 인디케이팅한 것을 의미한다. 그리고 h에 해당하는 히든레이어의 출력을 $\delta$개의 원소를 가진 벡터라고하자.

 

 

위와 같이 셋팅한 경우, $W^{(1)}$은 임베딩을 위한 dense layer의 가중치 메트릭스로 $\mathbb{R}^{V\times\delta}$가 된다(V개의 one-hot vector을 $\delta$개로 압축하는 fully connected layer 이기 때문). $W^{(2)}$은 출력레이어의 가중치로 W1의 전치행렬과 크기가 같다(왜냐하면, 출력해야하는 단어도 V개의 벡터여야 하기 때문이다). 

 

위의 아키텍처에서 목적함수를 클레스라벨이랑 도큐먼트의 인덱스 단어에 최대한 학습할 수 있게 다음과 같이 정의하였다. 

 

1. SPV-DM(여러 단어가 주어진 경우, 한단어를 예측하는문제):  아래의 우변의 시그마 내 첫 항은 "CBOW와 같이 주변단어가 주어졌을 때, 예측하고자하는 단어를 예측하기위한 손실함수", 두 번째 항은 "문서내에 해당 예측하고자 하는 단어가 있을 확률", 세 번째 항은 "문서의 라벨이 주어졌을 때, 해당 단어가 있을 확률"을 모두 더한 값이다.

 

$L_{SPV-DM} = \frac{1}{T}\sum_{t=1}^{T}\sum_{j=1}^{\gamma}log(p(w_{t}|w_{t+j})+log(p(w_{t}|d))+log(p(w_{t}|c)))$

 

2. SPV-DBOW(한 단어가 주어진 경우, 여러단어를 예측하는 문제)

 

$L_{SPV-DBOW} = \frac{1}{T}\sum_{t=1}^{T}\sum_{j=1}^{\gamma}log(p(w_{t+j}|c))$

 

 

논문에는 등장하지 않는 limitations


1. 본 모델은 word2vec에 사용되는 모델과 구조가 유사해서, OOV(out of vocabulary)의 문제를 그대로 갖고있다. 따라서 unseen data에 대해서는 모델이 강건하지 않을 수 있다.

반응형

한국은행이 주택 가격 소비자심리지수(CCSI)구성에 포함되지 않는 지수들을 살펴보면 "주택가격전망CSI는 전월대비 3point하락했다"라는 기사들을 심심치않게 볼 수 있다. 소비자심리지수(CCSI) 소비자동향지수(CSI), 또 주택가격지수 등 여러가지 부동산 가격관련 지수들이 있다. 이 지수들의 차이가 무엇인지 알아보자.

 

 

소비자동향지수(CSI)? 소비자심리지수(CCSI)? 차이가?


소비자동향지수(CSI)와도 다른 소비자 심리지수는 "심리"라는 단어가 대신에 "동향"이라는 단어가 들어간 이 지수는 전국에 도시의 2,500가구를 조사하여, 소비자의 인식을 설문조사해서 만든 지수이다. 아래의 큰 4가지의 구분으로 각각 세분화된 조사항목을 물어보는 것이다. 100보다 크면 가계(가구)가 형편 또는 전망을 긍정적으로 보는 것이고, 반대로 100보다 낮으면 부정적으로 보는 것을 의미한다.

 

 

주택관련 지표도 포함되어 있다. 자세히보면, 물가상황에 대한 인식란 안에 "주택가격전망"이 포함되어있다. 2021년 10월에 한국은행(BOK)에서 발간한 보도자료 "10월중 소비자동향조사 결과"  를 살펴보면, 아래의 그림과 같다.  그 중에서, 물가상황에 대한 인식으로 주택란CSI은 보면, 시장심리는 전월대비해서 128-125로 주택가격이 더 오를거라는 기대심리가 아직 충분히 많은 것으로 판단할 수 있다.

 

2021년 10월 소비자동향조사 결과 | 보도자료(상세) | 커뮤니케이션 | 한국은행 홈페이지

2021년 10월 소비자동향조사 결과

www.bok.or.kr

 

 

 

소비자심리지수(CCSI, Composite Consumer Sentiment Index)은 CSI항목 중 일부를 모아 만든 지표


유사한 지표로는 소비자심리지수(CCSI)에는 현재생활형편, 생활형편전망, 가계수입전망, 소비지출전망, 현재경기판단, 향후경기전망인 총 6가지의 개별지수를 표준화하혀 합성한 지수이다. 경제 전반에 대한 소비자의 인식(체감)을 종합적으로 판단하기 위한 지표이다. 이지표도 "심리"지표로 사용되는데, 소비자심리지수(CCSI)가 100보다 큰경우 과거대비해서 $bar{X_{i}}$ 좋을 것이라고 기대하고, 100보다 낮은 경우 부정적으로 기대한다는 것이다. 위에서 작성한 소비자동향지수(CSI)의 일부 항목을 기준으로 작성된 것임을 알 수 있다. 이 소비자심리지수(CCSI)에는 물가상황에 대한 내용이 없어 부동산에 대한 소비자인식을 평가할 수 없다.

한국은행 참조: 소비자심리지수개요: 산출방식

 

 

서울 아파트 매매수급지수 추이

:부동산에 물어본 물건이 얼마나 많아요?, 매수하려는 사람이 얼마나 되어요?의 비율


이 지표는 한국은행에서 발간하는 지표가 아니라, 한국부동산원에서 발간하는 지표이다. 전국주택가격조사에 공표보고서를 보면, 주간 아파트가격동향을 레포트로 내놓는다. 주택수급(Supply and demand)란 말 그대로, 파는 사람의 매도량과 매수량의 비율이 어느정도 되는지를 나타내는 척도이다. 수요와 공급의 비중을 점수화한 수치로 0에 가까울 수록 공급우위, 200에 가까울 수록 수요우위, 100에 가까울 수록 수요와 공급이 비슷하다는 것을 의미한다.

매매수급동향은 5점척도로 표본이 속한 단지별 동향을 5점척도로 조사한다. 매매수급동향을 (1 매도문이 많음, 2: 매도문의 다소 있음, 3.비슷, 4:매수문의다수 있음, 5:매수문의 다수있음)을 각 응답별로 (%)을 계산한다. 예를 들어, 매도문의가 많음을 보고한 표본(부동산)이 1명, (2)매도문의 다수있음이 2명, (4)매수문의다소있음이 4명, (5)매수문의다수 있음이 5명이면 다음과 같이 계산한다.

 

매매수급동향: 100 - 1 * (1) - 0.5 * (2) + 0.5 * (4) + 1 * (5). 

 

수식을 보면, 매수문의가 많다와, 다소있음이 가중치가 2배차이가 나기때문에, 표본별로 응답을 어떻게하냐에 따라, 꽤 차이가 있을 수 있다.

 

 

아래의 주택수급동향 시계열을 보면, 왠만해서는 96.1을 깨지 않는 것을 볼 수 있다. 어느정도 96.1이어도 다소비슷한 상황이라는것이고 딱히 시장심리가 급격히 얼어붙는경우가 드물다는 것으로 해석할 수 있다. 주의할 것은 주택수급동향에서 100보다 미만이라고 가격이 하락하는 것은아니다. 2019년에 주택수급동향에 큰 조정이 있었음에도, 주택가격은 계속 올라왔던 것은 사실이다. 다른 요인(예, M2, M1)과 분석하는 것이 더 타당해보인다.

반응형

input = "abccbaz"


# 필랜드롬인지 판정하는 함수
def is_palindrome(sub_str:str) -> str:
    return sub_str == sub_str[::-1]

# 가장 긴 필랜드롬
def search_longest_palindrome(string:str) -> str:

    # 문자열의 길이가 2이하인데, 0번, 1번 문자열이 같은 경우
    if len(string) <= 2:
        if is_palindrome(string):
            return string

    longest_palindrome = str()

    for start_idx in range(1, len(string)):
        for window in range(1, start_idx):
            substring = string[start_idx-window:start_idx+window]
            if is_palindrome(substring):
                if len(longest_palindrome) < len(substring):
                    longest_palindrome = substring


    return longest_palindrome

search_longest_palindrome(input)

 

 

애너그램(Anagram)이란?

 


애너그램은 문자를 재배열하여, 다른 뜻을 가지는 단어로 바꾸는 것을 말한다. 예를 들어, 리그 오브 레전드의 챔피언과 "마오카이(Maokai)"은 "I am oak(떡갈나무)"와 같이 단어의 수와 각각의 문자열이 동일한데, 순서만 재배치함으로써, 다른 뜻을 가지는 단어들을 의미한다. 파이썬에서 단어들을 이런 애너그램 단위로 묶으려면 어떻게 해야할까? 다음과 같은 문제가 주어졌다고 가정하자.

 

아래와 같이 문자열이 주어졌을 때, 애너그램단위로 문자열 6개를 각각 유니크한 애너그램 단위로 묶고자한다.

inputs = ["education", "auctioned", "cautioned", "eat", "ate", "bet"]

 

솔루션

defaultdict을 이용하면, 바로 Key의 생성없이 Key, value의 할당이 가능하다. 각각의 인자를 list에 바로 저장할 때, 문자열이 애나그램인지 파악하기 위해서, 애너그램여부를 sorted()을 이용해서 정렬해서 파악한다. sorted()은 리스트, 문자열을 인자로 받을 수 있어서, 이를 이용해서 "".join(sorted(word))의 구문을 실행시키면, 정렬된 문자열이 반환된다.

# python3.x

inputs = ["education", "auctioned", "cautioned", "eat", "ate", "bet"]

# Solution
from collections import defaultdict

def sorted_words(inputs):
    anagram_groups = defaultdict(list)
    for idx, word in enumerate(inputs):
        anagram_groups["".join(sorted(word))].append(idx)

    return anagram_groups

 

 

팰린드롬(Palindrome, 회문)


팰린드롬(Palindrome)은 흔히 "요기요"는 거꾸로 해도 "요기요", "소주 만 병 만 주소"와 같이, 거꾸로 해도 똑같은 의미의 문장이 되는 문자열을 의미한다. 팰린드롬은 주어진 문자열이 있을 때, 문자열내에 팰린드롬이 있을 수도 있고, 없을 수도 있다. 예를 들어, "소주 주세요"와 같은 문자열은 팰린드롬이 없지만, "이 글의 원어는 국립국어원의 출처입니다"과 같이 팰린드롬이 모든 문자열이 아닌, 전체 문자열의 부분으로 가지고 있는 경우도 있다. 이렇듯, 문자열이 주어졌을 때, 가장 긴 팰린드롬을 찾아보자.

 

input = "abccbaz"

 

솔루션: 1) 우선 필랜드롬인지 검사하는 함수가 하나 독립적으로 있으면, 디자인이 쉬워진다. 그 후, 포인터 2개(첫 번째는 시작포인터, 두 번째는 윈도우)를 이용해서 검사를 진행한다.

 

아래와 같이 문자열이 주어졌을 때, 필랜드롬은 적어도 문자열의 길이가 2인 경우만 취급한다. 따라서, 필랜드롬의 문자가 2개이하면서, 0번, 1번의 문자가 동일한 경우는 조기 return을 시켜줄 수 있다.

# 가장 긴 필랜드롬
def search_longest_palindrome(string:str) -> str:

    # 문자열의 길이가 2이하인데, 0번, 1번 문자열이 같은 경우
    if len(string) <= 2:
        if is_palindrome(string):
            return string

 

그 외의 대부분의 경우를 위한 함수를 작성할 때는 아래와 같이 로직을 짤 수 있다. 1) 필랜드롬을 검사하기위한 시작인덱스(start_idx)는 0이 아니라 1부터 시작한다. 2) 윈도우사이즈는 start_idx을 넘으면 indexError가 날 것이기에, start_idx을 넘으면안된다. 또한 start_idx은 1부터 시작한다(0이면 시작점의 알파벳 하나를 비교하는 꼴이기 때문). 그리고, 가장 긴 필랜드롬을 찾는 것이기 때문에, 중간에 저장해놓을 변수를 하나 지정해서 다음과 같이 작성해볼 수 있다.

 

 

 

반응형

6억원이하의 주택을 매입할 때, 저소득층에게는 주는 보금자리론이라는 국가에서 운영하는 대출상품이 있다. 그러나, 내가 보금자리론의 대출자격조건에 해당하더라도, 신규로 거부되는 사례가 있을 수 있다. 실제로 "서울보증, 고액전세 보증 제한, 서민 전세대출 문턱 높아질 듯" ,"총량 규제에 묶인 은행은 보금자리론을 이용한 잔금대출을 사실상 중단" 이라는 사례들이 발생하고 있다. 보금자리론은 국가에서 운영하는 대출인데 왜? 추가로 대출이 안되는 것인가?

 

 

 

MBS (주택저당증권) 이란


1. 보금자리론은 국가에서 운영하는 것이 맞다. 2. 다만, 운영은 국가에서하되, 대출을 실행해주는 창구는 시중은행이다. 이 2가지를 기억하고, 주택저당증권이 발행되고, 대출이 실행되는 과정과 최근 대출규제를 알면, 대출규제가 안되는 이유를 알 수 있다.

 

반응형

Summary: BERT(Bidirecitonal Encoder Representations from Transformer)

 

사전학습이 된 양방향 표현법으로 각 모든레이어에서 우측과 좌측의 문맥정보(context)을 결합하는 것을 사용하는 언어모델이다. BERT는 Transformer의 목적함수가 변형된 형태이다. 이전 개발된 Transformer에서는 이전단어들을보고 다음단어를 예측하는 Uni-directional(일방향)의 언어모델이었다면, BERT은 다음의 차이가 있다.

 

 

  • 사전학습을 양방향으로 해서, 문맥정보를 더 파워풀하게 학습 (=Deeply bidirectional. 예, 나는 밥을 ???.    ???->밥을->나는) (Transformer와 유사한 언어를 인코딩해서 압축하는 형식이나, Transfoermed은 한번에 모든 단어들은 한거번에 보지만, BERT은 left-to-right, right-to-left순차적으로 본다)
  • 사전학습시에 Pre-traniing 과 fine tuning을 두 단계를 모두 활용하는 형식(BERT은 2가지의 손실함수를 가지고있고, 이 두 가지의 손실함수의 합을 손실함수로하여 동작한다)

 

 

 


Introduction

 

 

Pre-training: 대용량 데이터를 일단 학습시켜놓고, 이후에 재학습하는 것을 의미한다. 이러한 사전학습으로 튜닝하는 방식은 크게 두가지로 나뉜다.

  1. Feature-based (Parameters are fixed): 파라미터를 고정시켜놓고(e.g. tensorflow에서는 freezing). e.g) ELMO
  2. Fine-tuning (Parameters are not fixed): 특정 테스크에는 굉장히 적은 파라미터. GPT 계열이나 Uni-directional 언어모델.

(좌: Feature based, 우: finin tuning): https://www.pyimagesearch.com/2019/06/03/fine-tuning-with-keras-and-deep-learning/

그런데, 여태까지 이런 접근법은 언어를 표현하기위해, 1) 단방향의 언어를 사전학습(예, 좌측에서 우측으로만 단어를 예측), 2) 파라미터를 고정하든 안하든 같은 목적함수를 가지고 사전학습을 한다. 

 

=> 저자들은 이러한 기술이 사전학습을 더 잘 쓸수 있는것에 오히려 제한을 둔다고 얘기한다. 특히, fine-tuning을 하는 방법에서는 더욱 그렇다고 얘기한다 (아마도, 글자는 좌측에서 우측으로만 예측해야하니까, 반대로 우측에서 좌측으로 이해해서 얻을 수 있는 단어들 ([] 먹었다) 이런 정보들도 활용을 못하지 않나?) 생각이든다. 저자들도 가장큰 단점은 단방향모델이 가장 단점이라고 하고 있다(The major limitation is that standard language models are unidirectiona). GPT2 같은 경우도, sentence level task(문장단위의 예측모델)이나 token level task(예, question anwering)에서는 최적의 성능을 보여주지 못했는데, 양방향의 문맥정보를 활용하지 못했기 때문이라고 한다.

 

 

BERT는 Transformer의 목적함수가 변형된 형태이다. 특히, fine-tuning based approaches이다. 그리고, 단방향의 단점을 개선한 MLM(Masked language model)이다. 즉, 이전 개발된 Transformer에서는 이전단어들을보고 다음단어를 예측하는 Uni-directional(일방향)의 언어모델이었다면, BERT은 양방향으로 파악한다는 것이다.

위의 그림은 MLM에 관한 그림이다. Input에 뚤린 마스크를 Output에서 예측해야하는 것을 의미한다. 또한, BERT에서는 단방향만 처리하는게 아니라, 양방향으로 단어를 예측하도록 구조화하였다. How->are-> ? . 와 today, doing -> ? 을 예측해야하니까 문더 강력한 언어모델이 될 수 있다고 한다.

 

 

. BERT은 2가지의 손실함수를 가지고있고, 이 두 가지의 손실함수의 합을 손실함수로하여 동작한다.

 

손실함수의 종류는 다음과 같다.

 

  1. Loss function 1: BERT은 문장에 15%정도를 Masking을 해놓고, 처리한후에 masking된 단어를 에측하는 방법에 관한 손실함수를 가지고 있다. (일종의 CBOW다). 다만, CBOW와의 차이점은 양방향으로 단어를 예측한다. 
  2. Loss function 2: 문장들 사이에 관계를 학습하여, 주어진 문장과 다음문장이 연속된 문장인지 문맥을 학습(contextual)할 수 있게끔 손실함수를 설계했다. 예를 들어, 문장A가 문장B와 연속된 문장인지? 아닌지를 학습하기위한 장치를 마련했다. 다음 문장이라는 라벨링을 추가했다. 

 

CBOW와 SKIP gram의 차이. CBOW은 N개의 주어진 단어(t-2, t-1, t+1, t+2)로 로 하나의 단어를 예측해야하는 방법이라면 Skip gram은 t+0만 가지고 t-2, t-1, t+2을 예측해야하는 방법. BERT을 일종의 CBOW의 방법을 양방향으로 하되, t-2, t-1으로 한번, t+2, t+1로 한번 한다고 이해하면 된다.

 

 

 


Pre-requisite

 

 

 


Pretraning language model은 어떤것들이 있어왔고, 어떤 제한점이 있었는가?

 

  1. Unsupervised feature-based approaches: 주로 좌측에서, 단어들을 임베딩하기위해사용되었고, 우측으로 언어모델링을 하는 방법들이 많이 사용되었거나(Mnih and Hinton, 2009), 좌측의 잘못 입력된 단어들과 우측의 문맥으로 단어들이 적절하게 쓰였는지 판단하는 목적으로 주로 쓰였었다. 이 접근법들은 일반화되면서, 문장을 임베딩하는 방법이나(Kiros et al., 2015; Logeswaran and Lee, 2018), 문단을 임베딩 하는 방법들로도 사용되었다s (Le and Mikolov, 2014). 예를들어, 문장(senstence)을 표현하기위해서는 다음 문장들 어떤게 적절한지 적절한 문단을 훈련하는 목적함수를 갖게 사용했거나, 좌측의 단어들이 있을떄, 다음문장을 생성(generation)하는 방법, 또는 오토인코더에 사용되는 목적함수들이 사용되었다. ELMo와 이전세대들이 에애 해당한다. 2017년~2018년에 개발된 ELMo은 전통적인 단어임베딩을 위해 쓰였고, 좌측->우측과 우측->좌측의 다른 언어모델로부터 문맥정보를 담은 feature들을 추출해냈다. 그 다음에 left-to-right, right-to-left표현을 단순히 concatenatation시켜서 이 특징값을 사용했다. ELMo와 유사하게, 다른모델들도 있었는데 단순히 feature based으로 사전학습했지만, deeply bidrectional을 사용하진 않았다. 
  2. Unsupervised Fine-tuning approaches: 유사하게, 사전에 학습된 가중치에 목적에 맞게 모델의 가중치 전체를 다시 학습하는 방법으로는 단어를 표현한는 방법으로는 2008년에  연구(Collobert and Weston, 2008)가 시작되었다. 이후에는 일단 인코더에서 문장이나 문서를 임베딩한 후에, 목적에 맞게 재학습하는 연구들이 2015~2018년에 주로 있었다. 이러한 접근법의 가장 큰 장점은 스크레치(scratch) 모델의 적은수의 파라미터만 다시 재학습된다는 것이다. 이에 해당하는 것이 OpenAI GPT, GLUE에 해당한다.
  3. Transfer learning from supervised data: 자연어, 기계번역등에서의 많은 연구들이 이에 해당한다. 

 


본문

 

BERT은 크게 2단계의 프레임워크의 순서를 따른다. 첫 번째는 pre-tranining, 둘 째로는 fine-tuning이 이에 해당한다. 사전 학습때는 모델은 여러 테스크에 적용하기위해서, 라벨이 없는 데이터셋(비지도학습)을 학습한다. 그 후, fine-tuning단계에서는 BERT model을 초기파라미터가 세팅된후에, 모든 파라미터를 다시 목적에 맞는 테스크(down stream task)를 위해 재학습한다.

 

아래의 그림처럼, 출력부문을 제외하고는 같은 모델을 쓴다. 그러나, 출력부도 초기에는 BERT가 사전학습된 파라미터로 초기세팅이 이뤄진다. 가장 두드러진 특징은 BERT은 어떤 목적의 테스크든, 동일한 아키텍처라는 것이다. 즉, pre-tranied model의 아키텍처와 final downstream model가 거의 차이가 없다는 것이다.

 

  • 모델: 모델은 multi-layer bidirecitonal transformer encoder이다. Transformer은 2017년에 개발된 transformer을 이용했다. Transformer의 적용은 거의 동일하고, 파라미터 사이즈들만 좀 다르다. BERT base은 GPT등 성능비교를위해 만들어낸것들이고 BERT Larget은 꽤 큰 사이즈의 파라미터를 가진 모델이다.
  • 입출력의 표현: 이 모델은 다양한 downstream task을 쓰기위해서, 명확한 표현이 필요하다고 한다. 입력은 1개의 문장 또는 2개의 문장인데, 따로 묶인 형태로 입력값이 전달된다. 모든 문장에서의 첫토큰은 문장의 시작임을 알려줄수 있는 CLS라는 스페셜한 토큰을 전달해준다. 만일 두개의 문장이라면 두 문장을 이어붙인 후에 하나의 CLS 토큰을 부여한다. 이 문장이 그럼에도 다른문장임을 나타내기 위해서는 스페셜 토큰을 하나 붙여주는데 [SEP] 토큰이다.
  •  

 

Pre-tranining BERT

 

손실함수의 종류는 다음과 같다.

  1. Loss function 1: BERT은 문장에 15%정도를 Masking을 해놓고, 처리한후에 masking된 단어를 에측하는 방법에 관한 손실함수를 가지고 있다. (일종의 CBOW다). 다만, CBOW와의 차이점은 양방향으로 단어를 예측한다. 
  2. Loss function 2: 문장들 사이에 관계를 학습하여, 주어진 문장과 다음문장이 연속된 문장인지 문맥을 학습(contextual)할 수 있게끔 손실함수를 설계했다. 예를 들어, 문장A가 문장B와 연속된 문장인지? 아닌지를 학습하기위한 장치를 마련했다. 다음 문장이라는 라벨링을 추가했다. 

 

 

예를 들어, 아래와 같다. 연속적인 문장인 경우는 라벨을 True, 아니면 False

Sentence A: He is sad Sentence A: He is sad
Sentence B: Because he lost.. Sentence B: A girl is ...
Label: Next sentence Label: Not next sentence

 

 

 

 

 


RNN계열에서도 Bi-direcitonal RNN(=shallow)도 가능하지 않은가?

정답은 Yes이다. RNN계열에서도 bi-directional RNN으로 예측하고자하는 Y을 양방향으로 예측한다. 아래의 그림과 같이 Bi-directional RNN은 "The results clearly show that"의 첫 번째 토큰인 The을 이용해서 예측값을 만들고자할때, reverse된 문장의 가장 첫 번째 단어인 "that"의 결과값과 concat시킨 후에 softmax을 적용해서 예측한다. 즉 LSTM의 unit이 d이면, 반환되는 hidden state의 vector size가 2d가 된다.

반응형

기업 개요

 

2011년 신세계에서 인적분하하여, 신세계 백화점 사업부문과 마트사업부문으로 나뉘게 되는데, 동사(이마트)는 마트사업부문으로 신세계 푸드, 건설, I&C, 엘엔비, 조선호텔, 스타벅스, 스타필드 등을 보유하고 있다. 주 비지니스모델은 유통으로 이마트(주로 오프라인), 쓱닷컴(온라인), 이베이(최근 인수, 온라인채널)으로 유통구조를 다변화하기위한 노력을 하고있다.

사업부문 및 회사명

유통업 ㈜이마트, ㈜이마트에브리데㈜이마트24, ㈜에스에스지닷컴,
㈜신세계프라퍼티, ㈜스타필드청라, ㈜스타필드고양㈜스타필드창원, 
신세계동서울피에프브이, 캡스톤APAC전문투자형사모투자신탁 2호,
DA VINCI HOLDCO PTE. LTD, 
신세계티비쇼핑
ㆍ리조트업 ㈜조선호텔앤리조트
IT서비스업 신세계아이앤씨
식음료업 ㈜신세계푸드, 신세계엘앤비
건설레저업 신세계건설
해외사업 E-MART VIETNAM CO.,LTD., PK RETAIL HOLDINGS, INC.,
GOOD FOOD HOLDINGS, LLC, BRISTOL FARMS, INC.,
METROPOLITAN MARKET, LLC,
 NEW SEASONS MARKET, LLC

Q. 종속기업 외 관계기업은 어떤것들이 있는가?

 

이마트는 연결자회사가 꽤 많고, 각 사업부문별로 성장율을 따져볼 필요가 있다. 이마트자체보다는 신설한 자회사가 어느정도 성과를 이루는지 파악이 필요하다. 

매출액순

  • 이마트24: 편의점 부문.
  • SSG.COM (쓱닷컴): 신세계몰, 신세계백화점, 이마트몰 등 신세계그룹 산하의 법인의 온라인 유통을 운영하느 기업이다.
  • 이마트 에브리데이: 홈플러스 익스프레스와 같이 SSM(Super SuperMarket)을 포지셔닝하고 있는 기업. 주로 500평~8000평의 규모로 대형할인점과 소규모 슈퍼마켓의 중간크기에 소매점
  • PK Retail holdings: 미국의 식품 소매업체를 운영하기위한 미국의 자회사. 미국의 현지 식품 소매업체인 굿푸드 홀딩스(Good food holdings)을 인수하기위한 목적의 투자회사
  • 신세계 I&C: 신세계 산하의 법인의 IS업체(솔루션 업체). 주로 소프트웨어를 판매하거나 대여하는 비지니스 모델
  • 신세계 호텔엔 리조트: 조선호텔
  • 신세계 프라퍼티: 부동산 개발업이 주목적. 개발기획~부동산개발~빌딩관리 등을 하고, 스타필드를 운영한다.

 

매출액보다 영업이익을 주로 보는편인데,

  1. 쓱닷컴이 연간 800억이나 손실보는 자회사이다. 쓱닷컴을 포기하자니, 그렇지 않은 사업부인것같은데, 경영진에서 쓱닷컴이 이렇게 적자가 연속해도 버티는 이유가 있을 것 같다.
  2. 호텔업은 코로나19기저효과로 어쩔 수 없었던 것 같은데.. 2019년은 적자, 2018년은 적자 2017년은 흑자.. 왔다갔다하는 사업부 같다(레스케이프 호텔이 이마트 꺼다). 꽤 질 나쁜 자회사들이 있는 회사이다.
  3. 에브리데이는 yoy로 역성장한거 같고...
  4. 신세계푸드는 의외로 코로나19로 학교급식/사내급식이 잘 안될 것 같았는데도, 호기롭게 +영업이익을 보인다.
  5. 신세계I&C는 그룹사의 클라우드서비스를 수주받기때문에 클라우드부문이 흑자사업이라 강세를보이는듯하다.
  6. 위의 쓱닷컴/호텔업의 적자에도 불구하고, 그외 엄청난 영업이익이 있는데, 적어놓치는 않았지만.. 이마트 본사일 듯하다.

자료: 이마트, 이베스트투자증권 리서치센터. https://ssl.pstatic.net/imgstock/upload/research/company/1634089106848.pdf

 

 

영업외손익(지분법이익): 이마트는 스타벅스코리아 주식을 2021년 2Q까지는 50%을 소유하고 있다. 스타벅스코리아 주식을 50% 초과로 보유할 경우가 종속회사로 편입되는데, 현재는 50%까지로 지분법이익으로 계상하고 있기 때문에, 영업외손익으로 관리하고있다. 

지분율에 따른 영업외손익(지분법이익), 자산구분의 계상 방법. 이는 지분율에 따라 절대적인 것은 아니고, 절대적인(실질적인) 영향력을 행사할 수 있느냐의 유무로 판단하기도 한다.

 

스타벅스커피코리아의 당기순이익은 2021년 1Q만해도 934억(영업이익이 아니다..), 2021년 2Q는 598억이다. 이를 지분법 50%로 적용하면 각각 297억, 469억이다. (괄호는 주로마이너스를 쓰는데 왜 이렇게 써놧나. .헷갈리게) . 여튼 스타벅스코리아로 상당히 캐시가 들어온다. 앞서 서술한 자회사들의 영업이익을 다 합치면 적자이고, 이마트 본사만 흑자인데, 자회사들의 적자를 멘징해줄 지분법 자회사가 스타벅스커피코리아이다. 또한, 스타필드하남/안성도 지분법을 적용하면 아주조금은 이익을 가져다준다. 

 

 


Q. 이마트가 최근 스타벅스 코리아의 지분을 추가매입했다, 어느정도의 효과가 있을까?

 

2021년 7월 27일 스타벅스커피코리아의 주식을 스타벅스 본사로부터 17.5%을 추가매수했다. 나머지 약 33%의 지분은 싱가포르 국부펀드에서 인수했다는 것으로 알고 있다. 여튼 스타벅스코리아 지분을 17.5%을 4700억정도로 사들였다.

 

 

 

 


스타벅스코리아주식을 어느정도 가격에 사게된건가?: 스타벅스커피코리아가 2021년 상반기 기준 영업이익을 958억을 냈다. 단순히 이에 2배를 곱해서 2000억의 영업이익이고, 지분법이 50%였다면 약 1000억의 순이익을 가져다준다. 이를 67.5%을 가져간다고 생각하면 1350억이다. +350억을 얻는데 약 4800억의 추가 지분이 소요되었다. 단순계산으로는 PER 16배정도로 질렀는데, 스타벅스커피코리아주식을 적절하게 매수한게 아닌가 판단된다.

 

아래의 기사에서도 스타벅스의 기업가치를 PER 17~21배정도로 고려해서 거론하고 있다고 한다(https://www.etoday.co.kr/news/view/2064979)

 

시장에서는 이미 이마트의 계열사로 편입했을때, 다음과 같이 예상하고 있다. "매출의 10% 성장, 영업이익 50%증가, 순이익 7% 향상". 아마 추가지분을 획득하면서, 조달한 4700억은 손익계산서에 반영하지 않으니, 단순히 지분만으로도 순이익이 이렇게 향상될 수 있다. 

 

 


이마트 家 내에 훌륭한 자식인 스타벅스, 빌런인 아들딸은 없는가?

 

이마트의 계열사는 거의다 빌런이다. 아래의 기사의 내용은 2020년 이마트 계열사들은 다합쳐서 394억의 영업손실을 냈다는 기사이다 (https://biz.chosun.com/distribution/food/2021/10/01/6AJ332BDBZGTLOYBROC7LRCPSQ/). 그럼에도 불구하고 스타벅스커피코리아 영업이익을 상반기에만 900억 냈다. 계열사의 한해 적자를 1분기만에 맨징하고도 추가로 이익을 벌어다준 것이다.

 

시장에서는 이미 이마트의 계열사로 편입했을때, 아래와 같이 예상하고 있다

"매출의 10% 성장, 영업이익 50%증가, 순이익 7% 향상". 

 

 


현재주가는 ?

 

작성일 당시의 이마트의 현재주가는 16만 2,000원이다. 2020년 당시의 당기순이익은 3,626억으로 당시시총을 고려했을때 PER 11배정도 되었다. 

이마트의 당기순이익은 꽤 높은편으로 착각할 수 있는데, 이는 경상이익은 아니며, 일회성으로 발생하는 이익이다, 최근에 이마트가 일부 점포를 매각해서 얻은 순이익이다. 

 

 

최근 2년간 14개의 이마트점포와 마곡부지들을 팔아서 꽤 당기순이익이 올랐다. 이는 영업여력이라 보긴 어렵다. 이돈으로 무엇을 할거냐는 고민이지만,  경상적인 영업이익은 아니라는 것이고, 일회성비용을 차감한 경상이익은 1Q 1000, 2Q 0, 3Q 1500, 4Q 1000정도잡으면 약 3500~4000억순이익으로 현재 이마트의 시총 4조 5천억이니, 약 PER 12~15배의 가치평가를 받고있다.

 

아래의 그레프는 이마트의 밴드차트를보여주는데, PER5.8배는 말이안되며, 이는경상이익으로 이뤄진 PER 배수가 아니기때문이다. PER 5.8배가아닌 12배정도로 생각된다. 

 

 

 


이마트의 성장동력은 어떤 것이 있나?

 

Q. 회사가 추가로 성장할 수 있는 요소들은 어느 것들이 있는가?

=> 스타벅스커피코리아에 달렸나? (중립)

최근 스타벅스코리아의 무리한 이벤트 등으로, 근로자들이 진통을 겪고 있지만, 스타벅스커피코리아의 매장은 전년대비 대략 66개가 추가되었다. 한국 사람들이 스타벅스코리아에 무척의존적이기 때문에, 출점으로 비지니스를 양적확대하는 것은 좋아보인다. 1508점정도에서 1574점으로 늘었으니 5%정도 늘어난 것으로 보인다. 엄청난 성장율은 아니지만, 견조한 성장을 보인다. 혹시나,

이런 출점에 제한이 있고, 원자재인 커피값이 오르는등으로 영업이익율이 훼손되면 이는 꽤 큰 타격이다.

 

=> 리츠 사업 (중립)

최근 리츠열풍으로 SK리츠가 성공적으로 증시에 안착하고, 신세계도 이마트설립에 관심을 받고있다. 아마도, 아래와 같은 그림으로 AMC리츠가 운용될 것 같다.

이마트는 위에서 얘기했던것처럼 자회사중에 "이마트 프로퍼티"가 있다. 부동산개발에 관련된 회사인데, 이지스자산운용과 리츠AMC(자산관리회사)를 신설하는 것을 논의중이다. 최근에 이베이코리아, 스타벅스등을 사느라고, 투자부담이 커졌는데, 리츠 AMC을 설립하면, 보유하고 있는 그룹의 자산을 AMC리츠쪽에 쉽게 던질 수 있다. AMC리츠는 투자자가 불특정다수로 돈을 모아오기때문에, 일단 상장시키고나면, 매수의 주체는 AMC리츠이지만 실질적으로 돈은 주주들이 댄다...

다만 이렇게 리츠를 운용할경우, 이마트 입장에선는 매각했던 자산쪽에서 임대료를 AMC리츠에 납부해야기때문에 영업이익율의 훼손이 있을 수 있다. 매각한 대금으로 투자자산을 꽤 괜찮은 것을 얻지 않는다면, 건물주가 자기 건물팔고, 주식투자하는데 투식투자는 망하고, 월세를 내는 꼴이 될 수 있다.

 

 

3) 이베이코리아(G마켓, 옥션): 오히려 Risk가 아닐까?

이베이코리아는 2020년당시 매출액 1조3천억 영업이익은 850억에 해당하는 사업성과를 이뤄냈다. 특히 16년 연속 영업흑자라고 할만큼 어느정도 이커머스의 고객을 lock-in한 것 같다. 다만, 시장이 커진거에비해서 이베이코리아는 거의 못큰것처럼보이는데, 쿠팡과 네이버와 같은 거물급 온라인커머스를 대표하면서, 이베이코리아의 입지가 줄어든 것이다. 이베이코리아는 G마켓 옥션을 가지고있는데, 수수료로 10%을 매추로잡는다. 이마트가 이베이+슥닥컴의 수수료를 10%먹는다면, 약 2조원의 매출액이 생긴다. *문제는 그럼에도 불구하고 쓱닷컴이 적자인 회사라 이베이코리와와 잘 융합하지 못하면, 3.4조원에 인수한 이베이코리아가 이마트의 허리를 흔들어 버릴수도있을 것 같다. 그리고, 이베이코리아가 생각보다 비싸게 매수하는 것아닌가 싶다.

 

관련기사: https://www.hellot.net/news/article.html?no=59239

 

 

 

 

 

 

 

 

반응형

+ Recent posts