KGC(지식 그래프 완성)는 지식 그래프에서 누락된 정보를 추론하는 것을 목표로 하는 인공지능 및 지식 표현 분야에서 중요한 작업입니다. 강력한 신경망 아키텍처인 Transformer는 다양한 자연어 처리 작업에서 큰 잠재력을 보여왔으며 KGC에도 효과적으로 적용될 수 있습니다. 저는 Transformer 공급업체로서 이 블로그에서 지식 그래프 완성을 위해 Transformer를 사용하는 방법을 공유하겠습니다.


지식 정보 완성 이해
지식 그래프는 엔터티와 엔터티 간의 관계 형태로 지식을 구조화한 표현으로, 일반적으로 트리플(주어, 술어, 객체) 세트로 모델링됩니다. 예를 들어 (Albert Einstein, 개발, 일반 상대성 이론)은 지식 그래프에서 트리플입니다. 지식 그래프 완성에는 이러한 트리플에서 누락된 엔터티 또는 관계를 예측하는 작업이 포함됩니다. 이 작업은 질문 응답 시스템, 추천 시스템, 의미 검색과 같은 많은 애플리케이션에 중요합니다.
KGC에 Transformer를 사용하는 이유
"Attention Is All You Need" 논문에 소개된 Transformer 아키텍처에는 지식 그래프 완성에 적합하게 만드는 몇 가지 장점이 있습니다.
- 자기 주의 메커니즘: Transformer의 self-attention 메커니즘을 사용하면 입력 시퀀스에서 장거리 종속성을 캡처할 수 있습니다. 지식 그래프 완성의 맥락에서 트리플의 다양한 엔터티와 술어 간의 관계를 효과적으로 모델링할 수 있습니다.
- 병렬 처리: 순환 신경망(RNN)과 달리 Transformer는 전체 입력 시퀀스를 병렬로 처리할 수 있으므로 훈련 및 추론 프로세스 속도가 크게 향상됩니다.
- 전이 학습: BERT와 같은 사전 훈련된 Transformer 모델은 다양한 자연어 처리 작업에서 뛰어난 성능을 보여왔습니다. 이러한 사전 훈련된 모델은 대규모 텍스트 말뭉치에서 학습된 지식을 활용하여 지식 그래프 완성을 위해 미세 조정될 수 있습니다.
KGC에 Transformer를 사용하는 단계
1. 데이터 준비
첫 번째 단계는 지식 그래프 완성을 위한 데이터를 준비하는 것입니다. 데이터는 일반적으로 훈련 세트, 검증 세트, 테스트 세트로 나눌 수 있는 트리플 세트로 구성됩니다. 트리플은 Transformer가 처리할 수 있는 형식으로 인코딩되어야 합니다. 일반적인 접근 방식 중 하나는 엔터티와 조건자를 임베딩으로 변환하는 것입니다. 예를 들어 사전 훈련된 단어 임베딩을 사용하거나 지식 그래프 자체에서 엔터티 및 조건자 임베딩을 학습할 수 있습니다.
2. 모델 디자인
지식 그래프 완성을 위한 Transformer 기반 모델을 설계할 수 있습니다. 한 가지 방법은 Transformer 인코더를 사용하여 입력 트리플을 처리하는 것입니다. Transformer 인코더에 대한 입력은 일련의 엔터티 및 조건자 임베딩일 수 있습니다. 인코더의 출력은 누락된 엔터티 또는 트리플의 조건자를 예측하는 데 사용될 수 있습니다.
다음은 PyTorch의 KGC용 Transformer 기반 모델의 간단한 예입니다.
torch.nn을 torch.nn에서 nn으로 가져오기 import TransformerEncoder, TransformerEncoderLayer 클래스 TransformerKGC(nn.Module): def __init__(self, d_model, nhead, num_layers, 희미한_feedforward): super(TransformerKGC, self).__init__() 인코더_layer = TransformerEncoderLayer(d_model=d_model, nhead=nhead, 희미한_feedforward=dim_feedforward) self.transformer_encoder = TransformerEncoder(encoder_layer, num_layers=num_layers) self.fc = nn.Linear(d_model, num_entities) def 전달(self, src): 출력 = self.transformer_encoder(src) 출력 = self.fc(output[:, 0, :]) 반환 출력
이 예에서는d_모델임베딩의 차원입니다.머리관심 헤드의 수입니다.num_layersTransformer 인코더 레이어의 수입니다.희미한_피드포워드Transformer 인코더 계층의 피드포워드 네트워크 차원입니다.
3. 모델 훈련
모델이 설계되면 훈련 데이터를 사용하여 모델을 훈련할 수 있습니다. 훈련 목표는 일반적으로 교차 엔트로피 손실과 같은 손실 함수를 최소화하는 것입니다. 훈련 중에 배치 정규화, 드롭아웃, 학습률 스케줄링과 같은 기술을 사용하여 모델 성능을 향상시킬 수 있습니다.
optim 모델로 torch.optim 가져오기 = TransformerKGC(d_model=128, nhead=4, num_layers=2,dim_feedforward=512) criterion = nn.CrossEntropyLoss()optimizer = optim.Adam(model.parameters(), lr=0.001) for epoch in range(num_epochs): running_loss = 0.0 for i, data in enumerate(train_loader, 0): 입력, 레이블 = 데이터 최적화 프로그램.zero_grad() 출력 = 모델(입력) 손실 = 기준(출력, 레이블) loss.backward() 최적화 프로그램.단계() running_loss += loss.item() print(f'Epoch {epoch + 1}, 손실: {running_loss / len(train_loader)}')
4. 평가
훈련 후에는 검증 세트와 테스트 세트에서 모델을 평가해야 합니다. 지식 그래프 완성에 대한 일반적인 평가 지표로는 평균 순위(MR), 평균 상호 순위(MRR) 및 Hits@k가 있습니다. 이러한 측정항목은 모델이 가능한 모든 후보 중에서 올바른 엔터티 또는 조건자의 순위를 얼마나 잘 매길 수 있는지를 측정합니다.
sklearn.metrics에서 importmean_rank_score,mean_reciprocal_rank_score model.eval() with torch.no_grad(): all_labels = [] all_preds = [] test_loader의 데이터: 입력, labels = 데이터 출력 = 모델(입력) all_labels.extend(labels.tolist()) all_preds.extend(outputs.tolist()) mr = mean_rank_score(all_labels, all_preds) mrr = 평균_reciprocal_rank_score(all_labels, all_preds) print(f'평균 순위: {mr}, 평균 상호 순위: {mrr}')
KGC용 변압기 제품
Transformer 공급업체로서 지식 그래프 완성에 사용할 수 있는 고품질의 다양한 Transformer 제품을 제공합니다. 예를 들어, 우리의SC(ZB)9 시리즈 10kV급 건식 변압기Transformer 모델의 훈련 및 실행에 필요한 컴퓨팅 인프라에 안정적인 전원 공급을 제공합니다. 그만큼SZ 11 - M 시리즈 3상 오일 침수형 배전 변압기지식 그래프 완성 작업과 관련된 대규모 데이터 센터에도 신뢰할 수 있는 선택입니다. 추가적으로 우리의35kV 이중 권선 부하 조절 오일 침수 전력 변압기고강도 컴퓨팅 프로세스 중에 전력 시스템의 효율적인 작동을 보장할 수 있습니다.
결론
지식 그래프 완성을 위해 Transformer를 사용하는 것은 Transformer 아키텍처의 성능을 활용하여 KGC의 성능을 향상시킬 수 있는 유망한 접근 방식입니다. 데이터 준비, 모델 설계, 교육 및 평가 단계를 수행함으로써 지식 그래프 완성을 위한 효과적인 Transformer 기반 모델을 구축할 수 있습니다. Transformer 공급업체로서 당사는 지식 그래프 완성에서 더 나은 결과를 얻을 수 있도록 고품질 제품과 기술 지원을 제공하기 위해 최선을 다하고 있습니다. 당사 제품에 관심이 있거나 KGC용 Transformer 사용에 대해 질문이 있는 경우, 조달 및 추가 논의를 위해 언제든지 당사에 문의하시기 바랍니다.
참고자료
- Vaswani, A., Shazer, N., Parmar, N., Uszkoreit, J., Jones, L., Gomez, An, ... & Polosukhin, I. (2017). 주의가 필요한 전부입니다. 신경 정보 처리 시스템의 발전.
- Devlin, J., Chang, MW, Lee, K., & Toutanova, K. (2018). BERT: 언어 이해를 위한 심층 양방향 변환기의 사전 훈련입니다. arXiv 사전 인쇄 arXiv:1810.04805.
