RNN은 비교적 짧은 시퀀스에 대해서만 효과적이라는 단점이 존재한다. RNN의 시점이 길어질수록 앞의 정보가 뒤로 충분히 전달되지 못하는 현상이 발생한다. 이것이 큰 문제가 될 수 있는 것이 예를 들어 "손흥민은 축구선수고, 토트넘 핫스퍼라는 팀에 소속되어 있다. 그는 공격수이다. ~~~ 김민재 또한, 한국에서 엄청난 축구선수이다. __는(은) 세계 최고의 공격수이다."와 같은 단어가 있다고 하자. 빈 칸에 해당하는 단어인 "손흥민"은 앞에 위치해 있다. 이 때 RNN이 앞의 정보를 충분히 전달하지 못하면 잘못된 단어로 예측하게 된다. 이를 장기 의존성 문제(The problem of Long-Term Dependencies)라고 한다.
RNN의 한계를 극복하기 위해 등장한 모델이다. RNN의 장단기 메모리라고 부른다. LSTM은 은닉층의 cell의 입력 게이트, 망각 게이트, 출력 게이트를 추가하여 불필요한 기억을 지우고, 기억해야 할 것을 정한다. LSTM에는 은닉 상태(hidden state)를 계산하는 식이 복잡해졌으며, 셀 상태(cell state)라는 값을 추가했다.


셀 상태 또한 은닉 상태와 같이 이전 시점의 셀 상태가 다음 시점의 셀 상태를 구하기 위한 입력으로 사용된다.
은닉 상태와 셀 상태의 값을 구하기 위해 새로 추가 된 3개의 게이트를 사용한다. 3개의 게이트에는 모두 sigmoid 함수가 존재한다. sigmoid 함수를 통과하면 0 ~ 1 사이의 값이 나오게 되는데 이 값들을 통해 게이트를 조절한다.

입력 게이트는 현재 정보를 기억하기 위한 게이트이다. sigmoid 함수를 통과하여 0 ~ 1 사이의 값을 갖는 와 tanh 함수를 통과하여 -1 ~ 1 사이의 값을 갖는 , 이 두 개의 값을 가지고 이번에 기억할 정보의 양을 정한다.

삭제 게이트는 기억을 삭제하기 위한 게이트이다. sigmoid 함수를 지나 0 ~ 1 사이의 값이 나오게 되는데, 0에 가까울수록 많은 양의 정보가 삭제된 것이고 1에 가까울수록 적은 양의 정보가 삭제된 것이다.

셀 상태를 구하는 과정에선 이미 삭제 게이트를 지난 상태이다.
입력 게이트에서 구한 를 외적한다.
입력 게이트에서 선택된 기억을 삭제 게이트의 결과값과 더한다. 이 값을 현시점 t의 셀 상태라고 하고, 다음 시점인 t+1의 LSTM 셀로 넘겨진다.
만약 삭제 게이트의 출력값인 가 0이 된다면, 이전 시점의 셀 상태값인 은 현시점의 셀 상태 값을 결정하기 위한 영향력이 0이 되면서, 오직 입력 게이트의 결과만이 현시점의 셀 상태값을 결정한다.

출력 게이트는 현시점 t의 x값과 이전 시점 t -1의 은닉 상태가 sigmoid 함수를 지난 값이다. 해당 값은 현시점 t의 은닉 상태를 결정하는 일에 사용된다. 셀 상태의 값이 tanh 함수를 지나 -1 ~ 1 사이의 값이 되고, 해당 값은 출력 게이트의 값과 연산되면서, 값이 걸러지는 효과가 발생하여 은닉 상태가 된다. 은닉 상태의 값은 또한 출력층으로도 향한다.