HyperLogLog – 대량 데이터 분석시 유용한 확률적 자료구조

목적

퍼널 분석을 하기 위해 로그 데이터에 직접 접근을 하고자 할 때가 있다. 하지만 보통 로그 데이터의 사이즈는 매우 커서 조회 작업 자체가 어려운 경우가 있다. 이로 인해서 액션(서비스 기능 개선 또는 마케팅)에 대한 의사결정 자체를 하기가 어려운 경우가 많다. 그리고 어떻게든 데이터를 잘게 쪼개서 데이터를 분석했다 해도, 그 데이터의 샘플링 사이즈가 너무 작아(분, 시간 단위) 일단위의 의사결정을 진행하기에는 한계가 있을 때도 있다.

이럴 때 우리는 HyperLogLog를 이용해 대략적인 수치를 추정해봄으로써 의사결정을 위한 데이터 분석을 진행할 수 있다.

HyperLogLog는 매우 적은 메모리로 집합의 원소 개수를 추정할 수 있는 방법입니다. 집합의 원소 개수를 정확하게 계산하기 위해 아주 많은 메모리가 필요할 때나 하나의 메모리에 모두 담을 수 없을 정도로 원소의 개수가 많을 때, 정확하지 않지만 최대한 정확한 값을 상대적으로 적은 메모리만 사용해 얻고 싶을 때 사용할 수 있는 방법입니다. (출처: 네이버 D2 )

특징

  • 적은 메모리를 차지하는 자료구조

  • 이 자료 구조로부터 유일한 원소의 수를 추정할 수 있다(원소가 담긴 집합의 크기 근사값 = cardinality)

  • 많은 HyperLogLog 구현에서 merge 연산을 지원한다(합집합)

  • Hash를 사용하는 방식이기 때문에 추정치에는 오차가 있을 수 있으며, 자료구조의 크기를 조정하여 오차 범위를 조정할 수 있다.

  • 스트림 데이터에서의 유일 원소 수 추정에 사용되는 경우가 많음

활용 방식 예(presto)

예) 매달 활동 유저에 대한 HyperLogLog를 만들어둔다

  • 2019년 1월과 2019년 2월에 한 번이라도 서비스에 들어온 유저의 유니크한 수를 추정하기

    • 1월과 2월의 HyperLogLog를 merge한 뒤 merge된 HyperLogLog에서 cardinality를 측정한다

  • 2019년 1월과 2019년 2월, 두 달에 모두 서비스에 들어온 유저의 유니크한 수 추정하기

    • (1월 HyperLogLog의 cardinality) + (2월 HyperLogLog의 cardinality) – (merge된 HyperLogLog의 cardinality)

  • 2019년 1월부터 6월까지의 유입 유저 유니크 수 추정하기

    • 1월부터 6월까지의 HyperLogLog를 모두 merge한 뒤 cardinality 측정

참고자료

[후기] 방통대 정보통계학과 3학년 1학기

2월 쯔음이었던 것 같다. 안그래도 회사 업무로 더 바빠질 것이 예견되는 상황에서 고심끝에 편입을 하기로 결정하였고 4개월이 지나갔다.

이미 예상한대로 2월 이후부터는 훨씬 더 업무가 바빠지게 되었고 그 결과 오롯이 학업에 집중하지는 못했지만, 그래도 양호한 성적으로 학기를 마무리하게 되었다.

그래서 방통대 1학기를 무사히 마친 기념으로 방통대 1학기를 다니면서 느꼈던 방통대의 장단점 및 개인적인 아쉬움 및 개선점을 이 곳에 남겨본다.

장점

– 구체적인 이론보다는 실무에서 바로 활용할 수 있는 부분을 강조하는 편이었다. 과목 곳곳에서 공식에 대한 이야기는 종종 나오는 편이었지만 실제 공식에 대한 증명보다는 언제 어떤 공식을 써야 하는지에 대한 간략한 설명이 전부였다. 상관분석 및 회귀분석 등의 통계분석 기법에 대해서도 최소한의 해석 요령을 요구하는 편이었다.

– 온라인 수업의 특성상 시간 및 공간의 제약 없이 자유롭게 들을 수 있었다. 다만 수업이 1~2년전 녹화가 된 경우가 대부분이었고 일부 교수님들은 교과서를 그대로 읽는 경우도 좀 있었던 지라 꼭 동영상을 본다기 보다는 교과서를 기반으로 커리큘럼에 맞게 공부한 다음에 모르는 부분을 보는 것도 나쁘지는 않았다. 영상에서만 나온 부분이 시험에 나온다는 괴담이 있긴 하였으나 기출문제에서 대부분 커버가 되었다.

단점

– 앞서 언급한 것처럼 이론 부분이 약한 것이 아쉬었다. 물론 대부분의 학생이 30대 이상이다보니 집중할 수 있는 시간, 기억 및 연산 능력(?)을 고려한 것이겠지만 다시 수학을 접하면서 수학의 즐거움에 빠져버린 나로서는 더 알려줬으면 하는 바램이 있었다.

– 생각보다 출석수업 시간이 꽤 길었고, 특히 평일에 있는 경우는 부담스러웠다. 과목마다 6시간 정도의 출석시간을 요구했고 한 번 출석에 3시간 이상이었는데 가끔 평일 업무시간대에도 할당된 경우가 있어서 난감하였다. 결국 그래서 대학수학을 출석대체 시험을 봐야 했었는데 기말고사 시작 전주에 있다보니 공부 스케쥴링을 할 때 은근 이빨에 낀 가시처럼 부담스러웠다.

아쉬운 점

– 시공간의 제약이 없다 보니 나태해지기 쉬운게 방통대 수업이다. 오죽하면 졸업하는 사람이 반도 안된다고 한다. 하지만 시험장에 가서 많은 사람이 가득 앉아 있는 걸 보고 나서 하는 사람들은 한다는 것을 여실히 느낄 수 있었다. 결국 시간관리를 못하는 것은 개인의 책임이라는 것이다. 본인이 결정해서 수업을 들은 만큼 끝까지 제대로 듣도록 노력을 해야겠다. 특히 슬라이드와 기출문제 뿐만 아니라 교재에 상당한 시간을 쏟아야 하겠다는 생각이 들었다.

– 학우들과의 교류에 초점을 맞추도록 해야겠다. 학과 특성상 동종 업계에 종사하고 있는 선배분들이 상당히 많다. 넷드링킹이라는 말처럼 온라인 인맥에 대해서 경계해야 할 부분도 있지만 하기 나름이라는 생각이 든다. 그 분들 덕분에 시험 공부를 할 때도 모르는 부분들, 정리해야할 부분들을 함께 진행해서 빨리 끝날 수 있었다. 고로 학우분들과의 관계를 잘 관리해야겠다.

결론

지나고 나서 보니 꽤 즐거운 학기였다. 미적분, 선형대수학을 다시 공부하면서 이전에 데이터 분석을 할 때 어렴풋이 듣고 지나쳤던 이론 부분에 대해서 다시 보이기 시작했고, 이해도 더 빨라지게 되었다. 얼른 빨리, 그리고 많이 들어서 더 많은 것을 보고 경험하고 싶다는 조급함도 있지만 동시에 제대로 공부해서 높은 이해도를 가져갈 수 있도록 잘 준비해서 2학기는 더 높은 학점과 자신감을 가져갈 수 있도록 노력해야겠다.

링글 English Re:Boot 세미나 정리

오늘 연사로 참석한 이성파(Co-Founder) 대표는 사람들이 일반적으로 물어보는 질문(Common Question)을 기반으로  자신의 경험을 빌어 대답하는 형태로 세미나의 1부를 진행하였다.

아래 내용은 그 Question에 대한 핵심만 정리한 것.

  • Common Question
    • Question 1)
      • 단어가 늘지 않는 것 같다. 표현이 계속 같아요
      • 눈으로 보면 다 알겠는데, 막상 말로 하면 잘 모르겠어요
      • Answer
        • 정말 잘 알고 있는게 맞을까요?(Collocation)
          • 몰라도 Reading은 되지만 Speaking, Writing은 안된다.
          • 단어 + 예제 2~3개는 함께 꼭 보도록 합시다.
        • 얼마나 해야할까요? 몇 개까지 해야할까요?
          • 일반인이 의식적으로 쓰는 단어 22,000개, 무의식은 44,000개, 95%를 차지하는 단어 3,000개, 일상생활에서 쓰는 1,000개
          • 링글 사용자는 평균 500개 강사들은 대략 1,200개 수준, 고로 1,200개만 하면 말하는데 문제는 없다.
      • Question 2)
        • 하다가 포기하는데 어떻게 해야할까요?
          • 6 times a month – 망각하지 않기 위해 반복해야 하는 횟수. 이 정도만이라도 꾸준히 제대로 하자.
      • Question 3)
        • 듣기가 잘 안되요.
          • 프렌즈 최소 20%는 들려야 한다.
          • 그 다음에 관심있는 분야의 컨텐츠를 들어야 한다. Terminology가 익숙하기 때문이다.
      • Question 4)
        • 스몰톡
          • 다같이 안 들린다.
          • 미국 사람도 다른 나라의 영어를 듣는데 힘들어 한다. Big deal은 아니다.
      • Overall
        • Goal Setting하고 꾸준히 해야 한다.
        • Grit with a specific goal

2부는 Q&A 세션으로 진행이 되었는데 내가 직접 물어본 내용은 없었고 관심있는 부분도 아니어서 우선 메모는 별도로 하지는 않았다. 그나저나 듣고 나니 링글을 해볼까 하는 생각이 들기 시작한다.

연사가 그만큼 스피치를 본인의 경험을 기반으로 열정적으로 해서 그런가 싶다.

측정하지 않는 마케팅은 낭비 그 자체이다.

종종 사람들과 이야기를 나누다 보면 마케팅의 성과를 측정하는 것은 불가능하며, 특히 브랜딩은 측정하는 것이 어렵다고 말하는 경우를 듣는다. 그리고 그런 이유를 대면서 성과를 측정하지 않는 경우를 볼 때가 매우 많다.

그럴 때마다 해주고 싶은 말이 있다. 측정하지 못하는게 아니라 측정하지 않는 것이라고 말이다. 세상의 어떠한 현상도 우리는 온전하게 측정하지 못한다. 당연하다. 온전히 파악하기에 그 시간으로나 비용으로나 방대한 경우도 있고 우리가 그 존재 자체를 파악하지 못한 경우도 허다하다.

그렇다고 아예 측정을 하지 말아야 하는 걸까? 이전에 읽었던 How To Measure Anything 이라는 책에서는 우리가 생각해온 측정의 정의를 다른 관점에서 해석한다. 정확하지는 않겠지만 해당 책에서 저자는 측정은 불확실성을 보다 체계적으로 감소시키기 위한 일련의 행동이라고 정의한다.

즉, 우리가 아는 한도내에서는 불확실성을 줄여나가기 위해서 하는 행위를 모두 측정이라고 일컫는 것이다. 이 정의를 가지고 마케팅 성과를 바라보면 측정을 할 수 있는 부분은 너무나도 많다.

특히나 모바일 관련해서는 여전히 수없이 많은 외부변수가 존재하기는 하나 적어도 들어온 고객은 가상으로 생성된 모바일이라는 세계에서 족적을 남기며 행동하기 때문에 의지나 비용만 충분히 수반될 수 있다면 어떠한 방식으로든 측정은 가능하다.

그리고 측정을 통해서 우리는 상관관계를 가진 다양한 변수를 찾고 그 변수내에서 인과관계로 간주할 수 있는 몇몇 변수들을 파악하고 이를 기반으로 성과에 영향을 미칠 수 있게된다. 그 중에서는 이미 경험적으로 알고 있는 혜택의 규모 등이 있을 수 있지만 전혀 생각하지 못했던 변수들이 있을 수도 있다.

이렇게 측정의 정의를 살짝 비틀어 생각해보면 사실 성과를 측정할 수 없는 것은 없다. 그 측정의 깊이만 있을 뿐이다. 그리고 이러한 깊이가 유의미하게 더해질 수록 속한 도메인에 대한 지식은 넓어지기 마련이다.

그리고 그게 잘 이어질 때 하나의 잘 그려진 경력이 되고 좋은 문제 해결능력을 갖게 된다는 생각이 든다. 오늘도 KPI를 보다가 생각이 들어서 정리해보았다.

[책] 배드 블러드, 책임감 없는 스타트업의 예시

읽게된 계기

작년 가을 쯤이었던 것으로 기억한다. 테크니들 필진들과 슬랙에서 이야기 하던 도중 이 책을 알게 되었다. 처음 들었을 때 잘 못 들은 줄 알았다. 실리콘밸리의 대표적인 스타트업으로 유명했던 테라노스(Theranos)가 사기로 드러났다니, 꽤 충격이었다.

법의 역할

시장경제에서 법의 역할은 어디까지 기대할 수 있을까? 테라노스는 데이비드 보이스(David Boies)가 이끄는 로펌으로 온갖 협박을 일삼아가면서 테라노스의 비밀을 숨기려고 애쓴다. 특히 조지 슐츠를 협박하는 부분을 보면서 법의 목적과 정의에 대해서 다시 한 번 생각해보게 되었다.  법은 정의의 구현을 위한 수단이라고 배우고 있지만 고도화된 시장경제에서 법은 얼마나 정의구현을 위해 시의적절하게 사용될 수 있을까?

법리해석이라는 이름으로 일말의 해석을 바탕으로 상대방을 옭아매는 테라노스를 보면서 이는 분명 법의 한계라고 생각하였다. 모든 것을 명문화할 수는 없는 상황에서 우리는 법에 어느 정도까지 기댈 수 있을까? 의문 투성이였다. 전한시대의 유방처럼 삼장악법으로 모든 이치를 정리하는 것은 이제 불가능한 상황이 되어버렸다.

언론의 역할

이 책의 저자 존 캐리루가 테라노스의 위험천만한 행각을 공개하지 않았다면 정말 우리는 다시 없을 거대한 사기극을 몇 년이 지나서야 보게 되었을지도 모른다. 소비자의 알 권리를 충족시키는 데 있어서 기자로서 당연한 의무를 수행하였다는 생각이 들었다.

하지만 기자로서 동시에 가져가는 리스크는 누가 커버해줄 수 있을까? 자본주의에서 그들의 중립성을 어떻게 유지해줄 수있을까? 가뜩이나 요즘 한국에서 기레기, 기발놈, 언창으로 언론이 격하되는 상황에서 기자들을 어떠한 시선으로 봐야 할지 책을 보는 내내 고민되었다.

Image result for 거절하기에는 너무 큰 돈이었다

결론

정말 보기 드문 막장 드라마를 보는 느낌이었다.  팟캐스트도 나온다는데 한 번 들어봐야겠다.

[책]90년대 생이 온다.

어느 날 부터인가 90년대생은 다른 세대와 다르다는 이야기가 주위에서 들리기 시작하였다. 한국뿐만 아니라 미국, 유럽 등 전 세계에서 이들에 대한 리서치 아티클이 보이기 시작하였다.

마케팅 업무에 연관된 입장에서 새로운 소비자에 대한 이야기는 항상 귀가 쫑긋해지기 마련, 90년대생에 대한 기사를 지속해서 찾아보다가 자연스레 이 책을 구매하게 되었다. 특히 대부분 나오는 리서치 기사들이 20~50대는 넘쳐흐르는 데 반해서 10대는 찾기가 어려웠던 것도 구매에 영향을 미쳤다.

이 책은 90년대생이 보여주는 특성을 소비자, 직원의 입장에서 정리해줘서 보여준다. 회사 생활할 때 참고하기 좋은 형태이다. 읽고 나서 기존의 경험을 덧붙여 보니 90년대생은 다음과 같은 특성으로 정리할 수 있지 않을까 싶다

  • 구매력이 높은 세대
  • 호불호가 뚜렷한 세대 (혐오, 암에 걸릴 것 같다, 프로 불편러, 우월주의자 등)
  • 정보의 범람으로 전문지식에 대한 혐오 – 스마슈머
  • 정보의 범람으로 빠른 전문지식 습득.
  • 구성원이 아닌 개인으로서의 자각이 강한 편. – 경험, 공간

정리해놓고 보니 기존 80년대생과 유사한 부분도 있으나, 인터넷을 어렸을 때부터 함께 한 세대라는 차이점 때문에 보다 행동에 초점이 맞춰져 있다는 것이 다른 듯하였다.

이런 세대를 위해서 플랫폼에서는 정성적, 정략적으로 어떻게 넛지를 해줘야 할까? 정량적인 부분의 경우, 구매력이 높지만 현금 기반 소비에 강하고 비용에 민감한 부분을 조금 더 고려해줘야 할 것 같다. 그리고 정성적인 부분은 경험의 측면에 초점을 맞춰서 개인 레벨에서 공감할 수 있도록 도와줘야 할 것 같다. 자세한 부분은 조금 더 고민해 봐야겠지만 말이다.

[책] “초연결”, IoT 비즈니스 개론서의 느낌

“초격차”의 등장 이후 이전과 확연하게 다름을 강조하기 위해 “초”를 접두어로 사용하는 경우를 종종 봤는데, 이 책 역시 IoT 기반의 비즈니스가 가지고 올 혁신을 강조하기 위해 “초연결”을 제목으로 채택한 듯하다.

처음 데이터 관련 업종에 발을 들였을 때는 IoT 데이터는 나와 상관없는 곳이라고 크게 관심을 가지지 않았었다. IoT를 제조업에서나 쓰일법한 로그 데이터에 기반한 비즈니스라고 한정을 지은 탓이었다.

하지만 그 견해가 잘못되었음을 알게 되기까지는 오래 걸리지 않았다. IoT는 클라우드와 데이터 처리 기술이 고도화되었을 때 필연적으로 나타날 수밖에 없는 주제였다.

클라우드는 IoT 데이터를 처리하기 위한 Scale Out을 원활히 진행할 수 있도록 도와주었고 데이터 분석은 그 인프라 위에서 실시간의 속도로 분석을 지원한다. 기존에는 감당할 수 없던 3V의 IoT 데이터를 적재 및 분석할 수 있게 된 것이다.

본 저서는 이러한 환경의 변화 속에 IoT 기반 비즈니스 혁신을 정의하고 이 혁신을 이미 경험하고 있는 회사들의 케이스 스터디를 공유하며 나아가 이러한 혁신을 회사에 도입하기 위한 방안 등을 개괄적으로 논의한다.

책의 사례 중 예지 정비 보수(Predictive Maintenance) 등의 IoT 기반 비즈니스는 이미 수년 전부터 BMW, Harley-Davidson(할리데이비슨) 등 다양한 회사가 진행하고 있어 알고 있는 분야였지만 그 외에도 데이터 판매 등, 최근 몇 년 사이 보이는 새로운(Eco System(생태계)을 형성하고 확장하려는) 트렌드도 사례로 다량 포함되어 있어 흥미진진하게 읽을 수 있었다. 각 케이스 및 방법론의 깊이는 다소 아쉬었지만 개론서로서는 근래 본 책 중에서는 가장 깔끔하게 다루고 있는 느낌이었다.

물론 아쉬운 부분들도 있었다. 예를 들어 케이스 스터디에서 가장 많이 다루고 있는 GE가 그러한 경우였다, IoT를 공격적으로 도입하는 회사로 좋은 예시이기는 하지만 시기적으로 부침이 심한 상황이다 보니 작더라도 현재 IoT를 기반으로 성장 중이고 이를 수치적으로 보여줄 수 있는 회사를 보여주는게 어떨까 하는 생각이 들었기 때문이다.

그 외에는 데이터 판매 외에 비제조업의 데이터 구매 관점에서의 가능성을 조금 더 자세하게 다뤄주면 어떠했을 까 하는 생각이 들었다. 물론 데이터 판매가 발생하는 순간, 제조업과 서비스업간의 구분은 희미해지겠지만 말이다.

책을 읽는 내내, 머리를 맴도는 질문은 “한국에는 이 것을 적용할 수 있을까?” 였다. 데이터 분야에 종사하는 입장에서 국내에서 데이터 판매는 제끼더라도 고도화를 할 수 있을만큼 전사적으로 체계가 수립된 데이터를 본 기억은 많지 않았다.

그래서인지 갈 길이 참 멀다는 생각이 계속 들었다. 물론 최근 통신사 등을 비롯하여 API 기반 데이터 공유의 바람이 불면서 데이터 퀄리티 및 데이터 기반 비즈니스를 만들기 위한 발걸음이 빨라지는 것은 좋은 소식이다. 하루빨리 우리나라의 사례도 하나의 케이스로 등장했으면 하는 바람이다.

정리하자면 IoT 비즈니스 개론서로 현업측면에서 IoT 비즈니스의 전망 및 비교적 최근 사례를 파악하기에는 적합한 책이었다.