주의의 개념은 신경 기계 번역의 seq2seq 모델에서 잘 알려져 있습니다. 인코더에서 디코더로 전달되는 정보의 양이 제한되어 모델 성능이 제한됩니다. 그러나 Attention을 도입하면 이러한 병목 현상을 극복하고 모델이 긴 문장과 복잡한 의미를 더 잘 처리할 수 있습니다.
간단히 말하면 모델은 디코딩 단계에서 인코더의 모든 숨겨진 상태를 활용하고 최종 숨겨진 상태를 초기 숨겨진 상태로 디코더에 공급합니다. 이것의 이점은 모델이 디코딩 중에 더 많은 정보를 활용할 수 있고 입력 시퀀스의 가장 관련성이 높은 부분에 "주의를 기울일" 수 있어 출력 시퀀스의 다른 부분을 생성할 때 더 정확한 예측을 할 수 있다는 것입니다.
attention 메커니즘은 아키텍처와 구현 세부 사항에 따라 다르지만 몇 가지 공통점도 있습니다. 예를 들어 특정 아키텍처의 신경망을 사용하여 예측을 수행하려는 시나리오를 생각해 보세요. 이 경우 인코딩된 정보가 포함된 벡터를 얻습니다. 이 벡터를 완전 연결 계층에 입력한 다음 소프트맥스 계층을 통해 처리하는 등 예측에 사용할 수 있습니다. 구체적인 처리 단계는 다를 수 있지만 기본 아이디어는 다양한 아키텍처에서 유사합니다.
그러나 예측 결과는 만족스럽지 못했습니다. 여러 가지 이유가 있을 수 있으며 다음과 같은 생각이 가능합니다.
1. 사용된 이 벡터에는 좋은 예측을 달성하는 데 유용한 모든 정보가 포함되어 있지 않습니다.
마커에 의해 인코딩된 벡터 시퀀스가 있는 NLP 작업의 경우와 같이 좋은 예측을 하는 데 필요한 정보는 많은 벡터에 분산되어 있는 경우가 많습니다. 분산된 모든 정보가 고려되었지만 일부 정보는 신경망 내에서 더 깊이 흐르기 때문에 필연적으로 손실됩니다.
2. 유용한 것은 이러한 벡터에 포함된 개별 정보뿐만 아니라 현재 벡터와의 관계입니다.
현재 벡터는 다른 벡터와 상호 작용하고 통신해야 하며 어떤 정보를 전달할지 결정하는 데 도움이 필요할 수 있습니다. 따라서 잠재적으로 유용한 모든 벡터를 결합하고 모델이 더 나은 예측을 위해 주의해야 할 사항을 학습할 수 있도록 하는 더 스마트한 방법이 필요합니다.
이 두 가지 점을 고려한 후 이제 이러한 벡터와 기타 자격 있는 벡터가 예측을 만드는 데 중요하며 이 정보를 처리하는 방법이 주의의 일반적인 틀이라고 가정합니다.
이 프레임워크에서는 쿼리를 수락하고 키와 하나씩 상호 작용하도록 합니다.
1 쿼리와 각 키 간의 특정 상호 작용은 내부 곱 또는 추가 또는 조인 및 Small에 대한 피드의 조합일 수 있습니다. 신경망 등 쿼리의 각각 다른 키는 역전파에서 훈련된 동일한 매개변수와 동일한 작업을 사용하여 처리됩니다. 또한 이러한 작업 이후의 최종 출력은 단일 값이어야 합니다. 이러한 출력 값을 에너지라고 합니다. 쿼리와 모든 키 벡터에 대해 이 프로세스를 반복하면 일련의 에너지가 얻어집니다.
2. 소프트맥스 레이어를 사용하여 모든 에너지를 정규화합니다.
3. 값 벡터의 가중 합산을 수행하며, 가중치는 정규화된 에너지입니다. 이는 지능적인 방식으로 결합된 모든 요소에 대한 정보를 포함하는 값 벡터와 동일한 차원을 가진 컨텍스트 벡터를 생성합니다.
4. 컨텍스트 벡터와 쿼리 벡터를 함께 사용하여 예측을 수행할 수 있습니다. 예를 들어 이를 연결하고 필요에 따라 신경망에 공급한 다음 소프트맥스 레이어를 제공합니다.
위는 일반적인 주의 프레임워크의 프로세스입니다. 이 프레임워크가 다양한 작업에 어떻게 적용되는지 살펴보겠습니다.
감정 분석 유형 작업은 입력이 텍스트이고 출력이 가능한 감정 중 하나에 해당하는 레이블인 분류 작업입니다. 텍스트가 신경망에 공급되기 전에 텍스트를 정리하고, 형식을 지정하고, 토큰화하고 일련의 어휘 기반 색인으로 변환해야 합니다. 이는 seq2seq가 아니라 seq2one이지만 주의 메커니즘은 여전히 적용되어 성능 향상에 도움이 됩니다.
일반적인 단방향 또는 양방향 LSTM 기반 네트워크를 사용하여 이 작업을 수행할 수 있습니다. 이 경우 마지막 레이어의 최종 은닉 상태(단방향) 또는 두 개의 최종 은닉 상태(양방향, 하나는 앞으로, 하나는 뒤로)만 분류 헤드에 전달되어 예측에 사용됩니다(예: 완전 연결 레이어 및 소프트맥스). . 최종 은닉 상태에 의해서만 전달되는 제한된 정보는 모델 성능에 병목 현상을 발생시킵니다.
날짜 번역은 문자 수준 seq2seq 작업의 예입니다. 이 작업의 목표는 "2022년 12월 27일"과 같이 사람이 읽을 수 있는 날짜를 입력으로 사용하고 "2022-12-27"과 같이 입력과 동일한 날짜를 나타내는 기계가 읽을 수 있는 날짜를 출력하는 것입니다.
Attention 기반 모델은 디코더의 LSTM 유닛 앞에 Attention 블록이 있습니다. 각 루프 단계에서 Attention 블록의 출력 컨텍스트 벡터와 마지막 단계의 출력이 연결된 다음 LSTM 장치에 공급됩니다. Attention의 또 다른 구현은 Attention 블록을 LSTM 유닛 이후의 현재 단계의 출력 벡터 및 출력 컨텍스트 벡터와 연결하는 것입니다. 그런 다음 이는 다음 토큰을 예측하기 위해 완전히 연결된 레이어에 공급됩니다. 여기서 어텐션 블록은 일반적인 프레임워크를 따르며, 키와 값 벡터는 동일한 벡터 세트, 즉 인코더 마지막 레이어의 숨겨진 상태이며, 쿼리와 각 키 간의 상호 작용은 작은 신경망입니다.
디코딩 단계에서 단방향 LSTM은 한 번에 하나의 토큰을 예측하므로 각 단계에 대한 입력에는 두 가지 옵션이 있습니다. 즉, 이전 단계 출력에서 현재 단계로 예측한 토큰 또는 지상 진실입니다. 여기에서 하이퍼파라미터를 정의하여 훈련 중에 사용된 입력 토큰 중 몇 퍼센트가 실제인지를 제어하고 모델 성능을 최적화하기 위해 실험할 수 있습니다.
위 내용은 자연어 처리에 NLP 주의 메커니즘 적용의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!