kimcando / BoostcampAITech3-PaperReading-Embedding

Boostcamp AI Tech 3rd / Basic Paper reading w.r.t Embedding
13 stars 3 forks source link

[week2] 모델 complexity의 변천사 설명 #9

Closed kimcando closed 2 years ago

kimcando commented 2 years ago
  1. RNNLM :

    • Q = (HxH) + (HxV) where D=H
    • HxH : 음.. 이전 step의 데이터가 인풋으로 들어가서 다음 step에 영향을 주는 recurrent 하다는 것은 알겠고 그 맥락에서 이 식이 input과 hidden을 같이 퉁치는 것 같음. 하지만 인풋 단어 N개를 받아야하니까 NNLM처럼 input data인 N이 표현되는 식이 있어야되지 않나?
    • HxV : 위랑 동일해서 대충 알겠음
  2. CBOW : 히든 레이어 빠지고 output layer sharing

    • Q= NxD + Dx log_2(V)
    • NxD : input layer
    • Dx log_2(V) : output layer에 해당되는 계산. 주변 n 개를 통해 얻은 값으로 1개를 얻는 감소되는 과정을 log_2로 한 것 같은데 왜지?????? 왜 log2로 감소된다고 표현한거지 ?
  3. Skip-gram

    • Q=Cx(D+Dxlog_2(v))
    • 이거는 log_2가 이해되면 이해될 것 같다
cow-coding commented 2 years ago

log_2에 대한 이유는 아마 사용된 방식 중 Huffman tree 때문일 거에요. 이게 허프만 코드라는 일종의 정보 표현 방법?에서 따온건데 balanced binary tree일겁니다. balanced binary tree는 tree의 노드 수를 N이라고 할 때 O(log(N)) 시간에 노드를 찾을 수 있어요. 여기서는 N대신 vocabulary size인 V가 사용되는 거 같네요. 논문에서 보시면

In our models, we use hierarchical softmax where the vocabulary is represented as a Huffman binary tree.

가 나오는데, 아마 일종의 vacabulary 탐색과 관련된 것이지 않을까 생각됩니다.
저도 hierarchical softmax가 뭔지 몰랐는데 이미 질문을 올려주셨더군요 😄
링크 에서 나연님이 올려주신 답을 보시면 완전 이진 트리의 성격을 갖고 있습니다!

kimcando commented 2 years ago

complexity 관련해서 좀더 찾아봐야할듯