가난함에 대한 생각 (1)

들어가며

가난에 관한 내 경험을 다루는 글이며 일반화될 수는 없다고 생각한다. 어느 정도의 가난이냐면… 이를테면 제주도 수학여행을 못 가지는 않았지만, 수학여행비를 마련하기 위해 부모님이 고생을 했을 정도이다. 초등학교 때 친구따라 태권도 학원은 다닐 수 있었지만, 중학교 부터 공부를 가르치는 학원에 다니지는 않았다. 집을 위해 돈을 일찍 벌려고 특성화고에 진학했지만, 막상 대학교에는 올 수 있었던 정도의(다분히 국가장학금 때문이었다), 그런 정도의 가난에 대한 얘기다.

절대적, 상대적 가난

가끔 젊은 사람이 느끼는 가난 조금 더 일반적으로는 젊은 사람이 겪는 고통에 대해, 옛날엔 더 힘들게 살았다는 얘기를 하는 사람들이 많다. 사람마다 얘기하는 ‘옛날’은 제법 다르다. 70년대, 일제 치하, 더 심한 사람들은 가끔 증기 기관이 발명되기 이전 시대를 언급하기도. 이런 얘기를 하는 ...

Click to read more ...

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...

Click to read more ...

"오픈소스를 해야 하는 이유"에 대한 생각.

잡담.

자주 듣는 얘기가 있다. 어떤 일이 A, B, C, …, Z 이렇게 순차적으로 이뤄진다고 할 때, 나는 A 설명했다가, B, C, ..,D까지 스킵하고는 E를 설명했다가, F를 한참 설명하다, 다시 B가 필요해진 것 같아 B를 설명하는 식이라고 한다. 한두 명만 이런 얘기를 하는 게 아니라, 나랑 가깝게 일을 한 모두가 비슷한 얘기를 하는 걸로 봐선, 좀 문제가 있는 것 같다.

상대방과 내가 같은 지식과 한계를 갖고 있을 것이라는 전제를 갖고 설명하는 듯한 느낌이다. 내가 쉬운 부분은 상대한테도 쉽고, 내가 어려운 부분은 상대방도 어렵고. 사회적 관계에서만이 아니라 일에서도 공감능력은 중요한 것 같다. 게다가 이런 건 노력해도 잘 나아지지 않는다고 한다……..

오픈 소스에 대한 개인적인 생각

솔직히 자기과시욕을 제외하면, 오픈소스를 왜 하는 이유를 잘...

Click to read more ...

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$를 계산해서...

Click to read more ...

ALS, BPR을 직접 구현해봤다.

잡담

유명 추천 시스템 라이브러리 2개에 involve되어 있긴 한데, 생각해보니 추천 시스템 알고리즘을 스크래치부터 구현해 본 적이 거의 없는 것 같다. Logistic matrix factorization을 implicit에 구현해보긴 했는데…

그래서, 과연 나는 추천 시스템 알고리즘을 충분히 빠르게 구현할 수 있을까? 하는 생각이 들었다. 생각한 김에 바로 해봤다. 주말에 할 게 없기도 했었고…

사용할 언어/프레임워크 선택

언어

인터페이스 부분은 파이썬으로 진행하기로 결정했다. Numpy Array가 무척 편하기도 하고, scipy.sparse_matrix를 그대로 이용할 수 있다는 장점이 있기 때문이다.

사실, 중요한건 Backend였는데, 내가 약간이라도 경험해 본 기술을 사용하는게 유리할...

Click to read more ...

Hierarchical Navigable Small World Graph로 nearest neighbor를 빠르게 찾아 보자.

[WIP]

Neural Combinatorial Optimization with Reinforcement Learning

잡담

  1. 회사에서 맥을 받았다. 오예… 맥으로 쓰는 첫 블로그 포스트. 익숙해지질 않는다 ‘ㅅ’… 벌써 한달이나 됬는데, 코드도 제대로 못 짜겠고, 블로그에 글도 제대로 못 쓰고 있다. 근데 맥 생각보다 이쁘자너…불편하지만…이쁜것… 그것이 갬성..

  2. 요즘 집중을 잘 못하겠다. 우울한 기분은 조금 나아진 것 같은데, 왜 우울함이 끝나면 산만함이 찾아오는 걸까. 나는 공부를 할 수 없는 운명인 것일까… 그런...

Click to read more ...