예측 소셜 네트워크 분석을 위한 데이터 마이닝

게시 됨: 2022-03-11

어떤 형태로든 소셜 네트워크는 사람들이 처음으로 상호 작용하기 시작한 이래로 존재해 왔습니다. 실제로 두 명 이상의 사람들이 모이면 소셜 네트워크의 기반이 됩니다. 따라서 오늘날의 인터넷 세상에서 온라인 소셜 네트워크가 완전히 보편화되었다는 것은 놀라운 일이 아닙니다.

이 온라인 소셜 네트워크 세계에서 지난 10년 동안 특히 매혹적인 현상은 "인터넷의 SMS"라고 불리는 트위터의 폭발적인 성장이었습니다. 2006년에 출시된 Twitter는 전 세계적으로 빠르게 인기를 얻었으며 세계에서 가장 많이 방문한 10대 웹사이트 중 하나가 되었습니다. 2015년 5월 기준, 트위터는 하루에 5억 개의 트윗을 생성하는 3억 2백만 명의 활성 사용자를 자랑합니다. 그리고 이 숫자는 계속해서 증가하고 있습니다.

이 엄청난 양의 소셜 미디어 데이터를 감안할 때, 분석가들은 트위터를 데이터 마이닝, 소셜 네트워크 분석, 여론 동향 감지를 위한 정보, 다양한 정치 및 반대에 대한 지지(또는 반대)를 위한 정보의 가상 보물창고로 인식하게 되었습니다. 사회적 이니셔티브. 데이터 과학 회사는 트위터 트렌드 주제가 여론을 측정하는 데 유용한 지표로 점점 더 유용하다는 사실을 깨닫고 있습니다.

소셜 네트워크 분석 및 데이터 마이닝

이 기사에서는 2014년 브라질 대통령 선거에서 샘플 테스트 사례로 지역 투표 패턴을 예측하기 위해 Twitter Trend Topics를 효과적으로 분석한 개념 증명을 위해 사용한 기술에 대해 설명합니다.

선거

2014년 10월 5일 브라질에서 총선이 실시되었습니다. 50% 이상 득표한 후보가 없었기 때문에 10월 26일에 2차 결선 투표가 있었습니다.

1차 투표에서 지우마 호세프(파르티도 도스 트라발하도레스)가 41.6%의 득표율을 기록하며 아이시오 네베스(33.6%)와 마리나 실바(21.3%)를 앞서고 있다. Rousseff와 Neves는 10월 26일 결선 투표에 참가했으며 Rousseff는 Neves의 48.4%에 51.6%의 좁은 차이로 재선되었습니다. 이 기사의 분석은 특히 10월 26일 결선 투표와 관련이 있습니다.

Partido dos Trabalhadores(PT)는 브라질에서 가장 큰 정당 중 하나입니다. 현직 대통령과 전직 대통령인 Dilma Roussef와 Luis Inacio Lula da Silva의 정당입니다. Partido da Social Democracia Brasileira(PSDB)는 페르난도 엔리케 카르도소 전 대통령의 정당입니다.

데이터 마이닝 및 Twitter 트렌드 주제 데이터 추출

저는 Twitter API를 통해 데이터가 제공되는 브라질 14개 도시(즉, 브라질리아, 벨렘, 벨루오리존치, 쿠리티바, 포르투 알레그레, 레시페, 리우데자네이루, 살바도르, 상)에 대한 Twitter 트렌드 주제 데이터를 추출하여 소셜 미디어 데이터 마이닝을 시작했습니다. 파울로, 캄피나스, 포르탈레자, 고이아니아, 마나우스, 상루이스.

나는 20분 간격으로 이 14개 도시에 대한 상위 10개 Twitter 트렌드 주제를 얻기 위해 Twitter REST API에 쿼리했습니다(Twitter가 API에 대해 가지고 있는 일부 제한 사항으로 제한됨). 쿼리를 이 14개 도시로 제한하려면 Yahoo! GeoPlanet WOEID(지구상의 ID).

이 개념 증명을 위해 Python과 Twitter 라이브러리(영리하게 "twitter"라고 부름)를 사용하여 결선 선거 당일(10월 26일)과 이틀 전(10월 26일)의 모든 소셜 네트워크 데이터를 가져왔습니다. 24일과 25일). 나는 매일 약 70개의 다른 쿼리를 수행하여 즉각적인 트렌드 주제를 식별하는 데 도움이 되었습니다.

다음은 각 쿼리에 대한 응답으로 반환된 JSON 개체의 예입니다(이 예는 10월 26일 오전 12:40:00 데이터 쿼리를 기반으로 하며 Belo Horizonte에 대한 데이터만 표시합니다).

 [{"created_at": "2014-10-26T02:32:59Z", "trends": [{"url": "http://twitter.com/search?q=%23GolpeNoJN", "name": "#GolpeNoJN", "query": "%23GolpeNoJN", "promoted_content": null}, {"url": "http://twitter.com/search?q=%23SomosTodosDilma", "name": "#SomosTodosDilma", "query": "%23SomosTodosDilma", "promoted_content": null}, {"url": "http://twitter.com/search?q=%23EAecio45Confirma", "name": "#EAecio45Confirma", "query": "%23EAecio45Confirma", "promoted_content": null}, {"url": "http://twitter.com/search?q=Uilson", "name": "Uilson", "query": "Uilson", "promoted_content": null}, {"url": "http://twitter.com/search?q=%22Lucas+Silva%22", "name": "Lucas Silva", "query": "%22Lucas+Silva%22", "promoted_content": null}, {"url": "http://twitter.com/search?q=%22Marcelo+Oliveira%22", "name": "Marcelo Oliveira", "query": "%22Marcelo+Oliveira%22", "promoted_content": null}, {"url": "http://twitter.com/search?q=Cruzeiro", "name": "Cruzeiro", "query": "Cruzeiro", "promoted_content": null}, {"url": "http://twitter.com/search?q=Tupi", "name": "Tupi", "query": "Tupi", "promoted_content": null}, {"url": "http://twitter.com/search?q=%22Real+x+Bar%C3%A7a%22", "name": "Real x Bar\u00e7a", "query": "%22Real+x+Bar%C3%A7a%22", "promoted_content": null}, {"url": "http://twitter.com/search?q=Wanessa", "name": "Wanessa", "query": "Wanessa", "promoted_content": null} ], "as_of": "2014-10-26T02:40:03Z", "locations": [{"name": "Belo Horizonte", "woeid": 455821}] }]

소셜 네트워크 분석에 대한 간략한 소개

소셜 네트워크 이론은 사람, 조직 또는 그룹이 네트워크 내에서 다른 사람들과 상호 작용하는 방식에 대한 연구입니다. 소셜 네트워크에는 세 가지 기본 유형이 있습니다.

  • 자기 중심적 네트워크 는 단일 노드 또는 개인(예: 귀하 및 귀하의 모든 친구 및 친척)과 연결됩니다.
  • 사회 중심 네트워크 는 기본적으로 폐쇄형 네트워크입니다. 이러한 유형의 네트워크에서 일반적으로 사용되는 두 가지 예는 교실의 어린이 또는 조직 내부의 작업자입니다.
  • 개방형 시스템 네트워크 는 경계선이 명확하게 정의되지 않은 네트워크이므로 이러한 유형의 네트워크는 일반적으로 연구하기 가장 어렵습니다. 이 기사에서 분석하고 있는 사회정치적 네트워크의 유형은 개방형 시스템 네트워크의 한 예입니다.

소셜 네트워크는 순전히 규칙적이지도 순전히 무작위도 아닌 요소 간의 연결 패턴이 있는 사소하지 않은 토폴로지 기능을 표시하기 때문에 복잡한 네트워크로 간주됩니다.

소셜 네트워크 분석은 소셜 엔터티 간의 관계 구조를 조사합니다. 이러한 엔터티는 종종 사람이지만 사회 그룹, 정치 조직, 금융 네트워크, 커뮤니티 거주자, 국가 시민 등이 될 수도 있습니다. 네트워크에 대한 실증적 연구는 사회과학에서 중심적인 역할을 해왔으며 네트워크 연구에 사용되는 많은 수학적 및 통계적 도구는 사회학에서 처음 개발되었습니다.

네트워크 구축

Twitter Trend Topics를 사용하여 네트워크를 생성하기 위해 다음 규칙을 정의했습니다.

  • 각 도시는 네트워크의 정점(즉, 노드)입니다.
  • 두 도시 사이에 하나 이상의 공통 트렌드 주제가 있는 경우 해당 도시 간에 가장자리(즉, 링크)가 있습니다.
  • 각 에지는 두 도시 간에 공통된 트렌드 주제의 수에 따라 가중치가 부여됩니다(즉, 두 도시에 공통된 트렌드 주제가 많을수록 두 도시 간의 연결에 기인하는 가중치가 더 커짐).

예를 들어, 10월 26일에 Fortaleza와 Campinas의 도시에는 11개의 공통 트렌드 주제가 있으므로 해당 날짜의 네트워크에는 가중치가 11인 Fortaleza와 Campinas 간의 경계가 포함됩니다.

소셜 네트워크 생성 프로세스 그림

또한, 도시 간의 관계에 가중치를 부여하는 과정을 돕기 위해 선거 자체와 관련이 없는 주제도 고려했습니다. ).

추세 주제의 순서가 분석에 잠재적으로 어느 정도 중요할 수 있지만 개념 증명을 단순화하기 위해 추세 주제 목록에서 주제의 순서를 무시하기로 결정했습니다.

네트워크 토폴로지

네트워크 토폴로지는 본질적으로 네트워크의 다양한 요소(링크, 노드 등)의 배열입니다. 우리가 분석하고 있는 소셜 네트워크의 경우 네트워크의 노드(즉, 14개 도시)가 고정되어 있기 때문에 네트워크 토폴로지는 3일 동안 크게 변경되지 않습니다. 그러나 24일 대 25일의 네트워크 토폴로지의 아래 비교에서 볼 수 있듯이 도시 간의 공통 트렌드 주제 수가 3일 동안 다르기 때문에 노드 간 링크의 가중치에서 차이를 감지할 수 있습니다.

소셜 네트워크 토폴로지 그림

트위터 트렌드 토픽 데이터를 이용한 선거 결과 예측

선거 결과를 예측하는 데 도움이 되도록 도시 간에 공통적인 추세 주제뿐만 아니라 해당 주제의 내용이 두 주요 정당 각각에 대한 지지 가능성과 어떻게 관련되는지 고려합니다. 즉, Partido dos Trabalhadores(PT) 및 Partido da Social Democracia Brasileira(PSDB).

먼저, 나는 당사자 중 하나에 대한 긍정적인 성향 또는 지지를 나타내는 단어와 문구 목록을 만들었습니다. (이 목록을 채우는 것은 분명히 매우 복잡한 작업입니다. 이 개념 증명의 맥락에서 저는 의도적으로 단순화된 접근 방식을 취했습니다. 무엇이든, 이것은 더 고도로 조정된 용어 목록 때문에 결과의 범위를 더욱 흥미롭게 만듭니다. 구문은 아마도 결과의 정확성을 더욱 향상시킬 것입니다.)

그런 다음 각 노드에 대해 다음을 계산합니다.

  • PT에 대한 지원을 나타내는 용어를 포함하는 링크의 수
  • PSDB에 대한 지원을 나타내는 용어를 포함하는 링크의 수

Fortazela 시를 다시 예로 들어 다음과 같은 결과를 얻었습니다.

 Fortaleza['PT'] = 56 Fortaleza['PDSB'] = 37

따라서 우리는 Fortaleza 거주자가 Partido dos Trabalhadores(PT)를 전반적으로 선호한다는 결론을 도출합니다.

결과 및 결론

이 알고리즘을 기반으로 하는 분석은 특히 우리 접근 방식의 일반적인 단순성을 고려할 때 실제 선거 결과와 놀라울 정도로 유사한 결과를 산출합니다. 다음은 실제 선거 결과와 비교하여 Twitter Trend Topic 데이터를 기반으로 한 예측 결과를 비교한 것입니다(빨간색은 Partido dos Trabalhadores를 나타내고 파란색은 Partido da Social Democracia Brasileira를 나타내는 데 사용됨).

소셜 네트워크 분석 및 데이터 마이닝

개선된 과학적 엄격함과 더 정교한 알고리즘 및 메트릭은 의심할 여지 없이 결과를 훨씬 더 개선할 것입니다.

다음은 예를 들어 노드의 중요성이나 영향력을 추론하는 데 사용할 수 있는 몇 가지 메트릭이며, 이는 이 기사에서 설명하는 예측 분석 유형을 알려줄 수 있습니다.

  • 노드 중심성. 네트워크에서 가장 중요하거나 영향력 있는 노드를 식별하는 데 사용할 수 있는 수많은 노드 중심성 측정이 있습니다. 예를 들어 매개 중심성은 다른 많은 노드 사이에 다리를 형성하는 경우 노드를 매우 중요하게 간주합니다. 반면에 고유값 중심성은 노드에 연결된 다른 매우 중요한 노드의 수에 대한 노드의 중요도를 기반으로 합니다.

  • 클러스터링 계수. 노드의 클러스터링 계수는 노드의 "이웃"이 서로 연결된 정도를 측정합니다. 이것은 이웃 노드에 대한 노드의 추정 영향 정도를 평가하는 것과 관련될 수 있는 또 다른 측정입니다.

  • 학위 중심성. 정도 중심성은 노드에 대한 링크(즉, 연결)의 수를 기반으로 합니다. 이것은 네트워크 내에서 노드의 "중요도"를 측정하는 가장 간단한 방법 중 하나입니다.

그러나 이러한 수준의 정교함이 없어도 이 간단한 개념 증명으로 얻은 결과는 Twitter Trend Topic 데이터를 사용한 효과적인 예측 분석의 강력한 시연을 제공했습니다. 앞으로 소셜 미디어 데이터 분석을 더욱 발전시킬 잠재력이 분명히 있습니다.


Toptal 엔지니어링 블로그에 대한 추가 정보:

  • Python/NetworkX를 사용한 그래프 데이터 과학