본문 바로가기
AI 관련/ADsP, ADP

ADSP 요약정리 - 5장 비정형 데이터 마이닝 - 사회연결망 분석 (Social network analysis, SNA)

by 팀장일기 2021. 10. 7.

제 2절 사회연결망 분석 (Social network analysis, SNA)

 1. 사회연결망 분석 정의

  가. SNA 정의

   - 개인과 집단들 간의 관계를 노드와 링크로서 모델링해 그것의 위상구조와 확산 및 진화 과정을 계량적으로 분석하는 방법론 

    * 사회 연결망 : 개인의 인간관계가 인터넷으로 확대된 사람 사이의 네트워크 다양한 분야에서 응용

    * 기존 사회연결망에 대한 관심이 주로 그룹 간 또는 그룹 안의 개인에 집중한 반명 처음 사회연결망 용어 사용한 Barnes는 독립 네트워크 사이의 관계에 대해 집중 

   - 분석방법 : 집합론적 방법, 그래프 이론에 의한 방법, 행렬의 이용한 방법 등 

 

   1) 집합론적 방법 

   - 객체들의 집합에서 각 객체들 간 관계를관계 쌍(pairs of elements)으로 표현 

 

   2) 그래프 이론을 이용한 방법

   - 객체는 점 (꼭지점, 노드)으로 표현되며 두 객체 간 연결망은 선으로 표현 

 

   3) 행렬을 이용한 방법 

   - 각 객체를 행렬의 행과 열에 대칭적으로 배치하고 i번째 객체와 j번째 객체가 연결망으로 연결돼 있으면 행렬의 (i,j)에 1넣고, 없으면 0넣음

   - 분석하고자 하는 데이터는 행렬로 표현

    * 행과 열이 만나는 셀에 특정 값을 입력해 행과 열 사이의 관계 나타냄

    * 행과 열에 같은 개체 배열 : 1원(1 mode)자료, 다른 개체배열 : 2원(2 mode)자료 

    * 관계를 표현하는 기본적 방법 : 관계 존재하면 1 존재하지 않으면 0 입력

   - 준연결망(quasi network) : 직접적인 상호작용 없어도 관계를 인위적으로 설정해 관계를 나타낸 네트워크 

   - 네트워크 구조를 파악하기 위한 기법 ; 중심성(Centrality), 밀도(density), 구조적 틈새 (structural hole), 집중도(centrality)등 

    * 연결정도 중심성 (degree centrality) : 한 점에 직접적으로 연결된 점들의 합

    * 근접 중심성(clseness centrality) : 각 노드 간 거리를 근거로 중심성 측정 (직간접 거리 합산)

    * 매개 중심성(betweenness centrality) : 네트워크 내 한점이 담당하는 매개자 혹은 중개저 역할의 정도를 중심성 측정 

    * 위세 중심성 (eigenvector centrality) : 연결된 노드의 중요성에 가중치를 둬 중심성을 측정하는 방법 

 

 나. SNA 적용 

   - 소셜 네트워크는 노드 또는 점 (vertex), 링크 또는 에지로 구성된 그래프

    * 링크 방향성 여부에 따라 방향(direct) 그래프와 무방향(undirected) 그래프로 구분 가능 

   - 분석용 솔루션으로 KXEN, SAS,XTRAT, Indiro ,Onalytica,Unicet 등이 있은 데이터로 로딩속도 , 시각화 기능 등  제약이 있어 더 발전이 필요 

    * 소규모 네트워크 대상 분석 수행은 쉽지만 실제 기업 수준 애플리케이션에서 분석 수행하는 데는 많은 어려움 존재 

   -R은 모든 데이터를 메모리에 로드해야 분석가능하므로 대규모 데이터를 분석하려면 분산 처리 프레임워크가 반드시 필요 

    * 분산처리기술인 하둡 MapReduce 활용/하둡기반 그래프 프로세싱 프레임 워크 Giraph로 R에서 처리 가능한 수준까지 정제한 후 분석 및 가시화 수행가능 

 

  다. 단계 

   - 사회연결망 분석 단계 

    * 그래프 생성 

    * 그래프를 모적에 따라 가공해 분석 

    * 커뮤니티를 탐지하고 각  객체 또는 노드의 롤을 정의해 어떤 롤로 영향력을 보다 효율 적으로 줄 수 있는지 정의 

    * 데이터화해 다른 데이터 마이닝 기법과 연계 

     - 소셜네트워크 분석결과로 얻어진 커뮤니티 프로파일을 고객 프로파일 평균값으로 산출해 각 그룹에 속한 개별 고객 속성에 그룹 넘버와 롤을 결합해 속성을 추가하는 업무

 

 2. R을 이용한 SNA 기본 사용법 

  가. 데이터 로딩 

   -read.tavle()

   -URL에서 데이터 직접 로딩 

   1) 그래프로딩

   2) 그래프에 꼭지점 속성추가 

   3) 네트워크 시각화 

   4) 그래프를 다양한 타입으로 저장 

 

  나. 데이터 로드 

  다. 노드 레벨 통계값 

   - subcomponent : 입력으로 주어진 그래프에 대해 특정 vertex와 연결된 vertex 지밥(connected component)를 반환해 연결정보 알수 있게 해줌 

  라. 네트워크 레벨 통계량 

   - 대부분 네트워크 분석은 distances와 rech로 시작해 점차 글로벌한 summary로 나아감 

   1) Degree

   2) Shortest paths

   3) Reachability

   4) density

   5) Recipreocity

   6) Transitivity

  마. Clustering

  바. community detection

   1) COMMUNITY DETECTION : WALKTRAP

   - walktrap 알고리즘은 일련의 random walk 과정을 통해 커뮤니티 발견 

   2) COMMUNITY dETECTION : EDGE BETWEENNESS METHOD

 

 3. 활용방안

   - 네트워크를 구성해 몇 개의 집단으로 구성되는지, 집단간 특성, 해당집단에서 영향력있는 고객, 시간의 흐름과 고객상태의 변화에 따라 누가 다음 영향을 받을지 기반으로 chum/acquisition prediction, fraud, product recommendation 등에 활용 가능 

 

  가. 단어 간 연관성을 이용한 소셜 네트워크 분석 

  나. 트위터 검색을 통한 사용자 간 소셜 네트워크       

댓글