Top

그래프 머신러닝 [머신러닝 알고리듬을 적용해 그래프 데이터 활용하기]

  • 원서명Graph Machine Learning: Take graph data to the next level by applying machine learning techniques and algorithms (ISBN 9781800204492)
  • 지은이클라우디오 스타밀레(Claudio Stamile), 알도 마르줄로(Aldo Marzullo), 엔리코 듀세비오(Enrico Deusebio)
  • 옮긴이김기성, 장기식
  • ISBN : 9791161757209
  • 35,000원 (eBook 28,000원)
  • 2023년 01월 31일 펴냄
  • 페이퍼백 | 360쪽 | 188*235mm
  • 시리즈 : 데이터 과학

책 소개

소스 코드 파일은 여기에서 내려 받으실 수 있습니다.
한국어판의 코드는 여기에서 내려 받으실 수 있습니다.

요약

파이썬으로 그래프 데이터를 다루기 위한 패키지인 NetworkX는 손쉽게 그래프를 생성, 조작, 분석하기 위한 매우 유용한 도구이다. NetworkX로 그래프 데이터를 이해하기 위한 기본적인 방법과 더불어 node2vec, edge2vec과 같은 다양한 머신러닝 알고리듬을 이용해 그래프 데이터를 활용하는 방법을 실생활에 적용가능한 예시와 함께 소개한다.

이 책에서 다루는 내용

◆ 그래프 특징을 추출하는 파이썬 스크립트 작성법
◆ 주요 비지도 및 지도 그래프 임베딩 기술 구현 방법
◆ 주요 그래프 표현 학습 기법의 차이점
◆ 얕은 임베딩 방법, 그래프 신경망, 그래프 정칙화 방법 등
◆ 소셜 네트워크 및 금융 거래 시스템 등에서의 데이터 추출 방법
◆ 애플리케이션을 원활하게 배포하고 확장하는 방법

이 책의 대상 독자

이 책은 데이터 포인트를 풀고, 위상(topology) 정보를 활용해 분석과 모델의 성능을 개선하려는 데이터 분석가, 그래프 개발자, 그래프 분석가, 그래프 전문가를 대상으로 한다. 머신러닝 기반 그래프 데이터베이스를 구축하려는 데이터 과학자와 머신러닝 개발자에게도 유용하다. 그래프 데이터베이스와 그래프 데이터에 대한 초급 수준의 지식을 가지고 있는 사람이 읽기에 적합한 책이다. 이 책의 내용을 최대한 활용하기 위해서는 파이썬 프로그래밍과 머신러닝에 대한 중급 수준의 실무 지식 또한 필요하다.

이 책의 구성

1장, '그래프 시작하기’에서는 NetworkX 파이썬 라이브러리를 사용해 그래프 이론의 기본 개념을 소개한다.
2장, ‘그래프 머신러닝’에서는 그래프 머신러닝과 그래프 임베딩 기술의 주요 개념을 소개한다.
3장, ‘그래프 비지도 학습’에서는 비지도 그래프 임베딩의 최신 방법을 다룬다.
4장, ‘그래프 지도 학습’에서는 지도 그래프 임베딩의 최신 방법을 다룬다.
5장, ‘그래프에서의 머신러닝 문제’에서는 그래프에서 가장 일반적인 머신러닝 작업을 소개한다.
6장, ‘소셜 네트워크 그래프’에서는 분석 소셜 네트워크 데이터에 머신러닝 알고리듬을 적용하는 방법을 소개한다.
7장, ‘그래프를 사용한 텍스트 분석 및 자연어 처리’에서는 자연어 처리 작업에 머신러닝 알고리듬을 적용하는 방법을 소개한다.
8장, ‘신용카드 거래에 대한 그래프 분석’에서는 신용카드 부정 거래 탐지에 머신러닝 알고리듬을 적용하는 방법을 소개한다.
9장, ‘데이터 드리븐 그래프 기반 응용 프로그램 구축’에서는 큰 그래프를 처리하는 데 유용한 몇 가지 기술을 소개한다.
10장, ‘그래프의 새로운 트랜드’에서는 그래프 머신러닝의 몇 가지 새로운 동향(알고리듬과 응용 프로그램)을 소개한다.

저자/역자 소개

지은이의 말

그래프 머신러닝은 네트워크 데이터를 처리하고 예측, 모델링, 분석 작업에 사용할 수 있는 개체 간의 강력한 관계를 활용할 수 있는 새로운 도구를 제공한다.
그래프 이론과 그래프 머신러닝을 간단하게 소개하고, 그래프의 잠재력을 이해하는 방법을 배운다. 이어서 그래프 표현 학습을 위한 주요 머신러닝 모델, 즉 목적과 작동 방식, 다양한 지도 학습과 비지도 학습 응용 프로그램에서 구현하는 방법을 익힌다. 그런 다음 그래프 데이터의 잠재력을 최대한 활용하고자 데이터 처리부터 모델 학습 그리고 예측을 포함한 완전한 머신러닝 파이프라인을 구축한다. 계속해서 소셜 네트워크 데이터를 수집하고, 텍스트 분석과 금융 거래 시스템, 자연어 처리와 같은 실제 시나리오를 다룬다. 마지막으로 네트워크 정보를 저장하고, 질의하고 처리하기 위한 그래프 분석용 데이터 기반 응용 프로그램을 구축하고 확장하는 방법을 배운 다음, 그래프의 최신 동향을 알아본다.
이 책을 통해 그래프 이론의 필수 개념과 머신러닝 응용 프로그램을 성공적으로 구축하는 데 사용되는 모든 알고리듬과 기술을 배울 수 있을 것이다.

지은이 소개

클라우디오 스타밀레(Claudio Stamile)

2013년 9월 이탈리아 칼라브리아 대학(University of Calabria)에서 컴퓨터 공학 석사 학위를 받았으며, 2017년 9월 벨기에 뢰번 가톨릭 대학(KU Leuven) 및 프랑스 끌로드 베흐노리용 1 대학(Université Claude Bernard Lyon 1)에서 공동 박사 학위를 받았다. 석박사 학위 과정 동안 생물 의학 분야를 전공하면서 인공지능, 그래프 이론, 머신러닝에 관해 탄탄한 배경 지식을 쌓았다. 현재 최상위 고객이 데이터 기반 전략을 구현하고 인공지능 기반 솔루션을 구축해 효율성을 높이고 새로운 비즈니스 모델을 수행하도록 지원하는 컨설팅 회사인 CGnal의 선임 데이터 과학자다.

알도 마르줄로(Aldo Marzullo)

2016년 9월 칼라브리아 대학에서 컴퓨터과학 석사 학위를 받았다. 알고리듬 설계와 그래프 이론, 그리고 머신러닝을 포함한 여러 분야에서 견고한 배경 지식을 쌓았다. 2020년 1월 칼라브리아 대학과 끌로드 베흐노 리용 1(프랑스 리용) 대학에서 「Deep Learning and Graph Th eory for Brain Connectivity Analysis in Multiple Sclerosis(다발성 경화증 뇌 연결성 분석을 위한 딥러닝과 그래프 이론)」이라는 논문으로 공동 박사 학위를 받았다. 알도는 현재 칼라브리아 대학의 박사후 연구원으로 여러 국제기관과 협력하고 있다.

엔리코 듀세비오(Enrico Deusebio)

현재 최고 수준의 고객이 데이터 기반 전략을 구현하고 인공지능 기반 솔루션을 구축하는 것을 지원하는 컨설팅 회사인 CGnal의 최고 운영 책임자다. 학문적, 산업적 맥락에서 10년 이상 고성능 시설과 대규모 컴퓨팅 센터를 사용해 데이터와 대규모 시뮬레이션을 연구해 왔다. 케임브리지 대학(University of Cambridge), 토리노 대학(University of Turin), 스톡홀름 왕립기술원(KTH) 등 최상위권 대학과 협력해 박사학위를 취득했다. 또한 2014년 토리노 폴리테크닉(Politecnico di Torino)의 항공 우주 공학 학사 및 석사 학위를 받았다.

옮긴이의 말

처음 접하는 이들에게는 그래프 데이터가 어렵게 느껴질 수 있다. 하지만 그래프 데이터는 우리의 일상과 친숙해질 수 있는 데이터 형식이다. 사회는 복잡한 관계의 연속으로 구성되는데, 노드와 간선으로 표현되는 그래프 데이터는 이러한 관계의 표현을 가장 잘 나타낼 수 있는 데이터 형식이다. 관계 표현을 가장 쉽게 할 수 있다는 강점이 있어 최근에는 그래프 형식으로 데이터를 저장하는 데이터베이스 등이 각광받고 있다.
이 책은 그래프 데이터를 다루기 위한 아주 기본적인 것들로 시작해서, 실생활에 적용할 수 있는 예시를 통해 보다 쉬운 이해를 제공한다. 예시를 통해서 그래프 데이터를 다루는 기본기를 쌓고, 머신 러닝 알고리즘들을 활용해 고급 응용 스킬들을 배워볼 수 있다. 단순히 이론적인 설명에서 끝나는 것이 아니라 실제 서비스에 필요한 기본 지식들을 소개한다는 점에서 훌륭한 책이다. 물론 나와있는 내용만으로 그래프 머신 러닝 전문가가 될 수 있다고는 할 수 없을 것이다. 그러나 훌륭한 시작을 함께하기 위해 좋은 책이라고 생각한다.
이 책에서는 보다 복잡한 설명이나 심도 있는 이해가 필요한 부분에 참고할 만한 자료들에 대한 소개가 나와있다. 이러한 참고 자료들을 찾아보고 스스로 새로운 문제를 해결하기 위해 노력해보기를 꼭 권장한다. 이러한 노력이 인공지능 연구의 선도자가 되는 길이라고 생각한다.

옮긴이 소개

김기성

파이썬 개발자로서 주로 이상 음원 탐지 모델 개발과 단어 인식과 관련된 자연어 처리 모델 개발을 담당했다. 그리고 개발한 모델을 서비스하기 위한 서버 플랫폼도 파이썬으로 개발해 국내 CCTV 관제실에 다수 도입됐다.

장기식

경희대학교에서 대수학을 전공했으며, 고려대학교 정보보호대학원에서 박사 학위를 취득했다. 이후 약 10년간 경찰청 사이버안전국 디지털포렌식센터에서 디지털 포렌식 업무를 담당했다. 경찰대학 치안정책연구소에서 데이터 분석을 접한 이후 데이터 분석을 기반으로 한 머신러닝 기술을 연구했으며, 이 경험을 바탕으로 현재 아이브스 CTO 및 AI LAB 연구소장으로 딥러닝 기반 영상 및 음향·음성 보안 솔루션과 데이터 분석 플랫폼 개발 및 연구를 책임지고 있다. 번역서로는 『보안을 위한 효율적인 방법 PKI』(인포북, 2003)와 『EnCase 컴퓨터 포렌식』(에이콘, 2015), 『인텔리전스 기반 사고 대응』(에이콘, 2019), 『적대적 머신러닝』(에이콘, 2020), 『사이버 보안을 위한 머신러닝 쿡북』(에이콘, 2021), 『양자 암호 시스템의 시작』(에이콘, 2021), 『스크래치로 배워보자! 머신러닝』(에이콘, 2022), 『Pandas를 이용한 데이터 분석 실습 2/e』(에이콘, 2022)이 있다.

목차

목차
  • 1부. 그래프 머신러닝 소개
  • 1장. 그래프 시작하기
    • 기술적 필요 사항
    • networkx로 그래프 이해하기
      • 그래프의 종류
      • 그래프 표현
    • 그래프 플로팅
      • networkx
      • Gephi
    • 그래프 속성
      • 통합 측정 지표
      • 분리 측정 지표
      • 중심성 측정 지표
      • 탄력성 측정 지표
    • 벤치마크 및 저장소
      • 간단한 그래프의 예
      • 그래프 생성 모델
      • 벤치마크
    • 큰 그래프 다루기
    • 요약

  • 2장. 그래프 머신러닝
    • 기술적 필요 사항
    • 그래프 머신러닝 이해하기
      • 머신러닝의 기본 원리
      • 그래프 머신러닝의 이점
    • 일반화된 그래프 임베딩 문제
    • 그래프 임베딩 머신러닝 알고리듬의 분류
      • 임베딩 알고리듬의 분류
    • 요약

  • 2부. 그래프에서의 머신러닝
  • 3장. 비지도 그래프 학습
    • 기술적 필요 사항
    • 비지도 그래프 임베딩 로드맵
    • 얕은 임베딩 방법
      • 행렬 분해
      • 그래프 분해
      • 고차 근접 보존 임베딩
      • 전역 구조 정보를 통한 그래프 표현
      • skip-gram
      • DeepWalk
      • Node2Vec
      • Edge2Vec
      • Graph2Vec
    • 오토인코더
      • 텐서플로와 케라스-강력한 조합
      • 첫 번째 오토인코더
      • 노이즈 제거 오토인코더
      • 그래프 오토인코더
    • 그래프 신경망
      • GNN의 변형
      • 스펙트럼 그래프 합성곱
      • 공간 그래프 합성곱
      • 예제로 보는 그래프 합성곱
    • 요약

  • 4장. 지도 그래프 학습
    • 기술적 필요 사항
    • 지도 그래프 임베딩 로드맵
    • 특징 기반 방법
    • 얕은 임베딩 방법
      • 라벨 전파 알고리듬
      • 라벨 확산 알고리듬
    • 그래프 정규화 방법
      • 매니폴드 정규화 및 준지도 임베딩
      • 신경 그래프 학습
      • Planetoid
    • Graph CNN
      • GCN을 이용한 그래프 분류
      • GraphSAGE를 이용한 노드 분류
    • 요약

  • 5장. 그래프에서의 머신러닝 문제
    • 기술적 필요 사항
    • 그래프에서 누락된 링크 예측
      • 유사성 기반 방법
      • 임베딩 기반 방법
    • 커뮤니티와 같은 의미 있는 구조 감지
      • 임베딩 기반 커뮤니티 감지
      • 스펙트럼 방법 및 행렬 분해
      • 확률 모델
      • 비용 함수 최소화
    • 그래프 유사성 및 그래프 매칭 감지
      • 그래프 임베딩 기반 방법
      • 그래프 커널 기반 방법
      • GNN 기반 방법
      • 응용
    • 요약

  • 3부. 그래프 머신러닝의 고급 응용
  • 6장. 소셜 네트워크 그래프
    • 기술적 필요 사항
    • 데이터셋 개요
      • 데이터셋 다운로드
      • networkx로 데이터셋 불러오기
    • 네트워크 토폴로지 및 커뮤니티 감지
      • 토폴로지 개요
      • 노드 중심성
      • 커뮤니티 감지
    • 지도 및 비지도 임베딩
      • 작업 준비
      • node2vec 기반 링크 예측
      • GraphSAGE 기반 링크 예측
      • 링크 예측을 위한 수작업 특징
      • 결과 요약
    • 요약

  • 7장. 그래프를 이용한 텍스트 분석 및 자연어 처리
    • 기술적 필요 사항
    • 데이터셋 개요
    • 자연어 처리에서 사용되는 주요 개념 및 도구 이해
    • 문서 모음에서 그래프 만들기
      • 지식 그래프
      • 이분 문서/개체 그래프
    • 문서 주제 분류기 구축
      • 얕은 학습 방법
      • 그래프 신경망
    • 요약

  • 8장. 신용카드 거래에 대한 그래프 분석
    • 기술적 필요 사항
    • 데이터셋 개요
      • 데이터셋 불러오기 및 networkx 그래프 구축
    • 네트워크 토폴로지 및 커뮤니티 감지
      • 네트워크 토폴로지
      • 커뮤니티 감지
    • 사기 탐지를 위한 지도 및 비지도 임베딩
      • 사기 거래 식별에 대한 지도 학습 접근 방식
      • 사기 거래 식별에 대한 비지도 학습 접근 방식
    • 요약

  • 9장. 데이터 드리븐 그래프 기반 응용 프로그램 구축
    • 기술적 필요 사항
    • 람다 아키텍처 개요
    • 그래프 기반 응용 프로그램을 위한 람다 아키텍처
      • 그래프 처리 엔진
      • 그래프 쿼리 레이어
      • Neo4j와 GraphX 선택
    • 요약

  • 10장. 그래프의 새로운 트렌드
    • 그래프의 데이터 증대에 대해 알아보기
      • 샘플링 전략
      • 데이터 증강 기술 살펴보기
    • 토폴로지 데이터 분석에 대해 배우기
      • 토폴로지 머신러닝
    • 새로운 영역에 그래프 이론 적용하기
      • 그래프 머신러닝 및 신경 과학
      • 그래프 이론 및 화학 및 생물학
      • 그래프 머신러닝 및 컴퓨터 비전
    • 추천 시스템

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안

정오표

정오표

[ 본문 전체 ]
대역효율성
->
전역효율성

[ p.54 : 수식 ]

->

[ p.54 : 5행 ]
노드의 대역효율성은 노드의 근방만 고려해 계산할 수 있다. 대역효율성은 다음의 코드와 같이 networkx를 사용해 계산할 수 있다.
->
노드의 국소효율성(local efficiency)은 노드 자체는 계산에 포함하지 않고 인접 노드만 고려해 계산할 수 있다. 전역효율성은 다음의 코드와 같이 networkx를 사용해 계산할 수 있다.

[ p.64 : 5행 ]
바벨그래프는 크기가 m1과 m2인 2개의 클리크가 노드 가지로 연결된 그래프로,
->
바벨그래프는 크기가 m1과 m2인 2개의 클리크가 노드 가지로 연결된 그래프로,

[ p.75 : 7행 ]
노드가나 간선의 개수를 늘릴 때
->
노드나 간선의 개수를 늘릴 때

[ p.81 : 8행 ]
미첼(Mitchell, 1997)은 작업 T에 대해 측정한 성능 P가 경험 E를 향상시킬 때 알고리듬은 경험 E로부터 학습한다고 정의했다.
->
미첼(Mitchell, 1997)은 경험 E로부터 성능 P를 사용해 작업 T의 성능이 향상되면 알고리듬은 경험 E로부터 학습한다고 정의했다.

[ p.104 : 아래에서 4행 ]
W ∈ ℝm × d
->
V ∈ ℝm × d

[ p.128 : 두번째 코드 1행 ]
n = 10
->
n = 6

[ p.130 : 그림 3.15 ]

[ p.134 : 2행 ]
데이터셋이 더 작을 때 네트워크가 노이즈를 ‘학습’하지 않도록 하는 대안(따라서 정적 노이즈 이미지와 노이즈 없는 버전 간의 매핑을 학습)은 GaussianNoise 레이어를 사용해 학습 중에 확률적 노이즈를 추가하는 것이다.
->
데이터셋이 작은 경우, 네트워크가 노이즈 자체도 '학습'하는 (따라서 정적 노이즈 이미지와 노이즈 없는 버전 간의 매핑을 학습하는) 것을 방지하는 대안은 GaussianNoise 레이어를 사용해 학습 중에 확률적 노이즈를 추가하는 것이다.

[ p.136 : 아래에서 2행 ]

->

[ p.137 : 수식 ]

->

[ p.160 : 첫번째 코드 4행부터 ]
      c_tool = 10

  while it < self.max_iter & c_tool > self.tol:
      Y = A*Y_prev
      # 라벨 강제 할당
      Y[labeled_index] = Y0[labeled_index]
      it +=1
      c_tol = np.sum(np.abs(Y-Y_prev))
      Y_prev = Y
->
      c_tool = 10

  while it < self.max_iter and c_tool > self.tol:
      Y = np.dot(A, Y_prev)
      #force labeled nodes
      Y[labeled_index] = Y0[labeled_index]
      it +=1
      c_tol = np.sum(np.abs(Y-Y_prev))
      Y_prev = Y

[ p.163 : 코드 아래에서 5행 ~ p. 164 : 코드 ]
        Y_prev = Y0
        it = 0
        c_tool = 10
        while it < self.max_iter & c_tool > self.tol:
           Y = (self.alpha*(L*Y_prev))+((1-self.alpha)*Y0)

           it +=1
           c_tol = np.sum(np.abs(Y-Y_prev))
          &Y_prev = Y
          &self.label_distributions_ = Y
          &return self
->
        Y_prev = Y0
        it = 0
        c_tool = 10

        while it < self.max_iter & c_tool > self.tol:
            Y = self.alpha*(L*Y_prev)+((1-self.alpha)*Y0)

            it +=1
            c_tol = np.sum(np.abs(Y-Y_prev))
            Y_prev = Y
        self.label_distributions_ = Y
        return self