728x90
반응형
  • Graph Data Science

이번 포스팅에서는 Knowledge Graph에 대해 소개하고, NASA의 인적 자본 인력 분석 부서에서 Knowledge Graph를 어떻게 활용하고 있는지 보여드릴게요. 특히 Knowledge Graph와 알고리즘을 결합해서 숨겨진 기술을 찾는 방법을 알아볼 거예요.

왜 이런 걸 하는 걸까요? 개인의 기술이나 산업, 그리고 우리가 일을 수행하는 방식을 조사하는 다양한 연구와 설문 조사가 진행되어 왔는데요. 특히 HR 리더와 CEO가 우선순위로 삼는 것 중 하나가 중요한 기술과 역량을 구축하는 것이죠.

지난 1년 동안, 정말 예상치 못했던 시기에 우리가 깨달은 것은 우리가 우리의 기술을 어떻게 바라보고 있는지 다시 생각해 볼 필요가 있다는 점이에요. 특히 원격 또는 하이브리드 작업을 수행하는 새로운 방법을 찾으려고 할 때, 개인을 재정비해야 할 수도 있죠.

이 모든 것은 변화를 가져오고 우리가 기술을 어떻게 보는지 살펴보고 조직 내에 있는 지식을 식별하는 것과 관련이 있어요. 그래서 우리 조직에서 우리가 갖고 있는 것과 부족한 것이 무엇인지, 그리고 이 정보를 어떻게 활용할 수 있는지를 제대로 파악하기 위해 Knowledge Graph를 사용해서 사람들, 직업, 교육에 대해 우리가 가지고 있는 데이터를 실제로 결합할 수 있는 방법을 찾는 여정을 시작했어요.

첫째, Knowledge Graph란 무엇일까요?

많은 사람들과 이야기를 나눠보면 다양한 정의를 찾을 수 있을 거예요. 특히 기업의 경우, 제가 보는 방식은 일종의 공통 관계를 통해 다양한 데이터 소스를 함께 연결하는 메커니즘이라고 생각해요. 구조화된 데이터와 구조화되지 않은 데이터를 모두 통합할 수 있다는 점이 매력적이죠.

Neo4j의 Knowledge Graph가 기존 관계형 데이터베이스 관리 시스템과 다른 점은, 데이터를 그래프 데이터베이스 안팎으로 정말 쉽게 추가할 수 있다는 거예요. 데이터 모델이나 스키마를 쉽게 변경할 수 있도록 만들어졌기 때문에, 큰 비용을 들이지 않고도 관계를 만들고 제거할 수 있죠. 실제로 다양한 클러스터를 식별하고 조직 내에 잠재적인 연결을 찾을 수도 있어요. 그래프 관점은 테이블이나 목록과 같은 전통적인 방식으로 정보를 볼 때와는 다른 방식으로 정보를 식별하는 좋은 방법을 제공하죠. 그리고 가지고 있는 모든 종류의 시각화 도구에 데이터를 넣을 수도 있고요.

살펴볼 수 있는 다양한 알고리즘도 있어요. 저희는 직원의 기술을 식별하기 위해 데이터 세트 내에서 다양한 유형의 텍스트 주석을 사용하는데요. 네트워크 구조를 식별하는 방법에 대해 생각하기 시작하면, Graph Data Science Library에서 사용할 수 있는 내장 그래프 알고리즘 중 일부인 경로 찾기, 중심성, 커뮤니티 감지를 살펴보게 될 거예요. 또한 텍스트 순위, 유사성, 감정 분석을 살펴보기 위해 해당 데이터 중 일부를 가져왔고, Knowledge Graph를 풍부하게 하기 위해 해당 정보를 활용해서 다시 그래프 데이터베이스에 넣었답니다.

Knowledge Graph 만들기

물론 저희는 Neo4j와 Neo4j의 그래프 알고리즘을 사용하고 있어요. Node 유사성을 어떻게 사용하는지 보여드릴게요. 저희는 새롭게 등장하는 그래프 Neural Network 중 일부를 평가하고 있고, 정보를 추출하고 AWS나 GCP 등 외부에서 신경 그래프를 활용하는 방법도 살펴보고 있어요. 저희는 아주 간단한 공통 프로그래밍 언어인 Python/R을 사용해서 Doc2Vec, 엔터티 추출 또는 BERT, RNN, Spacey를 사용해서 일부 텍스트 유사성을 수행하고요. 이 모든 것들은 여러분의 워크플로우와 파이프라인에서 Neo4j 그래프 데이터베이스로 Knowledge Graph를 구축하는 데 사용될 수 있어요.

Knowledge Graph를 구축하는 방법과 제가 수행한 작업에 대한 아주 높은 수준의 소개를 살펴본 다음, 그로부터 얻은 결과 중 일부를 보여드릴게요. Knowledge Graph 모델 워크플로우를 시작하는 건 정말 쉬워요. 저희는 직업부터 시작했는데, 그 안에는 직업이나 역할에 필요한 지식, 기술, 능력, 업무 유형 등의 정보가 포함되어 있죠.

Knowledge Graph 모델 워크플로우

저희는 해당 정보를 가져와서 해당 직업에 대한 어휘를 구축하고, 이를 Doc2Vec 모델에 제공해요. 해당 정보는 모두 노동부에서 제공한 OnDeck이라는 기존 데이터베이스를 통해 내장되어 있으며, 이 데이터베이스는 분류 체계의 기초로 사용할 수 있을 뿐만 아니라 그래프 데이터베이스 내에서 사용하는 정보도 포함하고 있답니다.

해당 어휘를 구축하고 Doc2Vec 모델을 생성하면, 해당 모델을 사용해서 직무 설명, 성과 평가, 이력서, 교육과 같은 직원의 정보를 추론할 수 있어요. 저희는 해당 정보 내의 각 문장을 살펴보고 Doc2Vec 모델에 대해 추론해서, 해당 문장이 직업의 어휘와 관련된 요소 중 하나와 얼마나 밀접하게 관련되어 있는지 확인할 수 있는 거죠.

이제 이걸 그래프 데이터베이스에 넣고 일부 그래프 데이터 과학 기능을 실행할 수 있고, 기술 격차, 경력 경로, 승계 계획은 물론 조직 전반에 걸쳐 인력을 전략적으로 정렬하는 방법까지 살펴볼 수 있답니다.

소스에서 데이터 가져오기

Knowledge Graph를 기본으로 분류하면 매우 간단해요. 여기에는 세 가지 데이터 소스가 있어요: Occupation, Training, 그리고 Employee. 이들은 모두 자신만의 데이터 소스와 정보를 가질 수 있죠. 이들을 함께 결합하면 세 가지 영역에 걸쳐 Knowledge Graph를 구축해서 이들이 어떻게 관련되어 있는지 확인하기 시작하는 거예요.

그래서 다양한 직업과 요소들을 담고 있는 ONET 데이터베이스로 시작했어요. 직업적인 관점에서 이 데이터베이스를 살펴보고, 스스로에게 이런 질문을 던져봤죠. "교육이나 직원과 연결하는 데 사용할 수 있는 직업은 무엇일까?"

기본 데이터 모델

이걸 분석하면서 지식, 기술, 능력, 업무, 그리고 기술, 즉 KSATT로 다시 돌아왔어요.

모든 직업에는 약간의 지식이 필요하죠. 그 일을 하려면 어떤 종류의 기술이 있어야 하고, 어떤 종류의 업무를 수행할 수 있어야 할까요? 예를 들어, 여러분이 Natural Language Processing에 대한 지식이 있다고 해볼게요. Doc2Vec 모델을 사용해서 진행하는 업무에서 볼 수 있듯이, 두 개의 서로 다른 문서를 비교해서 얼마나 유사한지 확인하는 방식으로 Natural Language Processing 내에서 텍스트 유사성을 수행하는 기술이 있을 수 있어요. 그리고 저는 이러한 유사점과 관계를 찾아내기 위해 Doc2Vec 모델을 실행하는 업무를 수행했죠.

저는 이러한 지식, 기술, 업무를 가지고 있고, 직업에는 이러한 지식, 기술, 업무가 필요하니까, 이 두 가지를 결합해서 제가 해당 직업과 얼마나 밀접하게 관련되어 있는지 알아볼 수 있는 거예요.

비슷하게, Training에도 동일한 유형의 정보가 있어요. Natural Language Processing 수업을 들으면 해당 주제에 대한 지식을 얻게 되죠. 그 안에는 텍스트 유사성에 대한 섹션이 있을 수 있는데, 이건 여러분이 찾고 있는 기술이 될 수 있고요. 해당 섹션에는 해당 업무를 수행하는 방법을 보여주는 Dov2Vec 모델 실행에 대한 연습이 있을 수도 있겠네요.

이제 OccupationEmployeeTraining에 연결했는데, 이건 지식, 기술, 업무의 연결을 통해서 이루어진 거예요. 그래서 우리는 Knowledge Graph를 개발하게 된 거죠.

모델을 확장해서 프로필 만들기

거기에서 다른 것들을 추가하기 시작할 수 있어요. 이제 우리는 모든 정보를 기반으로 직무 프로필과 직원 프로필을 생성하고, 내부 인재 시장 내에서 직무 프로필과 직원 프로필을 비교하는 방법을 실제로 확인할 수 있는 거죠.

직원들은 자신의 기술이 필요한 직무 프로필을 검색할 수 있고, 관리자는 필요한 기술과 일치하는 직원을 찾을 수 있어요. 이렇게 추천을 해주고, 직업과 기술을 살펴보고, 직원들이 기술을 향상시키기 위해 어떤 교육을 받아야 할지 추천할 수 있게 되는 거죠. 더 나아가 멘토를 추천하거나 특정 인증이나 라이선스를 가진 전문가를 찾는 방법도 살펴볼 수 있고요.

외부 데이터 소스에 연결

더 풍부한 Knowledge Graph를 만들기 위해 더 많은 데이터를 추가할 수 있어요. PDW(개인 데이터 웨어하우스) 데이터베이스, 인재 마켓플레이스에 직원 및 직무 정보를 저장하는 데이터베이스, 그리고 직무 평가 도구에 직원 정보를 추가했죠. Knowledge Graph를 성장시키는 과정은 계속될 거예요.

임무 데이터에 연결

이제 직원이 누구에게 비용을 청구하는지 추가할 수 있게 되었어요. 프로그램, 임무, 테마 등의 프로젝트에서 특정 비용 센터가 될 수 있는 거죠. 어떤 직원이 어떤 조직에 있는지, 비용 센터 또는 프로젝트 내에 어떤 기술이 있는지, 내가 가진 업무 역할에 따라 어떤 기술이 부족한지, 인력 감소로 인해 어떤 기술을 잃고 있는지 등 조직에 대한 질문에 답할 수 있게 됩니다. 이 Knowledge Graph를 기반으로 답변을 시작할 수 있는 몇 가지 간단한 질문들이죠.

최종 제품

이 그림에 겁먹을 필요는 없어요! 이건 Cypher 워크벤치를 사용해서 모델을 리버스 엔지니어링하고, 이걸 Graph Database에 연결하고, 모델을 꺼내서 그 안에 내장된 데이터 모델을 보여줄 수 있는 최근 릴리스를 사용하고 있는 모습이에요.

직원, 직업, 관련 교육 등 다양한 요소들이 포함되어 있죠. 이 요소들은 모두 연결되어 있어서, Knowledge Graph 뒤에서 어떤 작업이 진행되는지 엿볼 수 있게 해줘요. 그럼 직원 데이터를 한번 빠르게 살펴볼까요?

직원에는 나이, 민족, 등급, 근무 센터, 근무 기간, 담당 직원 등 다양한 Nodes가 연결되어 있다는 것을 확인할 수 있어요. 이렇게 연결함으로써 직원, 그들의 특성, 기술, 그리고 그들이 담당하는 다양한 장소에 대한 정보를 얻을 수 있는 거죠.

직원들은 다양한 직업과도 연결되어 있어요. 앞서 언급했듯이, ONET 노동부 데이터베이스를 기반으로 시작했지만, 정부 내에서 살펴봐야 할 다른 특정 직업(OPM 시리즈)도 있고, NASA에도 자체 NASA 클래스 코드가 있답니다.

그것들은 모두 교차로를 걸어 다녔어요. 이제 우리는 어떤 그룹이나 어떤 기술 조합을 찾고 있는지 등 NASA 관련 직무에 대한 더 구체적인 정보를 얻을 수 있죠. 이 모든 정보는 Knowledge Graph에 추가되고, 계속해서 늘어나 더욱 풍부한 정보를 제공할 거예요. 모델을 가지고 놀기 시작하면 이러한 것들이 어떻게 매우 쉽게 발전할 수 있는지 알게 될 거예요.

이것이 우리의 Knowledge Graph에요. 이제 그래프 데이터 과학에 대해 조금 이야기해 볼게요.

그래프 데이터 과학이란 무엇일까요?

그래프 데이터 과학은 지난 몇 년 동안 정말 인기를 끌기 시작했어요. 그래프 데이터 과학은 그래프 세계의 전체 생태계에서 어디에 적합할까요? 다양한 유형의 기술을 활용해서 데이터에서 통찰력을 얻고 예측을 하는 중간쯤에 있다고 생각해요. 저는 이것에 대해 많이 다루지 않을 거예요. Alicia Frame 박사처럼 저보다 더 똑똑한 누군가가 그것에 대해 이야기하도록 할게요. 대신 그래프 알고리즘을 활용해서 답변을 얻는 방법을 보여 드릴게요.

Node Similarity 알고리즘

이 특별한 경우에 우리가 사용하는 알고리즘을 Node Similarity라고 해요. 기본적으로 연결된 Node를 기반으로 Node 집합을 비교하는 거죠. 두 Node가 동일한 이웃을 많이 공유하는 경우 유사한 것으로 간주돼요. 이는 서로 얼마나 밀접하게 관련되어 있는지 알려주는 Jaccard 유사성 점수를 제공해 준답니다.

Neo4j에서 이 알고리즘을 실행하려면 먼저 찾고 있는 데이터(녹색 코드의 첫 번째 줄)를 투영해야 해요. 저는 그래프 데이터 과학 라이브러리를 사용해서 제가 찾고 있는 그래프의 Cypher 투영을 생성하고 있어요. 특정 OPM 분류 옆에 묶인 모든 직업을 지적하고 있죠. 여기에서는 GS-2210, GS-0080, GS-0340 및 GS-0343을 볼 수 있는데, 모두 IT 직종과 관련이 있으며 이를 경영 분석가와 비교합니다. 이 특정 알고리즘은 경력 변경에 사용돼요. 제가 경영 분석가인데 IT 분야로 진출하고 싶다면, 그 분야와 밀접한 관련이 있는 직업이 무엇인지, 제 자신을 발전시키기 위해 무엇을 배워야 하는지 알려줄 거예요.

여기 코드의 두 번째 부분은 결과를 브라우저로 다시 스트리밍하는 거예요. 이 경우에는 다시 꺼내서 테이블에 놓았어요. 경영 분석가 직업을 다른 모든 직업과 비교한 결과는 다음과 같아요.

왼쪽 그림을 보시면, 빨간색은 실제 직업을 나타내고, 분홍색은 다양한 직업 내에서 유사한 요소들을 보여줘요. 중앙에는 모든 직업에 공통적인 요소들이 있고, 측면에는 특정 직업에만 해당하는 요소들이 있죠.

만약 제가 경영 분석가인데 IT 분야로 커리어를 바꾸고 싶다면, 어떤 선택지가 있는지 한눈에 알 수 있어요. 오른쪽 표에서 보시다시피, 경영 분석가는 정보 기술 프로젝트 관리자와 72%나 유사하거든요. 여기서 더 나아가, 원하는 직업을 얻기 위해 어떤 부분을 더 보완해야 할지도 파악할 수 있겠죠?

연결 발견

연결을 발견하는 또 다른 방법도 있어요. 이번에는 핵심 센터, 즉 우리가 집중하고 있는 지구 과학 핵심 센터를 살펴볼게요. 누가 이 센터를 담당하고 있고, 어떤 업무 역할들이 있는지 알아볼 거예요.

채용 담당자가 저에게 와서 지구 과학 분야의 다양한 업무 역할을 모두 뽑아낼 수 있는지 묻는다고 상상해 보세요. 지구의 날 채용 박람회에 참가하려고 하는데, 어떤 직업들이 관련 있는지 알고 싶어하는 거죠. 누가 그 분야에서 일하고 있는지 파악하는 것부터 시작할 수 있어요. 그리고 누가 일하고 있는지 알면, 그 사람들이 어떤 기술을 가지고 있는지도 알 수 있으니, 직업이나 지구 과학 프로젝트와 관련된 기술들을 종합할 수 있겠죠.

DEI 이니셔티브 지원

최근에는 다양성(Diversity), 형평성(Equity), 포용성(Inclusion) 이니셔티브, 즉 DEI에 대한 관심이 높아지고 있어요. 조직의 다양성을 중요하게 생각하기 시작한 거죠. 교육이나 승진 기회를 제공하는 방식이 공정한가? 누가 어떤 기회를 얻는가에 있어서 우리는 평등한가? 다양한 유형의 분류에 적합한 사람들이 포함되어 있는가? 이 차트는 특정 청구 코드에 따른 성별 분포를 보여주는 간단한 예시랍니다.

그래프에서 보시다시피 여성에 비해 남성의 비율이 높죠. 이건 전부를 보여주는 건 아니지만, 어떻게 분석할 수 있는지 보여주는 대략적인 샘플이에요. 이 모든 데이터는 하나의 테이블에 집계할 수 있고, 다양한 분석을 통해 원하는 메트릭을 확인하고 업계의 다른 조직과 비교해서 다양성을 확보할 수 있어요.

직업별 스킬 순위

이제 Neo4j에서 언제든지 가져올 수 있는 테이블 뷰를 한번 살펴볼까요? 이번에는 직업별로 스킬 순위를 매겨볼게요. 특정 직업에 있어서 가장 중요한 능력이 무엇인지 알고 싶은 거죠.

이 경우에는 컴퓨터 및 정보 연구 과학자를 찾고 있어요. 기본 기술이 이 업무 역할에 얼마나 중요한지 알려주는 평가가 데이터베이스에 있으니까, 해당 수준에 따라 기술을 가져와서 오름차순으로 정렬할 수 있죠.

컴퓨터 및 정보 연구 과학자에게 가장 중요한 기본 능력은 업무 관련 문서에 쓰여진 문장과 문단을 이해하는 것이고, 이는 수학을 사용해서 문제를 해결하는 것보다 훨씬 높아요. 이 특정 직업의 기본 기술로 봤을 때, 많은 경우 수학을 수행하는 것보다 의사소통이 얼마나 더 중요한지 보여주는 거죠. 따라서 이는 해당 메트릭이나 값을 많은 알고리즘과 모델에서 가중치로 사용할 수 있는 가능성을 열어줘요.

능력에 따라 직업과 유사한 직원

직원과 그들의 능력을 살펴보면서 동일한 node similarity 알고리즘을 사용해서 직원을 직업과 비교할 수 있어요. 직원은 직업과 얼마나 유사할까요? 특정 요구 사항을 충족하는 사람을 찾고 있다면, 이 알고리즘을 사용해서 내가 찾고 있는 특정 업무 역할과 매우 유사한 직원을 찾을 수 있어요.

업무 역할을 Fine-tuning하기 시작하면, 다양한 분류에 입력하는 모든 추가 정보를 통해 목표에 실제로 일치하는 사람을 찾는 것이 훨씬 쉬워지거나, 적어도 향상해야 할 목표나 기술이 누락된 시점을 이해할 수 있어요.

결론

Knowledge Graph와 그래프 데이터 과학을 활용해서 인재를 찾을 수 있는 다른 방법은 아직 많이 있어요. 인적 자본에 대한 인력 분석에도 Graph Database로 답할 수 있는 질문이 많죠. 이는 점점 성장하고 있는 분야이고, 이러한 유형의 신기술로 우리가 무엇을 할 수 있을지 기대돼요.

그래프에서 Knowledge Graph로의 여정에 대해 더 자세히 알고 싶으신가요? 무료 백서 받기그래프에서 지식 그래프까지: 무제한의 통찰력을 향한 짧은 여정 now.
  • Graph Data Science
  • nasa

에이치시스템즈LogTree는 Neo4j 기반 GraphRAG 플랫폼으로, 데이터를 자동으로 지식그래프화하고 자연어 질의로 즉시 답을 제공합니다.

👉 에이치시스템즈 홈페이지

728x90
반응형

+ Recent posts