가난함에 대한 생각 (1)
들어가며
가난에 관한 내 경험을 다루는 글이며 일반화될 수는 없다고 생각한다. 어느 정도의 가난이냐면… 이를테면 제주도 수학여행을 못 가지는 않았지만, 수학여행비를 마련하기 위해 부모님이 고생을 했을 정도이다. 초등학교 때 친구따라 태권도 학원은 다닐 수 있었지만, 중학교 부터 공부를 가르치는 학원에 다니지는 않았다. 집을 위해 돈을 일찍 벌려고 특성화고에 진학했지만, 막상 대학교에는 올 수 있었던 정도의(다분히 국가장학금 때문이었다), 그런 정도의 가난에 대한 얘기다.
절대적, 상대적 가난
가끔 젊은 사람이 느끼는 가난 조금 더 일반적으로는 젊은 사람이 겪는 고통에 대해, 옛날엔 더 힘들게 살았다는 얘기를 하는 사람들이 많다. 사람마다 얘기하는 ‘옛날’은 제법 다르다. 70년대, 일제 치하, 더 심한 사람들은 가끔 증기 기관이 발명되기 이전 시대를 언급하기도. 이런 얘기를 하는 ...
An approximation of Cogswell Regularization for SGD update in Recsys.
Cogswell Regularization
Cogswell Regularization has been proposed by [1] in 2015. This is based on the following observations
- Embeddings are spread on the Euclidean Space.
- If two feature vectors are different, then their representations are different. It would be good to fill the embedding space with a similar density of embeddings if they are in the range of the input network.
So [1] Proposed the following obj...
"오픈소스를 해야 하는 이유"에 대한 생각.
잡담.
자주 듣는 얘기가 있다. 어떤 일이 A, B, C, …, Z 이렇게 순차적으로 이뤄진다고 할 때, 나는 A 설명했다가, B, C, ..,D까지 스킵하고는 E를 설명했다가, F를 한참 설명하다, 다시 B가 필요해진 것 같아 B를 설명하는 식이라고 한다. 한두 명만 이런 얘기를 하는 게 아니라, 나랑 가깝게 일을 한 모두가 비슷한 얘기를 하는 걸로 봐선, 좀 문제가 있는 것 같다.
상대방과 내가 같은 지식과 한계를 갖고 있을 것이라는 전제를 갖고 설명하는 듯한 느낌이다. 내가 쉬운 부분은 상대한테도 쉽고, 내가 어려운 부분은 상대방도 어렵고. 사회적 관계에서만이 아니라 일에서도 공감능력은 중요한 것 같다. 게다가 이런 건 노력해도 잘 나아지지 않는다고 한다……..
오픈 소스에 대한 개인적인 생각
솔직히 자기과시욕을 제외하면, 오픈소스를 왜 하는 이유를 잘...
NeuralSort
잡담
ICLR 2019에 실린 Stochastic Optimization of Sorting Networks via Continuous Relaxations 의 리뷰. 글을 안 쓴 지 너무 오래되서 글을 쓰는 방법을 잊어버린 것 같다.;;
Motivation
정렬이나 top-k element를 선택하는 일은 여러 머신 러닝 task에서 기본적인 연산 중 하나이다.
그런 예시 중 하나로, vector $q$가 주어졌을 때, 주어진 query $q$와 비슷한 여러 vector $v_1, \cdots, v_n$을 KNN을 생각할 수 있다.
이는 각각의 vector $v_i$에 대해 score $s(q, v_i) = q^Tv_i \text{ or } (q-v_i)^2$를 계산해서...
ALS, BPR을 직접 구현해봤다.
잡담
유명 추천 시스템 라이브러리 2개에 involve되어 있긴 한데, 생각해보니 추천 시스템 알고리즘을 스크래치부터 구현해 본 적이 거의 없는 것 같다. Logistic matrix factorization을 implicit에 구현해보긴 했는데…
그래서, 과연 나는 추천 시스템 알고리즘을 충분히 빠르게 구현할 수 있을까? 하는 생각이 들었다. 생각한 김에 바로 해봤다. 주말에 할 게 없기도 했었고…
사용할 언어/프레임워크 선택
언어
인터페이스 부분은 파이썬으로 진행하기로 결정했다. Numpy Array가 무척 편하기도 하고, scipy.sparse_matrix를 그대로 이용할 수 있다는 장점이 있기 때문이다.
사실, 중요한건 Backend였는데, 내가 약간이라도 경험해 본 기술을 사용하는게 유리할...
Hierarchical Navigable Small World Graph로 nearest neighbor를 빠르게 찾아 보자.
[WIP]
Neural Combinatorial Optimization with Reinforcement Learning
잡담
-
회사에서 맥을 받았다. 오예… 맥으로 쓰는 첫 블로그 포스트. 익숙해지질 않는다 ‘ㅅ’… 벌써 한달이나 됬는데, 코드도 제대로 못 짜겠고, 블로그에 글도 제대로 못 쓰고 있다. 근데 맥 생각보다 이쁘자너…불편하지만…이쁜것… 그것이 갬성..
-
요즘 집중을 잘 못하겠다. 우울한 기분은 조금 나아진 것 같은데, 왜 우울함이 끝나면 산만함이 찾아오는 걸까. 나는 공부를 할 수 없는 운명인 것일까… 그런...