자연어 처리에 NLP 주의 메커니즘 적용

王林
풀어 주다: 2024-01-23 16:12:05
앞으로
651명이 탐색했습니다.

자연어 처리에 NLP 주의 메커니즘 적용

주의의 개념

주의의 개념은 신경 기계 번역의 seq2seq 모델에서 잘 알려져 있습니다. 인코더에서 디코더로 전달되는 정보의 양이 제한되어 모델 성능이 제한됩니다. 그러나 Attention을 도입하면 이러한 병목 현상을 극복하고 모델이 긴 문장과 복잡한 의미를 더 잘 처리할 수 있습니다.

간단히 말하면 모델은 디코딩 단계에서 인코더의 모든 숨겨진 상태를 활용하고 최종 숨겨진 상태를 초기 숨겨진 상태로 디코더에 공급합니다. 이것의 이점은 모델이 디코딩 중에 더 많은 정보를 활용할 수 있고 입력 시퀀스의 가장 관련성이 높은 부분에 "주의를 기울일" 수 있어 출력 시퀀스의 다른 부분을 생성할 때 더 정확한 예측을 할 수 있다는 것입니다.

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:163.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿