Beer Galaxy

beer-gal

Demo, Github

Beeradvocate에서 수집한 데이터로 맥주의 은하수를 그려보았다.

전처리 과정

1. doc2vec 알고리즘을 사용하여 117705개의 맥주 각각에 달린 리뷰들(1개의 리뷰가 달린 맥주부터 많게는 3701개의 리뷰가 달린 Dogfish Head Brewery의 90 Minute IPA까지 다양한 크기의 리뷰들이 있었다.)을 사용하여 해당 맥주를 300차원의 vector로 나타냈다.

2. 각각의 맥주 벡터를 t-SNE를 사용하여 2차원으로 folding(sparsity는 0.001225, iteration 1000번에 최종 에러는 6.149086)하였다.  리뷰 텍스트 이외의 정보를 이용한(예컨데 어느 나라 맥주인지 같은) 휴리스틱은 일절 사용하지 않았다.

시각화 요소

1. 각 원의 위치(x, y 좌표)는  2차원 평면에서 각 맥주의 리뷰의 평균적인 의미를 나타낸다. 두 맥주가 가깝다면, 두 맥주의 리뷰가 의미상으로 비슷하다는 뜻이다. 상대적인 값으로, 원들간의 거리에만 의미가 있지 절대적인 좌표에 의미는 없다.

2. 각 원의 색은 그 맥주의 스타일을 의미한다. Beeradvocate가 정의하는 104가지나 되는 맥주 스타일을 color coding 할 수는 없었으므로 가장 개체수가 많은 스타일 상위 20개를 추렸다. 이 20개의 스타일에 속하지 않는 맥주는 검은색으로 표시된다.

3. 각 원의 크기는 그 맥주의 리뷰 개수를 의미한다. 또한 크기가 클 수록 원은 투명해진다. 둘 다 선형 함수로 매핑되어있다.

4. 12만개의 노드를 d3로 그리면 느리기 때문에 리뷰 개수가 20개 이상인 12916개의 맥주에 대해서만 원을 그렸다. 추후에 WebGL을 공부해서 다시 그려볼 예정이다.