728x90
반응형
  • Graph Data Science

편집자 주: 이 프레젠테이션은 Paul Starrett이 GraphConnect New York 2017년 10월에서 발표한 내용이에요.

프레젠테이션 요약

이번 블로그에서는 활발하게 사용되는 특정 데이터 과학 도구를 시너지 효과를 내도록 활용하는 방법과, Graph Database를 연구 및 정보 표현의 소스로 사용하는 방법에 대해 집중적으로 다룰 거예요. 보너스로, 오늘 제시된 탐색적 노력의 대부분은 산업 전반에 걸쳐 예측 분석에 활용될 수 있다는 점!

먼저 빅데이터와 데이터 과학의 기초부터 살펴볼까요? 빅 데이터는 정말 많은 문제를 안고 있죠. 기존 방식으로는 처리하기에 너무 방대하고 복잡하며, 변화도 너무 빨라요. 다행히 우리는 데이터에서 지식을 추출하는 데 사용할 수 있는 과학적 방법에 대한 학제간 분야인 데이터 과학에서 해답을 찾을 수 있어요.

사립 탐정은 엄청난 양의 정보를 분류해야 하는데, 어디서부터 시작해야 할지 막막할 수 있어요. 하지만 이상 탐지 (Anomaly Detection)에 의존하면 비정상적인 행동을 쉽게 알아챌 수 있고, 과거 데이터 패턴을 기반으로 사기를 예측하는 데 도움이 되는 예측 분석은 훌륭한 출발점이 될 수 있죠.

손끝에 있는 모든 정보를 구조화된 데이터, 검색 가능한 데이터베이스 개발 및 관련 그래프 시각화 생성을 통해, 여러분이 검색하고 있는지도 몰랐던 관련 데이터를 더욱 가까이에서 발견할 수 있도록 도와줄 거예요.

전체 프레젠테이션: 사기 조사를 위한 데이터 과학 도구 활용

이 블로그에서는 데이터 과학, Machine Learning 및 Neo4j를 사용하여 사기 적발을 포함하여 다양한 목적으로 사용할 수 있는 검색 가능한 데이터베이스를 개발하는 방법에 대해 자세히 알아볼 거예요.

Starrett Consulting은 실리콘 밸리에 기반을 둔 풀 서비스 조사 회사로, 정보 거버넌스, 규정 준수 및 위협 탐지에 대한 컨설팅도 제공하고 있어요.

오늘 우리는 모든 유형의 도구를 활용하는 실제 조사에 집중할 건데요, 예를 들어 , Elasticsearch, Solar, LESS 및 오픈 소스 API (주로 Python) 같은 것들이죠. 제가 강조하고 싶은 점은, 우리는 분석을 판매하는 것이 아니라 정보를 판매한다는 거예요.

저는 작년에 예측 분석 과학 석사 학위를 취득한 사립 탐정이자 변호사예요. 저는 주로 Python과 Apache 프로젝트 도구를 사용해서 작업해 왔지만, 무엇보다도 저는 조사자랍니다.

이 프레젠테이션에서 다루지 *않는* 몇 가지 내용을 살펴볼게요.

이런 방법은 아니죠. 사기를 찾아내는 것은 Graph Database를 사용해서, 보유하고 있는 클러스터 수에 대해 논의하거나 쿼리 또는 JOIN을 얼마나 빨리 수행할 수 있는지 검토하는 것과는 달라요. 이 프레젠테이션은 데이터 과학 도구를 시너지 효과적으로 사용하는 방법과 Graph Database를 연구 및 정보 표현의 소스 중 하나로 사용하는 방법에 대해 설명하고 있어요. 보너스로, 오늘 제시된 탐색적 노력의 대부분은 산업 전반에 걸쳐 예측 분석을 알리는 데 사용될 수 있다는 점이죠.

우선 정의 측면에서 같은 페이지에 있는지 확인하기 위해 빅 데이터와 데이터 과학부터 시작해서, 더 구체적으로 사기 조사로 넘어가 볼 거예요. 이는 다음 질문에 답하는 데 도움이 될 거예요. 우리가 있어야 할 곳에 집중하는 데 도움이 되도록 데이터 과학 및 전자 데이터에서 어떤 것을 사용해야 할까요?

또한 그래프가 실제로 가장 유용한 사기와 음모, 공모 및 이해 상충에 대해서도 논의할 거예요. 마지막으로 상당히 일반적으로 사용되는 구성을 통해 실제 사례를 한번 살펴볼게요.

빅데이터 및 데이터 과학

우리는 데이터 과학, Machine Learning, 예측 분석 및 인공 지능의 사용이 회사로서 진정한 경쟁력을 유지하는 데 가장 중요한 측면 중 일부라는 것을 알고 있어요. 이는 규정 준수 및 사기 분야는 물론 법적 요구 사항이 적용되는 모든 분야에서 특히 그렇겠죠.

우리는 빅데이터를 "손에 닿지 않는" 데이터, 즉 기존 방식으로 처리하기에는 너무 방대하고 복잡하거나 빠르게 움직이는 데이터로 정의해요. 현재 방법으로 해당 데이터를 처리할 수 없으면 어떻게 해야 할까요? "수학, 통계, 정보 과학 및 컴퓨터 과학 분야의 주제와 관련된 데이터에서 지식을 추출하는 과학적 방법에 관한 학제간 분야"로 정의되는 데이터 과학에서 솔루션을 찾을 수 있어요.

저는 빅데이터가 비이고, 데이터 과학이 우산이라고 말하고 싶어요. 주목해야 할 가장 중요한 점은 데이터 과학이 상황에 따라 다르며 모든 사람의 사용 사례에 적용될 수 있다는 것이에요. 이에 대해서는 잠시 후에 살펴볼게요.

제 사업은 정보예요. 그 정보가 어디에 있을지 모르기 때문에 정량적, 구조적, 비구조적, 질적 데이터 등 모든 유형의 데이터에 대해 생각해야 해요. 저는 개인적으로 만능 관리자를 더 많이 유지하고 내 사건을 진행하기 위해 해야 할 일에 따라 필요한 경우 박사 학위를 가져와요. 제가 사용하는 대부분의 데이터 과학 도구는 리드 생성을 위한 것이므로 어디에 집중해야 할지 알고 있죠. 모든 통찰력과 생성된 리드에는 다른 소스의 후속 조치와 확증이 필요해요.

이는 네 가지 데이터 유형에 대한 대략적인 정의예요.

모든 유형의 데이터가 데이터 과학의 맥락에서 유용해지려면 구조화되지 않은 데이터를 구조화된 데이터로 변환해야 하며, 정성적(또는 범주형) 특성에 수치적 측면을 적용해야 해요.

예를 들어, 문서에서 두 개의 특정 단어가 얼마나 멀리 떨어져 있는지 또는 문서의 밀도를 설명하는 숫자 값을 추가할 수 있어요.

사기 조사

사기 조사에서는 다음을 포함한 모든 정보 출처를 고려해요.

    • 인터뷰 및 심문
    • 소셜 미디어, 웹 데이터, 비디오 및 오디오
    • 물리적 기록(종이 문서)
    • 그래프 등

이러한 다양한 유형의 데이터는 사례가 증가함에 따라 반복적으로 사용되며 다양한 순열로 사용돼요.

3단계 프로세스

사기 적발은 3단계의 순차적 프로세스로 이루어져요.

고객과 대화할 때는 관련 법률, 정책, 그리고 우선순위를 먼저 알아야 해요.

그 다음엔, 요청받은 사항을 처리하기 위해 어떤 데이터가 필요한지, 그리고 데이터 과학 도구를 사용할지 결정해야 하죠. 데이터 과학 도구를 사용할 땐, 기술적인 배경이 없는 사람들도 이해할 수 있도록 최대한 간단하게 설명하는 게 중요해요.

이상 탐지 및 예측 분석

사기는 보통 이상 탐지(Anomaly Detection)와 예측 분석이라는 두 가지 방법으로 찾아낼 수 있어요.

만약 아무것도 모르는 상태라면, 이상 탐지(Anomaly Detection)를 활용하는 거죠. 뭐가 이상한지, 뭐가 안 맞는지 찾아보는 거예요. 예측 분석은 사기 사례와 정상 사례를 비교해서, 새로 들어오는 데이터가 사기 행위를 나타낼 가능성이 있는지 판단하는 데 도움을 주는 패턴을 만들어내요.

평균으로부터의 평균 거리인 표준 편차를 이용해서 이상 탐지(Anomaly Detection)에 대해 좀 더 자세히 알아볼까요? 예를 들어, 방에 사람들이 있는데 절반은 30살이고 절반은 50살이라면, 평균 나이는 40살이고 평균 거리는 10이 되겠죠.

하나의 숫자 변수가 있는 다음 예시를 한번 살펴볼게요.

이상 탐지(Anomaly Detection)를 통해 우리는 무엇이 정상에서 벗어나는지 확인하려고 해요. 표준 편차를 벗어나는 것은 무엇일까요?

파란색 수평선은 평균을 나타내고, D1 – D7은 서로 다른 점과 평균으로부터의 거리를 나타내고, 빨간색 선은 표준 편차를 나타냅니다. 평균 위의 선은 더 큰 표준 편차를 표시하며(빨간색 선이 평균에서 더 멀기 때문에) 평균의 양쪽에서 D6, D7 및 D2가 표준 편차를 약간 벗어나는 것을 볼 수 있습니다. 이러한 데이터 포인트는 자세히 살펴볼 가치가 있겠죠.

이제 두 개의 숫자 변수가 있는 영업사원 통화의 예를 살펴볼게요.

주당 판매 전화 수와 월별 총 판매량 사이에는 선형 관계가 있어요. "550만 달러를 벌려면 일주일에 몇 번이나 통화해야 할까요?"라고 질문할 수 있겠죠. 그래프의 빨간색 상자를 보면 2.5번의 통화를 해야 한다는 걸 알 수 있어요. 상관관계는 기준을 설정하고, 예측 분석(또는 회귀)은 현실 세계에서 특이한 데이터를 찾는 데 도움을 준답니다.

얼핏 보면 오른쪽 하단에서 이상값을 쉽게 확인할 수 있어요. 이 사람은 일주일에 한 통의 전화 통화로 어떻게 한 달에 1,300만 달러를 벌 수 있을까요? 어쩌면 그는 슈퍼스타일 수도 있고, 리베이트를 받고 전혀 전화를 걸지 않을 수도 있죠.

이제 분류 및 범주형 변수를 살펴볼게요.

오른쪽에는 개, 고양이 클래스가 있고, 각 레코드에는 머리카락 길이, 귀 개수, 꼬리 유무 등과 같은 다양한 변수 값이 있어요. 두 클래스 모두 꼬리와 귀가 두 개 있기 때문에 결국 쓸모가 없게 되죠. 고양이에는 눈썹이 없으므로 해당 변수만으로도 이 모델에서 예측을 하기에는 충분할 거예요.

우리의 예측 모델은 이 데이터를 기반으로 학습해요. 테이블에서 동물 유형을 제거하면 모델에 예측을 요청하여 예측 정확도(예: 모델이 동물 종류를 올바르게 예측한 정도)를 제공할 수 있어요. 이것이 바로 Machine Learning이 작동하는 방식이에요.

다음은 문서에서 단어를 그룹화하는 방법에 대한 예시인데요. 이를 통해 패턴을 적용하고 관련성 있는 단어와 관련되지 않은 단어를 결정할 수 있어요.

이는 데이터를 탐색하고 어디에 집중해야 할지 결정하는 데 도움이 되죠.

사기란 무엇일까요?

그래서, 사기(fraud)란 무엇일까요? 다음은 다양한 요소들이에요.

    • 중요한 사실(예: 중요한 사실)을 허위로 표현한 경우
    • 피고인이 허위 사실을 인지한 경우
    • 피해자의 합리적인 신뢰
    • 피해자가 입은 손실

형사 사기, 민사 사기 등이 있는데 이를 “의도적 허위 진술”이라고 해요.

이제 음모(conspiracy)의 정의를 살펴볼게요. 그래프가 특히 유용한 또 다른 영역은 다음과 같아요.

    • 둘 이상의 사람이 하나 이상의 범죄를 저지르기로 합의한 것
    • 대상 중 적어도 하나를 알고 있으며 도움을 주려는 의도를 가지고 있어요.
    • 음모를 조장하기 위한 적어도 하나의 명백한 행위(일부 관할권)

그래프는 이해 상충(conflict of interest) 사례에도 도움이 되는데요, 다음과 같이 정의돼요.

    • 서로 다른 두 당사자의 관심사나 목표가 양립할 수 없는 경우, 또는
    • 공적인 자격으로 이루어진 행동이나 결정으로부터 개인적인 이익을 얻을 수 있는 위치에 있는 것

뉴 호라이즌: 기초 위에 구축

제가 성배라고 생각하는 것에 대해 알아볼게요. 구조화된 데이터와 구조화되지 않은 데이터를 그래프로 함께 가져오는 것이죠.

기억하세요, 이건 조사를 위한 것이므로 저는 사람들을 인터뷰하는 것뿐만 아니라 강력한 첨단 기술 도구를 활용하는 등 모든 험난한 일을 하고 있어요.

조사 및 위협 탐지 시스템에서 가장 자주 사용되는 모든 데이터를 그래프로 가져오는 기본 접근 방식은 다음과 같아요.

원본 파일에는 텍스트가 포함되어 있는데, 이 텍스트를 추출해서 MongoDB나 Cassandra 같은 텍스트 저장소에 넣어야 해요. 파일 이름이나 날짜 같은 모든 원본 메타데이터를 텍스트 파일 저장소에 보관하고, 이 데이터를 사용해서 정보 검색을 위한 검색 엔진을 만드는 거죠.

이 시스템에 대해 좀 더 자세히 알아볼까요?

첫 번째 파일(파란색)은 Microsoft Office 문서일 가능성이 높고, 두 번째 파일(주황색)은 일종의 재고 또는 재무 기록, 세 번째 파일(회색)은 이메일, 네 번째 파일(진한 파란색)은 웹사이트에요. 이 모든 것은 텍스트 저장소로 들어가고, 결국 검색 엔진으로 들어가게 되죠.

정보 검색

특정한 내용을 찾기 위해 책을 훑어본다고 생각해봐요. 첫 페이지부터 시작해서 원하는 내용을 찾을 때까지 각 페이지를 훑어보시겠어요? 아니죠! 색인(index)으로 이동해서 검색하려는 용어를 찾고, 해당 페이지로 바로 이동할 거예요. "the"나 "too"와 같은 stop words나 의미 없는 용어 같은 항목은 실제로 정보를 제공하지 않기 때문에 생략되고, 이런 것들을 저장하면 index가 엄청나게 커지거든요.

토큰화를 사용해서 검색할 때 정확한 대상을 검색할 수 있도록 단어 또는 단어 조합으로 분류해요. 대소문자 변환을 사용하면 대문자 때문에 검색에서 항목이 누락되지 않도록 모든 문자를 소문자로 만들죠. 형태소 분석과 표제어 분석을 사용하면 단어를 가장 간단한 형태로 줄일 수 있어요.

예를 들어 "실행", "실행함", "실행했다"라는 용어를 생각해 볼까요? 이 단어들은 모두 index에서 "실행"으로 변환되기 때문에, 단어의 한 버전을 검색하면 해당 단어의 모든 버전이 검색 결과에 다시 표시되는 거예요. 이러한 변환은 index에만 적용되는 게 아니라, 검색이 처리되기 전에 query에도 적용되어야 해요.

모든 변환이 완료되면 데이터는 다음과 같이 희소 행렬로 표시돼요.

문서를 추가할 때 해당 문서의 모든 단어에 대한 열도 추가해야 해요. 이렇게 되면 4,000열에 깊이가 10,000행이 되는 아주 복잡한 형태가 될 수 있죠. 대신, 단어와 그 단어가 발견된 모든 문서를 포함하는 반전된 index를 만들 수 있어요.

이것은 문서 컬렉션에서 중요한 단어를 찾는 비지도 Machine Learning 접근 방식을 나타내요. 이론은 단어가 문서에 여러 번 나타나는 경우 중요하지만, 문서 모집단 및 컬렉션 전반에 걸쳐 여러 번 나타나는 경우에는 중요하지 않다는 것이죠.

그 다음, 단어에는 연구 관련성 순위 및 키워드 호출에 사용되는 TF-IDF 점수가 부여돼요. 괄호 안에 표시된 TF-IDF 점수를 inverted index에 추가하는 거죠.

이 예시에서 "apple"이라는 단어는 문서 3에 있고 TF-IDF 점수가 4인 반면, 문서 6에서는 이 단어가 더 자주 나타나기 때문에 5점을 받았어요. 따라서 "apple"이라는 단어를 검색하면 TF-IDF 점수가 더 높은 문서가 가장 먼저 나타나겠죠?

정보 추출

지금까지는 검색 엔진을 만들고, 검색을 실행해서 일련의 결과를 가져오는 과정을 살펴봤어요.

다음 단계에서는 텍스트 파일 저장소로 이동해서, 원하는 경우 해당 측면에서 구조화된 데이터를 제거한 다음(경우에 따라 다르지만), 구조화되지 않은 자유 텍스트를 Natural Language Processing에 넣을 거예요.

Natural Language Processing을 통해 자유 형식 텍스트에서 데이터를 가져오면 위치와 같은 이름-값 쌍이 생성될 수 있어요.

기술이 들어가서 위치를 식별하고 뽑아내고 컬럼에 넣어서 구조화하는 거죠. 조사를 할 때 수십만 개의 문서가 있다면 정말 중요한 것이 무엇인지 바로 파악하고 싶을 텐데요.

작동 방식은 다음과 같아요.

이 데이터의 대부분은 구조화되어 있지만 빨간색 원으로 표시된 일부 데이터는 구조화되지 않았어요. 정보 추출이라는 프로세스를 통해 Natural Language Processing을 사용해 구조화되지 않은 데이터를 재구성해 볼 수 있어요.

이를 위해 원시 텍스트부터 시작해서 문장 분할, 토큰화, 품사 태깅 및 엔터티 감지를 수행하여 엔터티 추출로 마무리해요.

예를 들어 이런 식이에요:

문장을 가져와서 분해하고, 구문을 개별 단어로 토큰화하고, 품사 태그를 적용했어요. 이걸 수천 개의 문서에 적용하면 Machine Learning을 통해 패턴을 식별할 수 있죠.

예를 들어 명사가 연속으로 세 개 있으면 사람일 가능성이 높아요.

아래에는 다양한 데이터 유형이 나와 있는데, Python에서 사용할 수 있는 모든 유형을 대표한다고 생각해요.

우리에게는 조직, 돈 등이 있어요. 따라서 이메일에 들어가서 달러 가치를 찾아 뽑아내고 그것을 돈이라고 부르고 스프레드시트에 넣을 수 있죠. 이 모든 데이터를 꺼내서 누가, 무엇을, 언제, 어디서, 왜 중요한 정보를 자동으로 알려주는 거예요.

핵심 문구 추출을 고려할 때 실제로는 TF-IDF에 지나지 않아요. 개념, 중요한 용어, 주제, 코드 단어 및 기타 "용어"를 식별하는 데 도움이 되는 키워드 및 단어 조합을 추출하며 문서 분류 및 클러스터링에도 사용할 수 있어요.

카테고리, 개념, 감정, 메타데이터, 의미론적 역할 등을 추출할 수 있으며 이러한 도구를 사용하여 세그먼트 분석과 같은 모든 종류의 다른 멋진 작업을 수행할 수 있어요.

그리고 지금: 그래프!

이를 통해 마침내 이 모든 데이터를 Graph Database에 넣을 수 있게 되었어요. 이는 단일 주소에서 여러 등록을 식별하여 유권자 사기와 같은 것을 발견하는 데 도움이 될 수 있어요. 개인 간의 연관성을 밝혀 음모를 꾸미거나, 다양한 사람, 조직 등 간의 관련 숨겨진 연결을 찾아내 이해 상충 사례를 탐색할 수도 있죠.

그래프 기술은 또한 거래 데이터와 자주 발생하는 항목의 패턴을 찾아낼 뿐만 아니라 관계의 순서를 고려하는 시퀀스 마이닝도 찾아내요. 예로는 금융 거래, 배송 사기, 웹 서버 활동, 해외 사기 등이 있어요.

배송 사기 관련 사건에 연루되었던 적이 있어요. 이동하는 데 일정 시간이 걸리고 도중에 특정 주유소에 정차하는 일반적인 경로를 탐색하고 있었는데, 특이한 정류장 때문에 일반적인 패턴에서 눈에 띄는 사람을 만났고, 알고 보니 이 사람이 훔친 물건을 하역하고 있었죠.

결국, 당신은 이것을 왼쪽에 두고 그것을 맥락으로 변환하고 있어요. 일반적인 패턴은 무엇일까요? 사람들은 사이트를 어떻게 순서대로 살펴보나요? 이를 통해 해당 패턴을 찾고 무엇이 정상인지 아닌지를 알 수 있는 거죠.

실제 사례

제가 얻은 다음 데이터를 살펴 볼게요. 뷰로 반 다이크를 통해 시각화로 렌더링됩니다 폴리노드.

이 그래프는 Trump Organization과 고문 및 감사인의 관계를 보여주며, 실제로 눈에 띄고 이해 상충 사례를 나타낼 수 있는 일부 데이터 그룹을 지적했어요.

더 많은 실제 사례는 Citizenaudit.org에서 찾아볼 수 있어요. 여기는 IRS 990에 대해 검색 가능한 유일한 소스인데, Elastic과 Neo4j를 사용하고 있대요. 그리고 ICIJ와 파나마 논문 데이터 세트는 ICIJ가 Neo4j와 Python을 사용해서 대규모 데이터 세트에서 사기를 적발했죠.

직접 다운로드해서 구축할 수 있는 Trump BuzzFeed 그래프도 있어요. 다음 데모에서는 이 데이터 세트를 그래프로 변환하는 방법을 보여줄 거예요.

결론

우리는 본질적으로 단순한 데이터베이스를 만든 셈이에요. 그렇다고 해서 반드시 결정적인 증거나 패턴을 찾을 거라는 의미는 아니에요. 그저 모든 주요 정보를 한 곳에 저장해서 학습할 수 있는 공간일 뿐이죠.

키워드와 명명된 엔터티를 통해서 우리는 가야 할 곳을 정확히 식별할 수 있고, 이는 사례를 더 효율적으로 평가하는 데 도움이 돼요. 각 `Node`에는 개인의 나이, 소득, 주소 또는 기타 정보가 포함될 수 있겠죠.

새로 발견된 명명된 엔터티와 키워드는 검색 엔진을 통해 실행해서 사건의 범위를 더욱 확장할 수 있고, `Graph Database`의 `Query`는 사기, 음모 및 이해 상충 연구에 도움이 되는 시각화용 하위 그래프를 생성할 수 있어요. 이러한 탐색적 노력은 모두 생산 수준의 예측 분석을 알리는 데 사용될 수 있답니다.

마지막으로, Neo4j 팀이 제게 준 내용이 있어요. 조사를 수행하고 특정 패턴을 확립하면 이러한 결과를 Neo4j의 예측 모델에 사용할 수 있다는 걸 보여주죠.

바울의 연설에서 영감을 얻으셨나요? 이 백서를 통해 기업 사기 탐지 활동을 위해 `Graph Database`의 강력한 기능을 활용하는 방법을 알아보세요. 사기 탐지: 그래프 데이터베이스와의 연결 검색.
  • Machine Learning
  • Natural Language Processing

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

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

728x90
반응형

+ Recent posts