위장하는 스팸 검토의 발견 알고리즘

개요





결탁 한 스팸 검토를 발견하는 알고리즘에 이어,
온라인 쇼핑 및 레스토랑 리뷰 사이트에서 스팸 리뷰어를 발견하기 위해,
일반적인 검토자에게 위장하는 스팸 검토자를 찾는 알고리즘 FRAUDAR이 준비되었습니다.

FRAUDAR는 2016년 ACM SIGKDD International Conference on Knowledge Discovery and Data Mining (KDD 2016)에서 베스트 페이퍼상을 수상한 알고리즘으로, 저자에 의해 구현이 공개됨.

이번에는 스팸 검토자 발견 알고리즘 평가를 위한 데이터 세트 등을보다 쉽게 ​​분석 할 수 있도록 결탁 한 스팸 검토를 발견하는 알고리즘과 공통 인터페이스을 작성했다.

사용법



이번에 작성한 FRAUDAR 래퍼 rgmining-fraudarPyPI에 등록되어 있으므로 pip 명령으로 설치할 수 있습니다.
$ pip install --upgrade rgmining-fraudar
fraudar라는 패키지가 추가되고 그 중 fraudar.ReviewGraph는이 알고리즘을 구현하는 그래프 클래스입니다.
ReviewGraph 클래스의 생성자는, 옵션으로 몇 종류의 위장 패턴을 생각할까 하는 파라미터와, 내부에서 사용하는 서브 알고리즘을 받지만, 전자만 데이터 세트에 맞추어 주면 좋다고 생각한다 (둘 다 디폴트에서도 문제 없다).
import fraudar

# 例えば 10パタンのカモフラージュを考える場合.
n = 10 
graph = fraudar.ReviewGraph(n)

그런 다음 그래프에 검토, 상품 및 리뷰를 추가합니다.
결탁 한 스팸 검토를 발견하는 알고리즘 예제와 같은 방법으로 추가 할 수 있습니다.
reviewers = [graph.new_reviewer("reviewer-{0}".format(i)) for i in range(2)]
products = [graph.new_product("product-{0}".format(i)) for i in range(3)]
graph.add_review(reviewers[0], products[0], 0.2)
graph.add_review(reviewers[0], products[1], 0.9)
graph.add_review(reviewers[0], products[2], 0.6)
graph.add_review(reviewers[1], products[0], 0.1)
graph.add_review(reviewers[1], products[1], 0.7)

된다. 평가 및 상품은 ReviewGraphnew_reviewernew_product 메소드를 사용하여 작성됩니다.
리뷰는 add_review 메소드에 추가됩니다.

알고리즘을 실행하려면 update 메서드를 한 번만 호출합니다.
graph.update()

마지막으로 분석 결과를 얻습니다.new_reviewer 메서드가 반환 한 검토자에는 anomalous_score라는 속성이 있습니다.
이 속성은 그 검토자가 특이하다고 판단되면 1을, 그렇지 않으면 0으로 설정한다.
for r in graph.reviewers:
    print(r.name, r.anomalous_score)

또한 new_product 메소드가 리턴 한 상품 오브젝트에는 summary라는 속성이 있습니다.
이 값은 특이한 것으로 판단되지 않은 검토자의 리뷰로 구성된 평균을 반환합니다.
for p in graph.products:
    print(p.name, p.summary)

요약



위탁 된 스팸 검토자를 찾는 Fraud Eagle 알고리즘에 이어 FRAUDAR 알고리즘의 래퍼를 만들었다. 둘 다 스팸 검토자 발견 알고리즘 평가를 위한 데이터 세트을 처리 할 수 ​​있도록 공통 API을 제공하므로 행동을 쉽게 비교할 수 있다고 생각합니다.

좋은 웹페이지 즐겨찾기