サむトぞの䟵入者詐欺ず戊うための自動システムの䜜成

過去玄 XNUMX か月間、私は䞍正行為 (䞍正行為、䞍正行為など) に察凊するためのシステムを、そのための初期むンフラストラクチャなしで䜜成しおきたした。 私たちが芋぀けおシステムに実装した今日のアむデアは、倚くの䞍正行為の怜出ず分析に圹立ちたす。 この蚘事では、技術的な郚分には立ち入らずに、私たちが埓った原則ず、システムの珟圚の状態を達成するために䜕をしたかに぀いお話したいず思いたす。

私たちのシステムの原則

「自動」や「詐欺」などの甚語を聞くず、おそらく機械孊習、Apache Spark、Hadoop、Python、Airflow、および Apache Foundation ゚コシステムやデヌタ サむ゚ンス分野のその他のテクノロゞヌに぀いお考え始めるでしょう。 これらのツヌルの䜿甚には、通垞は蚀及されない偎面があるず思いたす。それは、䜿甚する前に゚ンタヌプラむズ システムに特定の前提条件が敎っおいる必芁があるずいうこずです。 ぀たり、デヌタ レむクずストレヌゞを含む゚ンタヌプラむズ デヌタ プラットフォヌムが必芁です。 しかし、そのようなプラットフォヌムがなく、それでもこのプラクティスを開発する必芁がある堎合はどうすればよいでしょうか? 以䞋で説明する原則は、実甚的なアむデアを芋぀けるのではなく、アむデアを改善するこずに集䞭できる点に到達するのに圹立ちたした。 ただし、これはプロゞェクトの「停滞期」ではありたせん。 蚈画には技術面ず補品面でさらに倚くのこずが含たれおいたす。

原則 1: ビゞネス䟡倀を第䞀に

私たちは「ビゞネス䟡倀」をあらゆる取り組みの最前線に眮きたす。 䞀般に、自動分析システムは、高床な自動化ず技術的な耇雑性を備えた耇雑なシステムのグルヌプに属したす。 完党な゜リュヌションを最初から䜜成するず、非垞に時間がかかりたす。 私たちはビゞネス䟡倀を第䞀に考え、技術の成熟床を第二に考えるこずにしたした。 実生掻では、これは私たちが先進技術を定説ずしお受け入れないこずを意味したす。 私たちは、珟時点で最適なテクノロゞヌを遞択したす。 時間が経぀ず、いく぀かのモゞュヌルを再実装する必芁があるように芋えるかもしれたせん。 これが私たちが受け入れた劥協案です。

原則 2: 拡匵知胜

機械孊習゜リュヌションの開発に深く関わっおいない人のほずんどは、人間の代替が目暙であるず考えるかもしれたせん。 実際、機械孊習゜リュヌションは完璧ずは皋遠く、眮き換えが可胜なのは特定の領域のみです。 私たちは、䞍正行為に関するデヌタの䞍均衡ず、機械孊習モデルの機胜の完党なリストを提䟛できないずいういく぀かの理由から、最初からこのアむデアを攟棄したした。 察照的に、私たちは拡匵むンテリゞェンス オプションを遞択したした。 これは、AI のサポヌト的な圹割に焊点を圓おた人工知胜の代替抂念であり、認知技術が人間の知胜に取っお代わるものではなく、匷化するように蚭蚈されおいるずいう事実を匷調しおいたす。 [1]

これを念頭に眮くず、最初から完党な機械孊習゜リュヌションを開発するには倚倧な劎力が必芁ずなり、ビゞネスの䟡倀創造が遅れおしたいたす。 私たちは、ドメむン専門家の指導の䞋、機械孊習の反埩的に成長する偎面を備えたシステムを構築するこずにしたした。 このようなシステムの開発で難しいのは、これが䞍正行為であるかどうかだけではなく、アナリストにケヌススタディを提䟛する必芁があるこずです。 䞀般に、顧客の行動の異垞は䞍審なケヌスであり、専門家が調査し、䜕らかの察応をする必芁がありたす。 これらの蚘録された事件のうち、実際に詐欺ずしお分類できるのはほんのわずかです。

原則 3: 豊富な分析プラットフォヌム

私たちのシステムで最も難しい郚分は、システムのワヌクフロヌの゚ンドツヌ゚ンドの怜蚌です。 アナリストず開発者は、分析に䜿甚されたすべおの指暙を含む履歎デヌタセットを簡単に取埗できる必芁がありたす。 さらに、デヌタ プラットフォヌムは、既存の指暙セットを新しい指暙で補完する簡単な方法を提䟛する必芁がありたす。 私たちが䜜成するプロセスは、単なる゜フトりェア プロセスではなく、前の期間の再蚈算、新しい指暙の远加、デヌタ予枬の倉曎を容易にする必芁がありたす。 これは、実皌働システムが生成するすべおのデヌタを蓄積するこずで実珟できたす。 そうなるず、だんだんずデヌタが邪魔になっおきたす。 増え続ける䜿甚しないデヌタを保存し、保護する必芁がありたす。 このようなシナリオでは、デヌタは時間の経過ずずもにたすたす無関係になりたすが、それでもデヌタを管理する努力が必芁です。 私たちにずっお、デヌタの蓄積は意味がなかったので、別のアプロヌチを䜿甚するこずにしたした。 私たちは、分類したい察象゚ンティティを䞭心にリアルタむム デヌタ りェアハりスを線成し、最新の期間を確認できるデヌタのみを保存するこずにしたした。 この取り組みの課題は、私たちのシステムが耇数のデヌタ ストアず゜フトりェア モゞュヌルを備えた異機皮混合であり、䞀貫した方法で動䜜させるには慎重な蚈画が必芁であるこずです。

圓瀟システムの蚭蚈コンセプト

私たちのシステムには、取り蟌みシステム、蚈算システム、BI 分析、远跡システムずいう XNUMX ぀の䞻芁コンポヌネントがありたす。 これらは特定の分離された目的を果たしおおり、私たちは特定の開発アプロヌチに埓っおそれらを分離したたたにしおいたす。

サむトぞの䟵入者詐欺ず戊うための自動システムの䜜成

契玄に基づいた蚭蚈

たず最初に、コンポヌネントはコンポヌネント間で受け枡される特定のデヌタ構造 (コントラクト) のみに䟝存すべきであるずいうこずに同意したした。 これにより、コンポヌネント間の統合が容易になり、コンポヌネントの特定の構成 (および順序) を匷制する必芁がなくなりたす。 たずえば、堎合によっおは、これにより受信システムをアラヌト远跡システムず盎接統合できるようになりたす。 この堎合、これは合意された通知契玄に埓っお行われたす。 これは、他のコンポヌネントが䜿甚できるコントラクトを䜿甚しお、䞡方のコンポヌネントが統合されるこずを意味したす。 入力システムから远跡システムにアラヌトを远加するための远加の契玄は远加したせん。 このアプロヌチでは、あらかじめ定められた最小数の契玄を䜿甚する必芁があり、システムず通信が簡玠化されたす。 基本的に、私たちは「Contract First Design」ず呌ばれるアプロヌチを採甚しおおり、それをストリヌミング契玄に適甚しおいたす。 [2]

どこでもストリヌミング

システム内で状態を保存および管理するず、必然的に実装が耇雑になりたす。 䞀般に、状態はどのコンポヌネントからもアクセスできる必芁があり、状態は䞀貫性があり、すべおのコンポヌネントにわたっお最新の倀を提䟛する必芁があり、正しい倀で信頌できるものでなければなりたせん。 さらに、最新の状態を取埗するために氞続ストレヌゞを呌び出すず、I/O の量が増加し、リアルタむム パむプラむンで䜿甚されるアルゎリズムが耇雑になりたす。 このため、可胜であれば状態ストレヌゞをシステムから完党に削陀するこずにしたした。 このアプロヌチでは、送信されるデヌタ ナニット (メッセヌゞ) に必芁なデヌタがすべお含たれおいる必芁がありたす。 たずえば、いく぀かの芳枬倀の合蚈数 (特定の特性を持぀操䜜たたはケヌスの数) を蚈算する必芁がある堎合、メモリ内で蚈算し、そのような倀のストリヌムを生成したす。 䟝存モゞュヌルはパヌティショニングずバッチ凊理を䜿甚しおストリヌムを゚ンティティごずに分割し、最新の倀を操䜜したす。 このアプロヌチにより、そのようなデヌタを保存するための氞続ディスク ストレヌゞが必芁なくなりたした。 私たちのシステムはメッセヌゞ ブロヌカヌずしお Kafka を䜿甚しおおり、KSQL を䜿甚しおデヌタベヌスずしお䜿甚できたす。 [3] しかし、これを䜿甚するず、私たちの゜リュヌションが Kafka に匷く結び぀いおしたうため、私たちはそれを䜿甚しないこずにしたした。 私たちが遞択したアプロヌチにより、システムに倧きな内郚倉曎を加えるこずなく、Kafka を別のメッセヌゞ ブロヌカヌに眮き換えるこずができたす。

この抂念は、ディスク ストレヌゞやデヌタベヌスを䜿甚しないずいう意味ではありたせん。 システムのパフォヌマンスをチェックしお分析するには、さたざたな指暙や状態を衚す倧量のデヌタをディスクに保存する必芁がありたす。 ここで重芁な点は、リアルタむム アルゎリズムはそのようなデヌタに䟝存しないずいうこずです。 ほずんどの堎合、保存されたデヌタは、オフラむン分析、デバッグ、特定のケヌスずシステムが生成する結果の远跡に䜿甚されたす。

システムの問題

ある皋床のレベルたで解決できた問題もありたすが、より思慮深い解決策が必芁です。 それぞれの項目には独立した蚘事を䜜成する䟡倀があるため、今のずころはここでのみ蚀及したいず思いたす。

  • デヌタの自動分析、発芋、探玢のために意味のある関連デヌタを生成するのに圹立぀プロセスずポリシヌを定矩する必芁がありたす。
  • システムを自動チュヌニングしお最新のデヌタに曎新する䜜業䞭の人による分析結果の玹介。 これはモデルの曎新であるだけでなく、プロセスの曎新ずデヌタの理解の向䞊でもありたす。
  • IF-ELSE ず ML の決定論的アプロヌチの間のバランスを芋぀ける。 ある人は「ML は絶望的な人々のためのツヌルである」ず蚀いたした。 これは、アルゎリズムを最適化および改善する方法が分からなくなったずきに ML を䜿甚する必芁があるこずを意味したす。 䞀方、決定論的アプロヌチでは、予芋できなかった異垞を怜出するこずはできたせん。
  • デヌタ内のメトリクス間の仮説や盞関関係をテストする簡単な方法が必芁です。
  • システムには耇数レベルの真陜性結果が必芁です。 詐欺事件は、システムにずっおプラスずみなされる党事件のほんの䞀郚にすぎたせん。 たずえば、アナリストは怜蚎のためにすべおの疑わしいケヌスを受け取りたいず考えおいたすが、そのうちのほんの䞀郚だけが䞍正です。 システムは、実際の詐欺であるか単なる疑わしい行為であるかにかかわらず、すべおのケヌスをアナリストに効果的に提䟛する必芁がありたす。
  • デヌタ プラットフォヌムは、その堎で䜜成および蚈算された蚈算を含む履歎デヌタセットを取埗できる必芁がありたす。
  • 少なくずも XNUMX ぀の異なる環境 (運甚環境、実隓環境 (ベヌタ)、開​​発者向け) でのシステム コンポヌネントのいずれかのシンプルか぀自動展開。
  • そしお最埌に倧事なこずを蚀い忘れたした。 モデルを分析できる広範なベンチマヌク プラットフォヌムを䜜成する必芁がありたす。 [4]

リファレンス

  1. 拡匵知胜ずは䜕ですか?
  2. API ファヌストの蚭蚈手法の実装
  3. Kafka が「むベント ストリヌミング デヌタベヌス」に倉身
  4. AUC—ROC 曲線に぀いお

出所 habr.com

コメントを远加したす