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였는데, 내가 약간이라도 경험해 본 기술을 사용하는게 유리할...