From a2487b8b7762791db5eb06e060316963d8501884 Mon Sep 17 00:00:00 2001 From: mickey-liu Date: Mon, 7 Mar 2022 15:24:04 -0800 Subject: [PATCH 1/2] fix: Update some fields optional in UI parser (#2380) Signed-off-by: Yun Nan Liu Co-authored-by: Yun Nan Liu Co-authored-by: Danny Chiao --- ui/src/pages/entities/EntityOverviewTab.tsx | 13 +++++++++++-- .../feature-views/RegularFeatureViewOverviewTab.tsx | 5 +++-- ui/src/parsers/feastEntities.ts | 4 ++-- ui/src/parsers/feastFeatureViews.ts | 6 +++--- ui/src/parsers/parseEntityRelationships.ts | 4 ++-- 5 files changed, 21 insertions(+), 11 deletions(-) diff --git a/ui/src/pages/entities/EntityOverviewTab.tsx b/ui/src/pages/entities/EntityOverviewTab.tsx index ed539ff5ee..dce0c12824 100644 --- a/ui/src/pages/entities/EntityOverviewTab.tsx +++ b/ui/src/pages/entities/EntityOverviewTab.tsx @@ -9,6 +9,7 @@ import { EuiText, EuiFlexItem, EuiSpacer, + EuiStat, EuiDescriptionList, EuiDescriptionListTitle, EuiDescriptionListDescription, @@ -71,12 +72,20 @@ const EntityOverviewTab = () => { Created - {data.meta.createdTimestamp.toLocaleDateString("en-CA")} + {data.meta.createdTimestamp ? ( + data.meta.createdTimestamp.toLocaleDateString("en-CA") + ) : ( + No createdTimestamp specified on this entity. + )} Updated - {data.meta.lastUpdatedTimestamp.toLocaleDateString("en-CA")} + {data.meta.lastUpdatedTimestamp ? ( + data.meta.lastUpdatedTimestamp.toLocaleDateString("en-CA") + ) : ( + No lastUpdatedTimestamp specified on this entity. + )} diff --git a/ui/src/pages/feature-views/RegularFeatureViewOverviewTab.tsx b/ui/src/pages/feature-views/RegularFeatureViewOverviewTab.tsx index 70a7fdec17..4475b6ad0c 100644 --- a/ui/src/pages/feature-views/RegularFeatureViewOverviewTab.tsx +++ b/ui/src/pages/feature-views/RegularFeatureViewOverviewTab.tsx @@ -60,7 +60,7 @@ const RegularFeatureViewOverviewTab = ({ - {data.spec.batchSource.meta && ( + {data.spec.batchSource.meta ? ( + ) : ( + No batchSource specified on this feature view. )} - {data.meta.lastUpdatedTimestamp && ( new Date(val)), - lastUpdatedTimestamp: z.string().transform((val) => new Date(val)), + createdTimestamp: z.string().transform((val) => new Date(val)).optional(), + lastUpdatedTimestamp: z.string().transform((val) => new Date(val)).optional(), }), }); diff --git a/ui/src/parsers/feastFeatureViews.ts b/ui/src/parsers/feastFeatureViews.ts index 013f70b1fe..c8cdadd25c 100644 --- a/ui/src/parsers/feastFeatureViews.ts +++ b/ui/src/parsers/feastFeatureViews.ts @@ -13,7 +13,7 @@ const FeastBatchSourceSchema = z.object({ fileOptions: z.object({ fileUrl: z.string().optional(), }).optional(), - name: z.string(), + name: z.string().optional(), meta: z.object({ earliestEventTimestamp: z.string().transform((val) => new Date(val)), latestEventTimestamp: z.string().transform((val) => new Date(val)), @@ -39,8 +39,8 @@ const FeastFeatureViewSchema = z.object({ tags: z.record(z.string()).optional(), }), meta: z.object({ - createdTimestamp: z.string().transform((val) => new Date(val)), - lastUpdatedTimestamp: z.string().transform((val) => new Date(val)), + createdTimestamp: z.string().transform((val) => new Date(val)).optional(), + lastUpdatedTimestamp: z.string().transform((val) => new Date(val)).optional(), materializationIntervals: z .array( z.object({ diff --git a/ui/src/parsers/parseEntityRelationships.ts b/ui/src/parsers/parseEntityRelationships.ts index f6e1b1af1f..bf82e86ff9 100644 --- a/ui/src/parsers/parseEntityRelationships.ts +++ b/ui/src/parsers/parseEntityRelationships.ts @@ -46,7 +46,7 @@ const parseEntityRelationships = (objects: FeastRegistryType) => { links.push({ source: { type: FEAST_FCO_TYPES["dataSource"], - name: fv.spec.batchSource.name + name: fv.spec.batchSource.name || '' }, target: { type: FEAST_FCO_TYPES["featureView"], @@ -77,7 +77,7 @@ const parseEntityRelationships = (objects: FeastRegistryType) => { links.push({ source: { type: FEAST_FCO_TYPES["dataSource"], - name: source_fv?.spec.batchSource.name, + name: source_fv?.spec.batchSource.name || '', }, target: { type: FEAST_FCO_TYPES["featureView"], From ce37b41bc55e1dd5f51fa876b7814600dcfba51d Mon Sep 17 00:00:00 2001 From: Yun Nan Liu Date: Wed, 16 Mar 2022 15:41:20 -0700 Subject: [PATCH 2/2] twitter specific ui package changes --- ui/package.json | 2 +- ui/public/data.json | 6 - ui/public/empty_registry.json | 3 - .../featureView/credit_history.json | 185 - ui/public/projects-list.json | 12 +- ui/public/registry.json | 12540 +++++++++++++++- ui/scripts/clear-icons.sh | 23 + ui/src/hooks/useFCOExploreSuggestions.ts | 2 +- ui/src/pages/ProjectOverviewPage.tsx | 16 +- 9 files changed, 11905 insertions(+), 884 deletions(-) delete mode 100644 ui/public/data.json delete mode 100644 ui/public/empty_registry.json delete mode 100644 ui/public/metadata/credit_score_project/featureView/credit_history.json create mode 100755 ui/scripts/clear-icons.sh diff --git a/ui/package.json b/ui/package.json index f53ea7ce6d..ce4179cdcb 100644 --- a/ui/package.json +++ b/ui/package.json @@ -31,7 +31,7 @@ }, "scripts": { "start": "react-scripts start", - "build": "react-scripts build", + "build": "react-scripts build && chmod ug+x scripts/clear-icons.sh && scripts/clear-icons.sh", "test": "react-scripts test", "eject": "react-scripts eject" }, diff --git a/ui/public/data.json b/ui/public/data.json deleted file mode 100644 index 3fd1630022..0000000000 --- a/ui/public/data.json +++ /dev/null @@ -1,6 +0,0 @@ -[ - { "name": "basketball", "league": "NBA" }, - { "name": "hockey", "league": "NHL" }, - { "name": "football", "league": "UEFA" }, - { "name": "baseball", "league": "MLB" } -] diff --git a/ui/public/empty_registry.json b/ui/public/empty_registry.json deleted file mode 100644 index 2ac5ef3eab..0000000000 --- a/ui/public/empty_registry.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "project": "empty_registry" -} diff --git a/ui/public/metadata/credit_score_project/featureView/credit_history.json b/ui/public/metadata/credit_score_project/featureView/credit_history.json deleted file mode 100644 index 7e88efd80a..0000000000 --- a/ui/public/metadata/credit_score_project/featureView/credit_history.json +++ /dev/null @@ -1,185 +0,0 @@ -{ - "columnsSummaryStatistics": { - "credit_card_due": { - "name": "credit_card_due", - "valueType": "INT64", - "sampleValues": [1, 2, 3], - "histogram": [ - { "x0": 0, "x1": 0.1, "count": 35 }, - { "x0": 0.1, "x1": 0.2, "count": 8 }, - { "x0": 0.2, "x1": 0.3, "count": 5 }, - { "x0": 0.3, "x1": 0.4, "count": 3 }, - { "x0": 0.4, "x1": 0.5, "count": 2 }, - { "x0": 0.5, "x1": 0.6, "count": 1 }, - { "x0": 0.6, "x1": 0.7, "count": 0 }, - { "x0": 0.7, "x1": 0.8, "count": 1 }, - { "x0": 0.8, "x1": 0.9, "count": 2 }, - { "x0": 0.9, "x1": 1, "count": 1 } - ], - "proportionOfZeros": 0.01, - "proportionMissing": 0.01, - "min": 0, - "max": 12 - }, - "mortgage_due": { - "name": "mortgage_due", - "valueType": "INT64", - "sampleValues": [4, 6, 8], - "histogram": [ - { "x0": 0, "x1": 0.1, "count": 35 }, - { "x0": 0.1, "x1": 0.2, "count": 8 }, - { "x0": 0.2, "x1": 0.3, "count": 5 }, - { "x0": 0.3, "x1": 0.4, "count": 3 }, - { "x0": 0.4, "x1": 0.5, "count": 2 }, - { "x0": 0.5, "x1": 0.6, "count": 1 }, - { "x0": 0.6, "x1": 0.7, "count": 0 }, - { "x0": 0.7, "x1": 0.8, "count": 1 }, - { "x0": 0.8, "x1": 0.9, "count": 2 }, - { "x0": 0.9, "x1": 1, "count": 1 } - ], - "proportionOfZeros": 0.01, - "proportionMissing": 0.01, - "min": 0, - "max": 12 - }, - "student_loan_due": { - "name": "student_loan_due", - "valueType": "INT64", - "sampleValues": [0, 1, 3], - "histogram": [ - { "x0": 0, "x1": 0.1, "count": 35 }, - { "x0": 0.1, "x1": 0.2, "count": 8 }, - { "x0": 0.2, "x1": 0.3, "count": 5 }, - { "x0": 0.3, "x1": 0.4, "count": 3 }, - { "x0": 0.4, "x1": 0.5, "count": 2 }, - { "x0": 0.5, "x1": 0.6, "count": 1 }, - { "x0": 0.6, "x1": 0.7, "count": 0 }, - { "x0": 0.7, "x1": 0.8, "count": 1 }, - { "x0": 0.8, "x1": 0.9, "count": 2 }, - { "x0": 0.9, "x1": 1, "count": 1 } - ], - "proportionOfZeros": 0.01, - "proportionMissing": 0.01, - "min": 0, - "max": 12 - }, - "vehicle_loan_due": { - "name": "vehicle_loan_due", - "valueType": "INT64", - "sampleValues": [2, 1, 0], - "histogram": [ - { "x0": 0, "x1": 0.1, "count": 35 }, - { "x0": 0.1, "x1": 0.2, "count": 8 }, - { "x0": 0.2, "x1": 0.3, "count": 5 }, - { "x0": 0.3, "x1": 0.4, "count": 3 }, - { "x0": 0.4, "x1": 0.5, "count": 2 }, - { "x0": 0.5, "x1": 0.6, "count": 1 }, - { "x0": 0.6, "x1": 0.7, "count": 0 }, - { "x0": 0.7, "x1": 0.8, "count": 1 }, - { "x0": 0.8, "x1": 0.9, "count": 2 }, - { "x0": 0.9, "x1": 1, "count": 1 } - ] - }, - "hard_pulls": { - "name": "hard_pulls", - "valueType": "INT64", - "sampleValues": [0, 9, 12], - "histogram": [ - { "x0": 0, "x1": 0.1, "count": 35 }, - { "x0": 0.1, "x1": 0.2, "count": 8 }, - { "x0": 0.2, "x1": 0.3, "count": 5 }, - { "x0": 0.3, "x1": 0.4, "count": 3 }, - { "x0": 0.4, "x1": 0.5, "count": 2 }, - { "x0": 0.5, "x1": 0.6, "count": 1 }, - { "x0": 0.6, "x1": 0.7, "count": 0 }, - { "x0": 0.7, "x1": 0.8, "count": 1 }, - { "x0": 0.8, "x1": 0.9, "count": 2 }, - { "x0": 0.9, "x1": 1, "count": 1 } - ], - "proportionOfZeros": 0.01, - "proportionMissing": 0.01, - "min": 0, - "max": 12 - }, - "missed_payments_2y": { - "name": "missed_payments_2y", - "valueType": "INT64", - "sampleValues": [0, 1, 3], - "histogram": [ - { "x0": 0, "x1": 0.1, "count": 35 }, - { "x0": 0.1, "x1": 0.2, "count": 8 }, - { "x0": 0.2, "x1": 0.3, "count": 5 }, - { "x0": 0.3, "x1": 0.4, "count": 3 }, - { "x0": 0.4, "x1": 0.5, "count": 2 }, - { "x0": 0.5, "x1": 0.6, "count": 1 }, - { "x0": 0.6, "x1": 0.7, "count": 0 }, - { "x0": 0.7, "x1": 0.8, "count": 1 }, - { "x0": 0.8, "x1": 0.9, "count": 2 }, - { "x0": 0.9, "x1": 1, "count": 1 } - ], - "proportionOfZeros": 0.01, - "proportionMissing": 0.01, - "min": 0, - "max": 12 - }, - "missed_payments_1y": { - "name": "missed_payments_1y", - "valueType": "INT64", - "sampleValues": [0, 1, 3], - "histogram": [ - { "x0": 0, "x1": 0.1, "count": 35 }, - { "x0": 0.1, "x1": 0.2, "count": 8 }, - { "x0": 0.2, "x1": 0.3, "count": 5 }, - { "x0": 0.3, "x1": 0.4, "count": 3 }, - { "x0": 0.4, "x1": 0.5, "count": 2 }, - { "x0": 0.5, "x1": 0.6, "count": 1 }, - { "x0": 0.6, "x1": 0.7, "count": 0 }, - { "x0": 0.7, "x1": 0.8, "count": 1 }, - { "x0": 0.8, "x1": 0.9, "count": 2 }, - { "x0": 0.9, "x1": 1, "count": 1 } - ], - "proportionOfZeros": 0.01, - "proportionMissing": 0.01, - "min": 0, - "max": 12 - }, - "missed_payments_6m": { - "name": "missed_payments_6m", - "valueType": "INT64", - "sampleValues": [0, 1, 3], - "histogram": [ - { "x0": 0, "x1": 0.1, "count": 35 }, - { "x0": 0.1, "x1": 0.2, "count": 8 }, - { "x0": 0.2, "x1": 0.3, "count": 5 }, - { "x0": 0.3, "x1": 0.4, "count": 3 }, - { "x0": 0.4, "x1": 0.5, "count": 2 }, - { "x0": 0.5, "x1": 0.6, "count": 1 }, - { "x0": 0.6, "x1": 0.7, "count": 0 }, - { "x0": 0.7, "x1": 0.8, "count": 1 }, - { "x0": 0.8, "x1": 0.9, "count": 2 }, - { "x0": 0.9, "x1": 1, "count": 1 } - ] - }, - "bankruptcies": { - "name": "bankruptcies", - "valueType": "INT64", - "sampleValues": [0, 1, 3], - "histogram": [ - { "x0": 0, "x1": 0.1, "count": 35 }, - { "x0": 0.1, "x1": 0.2, "count": 8 }, - { "x0": 0.2, "x1": 0.3, "count": 5 }, - { "x0": 0.3, "x1": 0.4, "count": 3 }, - { "x0": 0.4, "x1": 0.5, "count": 2 }, - { "x0": 0.5, "x1": 0.6, "count": 1 }, - { "x0": 0.6, "x1": 0.7, "count": 0 }, - { "x0": 0.7, "x1": 0.8, "count": 1 }, - { "x0": 0.8, "x1": 0.9, "count": 2 }, - { "x0": 0.9, "x1": 1, "count": 1 } - ], - "proportionOfZeros": 0.01, - "proportionMissing": 0.01, - "min": 0, - "max": 12 - } - } -} diff --git a/ui/public/projects-list.json b/ui/public/projects-list.json index d3d7c3b7d9..9796bf9561 100644 --- a/ui/public/projects-list.json +++ b/ui/public/projects-list.json @@ -1,16 +1,10 @@ { "projects": [ { - "name": "Credit Score Project", - "description": "Project for credit scoring team and associated models.", - "id": "credit_score_project", + "name": "Twitter Feature Store", + "description": "Project for Twitter Feature Store", + "id": "twitter_feature_store_project", "registryPath": "/registry.json" - }, - { - "name": "Empty Registry", - "description": "Testing how things look when the registry is empty", - "id": "empty_registry", - "registryPath": "/empty_registry.json" } ] } diff --git a/ui/public/registry.json b/ui/public/registry.json index 024fb1ac19..7bab6c6db3 100644 --- a/ui/public/registry.json +++ b/ui/public/registry.json @@ -1,789 +1,11991 @@ { - "project": "credit_scoring_aws", - "dataSources": [ - { - "type": "BATCH_FILE", - "eventTimestampColumn": "event_timestamp", - "createdTimestampColumn": "created_timestamp", - "fileOptions": { - "fileUrl": "data/credit_history.parquet" - }, - "name": "credit_history", - "meta": { - "latestEventTimestamp": "2021-08-29T22:01:04.746575Z", - "earliestEventTimestamp": "2020-04-26T22:01:04.746575Z" - } - }, - { - "type": "REQUEST_SOURCE", - "requestDataOptions": { - "schema": { - "transaction_amt": "INT64" - } - }, - "name": "transaction" - }, - { - "type": "BATCH_FILE", - "eventTimestampColumn": "event_timestamp", - "createdTimestampColumn": "created_timestamp", - "fileOptions": { - "fileUrl": "data/zipcode_table.parquet" - }, - "name": "zipcode", - "meta": { - "latestEventTimestamp": "2017-01-01T12:00:00Z", - "earliestEventTimestamp": "2017-01-01T12:00:00Z" - } - } - ], "entities": [ { + "meta": {}, "spec": { + "joinKey": "__dummy_id", "name": "__dummy", - "valueType": "STRING", - "joinKey": "__dummy_id" - }, - "meta": { - "createdTimestamp": "2022-02-09T20:40:53.101387Z", - "lastUpdatedTimestamp": "2022-02-09T20:40:53.101387Z" + "valueType": "INT32" + } + }, + { + "meta": {}, + "spec": { + "joinKey": "account_id", + "name": "account", + "valueType": "INT64" + } + }, + { + "meta": {}, + "spec": { + "joinKey": "advertiser_id", + "name": "advertiser", + "valueType": "INT64" + } + }, + { + "meta": {}, + "spec": { + "joinKey": "app_id", + "name": "app", + "valueType": "STRING" + } + }, + { + "meta": {}, + "spec": { + "joinKey": "campaign_id", + "name": "campaign", + "valueType": "INT64" + } + }, + { + "meta": {}, + "spec": { + "joinKey": "candidate_id", + "name": "candidate", + "valueType": "INT64" + } + }, + { + "meta": {}, + "spec": { + "joinKey": "country_code", + "name": "country_code", + "valueType": "STRING" + } + }, + { + "meta": {}, + "spec": { + "joinKey": "gender", + "name": "gender", + "valueType": "INT64" + } + }, + { + "meta": {}, + "spec": { + "joinKey": "geo", + "name": "geo", + "valueType": "STRING" + } + }, + { + "meta": {}, + "spec": { + "joinKey": "hashed_device_id", + "name": "hashed_device", + "valueType": "STRING" + } + }, + { + "meta": {}, + "spec": { + "joinKey": "li_obj", + "name": "li_obj", + "valueType": "INT64" + } + }, + { + "meta": {}, + "spec": { + "joinKey": "lineitem_id", + "name": "lineitem", + "valueType": "INT64" + } + }, + { + "meta": {}, + "spec": { + "joinKey": "os", + "name": "os", + "valueType": "INT64" + } + }, + { + "meta": {}, + "spec": { + "joinKey": "promoted_tweet_id", + "name": "promoted_tweet", + "valueType": "INT64" + } + }, + { + "meta": {}, + "spec": { + "joinKey": "source_user_id", + "name": "source_user", + "valueType": "INT64" + } + }, + { + "meta": {}, + "spec": { + "joinKey": "target_user_id", + "name": "target_user", + "valueType": "INT64" + } + }, + { + "meta": {}, + "spec": { + "joinKey": "tgt_cr", + "name": "tgt_cr", + "valueType": "STRING" + } + }, + { + "meta": {}, + "spec": { + "joinKey": "topic_id", + "name": "topic", + "valueType": "STRING" } }, { + "meta": {}, "spec": { - "name": "dob_ssn", - "valueType": "STRING", - "description": "Date of birth and last four digits of social security number", - "joinKey": "dob_ssn", - "labels": { - "team": "hack week", - "owner": "tony@tecton.ai" - } - }, - "meta": { - "createdTimestamp": "2022-02-09T20:40:53.101256Z", - "lastUpdatedTimestamp": "2022-02-09T20:40:53.101256Z" + "joinKey": "tweet_id", + "name": "tweet", + "valueType": "INT64" } }, { + "meta": {}, "spec": { - "name": "zipcode", - "valueType": "INT64", - "description": "A zipcode", - "joinKey": "zipcode", - "labels": { - "owner": "danny@tecton.ai", - "team": "hack week" - } - }, - "meta": { - "createdTimestamp": "2022-02-09T20:40:53.101335Z", - "lastUpdatedTimestamp": "2022-02-09T20:40:53.101335Z" + "joinKey": "user_id", + "name": "user", + "valueType": "INT64" } } ], "featureViews": [ { + "meta": {}, "spec": { - "name": "credit_history", - "entities": ["dob_ssn"], + "batchSource": { + "bigqueryOptions": { + "query": "select * from twttr-bq-featurestore-prod.video.engagement_counts_v1 where feature_name='a8rXgender'" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "advertiser", + "gender" + ], "features": [ { - "name": "credit_card_due", + "name": "impression_count_1h", + "valueType": "INT64" + }, + { + "name": "engagement_count_1h", + "valueType": "INT64" + }, + { + "name": "impression_count_1d", + "valueType": "INT64" + }, + { + "name": "engagement_count_1d", + "valueType": "INT64" + }, + { + "name": "impression_count_7d", + "valueType": "INT64" + }, + { + "name": "engagement_count_7d", "valueType": "INT64" + } + ], + "name": "a8rXgender_video_cnts", + "online": true, + "tags": { + "description": "DESCRIPTION_NEEDED_MARKER_FEAST", + "online_store": "MHRO", + "team": "REVSCI" + }, + "ttl": "3600s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "query": "select * from twttr-bq-featurestore-prod.video.streaming_engagement_counts_v2 where feature_name='a8rXgender'" }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "advertiser", + "gender" + ], + "features": [ { - "name": "mortgage_due", + "name": "impression_count_1h", "valueType": "INT64" }, { - "name": "student_loan_due", + "name": "engagement_count_1h", "valueType": "INT64" + } + ], + "name": "a8rXgender_video_cnts_stream", + "online": true, + "tags": { + "description": "DESCRIPTION_NEEDED_MARKER_FEAST", + "team": "REVSCI" + }, + "ttl": "300s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "query": "select * from twttr-bq-featurestore-prod.video.engagement_counts_v1 where feature_name='a8rXgeo'" }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "advertiser", + "geo" + ], + "features": [ { - "name": "vehicle_loan_due", + "name": "impression_count_1h", "valueType": "INT64" }, { - "name": "hard_pulls", + "name": "engagement_count_1h", "valueType": "INT64" }, { - "name": "missed_payments_2y", + "name": "impression_count_1d", "valueType": "INT64" }, { - "name": "missed_payments_1y", + "name": "engagement_count_1d", "valueType": "INT64" }, { - "name": "missed_payments_6m", + "name": "impression_count_7d", "valueType": "INT64" }, { - "name": "bankruptcies", + "name": "engagement_count_7d", "valueType": "INT64" } ], + "name": "a8rXgeo_video_cnts", + "online": true, "tags": { - "access_group": "feast-team@tecton.ai", - "experiments": "experiment-A", - "date_added": "2022-02-6" + "description": "DESCRIPTION_NEEDED_MARKER_FEAST", + "team": "REVSCI" }, - "ttl": "777600000s", + "ttl": "3600s" + } + }, + { + "meta": {}, + "spec": { "batchSource": { - "type": "BATCH_FILE", - "eventTimestampColumn": "event_timestamp", - "createdTimestampColumn": "created_timestamp", - "fileOptions": { - "fileUrl": "data/credit_history.parquet" + "bigqueryOptions": { + "query": "select * from twttr-bq-featurestore-prod.video.streaming_engagement_counts_v2 where feature_name='a8rXgeo'" }, - "dataSourceClassType": "feast.infra.offline_stores.file_source.FileSource", - "name": "credit_history", - "meta": { - "latestEventTimestamp": "2021-08-29T22:01:04.746575Z", - "earliestEventTimestamp": "2020-04-26T22:01:04.746575Z" - } + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "type": "BATCH_BIGQUERY" }, - "online": true - }, - "meta": { - "createdTimestamp": "2022-02-09T20:40:53.101460Z", - "lastUpdatedTimestamp": "2022-02-11T20:15:13.735432Z", - "materializationIntervals": [ - { - "startTime": "1997-06-20T20:41:14.456417Z", - "endTime": "2019-02-09T20:41:11Z" - }, + "entities": [ + "advertiser", + "geo" + ], + "features": [ { - "startTime": "2019-02-09T20:41:11Z", - "endTime": "2022-02-09T20:42:03Z" + "name": "impression_count_1h", + "valueType": "INT64" }, { - "startTime": "2022-02-09T20:42:03Z", - "endTime": "2022-02-11T00:18:02Z" + "name": "engagement_count_1h", + "valueType": "INT64" } - ] + ], + "name": "a8rXgeo_video_cnts_stream", + "online": true, + "tags": { + "description": "DESCRIPTION_NEEDED_MARKER_FEAST", + "team": "REVSCI" + }, + "ttl": "300s" } }, { + "meta": {}, "spec": { - "name": "zipcode_features", - "entities": ["zipcode"], + "batchSource": { + "bigqueryOptions": { + "query": "select * from twttr-bq-featurestore-prod.video.engagement_counts_v1 where feature_name='advertiser'" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "advertiser" + ], "features": [ { - "name": "city", - "valueType": "STRING" + "name": "impression_count_1h", + "valueType": "INT64" }, { - "name": "state", - "valueType": "STRING" + "name": "engagement_count_1h", + "valueType": "INT64" }, { - "name": "location_type", - "valueType": "STRING" + "name": "impression_count_1d", + "valueType": "INT64" }, { - "name": "tax_returns_filed", + "name": "engagement_count_1d", "valueType": "INT64" }, { - "name": "population", + "name": "impression_count_7d", "valueType": "INT64" }, { - "name": "total_wages", + "name": "engagement_count_7d", "valueType": "INT64" } ], + "name": "a8r_video_cnts", + "online": true, "tags": { - "experiments": "experiment-A,experiment-B,experiment-C", - "date_added": "2022-02-7", - "access_group": "feast-team@tecton.ai" + "description": "DESCRIPTION_NEEDED_MARKER_FEAST", + "online_store": "CRDB", + "team": "REVSCI" }, - "ttl": "315360000s", + "ttl": "3600s" + } + }, + { + "meta": {}, + "spec": { "batchSource": { - "type": "BATCH_FILE", - "eventTimestampColumn": "event_timestamp", - "createdTimestampColumn": "created_timestamp", - "fileOptions": { - "fileUrl": "data/zipcode_table.parquet" + "bigqueryOptions": { + "query": "select * from twttr-bq-featurestore-prod.video.streaming_engagement_counts_v2 where feature_name='advertiser'" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "advertiser" + ], + "features": [ + { + "name": "impression_count_1h", + "valueType": "INT64" }, - "dataSourceClassType": "feast.infra.offline_stores.file_source.FileSource", - "name": "zipcode", - "meta": { - "latestEventTimestamp": "2017-01-01T12:00:00Z", - "earliestEventTimestamp": "2017-01-01T12:00:00Z" + { + "name": "engagement_count_1h", + "valueType": "INT64" } + ], + "name": "a8r_video_cnts_stream", + "online": true, + "tags": { + "description": "DESCRIPTION_NEEDED_MARKER_FEAST", + "team": "REVSCI" }, - "online": true - }, - "meta": { - "createdTimestamp": "2022-02-11T20:12:50.182923Z", - "lastUpdatedTimestamp": "2022-02-11T20:15:21.790447Z" + "ttl": "300s" } }, { + "meta": {}, "spec": { - "name": "zipcode_money_features", - "entities": ["zipcode"], + "batchSource": { + "bigqueryOptions": { + "query": "select * from twttr-bq-featurestore-prod.video.engagement_counts_v1 where feature_name='account'" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "account" + ], "features": [ { - "name": "tax_returns_filed", + "name": "impression_count_1h", + "valueType": "INT64" + }, + { + "name": "engagement_count_1h", + "valueType": "INT64" + }, + { + "name": "impression_count_1d", + "valueType": "INT64" + }, + { + "name": "engagement_count_1d", + "valueType": "INT64" + }, + { + "name": "impression_count_7d", "valueType": "INT64" }, { - "name": "total_wages", + "name": "engagement_count_7d", "valueType": "INT64" } ], + "name": "account_video_cnts", + "online": true, "tags": { - "experiments": "experiment-A,experiment-B,experiment-C", - "access_group": "feast-team@tecton.ai", - "date_added": "2022-02-7", - "test_apple": "2022-02-7", - "test_banana": "2022-02-7", - "test_cherry": "2022-02-7", - "test_danish": "2022-02-7", - "test_eggplant": "2022-02-7", - "test_figs": "2022-02-7", - "test_grape": "2022-02-7", - "test_honey": "2022-02-7", - "test_ice": "2022-02-7", - "test_jackfruit": "2022-02-7", - "test_kiwi_fruit": "2022-02-7", - "test_lychee": "2022-02-7", - "test_mango": "2022-02-7", - "test_orange": "2022-02-7", - "test_peach": "2022-02-7", - "test_question": "2022-02-7", - "test_ruby": "2022-02-7", - "test_starfruit": "2022-02-7", - "test_tamarind": "2022-02-7" + "description": "DESCRIPTION_NEEDED_MARKER_FEAST", + "team": "REVSCI" }, - "ttl": "315360000s", + "ttl": "3600s" + } + }, + { + "meta": {}, + "spec": { "batchSource": { - "type": "BATCH_FILE", - "eventTimestampColumn": "event_timestamp", - "createdTimestampColumn": "created_timestamp", - "fileOptions": { - "fileUrl": "data/zipcode_table.parquet" + "bigqueryOptions": { + "query": "select * from twttr-bq-featurestore-prod.video.streaming_engagement_counts_v2 where feature_name='account'" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "account" + ], + "features": [ + { + "name": "impression_count_1h", + "valueType": "INT64" }, - "dataSourceClassType": "feast.infra.offline_stores.file_source.FileSource", - "name": "zipcode", - "meta": { - "latestEventTimestamp": "2017-01-01T12:00:00Z", - "earliestEventTimestamp": "2017-01-01T12:00:00Z" + { + "name": "engagement_count_1h", + "valueType": "INT64" } + ], + "name": "account_video_cnts_stream", + "online": true, + "tags": { + "description": "DESCRIPTION_NEEDED_MARKER_FEAST", + "team": "REVSCI" }, - "online": true - }, - "meta": { - "createdTimestamp": "2022-02-11T20:10:53.228047Z", - "lastUpdatedTimestamp": "2022-02-11T20:15:15.949101Z" + "ttl": "300s" } - } - ], - "featureServices": [ - { - "spec": { - "name": "credit_score_v1", - "features": [ - { - "featureViewName": "credit_history", - "featureColumns": [ - { - "name": "credit_card_due", - "valueType": "INT64" - }, - { - "name": "mortgage_due", - "valueType": "INT64" - }, - { - "name": "missed_payments_1y", - "valueType": "INT64" - } - ] - }, - { - "featureViewName": "zipcode_features", - "featureColumns": [ - { - "name": "city", - "valueType": "STRING" - }, - { - "name": "state", - "valueType": "STRING" - }, - { - "name": "location_type", - "valueType": "STRING" - }, - { - "name": "tax_returns_filed", - "valueType": "INT64" - }, - { - "name": "population", - "valueType": "INT64" - }, - { - "name": "total_wages", - "valueType": "INT64" - } - ] - } - ], - "tags": { - "owner": "tony@tecton.ai", - "stage": "staging" - }, - "description": "Credit scoring model" - }, - "meta": { - "createdTimestamp": "2022-02-11T20:12:50.186773Z" - } - }, - { - "spec": { - "name": "credit_score_v2", - "features": [ - { - "featureViewName": "credit_history", - "featureColumns": [ - { - "name": "credit_card_due", - "valueType": "INT64" - }, - { - "name": "mortgage_due", - "valueType": "INT64" - }, - { - "name": "missed_payments_1y", - "valueType": "INT64" - } - ] - }, - { - "featureViewName": "zipcode_features", - "featureColumns": [ - { - "name": "city", - "valueType": "STRING" - }, - { - "name": "state", - "valueType": "STRING" - }, - { - "name": "location_type", - "valueType": "STRING" - }, - { - "name": "tax_returns_filed", - "valueType": "INT64" - }, - { - "name": "population", - "valueType": "INT64" - }, - { - "name": "total_wages", - "valueType": "INT64" - } - ] - }, - { - "featureViewName": "transaction_request_fv", - "featureColumns": [ - { - "name": "transaction_amt", - "valueType": "INT64" - } - ] - } - ], - "tags": { - "stage": "prod", - "owner": "tony@tecton.ai" - }, - "description": "Credit scoring model" - }, - "meta": { - "createdTimestamp": "2022-02-11T20:12:50.185785Z" - } - }, - { - "spec": { - "name": "credit_score_v3", - "features": [ - { - "featureViewName": "credit_history", - "featureColumns": [ - { - "name": "credit_card_due", - "valueType": "INT64" - }, - { - "name": "mortgage_due", - "valueType": "INT64" - }, - { - "name": "missed_payments_1y", - "valueType": "INT64" - } - ] - }, - { - "featureViewName": "zipcode_features", - "featureColumns": [ - { - "name": "city", - "valueType": "STRING" - }, - { - "name": "state", - "valueType": "STRING" - }, - { - "name": "location_type", - "valueType": "STRING" - }, - { - "name": "tax_returns_filed", - "valueType": "INT64" - }, - { - "name": "population", - "valueType": "INT64" - }, - { - "name": "total_wages", - "valueType": "INT64" - } - ] - }, - { - "featureViewName": "transaction_gt_last_credit_card_due", - "featureColumns": [ - { - "name": "transaction_gt_last_credit_card_due", - "valueType": "BOOL" - } - ] - } - ], - "tags": { - "stage": "dev", - "owner": "tony@tecton.ai" - }, - "description": "Credit scoring model" - }, - "meta": { - "createdTimestamp": "2022-02-11T20:12:50.186367Z" - } - }, - { - "spec": { - "name": "zipcode_model", - "features": [ + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ { - "featureViewName": "zipcode_features", - "featureColumns": [ - { - "name": "city", - "valueType": "STRING" - }, - { - "name": "state", - "valueType": "STRING" - }, - { - "name": "location_type", - "valueType": "STRING" - }, - { - "name": "tax_returns_filed", - "valueType": "INT64" - }, - { - "name": "population", - "valueType": "INT64" - }, - { - "name": "total_wages", - "valueType": "INT64" - } - ] - } - ], - "tags": { - "stage": "dev", - "owner": "amanda@tecton.ai" - }, - "description": "Location model" - }, - "meta": { - "createdTimestamp": "2022-02-11T20:12:50.187069Z" - } - }, - { - "spec": { - "name": "zipcode_model_v2", - "features": [ - { - "featureViewName": "zipcode_money_features", - "featureColumns": [ - { - "name": "tax_returns_filed", - "valueType": "INT64" - }, - { - "name": "total_wages", - "valueType": "INT64" - } - ] + "name": "ads__advertiser_fatigue__type_METADATA_ONLY", + "valueType": "INT64" } ], + "name": "ads__advertiser_fatigue__type_METADATA_ONLY", + "online": true, "tags": { - "owner": "amanda@tecton.ai", - "stage": "dev" + "custom_attributes_map": "\n {\n \"name\": \"ads__advertiser_fatigue__type\",\n \"description\": \"Tracks the fatigue for a user seeing ads from the same advertiser, across two metrics (two keys): num_impressions, num_impressions_decayed. \",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"key: tf.string, value: tf.float32\",\n \"model feature type\": \"weighted categorical\"\n}\n ", + "description": "Tracks the fatigue for a user seeing ads from the same advertiser, across two metrics (two keys): num_impressions, num_impressions_decayed. ", + "team": "REVSCI-PAR" }, - "description": "Location model" - }, - "meta": { - "createdTimestamp": "2022-02-11T20:17:15.582561Z" - } - } - ], - "onDemandFeatureViews": [ - { - "spec": { - "name": "transaction_gt_last_credit_card_due", - "features": [ - { - "name": "transaction_gt_last_credit_card_due", - "valueType": "BOOL" - } - ], - "inputs": { - "transaction": { - "requestDataSource": { - "type": "REQUEST_SOURCE", - "requestDataOptions": { - "schema": { - "transaction_amt": "INT64" - } - }, - "name": "transaction" - } - }, - "credit_history": { - "featureViewProjection": { - "featureViewName": "credit_history", - "featureColumns": [ - { - "name": "credit_card_due", - "valueType": "INT64" - }, - { - "name": "mortgage_due", - "valueType": "INT64" - }, - { - "name": "student_loan_due", - "valueType": "INT64" - }, - { - "name": "vehicle_loan_due", - "valueType": "INT64" - }, - { - "name": "hard_pulls", - "valueType": "INT64" - }, - { - "name": "missed_payments_2y", - "valueType": "INT64" - }, - { - "name": "missed_payments_1y", - "valueType": "INT64" - }, - { - "name": "missed_payments_6m", - "valueType": "INT64" - }, - { - "name": "bankruptcies", - "valueType": "INT64" - } - ] - } - } - }, - "userDefinedFunction": { - "name": "transaction_gt_last_credit_card_due", - "body": "@on_demand_feature_view(\n inputs={\"credit_history\": credit_history, \"transaction\": input_request,},\n features=[\n Feature(name=\"transaction_gt_last_credit_card_due\", dtype=ValueType.BOOL),\n ],\n)\ndef transaction_gt_last_credit_card_due(inputs: pd.DataFrame) -> pd.DataFrame:\n df = pd.DataFrame()\n df[\"transaction_gt_last_credit_card_due\"] = (\n inputs[\"transaction_amt\"] > inputs[\"credit_card_due\"]\n )\n return df\n" - } - }, - "meta": { - "createdTimestamp": "2022-02-11T20:17:15.581514Z", - "lastUpdatedTimestamp": "2022-02-11T20:17:15.581514Z" + "ttl": "314496000s" } - } - ], - "requestFeatureViews": [ + }, { + "meta": {}, "spec": { - "name": "transaction_request_fv", - "requestDataSource": { - "type": "REQUEST_SOURCE", - "requestDataOptions": { - "schema": { - "transaction_amt": "INT64" - } + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" }, - "name": "transaction" - } - } - } - ], - "savedDatasets": [ - { - "spec": { - "name": "my_training_ds", - "features": [ - "credit_history:credit_card_due", - "credit_history:mortgage_due", - "credit_history:missed_payments_1y", - "zipcode_features:city", - "zipcode_features:state", - "zipcode_features:location_type", - "zipcode_features:tax_returns_filed", - "zipcode_features:population", - "zipcode_features:total_wages" - ], - "joinKeys": [ - "person_income", - "person_emp_length", - "created_timestamp", - "zipcode", - "person_home_ownership", - "loan_amnt", - "person_age", - "loan_int_rate", - "loan_status", - "loan_id", - "dob_ssn", - "loan_intent" - ], - "storage": { - "fileStorage": { - "fileFormat": { - "parquetFormat": {} - }, - "fileUrl": "my_training_ds.parquet" - } - }, - "featureService": { - "spec": { - "name": "credit_score_v1", - "features": [ - { - "featureViewName": "credit_history", - "featureColumns": [ - { - "name": "credit_card_due", - "valueType": "INT64" - }, - { - "name": "mortgage_due", - "valueType": "INT64" - }, - { - "name": "missed_payments_1y", - "valueType": "INT64" - } - ] - }, - { - "featureViewName": "zipcode_features", - "featureColumns": [ - { - "name": "city", - "valueType": "STRING" - }, - { - "name": "state", - "valueType": "STRING" - }, - { - "name": "location_type", - "valueType": "STRING" - }, - { - "name": "tax_returns_filed", - "valueType": "INT64" - }, - { - "name": "population", - "valueType": "INT64" - }, - { - "name": "total_wages", - "valueType": "INT64" - } - ] - } - ], - "tags": { - "stage": "staging", - "owner": "tony@tecton.ai" - }, - "description": "Credit scoring model" - }, - "meta": { - "createdTimestamp": "2022-02-09T20:40:53.103078Z" - } - }, - "profile": "{\"meta\": {\"great_expectations_version\": \"0.14.4\"}, \"expectations\": [{\"meta\": {}, \"kwargs\": {\"column\": \"credit_card_due\", \"min_value\": 0, \"mostly\": 0.99}, \"expectation_type\": \"expect_column_values_to_be_between\"}, {\"meta\": {}, \"kwargs\": {\"column\": \"missed_payments_1y\", \"min_value\": 0, \"max_value\": 5, \"mostly\": 0.99}, \"expectation_type\": \"expect_column_values_to_be_between\"}], \"data_asset_type\": \"Dataset\", \"expectation_suite_name\": \"default\", \"ge_cloud_id\": null}" - }, - "meta": { - "createdTimestamp": "2022-02-09T20:44:03.377806Z", - "minEventTimestamp": "2020-08-25T20:34:41.361Z", - "maxEventTimestamp": "2021-08-25T20:34:41.361Z" + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "ads__app_graph__v3__installed_app_id_METADATA_ONLY", + "valueType": "INT64" + } + ], + "name": "ads__app_graph__v3__installed_app_id_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"ads__app_graph__v3__installed_app_id\",\n \"description\": \"These features describes the set of installed apps on a device. They are sparse features that holds a list of all the app ids on the device. eg: [com.foursquare, com.uber,...]\",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"tf.string\",\n \"model feature type\": \"categorical\"\n}\n ", + "description": "These features describes the set of installed apps on a device. They are sparse features that holds a list of all the app ids on the device. eg: [com.foursquare, com.uber,...]", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" } - } - ], - "infra": [ + }, { - "infraObjects": [ - { - "infraObjectClassType": "feast.infra.online_stores.sqlite.SqliteTable", - "sqliteTable": { - "path": "/Users/dannychiao/GitHub/feast-ui/feature_repo/data/online.db", - "name": "credit_scoring_aws_credit_history" + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "ads__appcounting__feature__rawcount_METADATA_ONLY", + "valueType": "INT64" } + ], + "name": "ads__appcounting__feature__rawcount_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"ads__appcounting__feature__rawcount\",\n \"description\": \"These features consume data from MACT pipeline and JSi to calculate different counts keyed by the app id. \n\n\",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"key: tf.string, value: tf.float32\",\n \"model feature type\": \"weighted categorical\"\n}\n ", + "description": "These features consume data from MACT pipeline and JSi to calculate different counts keyed by the app id. \n\n", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" }, - { - "infraObjectClassType": "feast.infra.online_stores.sqlite.SqliteTable", - "sqliteTable": { - "path": "/Users/dannychiao/GitHub/feast-ui/feature_repo/data/online.db", - "name": "credit_scoring_aws_zipcode_features" + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "ads__counting__v2__pattern__duration__engagement_METADATA_ONLY", + "valueType": "INT64" } + ], + "name": "ads__counting__v2__pattern__duration__engagement_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"ads__counting__v2__pattern__duration__engagement\",\n \"description\": \"These feature track, for the user and the ad, the number of engagements (Monentizable, Positive Non-Monentizable, Neg and None) based on patterns (such as duation for DISPLAY_LOCATION, USER_ID, ADVERTISER_ID, PROMOTED_TWEET_ID) for windows = {Yesterday, Last Week, Last Two Weeks, Last Three Weeks, Last Four Weeks}.\",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"key: tf.string, value: tf.float32\",\n \"model feature type\": \"weighted categorical\"\n}\n ", + "description": "These feature track, for the user and the ad, the number of engagements (Monentizable, Positive Non-Monentizable, Neg and None) based on patterns (such as duation for DISPLAY_LOCATION, USER_ID, ADVERTISER_ID, PROMOTED_TWEET_ID) for windows = {Yesterday, Last Week, Last Two Weeks, Last Three Weeks, Last Four Weeks}.", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" }, - { - "infraObjectClassType": "feast.infra.online_stores.sqlite.SqliteTable", - "sqliteTable": { - "path": "/Users/dannychiao/GitHub/feast-ui/feature_repo/data/online.db", - "name": "credit_scoring_aws_zipcode_money_features" + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "ads__device_connection_type__type_METADATA_ONLY", + "valueType": "INT64" } - } - ] - } - ] + ], + "name": "ads__device_connection_type__type_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"ads__device_connection_type__type\",\n \"description\": \"Device connection type extracted by UserAgent. Values: WIFI, NOT_WIFI, UNKNOWN. Raw feature is key value pair and the derived feature connection_type is used as categorical feature.\",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"tf.string\",\n \"model feature type\": \"categorical\"\n}\n ", + "description": "Device connection type extracted by UserAgent. Values: WIFI, NOT_WIFI, UNKNOWN. Raw feature is key value pair and the derived feature connection_type is used as categorical feature.", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "ads__gender_METADATA_ONLY", + "valueType": "INT64" + } + ], + "name": "ads__gender_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"ads__gender\",\n \"description\": \"This data comes from user provided gender values. We have 3 values in the data as 1, 2 and 3. They represent male, female and (neither 1 or 2) add your gender. This is usually not the same as InferredGender which is predicted (from the the age and gender models) and used for targeting.\n\nFrom the Twitter website - If you haven\u2019t added a gender, this is the one most strongly associated with your account based on your profile and activity\",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"tf.string\",\n \"model feature type\": \"categorical\"\n}\n ", + "description": "This data comes from user provided gender values. We have 3 values in the data as 1, 2 and 3. They represent male, female and (neither 1 or 2) add your gender. This is usually not the same as InferredGender which is predicted (from the the age and gender models) and used for targeting.\n\nFrom the Twitter website - If you haven\u2019t added a gender, this is the one most strongly associated with your account based on your profile and activity", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "ads__handle_scores_METADATA_ONLY", + "valueType": "INT64" + } + ], + "name": "ads__handle_scores_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"ads__handle_scores\",\n \"description\": \"This feature is only set when the lineItem is matched in handle targeting.\",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"key: tf.string, value: tf.float32\",\n \"model feature type\": \"weighted categorical\"\n}\n ", + "description": "This feature is only set when the lineItem is matched in handle targeting.", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "ads__iab_categories_METADATA_ONLY", + "valueType": "INT64" + } + ], + "name": "ads__iab_categories_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"ads__iab_categories\",\n \"description\": \"An Interactive Advertising Bureau (IAB) category selection is required to run website traffic campaigns. This is used by our supply partners within the Twitter Audience Platform (TAP) to determine which ads will show on their sites. This does not affect targeting. Choosing multiple categories will limit scale. Mopub IAB categories https://developers.mopub.com/publishers/ui/iab-category-blocking/ \",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"tf.string\",\n \"model feature type\": \"categorical\"\n}\n ", + "description": "An Interactive Advertising Bureau (IAB) category selection is required to run website traffic campaigns. This is used by our supply partners within the Twitter Audience Platform (TAP) to determine which ads will show on their sites. This does not affect targeting. Choosing multiple categories will limit scale. Mopub IAB categories https://developers.mopub.com/publishers/ui/iab-category-blocking/ ", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "ads__interest_targeting__interest_METADATA_ONLY", + "valueType": "INT64" + } + ], + "name": "ads__interest_targeting__interest_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"ads__interest_targeting__interest\",\n \"description\": \"Mapping of describing the user-ad match in terms of the users affinity to each interest_id in the mapping. For example\n\n11003: 0.2673\n\n20043: 0.8799\n\n...\n\nall_matched_interest: 0.5234\n\nThese come solely from the ad candidate: rankingAdCandidate -> targetingContext -> matchedCriteria -> interestTargetingDetails -> (interestId, totalSimilarityScore)\",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"key: tf.string, value: tf.float32\",\n \"model feature type\": \"weighted categorical\"\n}\n ", + "description": "Mapping of describing the user-ad match in terms of the users affinity to each interest_id in the mapping. For example\n\n11003: 0.2673\n\n20043: 0.8799\n\n...\n\nall_matched_interest: 0.5234\n\nThese come solely from the ad candidate: rankingAdCandidate -> targetingContext -> matchedCriteria -> interestTargetingDetails -> (interestId, totalSimilarityScore)", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "ads__mact_conversion_session_record_events__device_age_days_METADATA_ONLY", + "valueType": "INT64" + } + ], + "name": "ads__mact_conversion_session_record_events__device_age_days_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"ads__mact_conversion_session_record_events__device_age_days\",\n \"description\": \"Days since the oldest timestamp in the conversion session record, proxy for the age of the device.\",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"tf.float32\",\n \"model feature type\": \"continous\"\n}\n ", + "description": "Days since the oldest timestamp in the conversion session record, proxy for the age of the device.", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "ads__mact_conversion_session_record_events__installed_apps_METADATA_ONLY", + "valueType": "INT64" + } + ], + "name": "ads__mact_conversion_session_record_events__installed_apps_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"ads__mact_conversion_session_record_events__installed_apps\",\n \"description\": \"These features describes the set of installed apps on a device. They are sparse features that holds a list of all the app ids on the device. eg: [com.foursquare, com.uber,...]\",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"tf.string\",\n \"model feature type\": \"categorical\"\n}\n ", + "description": "These features describes the set of installed apps on a device. They are sparse features that holds a list of all the app ids on the device. eg: [com.foursquare, com.uber,...]", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "ads__mact_conversion_session_record_events__installs_in_last_30_day_METADATA_ONLY", + "valueType": "INT64" + } + ], + "name": "ads__mact_conversion_session_record_events__installs_in_last_30_day_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"ads__mact_conversion_session_record_events__installs_in_last_30_day\",\n \"description\": \"These features tracks the number of installs on the device, either in the last X days (mact based features) or at the time of the lookup (app_graph feature).\",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"tf.float32\",\n \"model feature type\": \"continous\"\n}\n ", + "description": "These features tracks the number of installs on the device, either in the last X days (mact based features) or at the time of the lookup (app_graph feature).", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "ads__mact_conversion_session_record_events__installs_in_last_day_METADATA_ONLY", + "valueType": "INT64" + } + ], + "name": "ads__mact_conversion_session_record_events__installs_in_last_day_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"ads__mact_conversion_session_record_events__installs_in_last_day\",\n \"description\": \"These features tracks the number of installs on the device, either in the last X days (mact based features) or at the time of the lookup (app_graph feature).\",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"tf.float32\",\n \"model feature type\": \"continous\"\n}\n ", + "description": "These features tracks the number of installs on the device, either in the last X days (mact based features) or at the time of the lookup (app_graph feature).", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "ads__mact_conversion_session_record_events__minutes_since_last_install_METADATA_ONLY", + "valueType": "INT64" + } + ], + "name": "ads__mact_conversion_session_record_events__minutes_since_last_install_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"ads__mact_conversion_session_record_events__minutes_since_last_install\",\n \"description\": \"This continuous features tracks the number of minutes since the last installed app was recorded for the device.\",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"tf.float32\",\n \"model feature type\": \"continous\"\n}\n ", + "description": "This continuous features tracks the number of minutes since the last installed app was recorded for the device.", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "ads__mobile_conversion_app_id__half_life_METADATA_ONLY", + "valueType": "INT64" + } + ], + "name": "ads__mobile_conversion_app_id__half_life_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"ads__mobile_conversion_app_id__half_life\",\n \"description\": \"These are device-level features which track the devices\u2019 usage of different apps in the form of several half-life decayed counts. This is a doubly-nested feature, of the form {half_life: {app_id: decayed_count}}. \",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"key: tf.string, value: tf.float32\",\n \"model feature type\": \"weighted categorical\"\n}\n ", + "description": "These are device-level features which track the devices\u2019 usage of different apps in the form of several half-life decayed counts. This is a doubly-nested feature, of the form {half_life: {app_id: decayed_count}}. ", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "ads__num_targeting_criteria_matches__detail_METADATA_ONLY", + "valueType": "INT64" + } + ], + "name": "ads__num_targeting_criteria_matches__detail_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"ads__num_targeting_criteria_matches__detail\",\n \"description\": \"Mapping of describing the number of matches between the user and the ad for a variety of targeting criteria. For example\n\nhandleSimilarityTargetingDetails: count1\n\nageTargetingDetails: count2\",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"key: tf.string, value: tf.float32\",\n \"model feature type\": \"weighted categorical\"\n}\n ", + "description": "Mapping of describing the number of matches between the user and the ad for a variety of targeting criteria. For example\n\nhandleSimilarityTargetingDetails: count1\n\nageTargetingDetails: count2", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "ads__past_advertiser_ids_finegrained__event_with_engagement_type_METADATA_ONLY", + "valueType": "INT64" + } + ], + "name": "ads__past_advertiser_ids_finegrained__event_with_engagement_type_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"ads__past_advertiser_ids_finegrained__event_with_engagement_type\",\n \"description\": \"This is a list of advertisers IDs that a particular user has engaged with by engagement category. Categories are positive, neutral, negative, and performance. The actual features used are ads__past_advertiser_ids_finegrained__event_with_engagement_type__ENGAGEMENT_POSITIVE, ads__past_advertiser_ids_finegrained__event_with_engagement_type__ENGAGEMENT_NEGATIVE and ads__past_advertiser_ids_finegrained__event_with_engagement_type__ENGAGEMENT_PERFORMANCE.\",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"tf.string\",\n \"model feature type\": \"categorical\"\n}\n ", + "description": "This is a list of advertisers IDs that a particular user has engaged with by engagement category. Categories are positive, neutral, negative, and performance. The actual features used are ads__past_advertiser_ids_finegrained__event_with_engagement_type__ENGAGEMENT_POSITIVE, ads__past_advertiser_ids_finegrained__event_with_engagement_type__ENGAGEMENT_NEGATIVE and ads__past_advertiser_ids_finegrained__event_with_engagement_type__ENGAGEMENT_PERFORMANCE.", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "ads__simclustersv2__interested_in__dot_product__fav_score_METADATA_ONLY", + "valueType": "INT64" + } + ], + "name": "ads__simclustersv2__interested_in__dot_product__fav_score_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"ads__simclustersv2__interested_in__dot_product__fav_score\",\n \"description\": \"These features provide the similarity between user and advertiser follow/fav embeddings given by SimClustersV2.\",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"tf.float32\",\n \"model feature type\": \"continous\"\n}\n ", + "description": "These features provide the similarity between user and advertiser follow/fav embeddings given by SimClustersV2.", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "ads__simclustersv2__interested_in__dot_product__follow_score_METADATA_ONLY", + "valueType": "INT64" + } + ], + "name": "ads__simclustersv2__interested_in__dot_product__follow_score_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"ads__simclustersv2__interested_in__dot_product__follow_score\",\n \"description\": \"\",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"tf.float32\",\n \"model feature type\": \"continous\"\n}\n ", + "description": "", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "ads__tweet_content__display__has_url_METADATA_ONLY", + "valueType": "INT64" + } + ], + "name": "ads__tweet_content__display__has_url_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"ads__tweet_content__display__has_url\",\n \"description\": \"Boolean flag indicating whether the creative includes a URL.\",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"tf.intX\",\n \"model feature type\": \"categorical (binary)\"\n}\n ", + "description": "Boolean flag indicating whether the creative includes a URL.", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "ads__tweet_content__display__text_length_METADATA_ONLY", + "valueType": "INT64" + } + ], + "name": "ads__tweet_content__display__text_length_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"ads__tweet_content__display__text_length\",\n \"description\": \"Tracks the character length of the text field of the tweet.\",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"tf.float32\",\n \"model feature type\": \"continous\"\n}\n ", + "description": "Tracks the character length of the text field of the tweet.", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "ads__tweet_content__has_app_deeplink_METADATA_ONLY", + "valueType": "INT64" + } + ], + "name": "ads__tweet_content__has_app_deeplink_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"ads__tweet_content__has_app_deeplink\",\n \"description\": \"Indicator of whether or not the tweet contains an app deep link, ie a link directly into the app (as opposed to the app store).\",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"tf.intX\",\n \"model feature type\": \"categorical (binary)\"\n}\n ", + "description": "Indicator of whether or not the tweet contains an app deep link, ie a link directly into the app (as opposed to the app store).", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "ads__tweet_fatigue__duration_METADATA_ONLY", + "valueType": "INT64" + } + ], + "name": "ads__tweet_fatigue__duration_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"ads__tweet_fatigue__duration\",\n \"description\": \"Tracks fatigue for a user seeing the same promoted tweet, across a time windows of: 1HOUR, 2HOUR, 4HOUR 8HOUR 16HOUR, 1DAY, ..., 7DAY\",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"key: tf.string, value: tf.float32\",\n \"model feature type\": \"weighted categorical\"\n}\n ", + "description": "Tracks fatigue for a user seeing the same promoted tweet, across a time windows of: 1HOUR, 2HOUR, 4HOUR 8HOUR 16HOUR, 1DAY, ..., 7DAY", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "ads__user__allows_personalization_METADATA_ONLY", + "valueType": "INT64" + } + ], + "name": "ads__user__allows_personalization_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"ads__user__allows_personalization\",\n \"description\": \"Binary feature, ads personalization is a setting specific to Twitter app (nothing to do with OS makers Apple and Google): whether twitter can use 3rd party data to personalize ads served to you\",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"tf.string\",\n \"model feature type\": \"categorical\"\n}\n ", + "description": "Binary feature, ads personalization is a setting specific to Twitter app (nothing to do with OS makers Apple and Google): whether twitter can use 3rd party data to personalize ads served to you", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "ads__user__client__country_code_METADATA_ONLY", + "valueType": "INT64" + } + ], + "name": "ads__user__client__country_code_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"ads__user__client__country_code\",\n \"description\": \"This feature tracks the contry code in the ad request.\",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"tf.string\",\n \"model feature type\": \"categorical\"\n}\n ", + "description": "This feature tracks the contry code in the ad request.", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "ads__user__is_gdpr_country_METADATA_ONLY", + "valueType": "INT64" + } + ], + "name": "ads__user__is_gdpr_country_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"ads__user__is_gdpr_country\",\n \"description\": \"This feature tracks if the user is from a GDPR Country or not.\",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"tf.string\",\n \"model feature type\": \"categorical\"\n}\n ", + "description": "This feature tracks if the user is from a GDPR Country or not.", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "ads__user_language_METADATA_ONLY", + "valueType": "INT64" + } + ], + "name": "ads__user_language_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"ads__user_language\",\n \"description\": \"List of languages corresponding to the user and provided by the user. For example ['ja', 'en'] or [th, pt, en, fr, tr]\",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"tf.string\",\n \"model feature type\": \"categorical\"\n}\n ", + "description": "List of languages corresponding to the user and provided by the user. For example ['ja', 'en'] or [th, pt, en, fr, tr]", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "query": "select * from twttr-bq-featurestore-prod.map.install_counts_v1 where feature_name='appXgeo'" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "app", + "geo" + ], + "features": [ + { + "name": "click_count_1h", + "valueType": "INT64" + }, + { + "name": "click_count_8h", + "valueType": "INT64" + }, + { + "name": "click_count_1d", + "valueType": "INT64" + }, + { + "name": "click_count_2d", + "valueType": "INT64" + }, + { + "name": "click_count_7d", + "valueType": "INT64" + }, + { + "name": "install_count_1h", + "valueType": "INT64" + }, + { + "name": "install_count_8h", + "valueType": "INT64" + }, + { + "name": "install_count_1d", + "valueType": "INT64" + }, + { + "name": "install_count_2d", + "valueType": "INT64" + }, + { + "name": "install_count_7d", + "valueType": "INT64" + } + ], + "name": "appXgeo_install_cnts", + "online": true, + "tags": { + "description": "DESCRIPTION_NEEDED_MARKER_FEAST", + "team": "REVSCI" + }, + "ttl": "3600s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "query": "select * from twttr-bq-featurestore-prod.map.install_counts_v1 where feature_name='appXli_obj'" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "app", + "li_obj" + ], + "features": [ + { + "name": "click_count_1h", + "valueType": "INT64" + }, + { + "name": "click_count_8h", + "valueType": "INT64" + }, + { + "name": "click_count_1d", + "valueType": "INT64" + }, + { + "name": "click_count_2d", + "valueType": "INT64" + }, + { + "name": "click_count_7d", + "valueType": "INT64" + }, + { + "name": "install_count_1h", + "valueType": "INT64" + }, + { + "name": "install_count_8h", + "valueType": "INT64" + }, + { + "name": "install_count_1d", + "valueType": "INT64" + }, + { + "name": "install_count_2d", + "valueType": "INT64" + }, + { + "name": "install_count_7d", + "valueType": "INT64" + } + ], + "name": "appXli_obj_install_cnts", + "online": true, + "tags": { + "description": "DESCRIPTION_NEEDED_MARKER_FEAST", + "team": "REVSCI" + }, + "ttl": "3600s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "query": "select * from twttr-bq-featurestore-prod.map.install_counts_v1 where feature_name='appXli'" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "app", + "lineitem" + ], + "features": [ + { + "name": "click_count_1h", + "valueType": "INT64" + }, + { + "name": "click_count_1d", + "valueType": "INT64" + }, + { + "name": "click_count_7d", + "valueType": "INT64" + }, + { + "name": "click_count_30d", + "valueType": "INT64" + }, + { + "name": "install_count_1h", + "valueType": "INT64" + }, + { + "name": "install_count_1d", + "valueType": "INT64" + }, + { + "name": "install_count_7d", + "valueType": "INT64" + }, + { + "name": "install_count_30d", + "valueType": "INT64" + } + ], + "name": "appXli_skan_cnts", + "online": true, + "tags": { + "description": "DESCRIPTION_NEEDED_MARKER_FEAST", + "team": "REVSCI" + }, + "ttl": "3600s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "query": "select * from twttr-bq-featurestore-prod.map.install_counts_v1 where feature_name='appXtgt_cr'" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "app", + "tgt_cr" + ], + "features": [ + { + "name": "click_count_1h", + "valueType": "INT64" + }, + { + "name": "click_count_8h", + "valueType": "INT64" + }, + { + "name": "click_count_1d", + "valueType": "INT64" + }, + { + "name": "click_count_2d", + "valueType": "INT64" + }, + { + "name": "click_count_7d", + "valueType": "INT64" + }, + { + "name": "install_count_1h", + "valueType": "INT64" + }, + { + "name": "install_count_8h", + "valueType": "INT64" + }, + { + "name": "install_count_1d", + "valueType": "INT64" + }, + { + "name": "install_count_2d", + "valueType": "INT64" + }, + { + "name": "install_count_7d", + "valueType": "INT64" + } + ], + "name": "appXtgt_cr_install_cnts", + "online": true, + "tags": { + "description": "DESCRIPTION_NEEDED_MARKER_FEAST", + "team": "REVSCI" + }, + "ttl": "3600s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "query": "select * from twttr-bq-featurestore-prod.map.install_counts_v1 where feature_name='app'" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "app" + ], + "features": [ + { + "name": "click_count_1h", + "valueType": "INT64" + }, + { + "name": "click_count_8h", + "valueType": "INT64" + }, + { + "name": "click_count_1d", + "valueType": "INT64" + }, + { + "name": "click_count_2d", + "valueType": "INT64" + }, + { + "name": "click_count_7d", + "valueType": "INT64" + }, + { + "name": "install_count_1h", + "valueType": "INT64" + }, + { + "name": "install_count_8h", + "valueType": "INT64" + }, + { + "name": "install_count_1d", + "valueType": "INT64" + }, + { + "name": "install_count_2d", + "valueType": "INT64" + }, + { + "name": "install_count_7d", + "valueType": "INT64" + } + ], + "name": "app_install_cnts", + "online": true, + "tags": { + "description": "DESCRIPTION_NEEDED_MARKER_FEAST", + "team": "REVSCI" + }, + "ttl": "3600s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "query": "select * from twttr-bq-featurestore-prod.map.install_counts_v1 where feature_name='app'" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "app" + ], + "features": [ + { + "name": "click_count_1h", + "valueType": "INT64" + }, + { + "name": "click_count_1d", + "valueType": "INT64" + }, + { + "name": "click_count_7d", + "valueType": "INT64" + }, + { + "name": "click_count_30d", + "valueType": "INT64" + }, + { + "name": "install_count_1h", + "valueType": "INT64" + }, + { + "name": "install_count_1d", + "valueType": "INT64" + }, + { + "name": "install_count_7d", + "valueType": "INT64" + }, + { + "name": "install_count_30d", + "valueType": "INT64" + } + ], + "name": "app_skan_cnts", + "online": true, + "tags": { + "description": "DESCRIPTION_NEEDED_MARKER_FEAST", + "team": "REVSCI" + }, + "ttl": "3600s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-featurestore-prod.map.apphistory" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-featurestore-prod.map.apphistory", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "hashed_device" + ], + "features": [ + { + "name": "app_history_v_1__device_age_seconds", + "valueType": "INT64" + }, + { + "name": "app_history_v_1__time_since_last_event_seconds", + "valueType": "INT64" + } + ], + "name": "apphistory", + "online": true, + "tags": { + "description": "Features that represent the set of mobile apps that have been observed on a particular device, as well as their associated categories, and developers. See http://go/safetygraph", + "fs10_dataset": "https://cortex.twitter.biz/datasets/com.twitter.ml.featurestore.catalog.datasets.map.AppHistoryFeatures", + "prepend_strategy": "dataset", + "team": "MLFM" + }, + "ttl": "1814400s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "author__core__tweep_cred__continuous_METADATA_ONLY", + "valueType": "INT64" + } + ], + "name": "author__core__tweep_cred__continuous_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"author__core__tweep_cred__continuous\",\n \"description\": \"TweepCred measures influence of tweeps. In other words, it is a ranking of Twitter accounts. Other internal names of Tweepcred are \"User Reputation\" or just \"reputation\"\",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"tf.float32\",\n \"model feature type\": \"continous\"\n}\n ", + "description": "TweepCred measures influence of tweeps. In other words, it is a ranking of Twitter accounts. Other internal names of Tweepcred are \"User Reputation\" or just \"reputation", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-featurestore-prod.timelines.author_features_entity" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-featurestore-prod.timelines.author_features_entity", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "user" + ], + "features": [ + { + "name": "user__follower_count", + "valueType": "INT64" + }, + { + "name": "user__user_state", + "valueType": "INT64" + }, + { + "name": "user_engagement_counts__engagement_days_30_day_count", + "valueType": "INT64" + }, + { + "name": "user_engagement_counts__engagements_30_day_count", + "valueType": "INT64" + }, + { + "name": "user__personalized_boosting_factor_as_producer", + "valueType": "DOUBLE" + } + ], + "name": "author_features_entity", + "online": true, + "tags": { + "description": "A set of features generated, served, and used by Timelines Quality to add value to authors, but are generally useful for any user. These features are not considered core because Social Graph Service provides similar ones which are more complete, correct (updated in realtime), and has higher throughput capabilities. Consult with TQ if you intend to use these features and have high QPS requirements. Note that these features are available in the same dataset as original_author_aggregates features in FS1.0, but in a different table in FS2.0", + "fs10_dataset": "https://cortex.twitter.biz/datasets/com.twitter.ml.featurestore.catalog.datasets.timelines.AuthorFeaturesEntityDataset", + "prepend_strategy": "dataset", + "team": "MLFM" + }, + "ttl": "86400s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "query": "select * from twttr-bq-featurestore-prod.video.engagement_counts_v1 where feature_name='campaign'" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "campaign" + ], + "features": [ + { + "name": "impression_count_1h", + "valueType": "INT64" + }, + { + "name": "engagement_count_1h", + "valueType": "INT64" + }, + { + "name": "impression_count_1d", + "valueType": "INT64" + }, + { + "name": "engagement_count_1d", + "valueType": "INT64" + }, + { + "name": "impression_count_7d", + "valueType": "INT64" + }, + { + "name": "engagement_count_7d", + "valueType": "INT64" + } + ], + "name": "campaign_video_cnts", + "online": true, + "tags": { + "description": "DESCRIPTION_NEEDED_MARKER_FEAST", + "team": "REVSCI" + }, + "ttl": "3600s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "query": "select * from twttr-bq-featurestore-prod.video.streaming_engagement_counts_v2 where feature_name='campaign'" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "campaign" + ], + "features": [ + { + "name": "impression_count_1h", + "valueType": "INT64" + }, + { + "name": "engagement_count_1h", + "valueType": "INT64" + } + ], + "name": "campaign_video_cnts_stream", + "online": true, + "tags": { + "description": "DESCRIPTION_NEEDED_MARKER_FEAST", + "team": "REVSCI" + }, + "ttl": "300s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-featurestore-prod.adstargeting.coarse_prediction_age_ranges" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-featurestore-prod.adstargeting.coarse_prediction_age_ranges", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "user" + ], + "features": [ + { + "name": "coarse_prediction_age_ranges__predicted_score_for_age_range_13", + "valueType": "DOUBLE" + }, + { + "name": "coarse_prediction_age_ranges__predicted_score_for_age_range_13to_19", + "valueType": "DOUBLE" + }, + { + "name": "coarse_prediction_age_ranges__predicted_score_for_age_range_13to_24", + "valueType": "DOUBLE" + }, + { + "name": "coarse_prediction_age_ranges__predicted_score_for_age_range_13to_29", + "valueType": "DOUBLE" + }, + { + "name": "coarse_prediction_age_ranges__predicted_score_for_age_range_13to_34", + "valueType": "DOUBLE" + }, + { + "name": "coarse_prediction_age_ranges__predicted_score_for_age_range_13to_39", + "valueType": "DOUBLE" + }, + { + "name": "coarse_prediction_age_ranges__predicted_score_for_age_range_13to_49", + "valueType": "DOUBLE" + }, + { + "name": "coarse_prediction_age_ranges__predicted_score_for_age_range_13to_54", + "valueType": "DOUBLE" + }, + { + "name": "coarse_prediction_age_ranges__predicted_score_for_age_range_18", + "valueType": "DOUBLE" + }, + { + "name": "coarse_prediction_age_ranges__predicted_score_for_age_range_18to_24", + "valueType": "DOUBLE" + }, + { + "name": "coarse_prediction_age_ranges__predicted_score_for_age_range_18to_34", + "valueType": "DOUBLE" + }, + { + "name": "coarse_prediction_age_ranges__predicted_score_for_age_range_18to_49", + "valueType": "DOUBLE" + }, + { + "name": "coarse_prediction_age_ranges__predicted_score_for_age_range_18to_54", + "valueType": "DOUBLE" + }, + { + "name": "coarse_prediction_age_ranges__predicted_score_for_age_range_20", + "valueType": "DOUBLE" + }, + { + "name": "coarse_prediction_age_ranges__predicted_score_for_age_range_20to_29", + "valueType": "DOUBLE" + }, + { + "name": "coarse_prediction_age_ranges__predicted_score_for_age_range_20to_34", + "valueType": "DOUBLE" + }, + { + "name": "coarse_prediction_age_ranges__predicted_score_for_age_range_20to_39", + "valueType": "DOUBLE" + }, + { + "name": "coarse_prediction_age_ranges__predicted_score_for_age_range_20to_49", + "valueType": "DOUBLE" + }, + { + "name": "coarse_prediction_age_ranges__predicted_score_for_age_range_21", + "valueType": "DOUBLE" + }, + { + "name": "coarse_prediction_age_ranges__predicted_score_for_age_range_21to_34", + "valueType": "DOUBLE" + }, + { + "name": "coarse_prediction_age_ranges__predicted_score_for_age_range_21to_49", + "valueType": "DOUBLE" + }, + { + "name": "coarse_prediction_age_ranges__predicted_score_for_age_range_21to_54", + "valueType": "DOUBLE" + }, + { + "name": "coarse_prediction_age_ranges__predicted_score_for_age_range_25", + "valueType": "DOUBLE" + }, + { + "name": "coarse_prediction_age_ranges__predicted_score_for_age_range_25to_49", + "valueType": "DOUBLE" + }, + { + "name": "coarse_prediction_age_ranges__predicted_score_for_age_range_25to_54", + "valueType": "DOUBLE" + }, + { + "name": "coarse_prediction_age_ranges__predicted_score_for_age_range_30", + "valueType": "DOUBLE" + }, + { + "name": "coarse_prediction_age_ranges__predicted_score_for_age_range_30to_39", + "valueType": "DOUBLE" + }, + { + "name": "coarse_prediction_age_ranges__predicted_score_for_age_range_30to_49", + "valueType": "DOUBLE" + }, + { + "name": "coarse_prediction_age_ranges__predicted_score_for_age_range_35", + "valueType": "DOUBLE" + }, + { + "name": "coarse_prediction_age_ranges__predicted_score_for_age_range_35to_49", + "valueType": "DOUBLE" + }, + { + "name": "coarse_prediction_age_ranges__predicted_score_for_age_range_35to_54", + "valueType": "DOUBLE" + }, + { + "name": "coarse_prediction_age_ranges__predicted_score_for_age_range_40", + "valueType": "DOUBLE" + }, + { + "name": "coarse_prediction_age_ranges__predicted_score_for_age_range_40to_49", + "valueType": "DOUBLE" + }, + { + "name": "coarse_prediction_age_ranges__predicted_score_for_age_range_50", + "valueType": "DOUBLE" + } + ], + "name": "coarse_prediction_age_ranges", + "online": true, + "tags": { + "description": "Set of scores that represent the likelihood a user's age belongs to a given age range.", + "fs10_dataset": "https://cortex.twitter.biz/datasets/com.twitter.ml.featurestore.catalog.datasets.adstargeting.CoarsePredictionEntityDataset", + "prepend_strategy": "dataset", + "team": "MLFM" + }, + "ttl": "604800s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-featurestore-prod.customer_journey.country_candidate_aggregates_v1" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-featurestore-prod.customer_journey.country_candidate_aggregates_v1", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "candidate", + "country_code" + ], + "features": [ + { + "name": "back_imp_sum_1d", + "valueType": "INT64" + }, + { + "name": "back_imp_sum_7d", + "valueType": "INT64" + }, + { + "name": "follow_sum_1d", + "valueType": "INT64" + }, + { + "name": "follow_sum_7d", + "valueType": "INT64" + }, + { + "name": "qual_follow_v2_sum_1d", + "valueType": "INT64" + }, + { + "name": "qual_follow_v2_sum_7d", + "valueType": "INT64" + }, + { + "name": "forw_engage_sum_1d", + "valueType": "INT64" + }, + { + "name": "forw_engage_sum_7d", + "valueType": "INT64" + }, + { + "name": "forw_fav_sum_1d", + "valueType": "DOUBLE" + }, + { + "name": "forw_fav_sum_7d", + "valueType": "DOUBLE" + }, + { + "name": "forw_imp_sum_1d", + "valueType": "DOUBLE" + }, + { + "name": "forw_imp_sum_7d", + "valueType": "DOUBLE" + }, + { + "name": "forw_reply_sum_1d", + "valueType": "DOUBLE" + }, + { + "name": "forw_reply_sum_7d", + "valueType": "DOUBLE" + }, + { + "name": "forw_retweet_sum_1d", + "valueType": "DOUBLE" + }, + { + "name": "forw_retweet_sum_7d", + "valueType": "DOUBLE" + }, + { + "name": "follow_ratio_1d", + "valueType": "DOUBLE" + }, + { + "name": "follow_ratio_7d", + "valueType": "DOUBLE" + }, + { + "name": "qual_follow_v2_ratio_1d", + "valueType": "DOUBLE" + }, + { + "name": "qual_follow_v2_ratio_7d", + "valueType": "DOUBLE" + }, + { + "name": "forw_engage_ratio_1d", + "valueType": "DOUBLE" + }, + { + "name": "forw_engage_ratio_7d", + "valueType": "DOUBLE" + }, + { + "name": "forw_fav_ratio_1d", + "valueType": "DOUBLE" + }, + { + "name": "forw_fav_ratio_7d", + "valueType": "DOUBLE" + }, + { + "name": "forw_imp_ratio_1d", + "valueType": "DOUBLE" + }, + { + "name": "forw_imp_ratio_7d", + "valueType": "DOUBLE" + }, + { + "name": "forw_reply_ratio_1d", + "valueType": "DOUBLE" + }, + { + "name": "forw_reply_ratio_7d", + "valueType": "DOUBLE" + }, + { + "name": "forw_retweet_ratio_1d", + "valueType": "DOUBLE" + }, + { + "name": "forw_retweet_ratio_7d", + "valueType": "DOUBLE" + }, + { + "name": "forw_fav_log1p_1d", + "valueType": "DOUBLE" + }, + { + "name": "forw_fav_log1p_7d", + "valueType": "DOUBLE" + }, + { + "name": "forw_imp_log1p_1d", + "valueType": "DOUBLE" + }, + { + "name": "forw_imp_log1p_7d", + "valueType": "DOUBLE" + }, + { + "name": "forw_reply_log1p_1d", + "valueType": "DOUBLE" + }, + { + "name": "forw_reply_log1p_7d", + "valueType": "DOUBLE" + }, + { + "name": "forw_retweet_log1p_1d", + "valueType": "DOUBLE" + }, + { + "name": "forw_retweet_log1p_7d", + "valueType": "DOUBLE" + }, + { + "name": "back_imp_sum_1d_v2", + "valueType": "DOUBLE" + }, + { + "name": "back_imp_sum_7d_v2", + "valueType": "DOUBLE" + }, + { + "name": "follow_sum_1d_v2", + "valueType": "DOUBLE" + }, + { + "name": "follow_sum_7d_v2", + "valueType": "DOUBLE" + }, + { + "name": "qual_follow_v2_sum_1d_v2", + "valueType": "DOUBLE" + }, + { + "name": "qual_follow_v2_sum_7d_v2", + "valueType": "DOUBLE" + }, + { + "name": "forw_engage_sum_1d_v2", + "valueType": "DOUBLE" + }, + { + "name": "forw_engage_sum_7d_v2", + "valueType": "DOUBLE" + } + ], + "name": "country_cand_aggr_v1", + "online": true, + "tags": { + "description": "DESCRIPTION_NEEDED_MARKER_FEAST", + "team": "CJREL" + }, + "ttl": "86400s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-featurestore-prod.recommendations.denser_user_interested_in_20M145K_updated" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-featurestore-prod.recommendations.denser_user_interested_in_20M145K_updated", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "user" + ], + "features": [ + { + "name": "user_interested_in_sim_clusters_embedding__fav_based_denser_embedding_20m_145k_updated_keys", + "valueType": "STRING" + }, + { + "name": "user_interested_in_sim_clusters_embedding__fav_based_denser_embedding_20m_145k_updated_values", + "valueType": "DOUBLE" + }, + { + "name": "user_interested_in_sim_clusters_embedding__follow_based_denser_embedding_20m_145k_updated_keys", + "valueType": "STRING" + }, + { + "name": "user_interested_in_sim_clusters_embedding__follow_based_denser_embedding_20m_145k_updated_values", + "valueType": "DOUBLE" + }, + { + "name": "user_interested_in_sim_clusters_embedding__log_fav_based_denser_embedding_20m_145k_updated_keys", + "valueType": "STRING" + }, + { + "name": "user_interested_in_sim_clusters_embedding__log_fav_based_denser_embedding_20m_145k_updated_values", + "valueType": "DOUBLE" + } + ], + "name": "denser_user_interested_in_20M145K_updated", + "online": true, + "tags": { + "description": "For more info see go/simclusters.", + "fs10_dataset": "https://cortex.twitter.biz/datasets/com.twitter.ml.featurestore.catalog.datasets.recommendations.DenserUserInterestedIn20M145KUpdatedEntityDataset", + "prepend_strategy": "dataset", + "team": "MLFM" + }, + "ttl": "604800s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-featurestore-prod.recommendations.entity_real_graph_user_top_k_ner_user_features" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-featurestore-prod.recommendations.entity_real_graph_user_top_k_ner_user_features", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "user" + ], + "features": [ + { + "name": "ner_erg__all__aggregate_consumer_to_total_score_ratio", + "valueType": "DOUBLE" + }, + { + "name": "ner_erg__all__aggregate_producer_to_total_score_ratio", + "valueType": "DOUBLE" + }, + { + "name": "ner_erg__all__consumer_scores_keys", + "valueType": "STRING" + }, + { + "name": "ner_erg__all__consumer_scores_values", + "valueType": "DOUBLE" + }, + { + "name": "ner_erg__all__consumer_scores_sum", + "valueType": "DOUBLE" + }, + { + "name": "ner_erg__all__consumer_to_total_score_ratio_keys", + "valueType": "STRING" + }, + { + "name": "ner_erg__all__consumer_to_total_score_ratio_values", + "valueType": "DOUBLE" + }, + { + "name": "ner_erg__all__entity_names", + "valueType": "STRING" + }, + { + "name": "ner_erg__all__number_of_entities", + "valueType": "INT64" + }, + { + "name": "ner_erg__all__producer_scores_keys", + "valueType": "STRING" + }, + { + "name": "ner_erg__all__producer_scores_values", + "valueType": "DOUBLE" + }, + { + "name": "ner_erg__all__producer_scores_sum", + "valueType": "DOUBLE" + }, + { + "name": "ner_erg__all__producer_to_total_score_ratio_keys", + "valueType": "STRING" + }, + { + "name": "ner_erg__all__producer_to_total_score_ratio_values", + "valueType": "DOUBLE" + }, + { + "name": "ner_erg__all__total_scores_keys", + "valueType": "STRING" + }, + { + "name": "ner_erg__all__total_scores_values", + "valueType": "DOUBLE" + }, + { + "name": "ner_erg__all__total_scores_sum", + "valueType": "DOUBLE" + } + ], + "name": "entity_real_graph_user_features", + "online": true, + "tags": { + "description": "For more info see http://go/erg.", + "fs10_dataset": "https://cortex.twitter.biz/datasets/com.twitter.ml.featurestore.catalog.datasets.recommendations.NerErgDataset", + "prepend_strategy": "dataset", + "team": "MLFM" + }, + "ttl": "86400s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "featurestore_card__cards__unified_card__button_actions_METADATA_ONLY", + "valueType": "INT64" + } + ], + "name": "featurestore_card__cards__unified_card__button_actions_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"featurestore_card__cards__unified_card__button_actions\",\n \"description\": \"What the \"action\" of the buttons in the card say. Mostly \"install\" for app install, but can be \"follow\" for e.g. follow objective.\",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"tf.string\",\n \"model feature type\": \"categorical\"\n}\n ", + "description": "What the \"action\" of the buttons in the card say. Mostly \"install\" for app install, but can be \"follow\" for e.g. follow objective.", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "featurestore_card__cards__unified_card__card_type_METADATA_ONLY", + "valueType": "INT64" + } + ], + "name": "featurestore_card__cards__unified_card__card_type_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"featurestore_card__cards__unified_card__card_type\",\n \"description\": \"The card type in unified card lingo, see go/unifiedcardtypes\",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"tf.string\",\n \"model feature type\": \"categorical\"\n}\n ", + "description": "The card type in unified card lingo, see go/unifiedcardtypes", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "featurestore_card__cards__unified_card__media_types_METADATA_ONLY", + "valueType": "INT64" + } + ], + "name": "featurestore_card__cards__unified_card__media_types_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"featurestore_card__cards__unified_card__media_types\",\n \"description\": \"Media type used in the ads, e.g., image, video, etc.\",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"tf.string\",\n \"model feature type\": \"categorical\"\n}\n ", + "description": "Media type used in the ads, e.g., image, video, etc.", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "featurestore_card__cards__unified_card_app__types_METADATA_ONLY", + "valueType": "INT64" + } + ], + "name": "featurestore_card__cards__unified_card_app__types_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"featurestore_card__cards__unified_card_app__types\",\n \"description\": \"Type of app, for information could be fetched from AppStore.\n\nUnique values are only three: ipad_app, android_app, or iphone_app\n\",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"tf.string\",\n \"model feature type\": \"categorical\"\n}\n ", + "description": "Type of app, for information could be fetched from AppStore.\n\nUnique values are only three: ipad_app, android_app, or iphone_app\n", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "featurestore_promoted__map__app_details_v_2__average_rating_METADATA_ONLY", + "valueType": "INT64" + } + ], + "name": "featurestore_promoted__map__app_details_v_2__average_rating_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"featurestore_promoted__map__app_details_v_2__average_rating\",\n \"description\": \"Average rating of the promoted app.\",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"tf.float32\",\n \"model feature type\": \"continous\"\n}\n ", + "description": "Average rating of the promoted app.", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "featurestore_promoted__map__app_details_v_2__categories_METADATA_ONLY", + "valueType": "INT64" + } + ], + "name": "featurestore_promoted__map__app_details_v_2__categories_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"featurestore_promoted__map__app_details_v_2__categories\",\n \"description\": \"Category ids per AppFigures for the app. Android and iOS categories use different IDs\",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"tf.string\",\n \"model feature type\": \"categorical\"\n}\n ", + "description": "Category ids per AppFigures for the app. Android and iOS categories use different IDs", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "featurestore_promoted__map__app_details_v_2__content_rating_normalized_METADATA_ONLY", + "valueType": "INT64" + } + ], + "name": "featurestore_promoted__map__app_details_v_2__content_rating_normalized_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"featurestore_promoted__map__app_details_v_2__content_rating_normalized\",\n \"description\": \"Content rating, e.g. \"Mature\", \"Everyone\". Several different rating systems are combined. Ratings are from different systems and we normalize them to be consistent, like \u2018rated 21+\u2019 , \u201821+\u2019 and \u201821\u2019 are normalized into \u201821+\u2019\",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"tf.string\",\n \"model feature type\": \"categorical\"\n}\n ", + "description": "Content rating, e.g. \"Mature\", \"Everyone\". Several different rating systems are combined. Ratings are from different systems and we normalize them to be consistent, like \u2018rated 21+\u2019 , \u201821+\u2019 and \u201821\u2019 are normalized into \u201821+\u2019", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "featurestore_promoted__map__app_details_v_2__days_since_app_released_METADATA_ONLY", + "valueType": "INT64" + } + ], + "name": "featurestore_promoted__map__app_details_v_2__days_since_app_released_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"featurestore_promoted__map__app_details_v_2__days_since_app_released\",\n \"description\": \"Days since the app was released or first seen according to AppFigures\",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"tf.float32\",\n \"model feature type\": \"continous\"\n}\n ", + "description": "Days since the app was released or first seen according to AppFigures", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "featurestore_promoted__map__app_details_v_2__days_since_last_updated_METADATA_ONLY", + "valueType": "INT64" + } + ], + "name": "featurestore_promoted__map__app_details_v_2__days_since_last_updated_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"featurestore_promoted__map__app_details_v_2__days_since_last_updated\",\n \"description\": \"Days since the app was last updated by AppFigures\",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"tf.float32\",\n \"model feature type\": \"continous\"\n}\n ", + "description": "Days since the app was last updated by AppFigures", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "featurestore_promoted__map__app_details_v_2__developer_country_code_METADATA_ONLY", + "valueType": "INT64" + } + ], + "name": "featurestore_promoted__map__app_details_v_2__developer_country_code_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"featurestore_promoted__map__app_details_v_2__developer_country_code\",\n \"description\": \"Country code of the app developer\",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"tf.string\",\n \"model feature type\": \"categorical\"\n}\n ", + "description": "Country code of the app developer", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "featurestore_promoted__map__app_details_v_2__developer_name_normalized_METADATA_ONLY", + "valueType": "INT64" + } + ], + "name": "featurestore_promoted__map__app_details_v_2__developer_name_normalized_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"featurestore_promoted__map__app_details_v_2__developer_name_normalized\",\n \"description\": \"Name of the app developer\",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"tf.string\",\n \"model feature type\": \"categorical\"\n}\n ", + "description": "Name of the app developer", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "featurestore_promoted__map__app_details_v_2__download_size_bytes_METADATA_ONLY", + "valueType": "INT64" + } + ], + "name": "featurestore_promoted__map__app_details_v_2__download_size_bytes_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"featurestore_promoted__map__app_details_v_2__download_size_bytes\",\n \"description\": \"The byte size of the app, e.g. 10MB\",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"tf.float32\",\n \"model feature type\": \"continous\"\n}\n ", + "description": "The byte size of the app, e.g. 10MB", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "featurestore_promoted__map__app_details_v_2__has_ads_METADATA_ONLY", + "valueType": "INT64" + } + ], + "name": "featurestore_promoted__map__app_details_v_2__has_ads_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"featurestore_promoted__map__app_details_v_2__has_ads\",\n \"description\": \"Whether the app has ads.\",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"tf.intX\",\n \"model feature type\": \"categorical (binary)\"\n}\n ", + "description": "Whether the app has ads.", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "featurestore_promoted__map__app_details_v_2__has_in_app_purchases_METADATA_ONLY", + "valueType": "INT64" + } + ], + "name": "featurestore_promoted__map__app_details_v_2__has_in_app_purchases_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"featurestore_promoted__map__app_details_v_2__has_in_app_purchases\",\n \"description\": \"Whether the app supports in-app purchases.\",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"tf.intX\",\n \"model feature type\": \"categorical (binary)\"\n}\n ", + "description": "Whether the app supports in-app purchases.", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "featurestore_promoted__map__app_details_v_2__is_free_METADATA_ONLY", + "valueType": "INT64" + } + ], + "name": "featurestore_promoted__map__app_details_v_2__is_free_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"featurestore_promoted__map__app_details_v_2__is_free\",\n \"description\": \"Whether the price of the app is zero in all countries\",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"tf.intX\",\n \"model feature type\": \"categorical (binary)\"\n}\n ", + "description": "Whether the price of the app is zero in all countries", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "featurestore_promoted__map__app_details_v_2__permission_groups_METADATA_ONLY", + "valueType": "INT64" + } + ], + "name": "featurestore_promoted__map__app_details_v_2__permission_groups_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"featurestore_promoted__map__app_details_v_2__permission_groups\",\n \"description\": \"What services you allow the app to use on your phone, e.g., bluetooh, location tracking, audio etc.\",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"tf.string\",\n \"model feature type\": \"categorical\"\n}\n ", + "description": "What services you allow the app to use on your phone, e.g., bluetooh, location tracking, audio etc.", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "featurestore_promoted__map__app_details_v_2__primary_category_id_METADATA_ONLY", + "valueType": "INT64" + } + ], + "name": "featurestore_promoted__map__app_details_v_2__primary_category_id_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"featurestore_promoted__map__app_details_v_2__primary_category_id\",\n \"description\": \"The \"primary\" category id of the app according to AppFigures.\",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"tf.string\",\n \"model feature type\": \"categorical\"\n}\n ", + "description": "The \"primary\" category id of the app according to AppFigures.", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "featurestore_promoted__map__app_details_v_2__supported_devices_METADATA_ONLY", + "valueType": "INT64" + } + ], + "name": "featurestore_promoted__map__app_details_v_2__supported_devices_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"featurestore_promoted__map__app_details_v_2__supported_devices\",\n \"description\": \"Types of devices the app supports, such as \"handheld\", \"tv\" \"desktop\", etc.\",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"tf.string\",\n \"model feature type\": \"categorical\"\n}\n ", + "description": "Types of devices the app supports, such as \"handheld\", \"tv\" \"desktop\", etc.", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "featurestore_tweet__core__tweet__language_METADATA_ONLY", + "valueType": "INT64" + } + ], + "name": "featurestore_tweet__core__tweet__language_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"featurestore_tweet__core__tweet__language\",\n \"description\": \"Language used to compose the tweet, e.g., english, japanese, spanish, etc.\",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"tf.string\",\n \"model feature type\": \"categorical\"\n}\n ", + "description": "Language used to compose the tweet, e.g., english, japanese, spanish, etc.", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-featurestore-prod.safetygraph.first_degree_connections" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-featurestore-prod.safetygraph.first_degree_connections", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "user" + ], + "features": [ + { + "name": "safetygraph_first_degree_connections_derived_v_1__num_connected_identifiers", + "valueType": "INT64" + }, + { + "name": "safetygraph_first_degree_connections_v_1__connected_client_uu_ids__count", + "valueType": "INT64" + }, + { + "name": "safetygraph_first_degree_connections_v_1__connected_client_uu_ids__set", + "valueType": "STRING" + }, + { + "name": "safetygraph_first_degree_connections_v_1__connected_guest_cookie_ids__count", + "valueType": "INT64" + }, + { + "name": "safetygraph_first_degree_connections_v_1__connected_guest_cookie_ids__set", + "valueType": "STRING" + }, + { + "name": "safetygraph_first_degree_connections_v_1__connected_normalized_emails__count", + "valueType": "INT64" + }, + { + "name": "safetygraph_first_degree_connections_v_1__connected_normalized_emails__set", + "valueType": "STRING" + }, + { + "name": "safetygraph_first_degree_connections_v_1__connected_phone_numbers__count", + "valueType": "INT64" + }, + { + "name": "safetygraph_first_degree_connections_v_1__connected_phone_numbers__set", + "valueType": "STRING" + } + ], + "name": "first_degree_connections_source", + "online": true, + "tags": { + "description": "Set of features for a user's connected identifiers within safetygraph. See http://go/safetygraph", + "fs10_dataset": "https://cortex.twitter.biz/datasets/com.twitter.ml.featurestore.catalog.datasets.safetygraph.SafetygraphFirstDegreeConnectionsFeatures", + "prepend_strategy": "dataset", + "team": "MLFM" + }, + "ttl": "86400s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-featurestore-prod.geo.geo_user_location" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-featurestore-prod.geo.geo_user_location", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "user" + ], + "features": [ + { + "name": "user_location__admin_0_hex_place_id", + "valueType": "STRING" + }, + { + "name": "user_location__admin_0_place_id", + "valueType": "INT64" + }, + { + "name": "user_location__admin_1_hex_place_id", + "valueType": "STRING" + }, + { + "name": "user_location__admin_1_place_id", + "valueType": "INT64" + }, + { + "name": "user_location__city_hex_place_id", + "valueType": "STRING" + }, + { + "name": "user_location__city_place_id", + "valueType": "INT64" + }, + { + "name": "user_location__confidence", + "valueType": "DOUBLE" + }, + { + "name": "user_location__country_code_alpha_2", + "valueType": "STRING" + }, + { + "name": "user_location__country_hex_place_id", + "valueType": "STRING" + }, + { + "name": "user_location__country_place_id", + "valueType": "INT64" + }, + { + "name": "user_location__created_at_ms", + "valueType": "INT64" + }, + { + "name": "user_location__ip", + "valueType": "STRING" + }, + { + "name": "user_location__is_sign_up_ip", + "valueType": "BOOL" + }, + { + "name": "user_location__metro_id", + "valueType": "INT64" + }, + { + "name": "user_location__zip_code_hex_place_id", + "valueType": "STRING" + }, + { + "name": "user_location__zip_code_place_id", + "valueType": "INT64" + } + ], + "name": "geo_user_location", + "online": true, + "tags": { + "description": "User location features. See http://go/geo for more information.", + "fs10_dataset": "https://cortex.twitter.biz/datasets/com.twitter.ml.featurestore.catalog.datasets.geo.GeoUserLocationDataset", + "prepend_strategy": "dataset", + "team": "GEO" + }, + "ttl": "86400s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "query": "select * from twttr-bq-featurestore-prod.video.engagement_counts_v1 where feature_name='geo'" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "geo" + ], + "features": [ + { + "name": "impression_count_1h", + "valueType": "INT64" + }, + { + "name": "engagement_count_1h", + "valueType": "INT64" + }, + { + "name": "impression_count_1d", + "valueType": "INT64" + }, + { + "name": "engagement_count_1d", + "valueType": "INT64" + }, + { + "name": "impression_count_7d", + "valueType": "INT64" + }, + { + "name": "engagement_count_7d", + "valueType": "INT64" + } + ], + "name": "geo_video_cnts", + "online": true, + "tags": { + "description": "DESCRIPTION_NEEDED_MARKER_FEAST", + "team": "REVSCI" + }, + "ttl": "3600s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "query": "select * from twttr-bq-featurestore-prod.video.streaming_engagement_counts_v2 where feature_name='geo'" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "geo" + ], + "features": [ + { + "name": "impression_count_1h", + "valueType": "INT64" + }, + { + "name": "engagement_count_1h", + "valueType": "INT64" + } + ], + "name": "geo_video_cnts_stream", + "online": true, + "tags": { + "description": "DESCRIPTION_NEEDED_MARKER_FEAST", + "team": "REVSCI" + }, + "ttl": "300s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-featurestore-prod.hss.healthscores" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-featurestore-prod.hss.healthscores", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "tweet" + ], + "features": [ + { + "name": "tweet_health_scores__pblock_v_1", + "valueType": "DOUBLE" + }, + { + "name": "tweet_health_scores__preported_tweet_v_1", + "valueType": "DOUBLE" + }, + { + "name": "tweet_health_scores__pspammy_tweet_v_1", + "valueType": "DOUBLE" + }, + { + "name": "tweet_health_scores__spammy_tweet_content_v_1", + "valueType": "DOUBLE" + }, + { + "name": "tweet_health_scores__toxicity_ar_v_2", + "valueType": "DOUBLE" + }, + { + "name": "tweet_health_scores__toxicity_en_v_4", + "valueType": "DOUBLE" + }, + { + "name": "tweet_health_scores__toxicity_es_v_1", + "valueType": "DOUBLE" + }, + { + "name": "tweet_health_scores__toxicity_ja_v_2", + "valueType": "DOUBLE" + }, + { + "name": "tweet_health_scores__toxicity_tr_v_2", + "valueType": "DOUBLE" + } + ], + "name": "healthscores", + "online": true, + "tags": { + "description": "Scores for various Tweet health models. See http://go/hss for more information.", + "fs10_dataset": "https://cortex.twitter.biz/datasets/com.twitter.ml.featurestore.catalog.datasets.hss.TweetHealthScoresDataset", + "prepend_strategy": "dataset", + "team": "HMLI" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "label__type_METADATA_ONLY", + "valueType": "INT64" + } + ], + "name": "label__type_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"label__type\",\n \"description\": \"Used to generate labels is_click_install_1_day.\",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"NA\",\n \"model feature type\": \"NA\"\n}\n ", + "description": "Used to generate labels is_click_install_1_day.", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "query": "select * from twttr-bq-featurestore-prod.video.engagement_counts_v1 where feature_name='liXgender'" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "lineitem", + "gender" + ], + "features": [ + { + "name": "impression_count_1h", + "valueType": "INT64" + }, + { + "name": "engagement_count_1h", + "valueType": "INT64" + }, + { + "name": "impression_count_1d", + "valueType": "INT64" + }, + { + "name": "engagement_count_1d", + "valueType": "INT64" + }, + { + "name": "impression_count_7d", + "valueType": "INT64" + }, + { + "name": "engagement_count_7d", + "valueType": "INT64" + } + ], + "name": "liXgender_video_cnts", + "online": true, + "tags": { + "description": "DESCRIPTION_NEEDED_MARKER_FEAST", + "team": "REVSCI" + }, + "ttl": "3600s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "query": "select * from twttr-bq-featurestore-prod.video.streaming_engagement_counts_v2 where feature_name='liXgender'" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "lineitem", + "gender" + ], + "features": [ + { + "name": "impression_count_1h", + "valueType": "INT64" + }, + { + "name": "engagement_count_1h", + "valueType": "INT64" + } + ], + "name": "liXgender_video_cnts_stream", + "online": true, + "tags": { + "description": "DESCRIPTION_NEEDED_MARKER_FEAST", + "team": "REVSCI" + }, + "ttl": "300s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "query": "select * from twttr-bq-featurestore-prod.video.engagement_counts_v1 where feature_name='liXgeo'" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "lineitem", + "geo" + ], + "features": [ + { + "name": "impression_count_1h", + "valueType": "INT64" + }, + { + "name": "engagement_count_1h", + "valueType": "INT64" + }, + { + "name": "impression_count_1d", + "valueType": "INT64" + }, + { + "name": "engagement_count_1d", + "valueType": "INT64" + }, + { + "name": "impression_count_7d", + "valueType": "INT64" + }, + { + "name": "engagement_count_7d", + "valueType": "INT64" + } + ], + "name": "liXgeo_video_cnts", + "online": true, + "tags": { + "description": "DESCRIPTION_NEEDED_MARKER_FEAST", + "team": "REVSCI" + }, + "ttl": "3600s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "query": "select * from twttr-bq-featurestore-prod.video.streaming_engagement_counts_v2 where feature_name='liXgeo'" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "lineitem", + "geo" + ], + "features": [ + { + "name": "impression_count_1h", + "valueType": "INT64" + }, + { + "name": "engagement_count_1h", + "valueType": "INT64" + } + ], + "name": "liXgeo_video_cnts_stream", + "online": true, + "tags": { + "description": "DESCRIPTION_NEEDED_MARKER_FEAST", + "team": "REVSCI" + }, + "ttl": "300s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "query": "select * from twttr-bq-featurestore-prod.map.install_counts_v1 where feature_name='li_prior'" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "lineitem" + ], + "features": [ + { + "name": "click_count_1h", + "valueType": "INT64" + }, + { + "name": "click_count_1d", + "valueType": "INT64" + }, + { + "name": "click_count_7d", + "valueType": "INT64" + }, + { + "name": "click_count_30d", + "valueType": "INT64" + }, + { + "name": "install_count_1h", + "valueType": "INT64" + }, + { + "name": "install_count_1d", + "valueType": "INT64" + }, + { + "name": "install_count_7d", + "valueType": "INT64" + }, + { + "name": "install_count_30d", + "valueType": "INT64" + } + ], + "name": "li_skan_cnts", + "online": true, + "tags": { + "description": "DESCRIPTION_NEEDED_MARKER_FEAST", + "team": "REVSCI" + }, + "ttl": "3600s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "query": "select * from twttr-bq-featurestore-prod.video.engagement_counts_v1 where feature_name='lineitem'" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "lineitem" + ], + "features": [ + { + "name": "impression_count_1h", + "valueType": "INT64" + }, + { + "name": "engagement_count_1h", + "valueType": "INT64" + }, + { + "name": "impression_count_1d", + "valueType": "INT64" + }, + { + "name": "engagement_count_1d", + "valueType": "INT64" + }, + { + "name": "impression_count_7d", + "valueType": "INT64" + }, + { + "name": "engagement_count_7d", + "valueType": "INT64" + } + ], + "name": "lineitem_video_cnts", + "online": true, + "tags": { + "description": "DESCRIPTION_NEEDED_MARKER_FEAST", + "team": "REVSCI" + }, + "ttl": "3600s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "meta__ads__account_id_METADATA_ONLY", + "valueType": "INT64" + } + ], + "name": "meta__ads__account_id_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"meta__ads__account_id\",\n \"description\": \"Each advertiser (say Jam City) has an advertiser ID. They may have multiple account managers with different (or same) account IDs. Jam City may have multiple apps they want to promote, latter ID'ed by app_id. For App Installs, for an app, the advertiser can have different campaigns. Within each campaign, advertisers are known try out different campaign set up configurations under different lineitems (such as different targeting criteria, bid, etc.)\nadvertiser > account > app_id (for App Installs) > campaign > lineitem > ad\n\nEach advertiser (say Jam City) has an advertiser ID. They may have multiple account managers with different (or same) account IDs. Jam City may have multiple apps they want to promote, latter ID'ed by app_id. For App Installs, for an app, the advertiser can have different campaigns. Within each campaign, advertisers are known try out different campaign set up configurations under different lineitems (such as different targeting criteria, bid, etc.)\",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"tf.string\",\n \"model feature type\": \"categorical\"\n}\n ", + "description": "Each advertiser (say Jam City) has an advertiser ID. They may have multiple account managers with different (or same) account IDs. Jam City may have multiple apps they want to promote, latter ID'ed by app_id. For App Installs, for an app, the advertiser can have different campaigns. Within each campaign, advertisers are known try out different campaign set up configurations under different lineitems (such as different targeting criteria, bid, etc.)\nadvertiser > account > app_id (for App Installs) > campaign > lineitem > ad\n\nEach advertiser (say Jam City) has an advertiser ID. They may have multiple account managers with different (or same) account IDs. Jam City may have multiple apps they want to promote, latter ID'ed by app_id. For App Installs, for an app, the advertiser can have different campaigns. Within each campaign, advertisers are known try out different campaign set up configurations under different lineitems (such as different targeting criteria, bid, etc.)", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "meta__ads__advertiser_id_METADATA_ONLY", + "valueType": "INT64" + } + ], + "name": "meta__ads__advertiser_id_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"meta__ads__advertiser_id\",\n \"description\": \"\",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"tf.string\",\n \"model feature type\": \"categorical\"\n}\n ", + "description": "", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "meta__ads__autoplay_enabled_METADATA_ONLY", + "valueType": "INT64" + } + ], + "name": "meta__ads__autoplay_enabled_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"meta__ads__autoplay_enabled\",\n \"description\": \"Binary feature, true if the user has enabled auto play videos.\",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"tf.string\",\n \"model feature type\": \"categorical\"\n}\n ", + "description": "Binary feature, true if the user has enabled auto play videos.", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "meta__ads__campaign_id_METADATA_ONLY", + "valueType": "INT64" + } + ], + "name": "meta__ads__campaign_id_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"meta__ads__campaign_id\",\n \"description\": \"\",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"tf.string\",\n \"model feature type\": \"categorical\"\n}\n ", + "description": "", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "meta__ads__elapsed_time_since_campaign_start__in_millis_METADATA_ONLY", + "valueType": "INT64" + } + ], + "name": "meta__ads__elapsed_time_since_campaign_start__in_millis_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"meta__ads__elapsed_time_since_campaign_start__in_millis\",\n \"description\": \"Time in milliseconds since the campaign of the app ad started.\",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"tf.float32\",\n \"model feature type\": \"continous\"\n}\n ", + "description": "Time in milliseconds since the campaign of the app ad started.", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "meta__ads__experiment_id_METADATA_ONLY", + "valueType": "INT64" + } + ], + "name": "meta__ads__experiment_id_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"meta__ads__experiment_id\",\n \"description\": \"These features provide the experiment IDs of the record. They are not used in modelling.\",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"NA\",\n \"model feature type\": \"NA\"\n}\n ", + "description": "These features provide the experiment IDs of the record. They are not used in modelling.", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "meta__ads__impression_id_METADATA_ONLY", + "valueType": "INT64" + } + ], + "name": "meta__ads__impression_id_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"meta__ads__impression_id\",\n \"description\": \"raw contextual information, not used in modelling\",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"NA\",\n \"model feature type\": \"NA\"\n}\n ", + "description": "raw contextual information, not used in modelling", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "meta__ads__is_served_random_ads_METADATA_ONLY", + "valueType": "INT64" + } + ], + "name": "meta__ads__is_served_random_ads_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"meta__ads__is_served_random_ads\",\n \"description\": \"raw contextual information, used in evaluation but not used in modelling.\",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"NA\",\n \"model feature type\": \"NA\"\n}\n ", + "description": "raw contextual information, used in evaluation but not used in modelling.", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "meta__ads__line_item_objective_METADATA_ONLY", + "valueType": "INT64" + } + ], + "name": "meta__ads__line_item_objective_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"meta__ads__line_item_objective\",\n \"description\": \"This is the LineItemObjective for the ad campaign which signifies the type of outcome the campaign is optimizing for, for e.g. video views, followers, or app installs.\",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"tf.string\",\n \"model feature type\": \"categorical\"\n}\n ", + "description": "This is the LineItemObjective for the ad campaign which signifies the type of outcome the campaign is optimizing for, for e.g. video views, followers, or app installs.", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "meta__ads__lineitem_id_METADATA_ONLY", + "valueType": "INT64" + } + ], + "name": "meta__ads__lineitem_id_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"meta__ads__lineitem_id\",\n \"description\": \"\",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"tf.string\",\n \"model feature type\": \"categorical\"\n}\n ", + "description": "", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "meta__ads__promoted_app_id_METADATA_ONLY", + "valueType": "INT64" + } + ], + "name": "meta__ads__promoted_app_id_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"meta__ads__promoted_app_id\",\n \"description\": \"iOS or Android App store App ID as provided by the advertiser (i.e org.hcl.music or 417962622). These two are always the same and only populated for the MAP objective. On TAP, ads__tweet_content__advertiser_app_id is sometimes missing when the ad is from a RTB creative instead of a promoted tweet.\",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"tf.string\",\n \"model feature type\": \"categorical\"\n}\n ", + "description": "iOS or Android App store App ID as provided by the advertiser (i.e org.hcl.music or 417962622). These two are always the same and only populated for the MAP objective. On TAP, ads__tweet_content__advertiser_app_id is sometimes missing when the ad is from a RTB creative instead of a promoted tweet.", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "meta__ads__promoted_tweet_id_METADATA_ONLY", + "valueType": "INT64" + } + ], + "name": "meta__ads__promoted_tweet_id_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"meta__ads__promoted_tweet_id\",\n \"description\": \"Unique ID for the promoted tweet.\",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"tf.string\",\n \"model feature type\": \"categorical\"\n}\n ", + "description": "Unique ID for the promoted tweet.", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "meta__ads__request_day_of_week_utc_METADATA_ONLY", + "valueType": "INT64" + } + ], + "name": "meta__ads__request_day_of_week_utc_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"meta__ads__request_day_of_week_utc\",\n \"description\": \"This value is noted in the adserver when the request comes in. Its the UTC day of the week value of the request i.e. the day on which the request came. It takes values 1 to 7. 1 being Monday and 7 being Sunday\",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"tf.string\",\n \"model feature type\": \"categorical\"\n}\n ", + "description": "This value is noted in the adserver when the request comes in. Its the UTC day of the week value of the request i.e. the day on which the request came. It takes values 1 to 7. 1 being Monday and 7 being Sunday", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "meta__ads__request_hour_of_day_utc_METADATA_ONLY", + "valueType": "INT64" + } + ], + "name": "meta__ads__request_hour_of_day_utc_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"meta__ads__request_hour_of_day_utc\",\n \"description\": \"This value is noted in the adserver when the request comes in. Its the UTC hour of the day value of the request i.e. the hour on which the request came. It takes values 1 to 24. 1 being 0000-0100 hrs and 24 being 2300-0000 hrs\",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"tf.string\",\n \"model feature type\": \"categorical\"\n}\n ", + "description": "This value is noted in the adserver when the request comes in. Its the UTC hour of the day value of the request i.e. the hour on which the request came. It takes values 1 to 24. 1 being 0000-0100 hrs and 24 being 2300-0000 hrs", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "meta__ads__request_time_METADATA_ONLY", + "valueType": "INT64" + } + ], + "name": "meta__ads__request_time_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"meta__ads__request_time\",\n \"description\": \"raw contextual information, not used in modelling\",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"NA\",\n \"model feature type\": \"NA\"\n}\n ", + "description": "raw contextual information, not used in modelling", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "meta__client_id_METADATA_ONLY", + "valueType": "INT64" + } + ], + "name": "meta__client_id_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"meta__client_id\",\n \"description\": \"Unique ID that represents Twitter client used to generate this request, e.g., iPhone, Android, etc. Client id are numbers such as 129032, etc., which Twitter assign to each type of device.\",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"tf.string\",\n \"model feature type\": \"categorical\"\n}\n ", + "description": "Unique ID that represents Twitter client used to generate this request, e.g., iPhone, Android, etc. Client id are numbers such as 129032, etc., which Twitter assign to each type of device.", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "meta__client_version_METADATA_ONLY", + "valueType": "INT64" + } + ], + "name": "meta__client_version_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"meta__client_version\",\n \"description\": \"Software version of Twitter client on the device\",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"tf.string\",\n \"model feature type\": \"categorical\"\n}\n ", + "description": "Software version of Twitter client on the device", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "meta__device_METADATA_ONLY", + "valueType": "INT64" + } + ], + "name": "meta__device_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"meta__device\",\n \"description\": \"This feature describes the make/model of the device, for example \"Pixel 2\" or \"iPhone10,6\".\",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"tf.string\",\n \"model feature type\": \"categorical\"\n}\n ", + "description": "This feature describes the make/model of the device, for example \"Pixel 2\" or \"iPhone10,6\".", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "meta__device__is_ios_METADATA_ONLY", + "valueType": "INT64" + } + ], + "name": "meta__device__is_ios_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"meta__device__is_ios\",\n \"description\": \"raw contextual information, not used in modelling\",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"NA\",\n \"model feature type\": \"NA\"\n}\n ", + "description": "raw contextual information, not used in modelling", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "meta__device__is_zero_device_id_METADATA_ONLY", + "valueType": "INT64" + } + ], + "name": "meta__device__is_zero_device_id_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"meta__device__is_zero_device_id\",\n \"description\": \"users opted out twitter tracking, raw contextual information, not used in modelling\",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"NA\",\n \"model feature type\": \"NA\"\n}\n ", + "description": "users opted out twitter tracking, raw contextual information, not used in modelling", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "meta__device__os_version_METADATA_ONLY", + "valueType": "INT64" + } + ], + "name": "meta__device__os_version_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"meta__device__os_version\",\n \"description\": \"This feature describes the os version of the device.\",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"tf.string\",\n \"model feature type\": \"categorical\"\n}\n ", + "description": "This feature describes the os version of the device.", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "meta__device__os_version_major_number_METADATA_ONLY", + "valueType": "INT64" + } + ], + "name": "meta__device__os_version_major_number_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"meta__device__os_version_major_number\",\n \"description\": \"This feature describes the os version major nummber of the device.\",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"tf.string\",\n \"model feature type\": \"categorical\"\n}\n ", + "description": "This feature describes the os version major nummber of the device.", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "meta__full_pctr_model_custom_id__type_METADATA_ONLY", + "valueType": "INT64" + } + ], + "name": "meta__full_pctr_model_custom_id__type_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"meta__full_pctr_model_custom_id__type\",\n \"description\": \"Used to derive is_self_served feature: a boolean indicator that tells if the\nsample came from a policy using a compatible version of the model under training.\nThis is determined by matching `pinstall_model_custom_id` against a list of IDs\npassed as parameters. Raw feature is key value pair and the derived feature is used as the binary feature.\",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"tf.intX\",\n \"model feature type\": \"categorical (binary)\"\n}\n ", + "description": "Used to derive is_self_served feature: a boolean indicator that tells if the\nsample came from a policy using a compatible version of the model under training.\nThis is determined by matching `pinstall_model_custom_id` against a list of IDs\npassed as parameters. Raw feature is key value pair and the derived feature is used as the binary feature.", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "meta__user_id_METADATA_ONLY", + "valueType": "INT64" + } + ], + "name": "meta__user_id_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"meta__user_id\",\n \"description\": \"raw contextual information, not used in modelling\",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"NA\",\n \"model feature type\": \"NA\"\n}\n ", + "description": "raw contextual information, not used in modelling", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-featurestore-prod.magicrecs.notification_summary_aggregated" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-featurestore-prod.magicrecs.notification_summary_aggregated", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "user" + ], + "features": [ + { + "name": "non_magic_recs_notification_summaries__address_book_contact_type__dismiss_rate", + "valueType": "DOUBLE" + }, + { + "name": "non_magic_recs_notification_summaries__address_book_contact_type__open_rate", + "valueType": "DOUBLE" + }, + { + "name": "non_magic_recs_notification_summaries__all_clients__dismiss_rate", + "valueType": "DOUBLE" + }, + { + "name": "non_magic_recs_notification_summaries__all_clients__open_rate", + "valueType": "DOUBLE" + }, + { + "name": "non_magic_recs_notification_summaries__all_types__dismiss_rate", + "valueType": "DOUBLE" + }, + { + "name": "non_magic_recs_notification_summaries__all_types__open_rate", + "valueType": "DOUBLE" + }, + { + "name": "non_magic_recs_notification_summaries__all_types_days_since_last_open", + "valueType": "DOUBLE" + }, + { + "name": "non_magic_recs_notification_summaries__all_types_days_since_last_sent", + "valueType": "DOUBLE" + }, + { + "name": "non_magic_recs_notification_summaries__all_types_dismiss_14_days", + "valueType": "DOUBLE" + }, + { + "name": "non_magic_recs_notification_summaries__all_types_in_time_interval__dismiss_rate", + "valueType": "DOUBLE" + }, + { + "name": "non_magic_recs_notification_summaries__all_types_in_time_interval__open_rate", + "valueType": "DOUBLE" + }, + { + "name": "non_magic_recs_notification_summaries__all_types_open_14_days", + "valueType": "DOUBLE" + }, + { + "name": "non_magic_recs_notification_summaries__all_types_recent_14_days__dismiss_rate", + "valueType": "DOUBLE" + }, + { + "name": "non_magic_recs_notification_summaries__all_types_recent_14_days__open_rate", + "valueType": "DOUBLE" + }, + { + "name": "non_magic_recs_notification_summaries__all_types_sent_14_days", + "valueType": "DOUBLE" + }, + { + "name": "non_magic_recs_notification_summaries__direct_message_type__dismiss_rate", + "valueType": "DOUBLE" + }, + { + "name": "non_magic_recs_notification_summaries__direct_message_type__open_rate", + "valueType": "DOUBLE" + }, + { + "name": "non_magic_recs_notification_summaries__favorited_type__dismiss_rate", + "valueType": "DOUBLE" + }, + { + "name": "non_magic_recs_notification_summaries__favorited_type__open_rate", + "valueType": "DOUBLE" + }, + { + "name": "non_magic_recs_notification_summaries__followed_request_type__dismiss_rate", + "valueType": "DOUBLE" + }, + { + "name": "non_magic_recs_notification_summaries__followed_request_type__open_rate", + "valueType": "DOUBLE" + }, + { + "name": "non_magic_recs_notification_summaries__followed_type__dismiss_rate", + "valueType": "DOUBLE" + }, + { + "name": "non_magic_recs_notification_summaries__followed_type__open_rate", + "valueType": "DOUBLE" + }, + { + "name": "non_magic_recs_notification_summaries__group_direct_message_type__dismiss_rate", + "valueType": "DOUBLE" + }, + { + "name": "non_magic_recs_notification_summaries__group_direct_message_type__open_rate", + "valueType": "DOUBLE" + }, + { + "name": "non_magic_recs_notification_summaries__media_tagged_type__dismiss_rate", + "valueType": "DOUBLE" + }, + { + "name": "non_magic_recs_notification_summaries__media_tagged_type__open_rate", + "valueType": "DOUBLE" + }, + { + "name": "non_magic_recs_notification_summaries__mention_type__dismiss_rate", + "valueType": "DOUBLE" + }, + { + "name": "non_magic_recs_notification_summaries__mention_type__open_rate", + "valueType": "DOUBLE" + }, + { + "name": "non_magic_recs_notification_summaries__quote_tweet_type__dismiss_rate", + "valueType": "DOUBLE" + }, + { + "name": "non_magic_recs_notification_summaries__quote_tweet_type__open_rate", + "valueType": "DOUBLE" + }, + { + "name": "non_magic_recs_notification_summaries__retweeted_type__dismiss_rate", + "valueType": "DOUBLE" + }, + { + "name": "non_magic_recs_notification_summaries__retweeted_type__open_rate", + "valueType": "DOUBLE" + }, + { + "name": "non_magic_recs_notification_summaries__tweet_type__dismiss_rate", + "valueType": "DOUBLE" + }, + { + "name": "non_magic_recs_notification_summaries__tweet_type__open_rate", + "valueType": "DOUBLE" + } + ], + "name": "notification_summary_aggregated", + "online": true, + "tags": { + "description": "Sent/open/dismiss NonMagicRecs notification statistics.", + "fs10_dataset": "https://cortex.twitter.biz/datasets/com.twitter.ml.featurestore.catalog.datasets.magicrecs.NotificationSummariesEntityDataset", + "prepend_strategy": "dataset", + "team": "MagicRecs" + }, + "ttl": "86400s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-featurestore-prod.timelines.original_author_aggregates" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-featurestore-prod.timelines.original_author_aggregates", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "user" + ], + "features": [ + { + "name": "original_author_aggregate_v1__pair__recap__engagement__is_replied_reply_impressed_by_author__any_feature__50__days__count", + "valueType": "DOUBLE" + }, + { + "name": "original_author_aggregate_v2__pair__recap__engagement__is_report_tweet_clicked__any_feature__50__days__count", + "valueType": "DOUBLE" + }, + { + "name": "original_author_aggregate_v2__pair__recap__engagement__is_dont_like__any_feature__50__days__count", + "valueType": "DOUBLE" + }, + { + "name": "original_author_aggregate_v1__pair__recap__engagement__is_replied_reply_favorited_by_author__any_feature__50__days__count", + "valueType": "DOUBLE" + }, + { + "name": "original_author_aggregate_v1__pair__recap__engagement__is_replied_reply_replied_by_author__any_feature__50__days__count", + "valueType": "DOUBLE" + }, + { + "name": "original_author_aggregate_v2__pair__recap__engagement__is_mute_clicked__any_feature__50__days__count", + "valueType": "DOUBLE" + }, + { + "name": "original_author_aggregate_v2__pair__recap__engagement__is_block_clicked__any_feature__50__days__count", + "valueType": "DOUBLE" + } + ], + "name": "original_author_aggregates", + "online": true, + "tags": { + "description": "Set of aggregate features and negative engagement features computed offline grouping by the original_author_id of a tweet, and keyed by user_id in feature store. Currently has a handful of features. Note that these features are available in the same dataset as author_features_entity features in FS1.0, but in a different table in FS2.0", + "fs10_dataset": "https://cortex.twitter.biz/datasets/com.twitter.ml.featurestore.catalog.datasets.timelines.AuthorFeaturesEntityDataset", + "team": "MLFM" + }, + "ttl": "86400s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "query": "select * from twttr-bq-featurestore-prod.map.install_counts_v1 where feature_name='osXgeo'" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "os", + "geo" + ], + "features": [ + { + "name": "click_count_1h", + "valueType": "INT64" + }, + { + "name": "click_count_8h", + "valueType": "INT64" + }, + { + "name": "click_count_1d", + "valueType": "INT64" + }, + { + "name": "click_count_2d", + "valueType": "INT64" + }, + { + "name": "click_count_7d", + "valueType": "INT64" + }, + { + "name": "install_count_1h", + "valueType": "INT64" + }, + { + "name": "install_count_8h", + "valueType": "INT64" + }, + { + "name": "install_count_1d", + "valueType": "INT64" + }, + { + "name": "install_count_2d", + "valueType": "INT64" + }, + { + "name": "install_count_7d", + "valueType": "INT64" + } + ], + "name": "osXgeo_install_cnts", + "online": true, + "tags": { + "description": "DESCRIPTION_NEEDED_MARKER_FEAST", + "team": "REVSCI" + }, + "ttl": "3600s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "query": "select * from twttr-bq-featurestore-prod.map.install_counts_v1 where feature_name='osXli_obj'" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "os", + "li_obj" + ], + "features": [ + { + "name": "click_count_1h", + "valueType": "INT64" + }, + { + "name": "click_count_8h", + "valueType": "INT64" + }, + { + "name": "click_count_1d", + "valueType": "INT64" + }, + { + "name": "click_count_2d", + "valueType": "INT64" + }, + { + "name": "click_count_7d", + "valueType": "INT64" + }, + { + "name": "install_count_1h", + "valueType": "INT64" + }, + { + "name": "install_count_8h", + "valueType": "INT64" + }, + { + "name": "install_count_1d", + "valueType": "INT64" + }, + { + "name": "install_count_2d", + "valueType": "INT64" + }, + { + "name": "install_count_7d", + "valueType": "INT64" + } + ], + "name": "osXli_obj_install_cnts", + "online": true, + "tags": { + "description": "DESCRIPTION_NEEDED_MARKER_FEAST", + "team": "REVSCI" + }, + "ttl": "3600s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "query": "select * from twttr-bq-featurestore-prod.map.install_counts_v1 where feature_name='osXtgt_cr'" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "os", + "tgt_cr" + ], + "features": [ + { + "name": "click_count_1h", + "valueType": "INT64" + }, + { + "name": "click_count_8h", + "valueType": "INT64" + }, + { + "name": "click_count_1d", + "valueType": "INT64" + }, + { + "name": "click_count_2d", + "valueType": "INT64" + }, + { + "name": "click_count_7d", + "valueType": "INT64" + }, + { + "name": "install_count_1h", + "valueType": "INT64" + }, + { + "name": "install_count_8h", + "valueType": "INT64" + }, + { + "name": "install_count_1d", + "valueType": "INT64" + }, + { + "name": "install_count_2d", + "valueType": "INT64" + }, + { + "name": "install_count_7d", + "valueType": "INT64" + } + ], + "name": "osXtgt_cr_install_cnts", + "online": true, + "tags": { + "description": "DESCRIPTION_NEEDED_MARKER_FEAST", + "team": "REVSCI" + }, + "ttl": "3600s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "query": "select * from twttr-bq-featurestore-prod.map.install_counts_v1 where feature_name='os'" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "os" + ], + "features": [ + { + "name": "click_count_1h", + "valueType": "INT64" + }, + { + "name": "click_count_8h", + "valueType": "INT64" + }, + { + "name": "click_count_1d", + "valueType": "INT64" + }, + { + "name": "click_count_2d", + "valueType": "INT64" + }, + { + "name": "click_count_7d", + "valueType": "INT64" + }, + { + "name": "install_count_1h", + "valueType": "INT64" + }, + { + "name": "install_count_8h", + "valueType": "INT64" + }, + { + "name": "install_count_1d", + "valueType": "INT64" + }, + { + "name": "install_count_2d", + "valueType": "INT64" + }, + { + "name": "install_count_7d", + "valueType": "INT64" + } + ], + "name": "os_install_cnts", + "online": true, + "tags": { + "description": "DESCRIPTION_NEEDED_MARKER_FEAST", + "team": "REVSCI" + }, + "ttl": "3600s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "prediction__type__model_METADATA_ONLY", + "valueType": "INT64" + } + ], + "name": "prediction__type__model_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"prediction__type__model\",\n \"description\": \"Raw contextual information, not used in modelling\",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"NA\",\n \"model feature type\": \"NA\"\n}\n ", + "description": "Raw contextual information, not used in modelling", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-featurestore-prod.video.engagement_counts_v1" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-featurestore-prod.video.engagement_counts_v1", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "impression_count_1h", + "valueType": "INT64" + }, + { + "name": "engagement_count_1h", + "valueType": "INT64" + }, + { + "name": "impression_count_1d", + "valueType": "INT64" + }, + { + "name": "engagement_count_1d", + "valueType": "INT64" + }, + { + "name": "impression_count_7d", + "valueType": "INT64" + }, + { + "name": "engagement_count_7d", + "valueType": "INT64" + } + ], + "name": "prior_video_cnts", + "online": true, + "tags": { + "description": "DESCRIPTION_NEEDED_MARKER_FEAST", + "team": "REVSCI" + }, + "ttl": "3600s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-featurestore-prod.video.streaming_engagement_counts_v2" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-featurestore-prod.video.streaming_engagement_counts_v2", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "impression_count_1h", + "valueType": "INT64" + }, + { + "name": "engagement_count_1h", + "valueType": "INT64" + } + ], + "name": "prior_video_cnts_stream", + "online": true, + "tags": { + "description": "DESCRIPTION_NEEDED_MARKER_FEAST", + "team": "REVSCI" + }, + "ttl": "300s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-featurestore-prod.adstargeting.propagated_label_entity" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-featurestore-prod.adstargeting.propagated_label_entity", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "user" + ], + "features": [ + { + "name": "propagated_label__age_13_to_17__discretized_num_followers_strings", + "valueType": "STRING" + }, + { + "name": "propagated_label__age_13_to_17__discretized_percentage_followers_strings", + "valueType": "STRING" + }, + { + "name": "propagated_label__age_13_to_17__percentage_num_followers", + "valueType": "DOUBLE" + }, + { + "name": "propagated_label__age_18_to_24__discretized_num_followers_strings", + "valueType": "STRING" + }, + { + "name": "propagated_label__age_18_to_24__discretized_percentage_followers_strings", + "valueType": "STRING" + }, + { + "name": "propagated_label__age_18_to_24__percentage_num_followers", + "valueType": "DOUBLE" + }, + { + "name": "propagated_label__age_25_to_34__discretized_num_followers_strings", + "valueType": "STRING" + }, + { + "name": "propagated_label__age_25_to_34__discretized_percentage_followers_strings", + "valueType": "STRING" + }, + { + "name": "propagated_label__age_25_to_34__percentage_num_followers", + "valueType": "DOUBLE" + }, + { + "name": "propagated_label__age_35_to_44__discretized_num_followers_strings", + "valueType": "STRING" + }, + { + "name": "propagated_label__age_35_to_44__discretized_percentage_followers_strings", + "valueType": "STRING" + }, + { + "name": "propagated_label__age_35_to_44__percentage_num_followers", + "valueType": "DOUBLE" + }, + { + "name": "propagated_label__age_45_to_54__discretized_num_followers_strings", + "valueType": "STRING" + }, + { + "name": "propagated_label__age_45_to_54__discretized_percentage_followers_strings", + "valueType": "STRING" + }, + { + "name": "propagated_label__age_45_to_54__percentage_num_followers", + "valueType": "DOUBLE" + }, + { + "name": "propagated_label__age_55_to_64__discretized_num_followers_strings", + "valueType": "STRING" + }, + { + "name": "propagated_label__age_55_to_64__discretized_percentage_followers_strings", + "valueType": "STRING" + }, + { + "name": "propagated_label__age_55_to_64__percentage_num_followers", + "valueType": "DOUBLE" + }, + { + "name": "propagated_label__age_over_65__discretized_num_followers_strings", + "valueType": "STRING" + }, + { + "name": "propagated_label__age_over_65__discretized_percentage_followers_strings", + "valueType": "STRING" + }, + { + "name": "propagated_label__age_over_65__percentage_num_followers", + "valueType": "DOUBLE" + } + ], + "name": "propagated_label_entity", + "online": true, + "tags": { + "description": "Propagated features are split between two types of features mutual and non-mutual. Mutual propagated features are age bucket distributions of mutual follows (people you followed also followed you). Non-mutual propagated features are similar, but of the followers and followees for each user.Age buckets are targeting types (Valid age buckets are 13-17 18-24, 25-34, 35-44, 45-54, 55-64, and age over 65.) the values are the Nielsen standard age buckets as used by Google. For more details on age buckets see https://support.google.com/adwords/editor/answer/47640", + "fs10_dataset": "https://cortex.twitter.biz/datasets/com.twitter.ml.featurestore.catalog.datasets.adstargeting.PropagatedLabelEntityDataset", + "prepend_strategy": "dataset", + "team": "MLFM" + }, + "ttl": "1209600s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-featurestore-prod.timelines.real_graph" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-featurestore-prod.timelines.real_graph", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "source_user", + "target_user" + ], + "features": [ + { + "name": "address_book_email__days_since_last", + "valueType": "INT64" + }, + { + "name": "address_book_email__elapsed_days", + "valueType": "INT64" + }, + { + "name": "address_book_email__ewma", + "valueType": "DOUBLE" + }, + { + "name": "address_book_email__is_missing", + "valueType": "BOOL" + }, + { + "name": "address_book_email__mean", + "valueType": "DOUBLE" + }, + { + "name": "address_book_email__non_zero_days", + "valueType": "INT64" + }, + { + "name": "address_book_email__variance", + "valueType": "DOUBLE" + }, + { + "name": "address_book_in_both__days_since_last", + "valueType": "INT64" + }, + { + "name": "address_book_in_both__elapsed_days", + "valueType": "INT64" + }, + { + "name": "address_book_in_both__ewma", + "valueType": "DOUBLE" + }, + { + "name": "address_book_in_both__is_missing", + "valueType": "BOOL" + }, + { + "name": "address_book_in_both__mean", + "valueType": "DOUBLE" + }, + { + "name": "address_book_in_both__non_zero_days", + "valueType": "INT64" + }, + { + "name": "address_book_in_both__variance", + "valueType": "DOUBLE" + }, + { + "name": "address_book_mutual_edge_email__days_since_last", + "valueType": "INT64" + }, + { + "name": "address_book_mutual_edge_email__elapsed_days", + "valueType": "INT64" + }, + { + "name": "address_book_mutual_edge_email__ewma", + "valueType": "DOUBLE" + }, + { + "name": "address_book_mutual_edge_email__is_missing", + "valueType": "BOOL" + }, + { + "name": "address_book_mutual_edge_email__mean", + "valueType": "DOUBLE" + }, + { + "name": "address_book_mutual_edge_email__non_zero_days", + "valueType": "INT64" + }, + { + "name": "address_book_mutual_edge_email__variance", + "valueType": "DOUBLE" + }, + { + "name": "address_book_mutual_edge_in_both__days_since_last", + "valueType": "INT64" + }, + { + "name": "address_book_mutual_edge_in_both__elapsed_days", + "valueType": "INT64" + }, + { + "name": "address_book_mutual_edge_in_both__ewma", + "valueType": "DOUBLE" + }, + { + "name": "address_book_mutual_edge_in_both__is_missing", + "valueType": "BOOL" + }, + { + "name": "address_book_mutual_edge_in_both__mean", + "valueType": "DOUBLE" + }, + { + "name": "address_book_mutual_edge_in_both__non_zero_days", + "valueType": "INT64" + }, + { + "name": "address_book_mutual_edge_in_both__variance", + "valueType": "DOUBLE" + }, + { + "name": "address_book_mutual_edge_phone__days_since_last", + "valueType": "INT64" + }, + { + "name": "address_book_mutual_edge_phone__elapsed_days", + "valueType": "INT64" + }, + { + "name": "address_book_mutual_edge_phone__ewma", + "valueType": "DOUBLE" + }, + { + "name": "address_book_mutual_edge_phone__is_missing", + "valueType": "BOOL" + }, + { + "name": "address_book_mutual_edge_phone__mean", + "valueType": "DOUBLE" + }, + { + "name": "address_book_mutual_edge_phone__non_zero_days", + "valueType": "INT64" + }, + { + "name": "address_book_mutual_edge_phone__variance", + "valueType": "DOUBLE" + }, + { + "name": "address_book_phone__days_since_last", + "valueType": "INT64" + }, + { + "name": "address_book_phone__elapsed_days", + "valueType": "INT64" + }, + { + "name": "address_book_phone__ewma", + "valueType": "DOUBLE" + }, + { + "name": "address_book_phone__is_missing", + "valueType": "BOOL" + }, + { + "name": "address_book_phone__mean", + "valueType": "DOUBLE" + }, + { + "name": "address_book_phone__non_zero_days", + "valueType": "INT64" + }, + { + "name": "address_book_phone__variance", + "valueType": "DOUBLE" + }, + { + "name": "dest_id", + "valueType": "INT64" + }, + { + "name": "direct_messages__days_since_last", + "valueType": "INT64" + }, + { + "name": "direct_messages__elapsed_days", + "valueType": "INT64" + }, + { + "name": "direct_messages__ewma", + "valueType": "DOUBLE" + }, + { + "name": "direct_messages__is_missing", + "valueType": "BOOL" + }, + { + "name": "direct_messages__mean", + "valueType": "DOUBLE" + }, + { + "name": "direct_messages__non_zero_days", + "valueType": "INT64" + }, + { + "name": "direct_messages__variance", + "valueType": "DOUBLE" + }, + { + "name": "dwell_time__days_since_last", + "valueType": "INT64" + }, + { + "name": "dwell_time__elapsed_days", + "valueType": "INT64" + }, + { + "name": "dwell_time__ewma", + "valueType": "DOUBLE" + }, + { + "name": "dwell_time__is_missing", + "valueType": "BOOL" + }, + { + "name": "dwell_time__mean", + "valueType": "DOUBLE" + }, + { + "name": "dwell_time__non_zero_days", + "valueType": "INT64" + }, + { + "name": "dwell_time__variance", + "valueType": "DOUBLE" + }, + { + "name": "follow__days_since_last", + "valueType": "INT64" + }, + { + "name": "follow__elapsed_days", + "valueType": "INT64" + }, + { + "name": "follow__ewma", + "valueType": "DOUBLE" + }, + { + "name": "follow__is_missing", + "valueType": "BOOL" + }, + { + "name": "follow__mean", + "valueType": "DOUBLE" + }, + { + "name": "follow__non_zero_days", + "valueType": "INT64" + }, + { + "name": "follow__variance", + "valueType": "DOUBLE" + }, + { + "name": "inspected_statuses__days_since_last", + "valueType": "INT64" + }, + { + "name": "inspected_statuses__elapsed_days", + "valueType": "INT64" + }, + { + "name": "inspected_statuses__ewma", + "valueType": "DOUBLE" + }, + { + "name": "inspected_statuses__is_missing", + "valueType": "BOOL" + }, + { + "name": "inspected_statuses__mean", + "valueType": "DOUBLE" + }, + { + "name": "inspected_statuses__non_zero_days", + "valueType": "INT64" + }, + { + "name": "inspected_statuses__variance", + "valueType": "DOUBLE" + }, + { + "name": "likes__days_since_last", + "valueType": "INT64" + }, + { + "name": "likes__elapsed_days", + "valueType": "INT64" + }, + { + "name": "likes__ewma", + "valueType": "DOUBLE" + }, + { + "name": "likes__is_missing", + "valueType": "BOOL" + }, + { + "name": "likes__mean", + "valueType": "DOUBLE" + }, + { + "name": "likes__non_zero_days", + "valueType": "INT64" + }, + { + "name": "likes__variance", + "valueType": "DOUBLE" + }, + { + "name": "link_clicks__days_since_last", + "valueType": "INT64" + }, + { + "name": "link_clicks__elapsed_days", + "valueType": "INT64" + }, + { + "name": "link_clicks__ewma", + "valueType": "DOUBLE" + }, + { + "name": "link_clicks__is_missing", + "valueType": "BOOL" + }, + { + "name": "link_clicks__mean", + "valueType": "DOUBLE" + }, + { + "name": "link_clicks__non_zero_days", + "valueType": "INT64" + }, + { + "name": "link_clicks__variance", + "valueType": "DOUBLE" + }, + { + "name": "mentions__days_since_last", + "valueType": "INT64" + }, + { + "name": "mentions__elapsed_days", + "valueType": "INT64" + }, + { + "name": "mentions__ewma", + "valueType": "DOUBLE" + }, + { + "name": "mentions__is_missing", + "valueType": "BOOL" + }, + { + "name": "mentions__mean", + "valueType": "DOUBLE" + }, + { + "name": "mentions__non_zero_days", + "valueType": "INT64" + }, + { + "name": "mentions__variance", + "valueType": "DOUBLE" + }, + { + "name": "mutual_follow__days_since_last", + "valueType": "INT64" + }, + { + "name": "mutual_follow__elapsed_days", + "valueType": "INT64" + }, + { + "name": "mutual_follow__ewma", + "valueType": "DOUBLE" + }, + { + "name": "mutual_follow__is_missing", + "valueType": "BOOL" + }, + { + "name": "mutual_follow__mean", + "valueType": "DOUBLE" + }, + { + "name": "mutual_follow__non_zero_days", + "valueType": "INT64" + }, + { + "name": "mutual_follow__variance", + "valueType": "DOUBLE" + }, + { + "name": "num_blocks__days_since_last", + "valueType": "INT64" + }, + { + "name": "num_blocks__is_missing", + "valueType": "BOOL" + }, + { + "name": "num_mutes__days_since_last", + "valueType": "INT64" + }, + { + "name": "num_mutes__is_missing", + "valueType": "BOOL" + }, + { + "name": "num_report_as_abuses__days_since_last", + "valueType": "INT64" + }, + { + "name": "num_report_as_abuses__elapsed_days", + "valueType": "INT64" + }, + { + "name": "num_report_as_abuses__ewma", + "valueType": "DOUBLE" + }, + { + "name": "num_report_as_abuses__is_missing", + "valueType": "BOOL" + }, + { + "name": "num_report_as_abuses__mean", + "valueType": "DOUBLE" + }, + { + "name": "num_report_as_abuses__non_zero_days", + "valueType": "INT64" + }, + { + "name": "num_report_as_abuses__variance", + "valueType": "DOUBLE" + }, + { + "name": "num_report_as_spams__days_since_last", + "valueType": "INT64" + }, + { + "name": "num_report_as_spams__elapsed_days", + "valueType": "INT64" + }, + { + "name": "num_report_as_spams__ewma", + "valueType": "DOUBLE" + }, + { + "name": "num_report_as_spams__is_missing", + "valueType": "BOOL" + }, + { + "name": "num_report_as_spams__mean", + "valueType": "DOUBLE" + }, + { + "name": "num_report_as_spams__non_zero_days", + "valueType": "INT64" + }, + { + "name": "num_report_as_spams__variance", + "valueType": "DOUBLE" + }, + { + "name": "num_tweet_quotes__days_since_last", + "valueType": "INT64" + }, + { + "name": "num_tweet_quotes__elapsed_days", + "valueType": "INT64" + }, + { + "name": "num_tweet_quotes__ewma", + "valueType": "DOUBLE" + }, + { + "name": "num_tweet_quotes__is_missing", + "valueType": "BOOL" + }, + { + "name": "num_tweet_quotes__mean", + "valueType": "DOUBLE" + }, + { + "name": "num_tweet_quotes__non_zero_days", + "valueType": "INT64" + }, + { + "name": "num_tweet_quotes__variance", + "valueType": "DOUBLE" + }, + { + "name": "photo_tags__days_since_last", + "valueType": "INT64" + }, + { + "name": "photo_tags__elapsed_days", + "valueType": "INT64" + }, + { + "name": "photo_tags__ewma", + "valueType": "DOUBLE" + }, + { + "name": "photo_tags__is_missing", + "valueType": "BOOL" + }, + { + "name": "photo_tags__mean", + "valueType": "DOUBLE" + }, + { + "name": "photo_tags__non_zero_days", + "valueType": "INT64" + }, + { + "name": "photo_tags__variance", + "valueType": "DOUBLE" + }, + { + "name": "profile_views__days_since_last", + "valueType": "INT64" + }, + { + "name": "profile_views__elapsed_days", + "valueType": "INT64" + }, + { + "name": "profile_views__ewma", + "valueType": "DOUBLE" + }, + { + "name": "profile_views__is_missing", + "valueType": "BOOL" + }, + { + "name": "profile_views__mean", + "valueType": "DOUBLE" + }, + { + "name": "profile_views__non_zero_days", + "valueType": "INT64" + }, + { + "name": "profile_views__variance", + "valueType": "DOUBLE" + }, + { + "name": "retweets__days_since_last", + "valueType": "INT64" + }, + { + "name": "retweets__elapsed_days", + "valueType": "INT64" + }, + { + "name": "retweets__ewma", + "valueType": "DOUBLE" + }, + { + "name": "retweets__is_missing", + "valueType": "BOOL" + }, + { + "name": "retweets__mean", + "valueType": "DOUBLE" + }, + { + "name": "retweets__non_zero_days", + "valueType": "INT64" + }, + { + "name": "retweets__variance", + "valueType": "DOUBLE" + }, + { + "name": "reverse_weight", + "valueType": "DOUBLE" + }, + { + "name": "sms_follow__days_since_last", + "valueType": "INT64" + }, + { + "name": "sms_follow__elapsed_days", + "valueType": "INT64" + }, + { + "name": "sms_follow__ewma", + "valueType": "DOUBLE" + }, + { + "name": "sms_follow__is_missing", + "valueType": "BOOL" + }, + { + "name": "sms_follow__mean", + "valueType": "DOUBLE" + }, + { + "name": "sms_follow__non_zero_days", + "valueType": "INT64" + }, + { + "name": "sms_follow__variance", + "valueType": "DOUBLE" + }, + { + "name": "tweet_clicks__days_since_last", + "valueType": "INT64" + }, + { + "name": "tweet_clicks__elapsed_days", + "valueType": "INT64" + }, + { + "name": "tweet_clicks__ewma", + "valueType": "DOUBLE" + }, + { + "name": "tweet_clicks__is_missing", + "valueType": "BOOL" + }, + { + "name": "tweet_clicks__mean", + "valueType": "DOUBLE" + }, + { + "name": "tweet_clicks__non_zero_days", + "valueType": "INT64" + }, + { + "name": "tweet_clicks__variance", + "valueType": "DOUBLE" + }, + { + "name": "weight", + "valueType": "DOUBLE" + } + ], + "name": "real_graph", + "online": true, + "tags": { + "description": "Scores for various health models. See http://go/hss for more information.", + "fs10_dataset": "https://cortex.twitter.biz/datasets/com.twitter.ml.featurestore.catalog.datasets.timelines.RealGraphFeaturesEntityDataset", + "prepend_strategy": "dataset_and_table", + "team": "HOME" + }, + "ttl": "86400s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-featurestore-prod.recommendations.search_abuse_sim_cluster_features" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-featurestore-prod.recommendations.search_abuse_sim_cluster_features", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "user" + ], + "features": [ + { + "name": "search_abuse_sim_cluster_features__author_search_abuse_reports", + "valueType": "DOUBLE" + }, + { + "name": "search_abuse_sim_cluster_features__author_search_impressions", + "valueType": "DOUBLE" + }, + { + "name": "search_abuse_sim_cluster_features__consumer_search_abuse_reports", + "valueType": "DOUBLE" + }, + { + "name": "search_abuse_sim_cluster_features__consumer_search_impressions", + "valueType": "DOUBLE" + } + ], + "name": "search_abuse_sim_cluster_features", + "online": true, + "tags": { + "description": "For more info see go/simclusters.", + "fs10_dataset": "https://cortex.twitter.biz/datasets/com.twitter.ml.featurestore.catalog.datasets.recommendations.SearchAbuseSimClusterFeaturesDataset", + "prepend_strategy": "dataset", + "team": "MLFM" + }, + "ttl": "604800s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-featurestore-prod.safetygraph.second_degree_connections" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-featurestore-prod.safetygraph.second_degree_connections", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "user" + ], + "features": [ + { + "name": "safetygraph_second_degree_connections_derived_v_1__all_connected_users_set", + "valueType": "INT64" + }, + { + "name": "safetygraph_second_degree_connections_derived_v_1__num_connected_users", + "valueType": "INT64" + }, + { + "name": "safetygraph_second_degree_connections_v_1__users_connected_by_client_uu_ids__count", + "valueType": "INT64" + }, + { + "name": "safetygraph_second_degree_connections_v_1__users_connected_by_client_uu_ids__set", + "valueType": "INT64" + }, + { + "name": "safetygraph_second_degree_connections_v_1__users_connected_by_guest_cookie_ids__count", + "valueType": "INT64" + }, + { + "name": "safetygraph_second_degree_connections_v_1__users_connected_by_guest_cookie_ids__set", + "valueType": "INT64" + }, + { + "name": "safetygraph_second_degree_connections_v_1__users_connected_by_normalized_emails__count", + "valueType": "INT64" + }, + { + "name": "safetygraph_second_degree_connections_v_1__users_connected_by_normalized_emails__set", + "valueType": "INT64" + }, + { + "name": "safetygraph_second_degree_connections_v_1__users_connected_by_phone_numbers__count", + "valueType": "INT64" + }, + { + "name": "safetygraph_second_degree_connections_v_1__users_connected_by_phone_numbers__set", + "valueType": "INT64" + } + ], + "name": "second_degree_connections_source", + "online": true, + "tags": { + "description": "Set of features for a user's connected users within safetygraph. See http://go/safetygraph", + "fs10_dataset": "https://cortex.twitter.biz/datasets/com.twitter.ml.featurestore.catalog.datasets.safetygraph.SafetygraphSecondDegreeConnectionsV1Features", + "prepend_strategy": "dataset", + "team": "MLFM" + }, + "ttl": "86400s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-featurestore-prod.map.install_counts_v1" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-featurestore-prod.map.install_counts_v1", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "click_count_1h", + "valueType": "INT64" + }, + { + "name": "click_count_1d", + "valueType": "INT64" + }, + { + "name": "click_count_7d", + "valueType": "INT64" + }, + { + "name": "click_count_30d", + "valueType": "INT64" + }, + { + "name": "install_count_1h", + "valueType": "INT64" + }, + { + "name": "install_count_1d", + "valueType": "INT64" + }, + { + "name": "install_count_7d", + "valueType": "INT64" + }, + { + "name": "install_count_30d", + "valueType": "INT64" + } + ], + "name": "skan_counts_prior", + "online": true, + "tags": { + "description": "DESCRIPTION_NEEDED_MARKER_FEAST", + "team": "REVSCI" + }, + "ttl": "3600s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-featurestore-prod.abuse.source_user_aggregates" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-featurestore-prod.abuse.source_user_aggregates", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "user" + ], + "features": [ + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__LollyModelScoreAbuseRtfEnsembleV3__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__target_user__TweetVictimIdToCommMutesFrom7Days__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__IsNormalizedNonAbusiveTweetConsensus__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__tweet__botmaker__target_user__num_following__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__tweet__botmaker__target_user__num_following__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__target_user__TweetVictimIdToLegitMutesFrom7Days__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__tweet__botmaker__target_user__FirstRecentNonFollowerMentions__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__tweet__botmaker__target_user__has_confirmed_email__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__target_user__num_following__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__target_user__tweepcred__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__tweet__botmaker__target_user__TweetVictimIdToReportedAsSpam__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__text_has_top_abusive_unigram_unstemmed__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_target_user__TweetVictimIdToRecentlyMentionedAuthor__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__target_user__TweetVictimIdToNonFollowerMentionLikesFrom7Days__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__target_user__was_mentioned__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__IsNormalizedAbusiveTweetMajority__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__text_capital_ratio__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__tweet__botmaker__target_user__TweetVictimIdToNonFollowerTweetNotificationAgainst1Day__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__text_num_punctuation__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__is_reply__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__tweet__botmaker__target_user__TweetVictimIdToReportedAsSpam__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__tweet__botmaker__target_user__TweetVictimIdToLegitBlocksFrom7Days__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__IsNormalizedAbusiveTweetSplit__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__text_has_variation_of_they__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__target_user__num_blockers__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__tweet__botmaker__target_user__num_followers__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__text_num_non_mention_tokens__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__text_has_top_abusive_bigram_unstemmed__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__text_has_variation_of_he_she__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__text_num_non_mention_tokens__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__tweet__botmaker__target_user__num_muters__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__target_user__num_muting__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__target_user__num_blockers__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__text_has_top_abusive_trigram_unstemmed__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__text_num_exclamation__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__text_has_variation_of_i__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__target_user__TweetVictimIdToNonFollowerTweetNotificationAgainst7Days__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__tweet__botmaker__target_user__TweetVictimIdToCommMutesFrom7Days__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__text_has_top_abusive_unigram_unstemmed__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__any_feature__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__text_num_at_mention__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_target_user__TweetVictimIdToRecentNonFollowerMentionTimestampFromAuthor__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__text_is_manual_or_quoted_retweet__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__target_user__TweetVictimIdToLegitMutesFrom7Days__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__target_user__num_following__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_target_user__source_follows_target__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__target_user__is_verified__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__text_has_mid_tweet_mention__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__text_num_url__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__text_num_capital__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__text_has_top_abusive_bigram_unstemmed__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_target_user__source_follows_target__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__text_is_manual_or_quoted_retweet__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__tweet__botmaker__target_user__is_nsfw_user__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__text_num_url__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__text_num_capital__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__target_user__TweetVictimIdToReportedAsSpam__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__text_num_punctuation__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__target_user__was_mentioned__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__tweet__botmaker__target_user__TweetVictimIdToLegitMutesFrom7Days__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__text_has_hashtag__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__target_user__num_favorites__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__LollyModelScoreAbuseRtfEnsembleV3__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__NonFollowerTweetNotification__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__tweet__botmaker__target_user__num_muting__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__text_has_top_abusive_bigram_unstemmed__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__tweet__botmaker__LollyModelScoreAbuseRtfEnsembleV3__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__LollyModelScoreAbuseRtf5__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__text_length__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__target_user__TweetVictimIdToReportingAsSpam__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__target_user__num_muters__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__text_has_top_abusive_trigram_unstemmed__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__target_user__TweetVictimIdToNonFollowerTweetNotificationAgainst1Day__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__tweet__botmaker__target_user__was_mentioned__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_target_user__TweetVictimIdToRecentlyDMedAuthor__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__tweet__botmaker__target_user__num_favorites__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__text_num_non_mention_tokens__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__target_user__was_quoted__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__tweet__botmaker__target_user__num_blocking__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__text_has_question_mark__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__target_user__TweetVictimIdToNonFollowerMentionLikesFrom7Days__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__target_user__TweetVictimIdToNonFollowerTweetNotificationAgainst1Day__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__text_num_swear_ngrams_unstemmed__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__any_feature__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__target_user__TweetVictimIdToNonFollowerTweetNotificationAgainst1Hour__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__target_user__TweetVictimIdToNonFollowerMentionLikesFrom7Days__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__tweet__botmaker__target_user__TweetVictimIdToLegitBlocksFrom7Days__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__tweet__botmaker__target_user__num_muting__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_target_user__TweetVictimIdToRecentlyRetweetedAuthor__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__target_user__is_verified__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__tweet__botmaker__target_user__num_blockers__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__target_user__has_verified_phone__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__IsNormalizedAbusiveTweetSplit__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__has_media__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__target_user__num_blocking__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_target_user__TweetVictimIdToRecentlyMentionedAuthor__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_target_user__TweetVictimIdToRecentlyLikedAuthor__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__target_user__tweepcred__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__text_num_hashtag__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__target_user__TweetVictimIdToLegitBlocksFrom7Days__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__text_num_punctuation__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__target_user__TweetVictimIdToCommBlocksFrom7Days__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__target_user__num_following__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__IsNormalizedNonAbusiveTweetMajority__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__target_user__tweepcred__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_target_user__TweetVictimIdToRecentlyRetweetedAuthor__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__tweet__botmaker__target_user__is_verified__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_target_user__TweetVictimIdToRecentlyLikedAuthor__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__any_feature__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__IsNormalizedAbusiveTweetConsensus__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__tweet__botmaker__target_user__TweetVictimIdToCommMutesFrom7Days__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__tweet__botmaker__target_user__TweetVictimIdToNonFollowerTweetNotificationAgainst1Day__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__text_has_mid_tweet_mention_and_he_she_they_pronoun__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__target_user__num_favorites__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__any_feature__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_target_user__source_follows_target__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__text_has_swear_ngram_unstemmed__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__any_feature__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__IsNormalizedNonAbusiveTweetSplit__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__LollyModelScoreAbuseRtfEnsembleV3__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__tweet__botmaker__LollyModelScoreAbuseRtf5__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__target_user__TweetVictimIdToLegitBlocksFrom7Days__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__target_user__TweetVictimIdToNonFollowerTweetNotificationAgainst1Day__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__target_user__is_nsfw_user__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__target_user__num_tweets__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__text_num_non_mention_tokens__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__tweet__botmaker__target_user__num_muters__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__target_user__tweepcred__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__text_num_exclamation__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__IsNormalizedAbusiveTweetConsensus__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_target_user__TweetVictimIdToRecentlyFollowedAuthor__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__target_user__num_muting__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_target_user__TweetVictimIdToRecentlyMentionedAuthor__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__text_num_at_mention__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__target_user__num_blockers__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__text_num_at_mention__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__target_user__num_tweets__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__text_has_variation_of_you__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__tweet__botmaker__target_user__TweetVictimIdToNonFollowerTweetNotificationAgainst7Days__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__text_num_swear_ngrams_unstemmed__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__target_user__TweetVictimIdToCommBlocksFrom7Days__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__target_user__TweetVictimIdToReportedAsSpam__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__target_user__was_quoted__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__text_num_url__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__target_user__TweetVictimIdToCommMutesFrom7Days__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__target_user__num_tweets__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__tweet__botmaker__target_user__num_blockers__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__text_num_hashtag__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__text_capital_ratio__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__text_num_non_mention_tokens__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__target_user__num_blocking__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__text_num_exclamation__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__target_user__TweetVictimIdToNonFollowerTweetNotificationAgainst7Days__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__text_num_swear_ngrams_unstemmed__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_target_user__TweetVictimIdToRecentNonFollowerMentionTimestampFromAuthor__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__tweet__botmaker__target_user__TweetVictimIdToNonFollowerTweetNotificationAgainst1Hour__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_target_user__TweetVictimIdToRecentNonFollowerMentionTimestampFromAuthor__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__text_has_hashtag__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__tweet__botmaker__target_user__has_uqf_enabled__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__LollyModelScoreAbuseRtf5__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__target_user__has_confirmed_email__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__target_user__num_muters__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__text_num_non_mention_tokens__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__text_has_variation_of_you__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__target_user__num_favorites__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__target_user__TweetVictimIdToReportingAsSpam__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__text_has_question_mark__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__target_user__num_following__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_target_user__TweetVictimIdToRecentlyDMedAuthor__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_target_user__TweetVictimIdToRecentNonFollowerMentionTimestampFromAuthor__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__text_length__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__is_self_conversation__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__text_num_exclamation__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__IsTweetTextNormalizedExactMatchAbusive__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__text_has_emoji__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__target_user__num_blockers__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__target_user__num_tweets__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__tweet__botmaker__target_user__num_followers__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__tweet__botmaker__target_user__has_verified_phone__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__target_user__has_verified_phone__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__target_user__num_followers__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__target_user__TweetVictimIdToNonFollowerTweetNotificationAgainst1Day__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__text_has_top_abusive_unigram_unstemmed__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__text_has_mid_tweet_mention__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_target_user__TweetVictimIdToRecentlyRetweetedAuthor__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_target_user__target_follows_source__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__tweet__botmaker__target_user__tweepcred__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_target_user__target_follows_source__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__tweet__botmaker__target_user__was_quoted__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__text_has_variation_of_i__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__target_user__TweetVictimIdToCommMutesFrom7Days__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__tweet__botmaker__has_media__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__target_user__TweetVictimIdToNonFollowerTweetNotificationAgainst7Days__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_target_user__TweetVictimIdToRecentlyFollowedAuthor__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__NonFollowerTweetNotification__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__text_has_question_mark__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__text_length__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__AtReplyNonFollower__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__text_has_top_abusive_trigram_unstemmed__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__text_capital_ratio__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__text_has_quotes_but_not_manual_or_quoted_retweet__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__target_user__TweetVictimIdToLegitBlocksFrom7Days__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__target_user__FirstRecentNonFollowerMentions__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__target_user__TweetVictimIdToNonFollowerMentionLikesFrom7Days__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__text_has_variation_of_they__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__target_user__TweetVictimIdToNonFollowerTweetNotificationAgainst1Hour__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__tweet__botmaker__AtReplyBlocker__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__text_num_hashtag__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__target_user__has_uqf_enabled__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__target_user__num_muters__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__target_user__has_confirmed_device__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__text_num_exclamation__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__text_num_at_mention__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__IsNormalizedNonAbusiveTweetMajority__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__tweet__botmaker__AtReplyNonFollower__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__tweet__botmaker__target_user__has_confirmed_device__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__text_has_mid_tweet_mention_and_he_she_they_pronoun__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__IsNormalizedNonAbusiveTweetConsensus__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__target_user__TweetVictimIdToReportedAsSpam__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__tweet__botmaker__target_user__num_favorites__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__text_num_hashtag__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__text_num_capital__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__target_user__num_favorites__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__target_user__FirstRecentNonFollowerMentions__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__target_user__TweetVictimIdToCommMutesFrom7Days__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__target_user__TweetVictimIdToReportingAsSpam__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__any_feature__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__IsTweetTextNormalizedExactMatchNonAbusive__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__tweet__botmaker__target_user__TweetVictimIdToLegitMutesFrom7Days__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__tweet__botmaker__target_user__TweetVictimIdToCommBlocksFrom7Days__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__text_capital_ratio__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__IsNormalizedAbusiveTweetMajority__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__tweet__botmaker__target_user__TweetVictimIdToNonFollowerTweetNotificationAgainst7Days__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__target_user__num_blocking__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__target_user__was_replied_to__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__is_reply__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__text_has_variation_of_he_she__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__target_user__has_uqf_enabled__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__text_length__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__IsNormalizedAbusiveTweetSplit__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__text_num_exclamation__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__AtReplyAllStranger__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__target_user__is_nsfw_admin__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__text_num_url__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__is_self_conversation__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__text_has_swear_ngram_unstemmed__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__text_num_swear_ngrams_unstemmed__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__text_capital_ratio__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__IsNormalizedAbusiveTweetMajority__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__text_has_emoji__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__has_media__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__text_num_at_mention__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__text_has_variation_of_i__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__target_user__num_followers__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__text_has_mid_tweet_mention_and_he_she_they_pronoun__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__text_length__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__text_has_variation_of_he_she__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__AtReplyAllStranger__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__text_num_capital__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__target_user__TweetVictimIdToNonFollowerTweetNotificationAgainst1Hour__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__text_has_hashtag__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__text_has_quotes_but_not_manual_or_quoted_retweet__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__tweet__botmaker__NonFollowerTweetNotification__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__is_reply__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__tweet__botmaker__target_user__num_blocking__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__target_user__has_confirmed_email__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__tweet__botmaker__AtReplyAllStranger__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__text_num_capital__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__tweet__botmaker__target_user__TweetVictimIdToReportingAsSpam__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__target_user__TweetVictimIdToNonFollowerTweetNotificationAgainst7Days__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__text_num_url__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__IsNormalizedAbusiveTweetConsensus__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__target_user__is_nsfw_admin__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__target_user__num_blocking__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__tweet__botmaker__target_user__TweetVictimIdToCommBlocksFrom7Days__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_target_user__TweetVictimIdToRecentNonFollowerMentionTimestampFromAuthor__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__text_has_mid_tweet_mention__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__text_num_hashtag__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__target_user__TweetVictimIdToLegitBlocksFrom7Days__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__target_user__num_muting__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__target_user__TweetVictimIdToLegitMutesFrom7Days__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__text_num_hashtag__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__target_user__num_followers__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__tweet__botmaker__LollyModelScoreAbuseRtfEnsembleV3__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__target_user__TweetVictimIdToNonFollowerTweetNotificationAgainst1Hour__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__text_has_swear_ngram_unstemmed__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__text_has_quotes_but_not_manual_or_quoted_retweet__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__tweet__botmaker__target_user__num_tweets__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__IsNormalizedNonAbusiveTweetSplit__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__is_self_conversation__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__text_num_url__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__target_user__num_muting__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__text_length__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__AtReplyBlocker__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__IsNormalizedNonAbusiveTweetConsensus__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__text_has_variation_of_they__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__target_user__TweetVictimIdToCommBlocksFrom7Days__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__target_user__has_confirmed_device__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__text_capital_ratio__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__LollyModelScoreAbuseRtf5__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__text_is_manual_or_quoted_retweet__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__target_user__TweetVictimIdToCommBlocksFrom7Days__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__target_user__is_nsfw_user__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_target_user__target_follows_source__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__tweet__botmaker__target_user__TweetVictimIdToReportingAsSpam__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__tweet__botmaker__target_user__TweetVictimIdToNonFollowerTweetNotificationAgainst1Hour__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__LollyModelScoreAbuseRtfEnsembleV3__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__target_user__TweetVictimIdToReportedAsSpam__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_target_user__TweetVictimIdToRecentlyLikedAuthor__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__text_num_capital__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__text_num_punctuation__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__text_num_swear_ngrams_unstemmed__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_target_user__TweetVictimIdToRecentlyDMedAuthor__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__text_num_at_mention__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__text_num_punctuation__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__target_user__num_followers__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__tweet__botmaker__target_user__is_nsfw_admin__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__tweet__botmaker__target_user__was_replied_to__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__target_user__num_muters__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__target_user__was_replied_to__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__IsNormalizedNonAbusiveTweetSplit__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__LollyModelScoreAbuseRtf5__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__tweet__botmaker__LollyModelScoreAbuseRtf5__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__IsTweetTextNormalizedExactMatchAbusive__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__IsTweetTextNormalizedExactMatchAbusive__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__tweet__botmaker__target_user__num_tweets__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__tweet__botmaker__target_user__TweetVictimIdToNonFollowerMentionLikesFrom7Days__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__AtReplyBlocker__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__target_user__TweetVictimIdToLegitMutesFrom7Days__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__tweet__botmaker__target_user__TweetVictimIdToNonFollowerMentionLikesFrom7Days__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__text_has_emoji__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__AtReplyNonFollower__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__text_has_variation_of_you__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__tweet__botmaker__target_user__tweepcred__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_target_user__TweetVictimIdToRecentlyFollowedAuthor__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__target_user__TweetVictimIdToReportingAsSpam__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__IsNormalizedNonAbusiveTweetMajority__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__IsTweetTextNormalizedExactMatchNonAbusive__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__text_num_punctuation__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__IsTweetTextNormalizedExactMatchNonAbusive__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_target_user__TweetVictimIdToRecentNonFollowerMentionTimestampFromAuthor__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__source_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__text_num_swear_ngrams_unstemmed__5__days__sum", + "valueType": "DOUBLE" + } + ], + "name": "source_user_aggregates_source", + "online": true, + "tags": { + "description": "Features for source user", + "fs10_dataset": "https://cortex.twitter.biz/datasets/com.twitter.ml.featurestore.catalog.datasets.abuse.SourceUserAggregatesEntityDataset", + "team": "MLFM" + }, + "ttl": "86400s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-featurestore-prod.abuse.target_user_aggregates" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-featurestore-prod.abuse.target_user_aggregates", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "user" + ], + "features": [ + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__LollyModelScoreAbuseRtfEnsembleV3__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__num_muters__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__text_num_non_mention_tokens__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__text_num_hashtag__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__NumAtReplyFollower10minAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__is_nsfw_user__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__source_user__follower_following_ratio__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__CommMutesAgainstAbuserId7Days__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__UserReported24hrsAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__LollyAbuseRtf5CounterOutgoingAtReplyNonFollower1DayCountAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__LollyAbuseRtf5CounterOutgoing1DayP99AbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__IsTweetTextNormalizedExactMatchNonAbusive__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__UserReportedAsAbuse24hrsAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__NumAtReplyFollower10minAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__CommunicationBlockCount2MonthsAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__NumUniqueVictimUserReported24hrsAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__AtReplyBlocker__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__source_user__communication_block_follow_ratio_2_months__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__text_has_variation_of_you__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__NumAtReplyNonFollower24hrsAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__text_has_mid_tweet_mention__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__num_favorites__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__FollowerCount2MonthsAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__has_confirmed_device__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__LegitMuteCount2MonthsAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__is_self_conversation__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__IsSpammerIdAdvertiserOrInsideSales__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__NumMuted24hrsAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__LollyAbuseRtf5CounterOutgoingAbuseRTFSafeguardAll1DayP50AbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__any_feature__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__LollyAbuseRtf5CounterOutgoing1DayCountAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__text_num_url__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__CommBlocksAgainstAbuserId7Days__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__text_num_punctuation__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__text_has_emoji__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__FollowerCount2MonthsAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__AtReplyBlocker__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__text_num_non_mention_tokens__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__IsUserAbuseExemptAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__AtReplyAllStranger__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__CommBlocksAgainstAbuserId7Days__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__AllFollowsFromAbuserId7Days__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__NumAtReplyFollower24hrsAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__text_is_manual_or_quoted_retweet__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__CommMutesAgainstAbuserId7Days__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__num_favorites__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__UserReportedAsAbuse24hrsAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__text_num_swear_ngrams_unstemmed__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__LollyAbuseRtf5CounterOutgoing1DayCountAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__num_followers__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__IsNormalizedNonAbusiveTweetMajority__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__source_user__follower_following_ratio__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__NumUniqueRetweetsLast24hrsAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__IsNormalizedAbusiveTweetMajority__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__source_user__communication_block_follow_ratio_2_months__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__NonFollowerTweetNotificationFromAbuserId7Days__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__has_media__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__NumUniqueVictimUserReportedAbuse24hrsAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__NumAtReply10minAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__NonFollowerTweetNotificationFromAbuserId7Days__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__text_is_manual_or_quoted_retweet__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__NumMuted24hrsAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__source_user__communication_mute_follow_ratio_2_months__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__text_has_mid_tweet_mention__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__num_muters__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__NumMuted24hrsAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__text_has_mid_tweet_mention_and_he_she_they_pronoun__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__source_user__block_follow_ratio__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__LollyAbuseRtf5CounterOutgoingAbuseRTFSafeguardAll1DayP50AbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__LollyAbuseRtf5CounterOutgoingAbuseRTFSafeguardAll1DayP99AbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__has_confirmed_email__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__text_num_at_mention__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__LegitBlocksAgainstAbuserId7Days__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__LollyModelScoreAbuseRtfEnsembleV3__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__num_blockers__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__ReportedAsSpamAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__IsNormalizedNonAbusiveTweetSplit__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__text_num_swear_ngrams_unstemmed__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__num_blockers__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__text_num_exclamation__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__source_user__age_in_ms__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__NumAtReplyNonFollower24hrsRatioAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__text_num_swear_ngrams_unstemmed__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__AllFollowsAgainstAbuserId7Days__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__is_reply__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__NumBlocksLast24hrsAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__LollyAbuseRtf5CounterOutgoing1DayCountAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__text_has_variation_of_he_she__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__text_has_top_abusive_trigram_unstemmed__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__text_num_capital__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__LollyAbuseRtf5CounterOutgoingAtReplyNonFollower1DayP99AbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__text_num_hashtag__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__ReportingAsSpamAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__LegitMutesAgainstAbuserId7Days__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__NumAtReplyFollower10minAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__NumAtReplyNonFollower10minAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__text_length__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__PerUserSimilarTweetsOneDayNormalized2AbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__LollyAbuseRtf5CounterOutgoingAtReplyNonFollower1DayP50AbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__LegitMutesAgainstAbuserId7Days__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__NonFollowerTweetsFromAbuserId7Days__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__text_length__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__NumAtReplyNonFollower24hrsAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__ReportedAsSpamAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__any_feature__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__source_user__communication_block_follow_ratio_2_months__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__num_favorites__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__NumUniqueVictimUserReported24hrsAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__NumUniqueMentionsLast24hrsAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__LollyAbuseRtf5CounterOutgoingAbuseRTFSafeguardAll1DayCountAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__FollowerCount2MonthsAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__AllFollowsAgainstAbuserId7Days__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__num_muting__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__CommunicationBlockCount2MonthsAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__NonFollowerTweetNotificationFromAbuserId7Days__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__text_has_quotes_but_not_manual_or_quoted_retweet__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__has_verified_phone__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__num_muters__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__created_at_ms__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__num_favorites__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__text_has_question_mark__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__NumUniqueVictimUserReported24hrsAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__LegitBlockCount2MonthsAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__LegitBlocksAgainstAbuserId7Days__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__NumUniqueRetweetsLast24hrsAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__NumUniqueMentionsLast24hrsAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__num_blocking__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__num_following__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__CommunicationBlockCount2MonthsAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__LollyAbuseRtf5CounterOutgoing1DayP99AbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__text_has_variation_of_they__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__source_user__communication_block_follow_ratio_2_months__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__source_user__age_in_ms__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__LollyAbuseRtf5CounterOutgoingAtReplyNonFollower1DayCountAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__NumAtReplyNonFollower10minAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__text_has_variation_of_you__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__LollyAbuseRtf5CounterOutgoing1DayP99AbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__text_num_capital__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__IsNormalizedNonAbusiveTweetSplit__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__source_user__communication_block_follow_ratio_2_months__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__has_confirmed_device__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__source_user__age_in_ms__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__num_muters__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__source_user__communication_mute_follow_ratio_2_months__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__NumUniqueVictimUserReportedAbuse24hrsAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__IsNormalizedAbusiveTweetSplit__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__LollyAbuseRtf5CounterOutgoingAbuseRTFSafeguardAll1DayP50AbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__text_has_top_abusive_unigram_unstemmed__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__text_num_exclamation__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__LollyAbuseRtf5CounterOutgoingAtReplyNonFollower1DayP99AbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__PerUserSimilarTweetsOneDayNormalized2RatioAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__NonFollowerTweetsFromAbuserId7Days__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__text_has_top_abusive_trigram_unstemmed__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__NumAtReplyNonFollower24hrsAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__text_has_hashtag__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__source_user__communication_block_follow_ratio_2_months__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__has_verified_phone__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__LollyAbuseRtf5CounterOutgoing1DayP50AbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__text_capital_ratio__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__ReportingAsSpamAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__NonFollowerTweetNotification__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__LollyModelScoreAbuseRtfEnsembleV3__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__text_num_url__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__NumUniqueRetweetsLast24hrsAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__NumAtReplyNonFollower10minAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__text_num_url__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__NumBlocksLast24hrsAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__LollyAbuseRtf5CounterOutgoingAtReplyNonFollower1DayCountAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__NumAtReplyIncoming24hrsAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__text_num_exclamation__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__AllFollowsFromAbuserId7Days__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__LollyAbuseRtf5CounterOutgoingAbuseRTFSafeguardAll1DayCountAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__text_num_swear_ngrams_unstemmed__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__text_num_punctuation__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__source_user__has_profile_description__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__is_nsfw_admin__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__num_muting__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__source_user__follower_following_ratio__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__LegitMutesAgainstAbuserId7Days__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__LollyAbuseRtf5CounterOutgoingAtReplyNonFollower1DayP99AbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__num_muting__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__num_favorites__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__num_followers__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__LollyModelScoreAbuseRtfEnsembleV3__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__LollyAbuseRtf5CounterOutgoing1DayP50AbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__LegitBlocksAgainstAbuserId7Days__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__text_has_swear_ngram_unstemmed__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__ReportedAsSpamAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__LollyModelScoreAbuseRtf5__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__text_has_emoji__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__UserReportedAsAbuse24hrsAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__AtReplyNonFollower__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__is_self_conversation__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__LollyModelScoreAbuseRtf5__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__text_num_punctuation__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__AtReplyNonFollower__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__NumAtReplyNonFollower10minAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__NumUniqueVictimUserReportedAbuse24hrsAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__PerUserSimilarTweetsOneDayNormalized2AbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__created_at_ms__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__IsTweetTextNormalizedExactMatchNonAbusive__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__source_user__follower_following_ratio__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__IsSpammerIdAdvertiserOrInsideSales__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__is_verified__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__has_uqf_enabled__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__num_blockers__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__is_nsfw_user__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__text_num_non_mention_tokens__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__LollyModelScoreAbuseRtf5__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__AtReplyAllStranger__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__IsNormalizedNonAbusiveTweetConsensus__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__text_num_capital__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__AllFollowsAgainstAbuserId7Days__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__text_num_hashtag__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__IsNormalizedAbusiveTweetSplit__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__text_has_quotes_but_not_manual_or_quoted_retweet__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__is_nsfw_admin__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__any_feature__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__PerUserSimilarTweetsOneDayNormalized2RatioAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__NumUniqueVictimUserReportedAbuse24hrsAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__text_num_exclamation__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__IsTweetTextNormalizedExactMatchAbusive__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__NumAtReply10minAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__CommunicationMuteCount2MonthsAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__IsNormalizedNonAbusiveTweetMajority__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__text_num_non_mention_tokens__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__IsUserAbuseExemptAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__FollowerCount2MonthsAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__NumAtReplyNonFollower24hrsRatioAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__NumUniqueMentionsLast24hrsAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__num_blockers__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__num_blocking__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__NumUniqueRetweetsLast24hrsAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__source_user__age_in_ms__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__has_confirmed_email__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__NumAtReply10minAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__AtReplyAllStranger__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__AllFollowsFromAbuserId7Days__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__NumBlocksLast24hrsAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__IsNormalizedNonAbusiveTweetSplit__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__ReportedAsSpamAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__num_tweets__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__NumUniqueFavoritesLast24hrsAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__text_num_punctuation__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__text_num_at_mention__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__UserReportedAsAbuse24hrsAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__UserReported24hrsAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__AllFollowsAgainstAbuserId7Days__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__NonFollowerTweetNotificationFromAbuserId7Days__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__source_user__follower_following_ratio__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__created_at_ms__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__num_muters__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__source_user__follower_following_ratio__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__text_has_top_abusive_unigram_unstemmed__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__text_is_manual_or_quoted_retweet__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__num_following__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__PerUserSimilarTweetsOneDayNormalized2RatioAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__text_num_exclamation__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__LollyModelScoreAbuseRtfEnsembleV3__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__text_has_variation_of_i__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__text_num_non_mention_tokens__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__NumUniqueFavoritesLast24hrsAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__NumMuted24hrsAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__LollyAbuseRtf5CounterOutgoingAtReplyNonFollower1DayP50AbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__CommMutesAgainstAbuserId7Days__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__NumAtReplyNonFollower24hrsAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__NumUniqueMentionsLast24hrsAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__PerUserSimilarTweetsOneDayNormalized2AbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__text_has_variation_of_he_she__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__CommMutesAgainstAbuserId7Days__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__is_verified__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__CommBlocksAgainstAbuserId7Days__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__AllFollowsAgainstAbuserId7Days__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__num_blocking__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__text_has_question_mark__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__has_uqf_enabled__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__LegitMutesAgainstAbuserId7Days__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__tweepcred__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__num_followers__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__text_has_question_mark__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__text_length__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__text_num_url__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__NumUniqueMentionsLast24hrsAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__source_user__age_in_ms__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__NonFollowerTweetNotification__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__NonFollowerTweetsFromAbuserId7Days__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__NumAtReplyNonFollower24hrsRatioAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__LollyAbuseRtf5CounterOutgoingAtReplyNonFollower1DayP99AbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__ReportingAsSpamAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__NonFollowerMentionLikesAgainstAbuserId7Days__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__NumAtReplyFollower10minAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__AllFollowsFromAbuserId7Days__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__NumMuted24hrsAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__CommBlocksAgainstAbuserId7Days__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__num_tweets__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__NonFollowerTweetNotificationFromAbuserId7Days__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__PerUserSimilarTweetsOneDayNormalized2RatioAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__NumAtReply10minAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__num_followers__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__has_verified_phone__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__tweepcred__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__num_tweets__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__NumAtReplyNonFollower10minAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__NumAtReplyNonFollower24hrsRatioAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__num_blocking__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__is_reply__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__LollyAbuseRtf5CounterOutgoingAbuseRTFSafeguardAll1DayP99AbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__NumAtReplyFollower24hrsAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__text_has_variation_of_he_she__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__LollyAbuseRtf5CounterOutgoing1DayP99AbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__ReportedAsSpamAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__is_reply__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__CommMutesAgainstAbuserId7Days__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__LegitBlockCount2MonthsAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__CommMutesAgainstAbuserId7Days__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__tweepcred__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__IsNormalizedAbusiveTweetMajority__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__created_at_ms__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__PerUserSimilarTweetsOneDayNormalized2RatioAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__NumUniqueFavoritesLast24hrsAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__num_following__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__ReportedAsSpamAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__NonFollowerTweetNotificationFromAbuserId7Days__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__UserReported24hrsAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__NonFollowerTweetsFromAbuserId7Days__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__source_user__block_follow_ratio__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__LollyModelScoreAbuseRtfEnsembleV3__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__LegitBlockCount2MonthsAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__NonFollowerMentionLikesAgainstAbuserId7Days__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__text_num_at_mention__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__NumAtReplyIncoming24hrsAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__IsTweetTextNormalizedExactMatchAbusive__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__any_feature__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__has_facebook_connection__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__AtReplyBlocker__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__NumUniqueFavoritesLast24hrsAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__LollyAbuseRtf5CounterOutgoingAbuseRTFSafeguardAll1DayP99AbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__NumAtReplyNonFollower24hrsRatioAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__PerUserSimilarTweetsOneDayNormalized2RatioAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__FollowerCount2MonthsAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__NumAtReplyIncoming24hrsAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__text_has_variation_of_you__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__NumAtReplyNonFollower24hrsAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__num_muting__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__source_user__has_profile_url__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__AtReplyNonFollower__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__text_capital_ratio__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__LollyAbuseRtf5CounterOutgoingAtReplyNonFollower1DayP50AbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__NumUniqueVictimUserReported24hrsAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__ReportingAsSpamAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__LegitMuteCount2MonthsAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__IsNormalizedAbusiveTweetMajority__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__NumUniqueMentionsLast24hrsAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__text_has_top_abusive_trigram_unstemmed__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__any_feature__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__text_has_hashtag__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__num_blockers__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__NonFollowerTweetsFromAbuserId7Days__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__source_user__block_follow_ratio__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__source_user__has_profile_url__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__has_media__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__LollyAbuseRtf5CounterOutgoingAtReplyNonFollower1DayCountAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__IsNormalizedNonAbusiveTweetMajority__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__has_profile_image__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__UserReported24hrsAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__LollyModelScoreAbuseRtf5__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__LollyAbuseRtf5CounterOutgoingAtReplyNonFollower1DayP50AbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__has_facebook_connection__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__source_user__has_profile_url__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__NumAtReplyFollower24hrsAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__source_user__block_follow_ratio__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__PerUserSimilarTweetsOneDayNormalized2AbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__text_capital_ratio__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__LollyAbuseRtf5CounterOutgoing1DayP99AbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__LollyAbuseRtf5CounterOutgoingAbuseRTFSafeguardAll1DayP50AbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__UserReportedAsAbuse24hrsAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__IsNormalizedAbusiveTweetSplit__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__LollyAbuseRtf5CounterOutgoingAbuseRTFSafeguardAll1DayCountAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__text_has_variation_of_they__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__is_self_conversation__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__CommunicationMuteCount2MonthsAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__LollyAbuseRtf5CounterOutgoingAbuseRTFSafeguardAll1DayCountAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__IsNormalizedAbusiveTweetConsensus__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__IsNormalizedAbusiveTweetConsensus__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__num_muting__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__text_has_swear_ngram_unstemmed__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__UserReported24hrsAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__NumUniqueVictimUserReportedAbuse24hrsAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__text_num_exclamation__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__LollyAbuseRtf5CounterOutgoing1DayP50AbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__text_length__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__text_length__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__LollyModelScoreAbuseRtf5__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__text_capital_ratio__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__num_followers__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__tweepcred__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__text_has_top_abusive_bigram_unstemmed__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__PerUserSimilarTweetsOneDayNormalized2AbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__NumAtReplyFollower24hrsAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__CommunicationBlockCount2MonthsAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__NumAtReplyNonFollower24hrsAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__LegitMuteCount2MonthsAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__is_verified__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__text_has_mid_tweet_mention_and_he_she_they_pronoun__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__NumBlocksLast24hrsAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__NonFollowerTweetsFromAbuserId7Days__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__FollowerCount2MonthsAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__AllFollowsFromAbuserId7Days__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__num_blocking__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__text_num_at_mention__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__IsNormalizedNonAbusiveTweetConsensus__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__NumMuted24hrsAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__text_has_top_abusive_unigram_unstemmed__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__IsUserAbuseExemptAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__ReportingAsSpamAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__num_favorites__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__NumUniqueRetweetsLast24hrsAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__text_num_hashtag__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__LollyAbuseRtf5CounterOutgoingAbuseRTFSafeguardAll1DayP50AbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__PerUserSimilarTweetsOneDayNormalized2AbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__num_blocking__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__text_num_punctuation__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__IsSpammerIdAdvertiserOrInsideSales__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__num_tweets__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__text_length__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__source_user__communication_mute_follow_ratio_2_months__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__text_has_top_abusive_bigram_unstemmed__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__has_profile_image__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__tweepcred__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__num_muting__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__LegitBlockCount2MonthsAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__LollyAbuseRtf5CounterOutgoingAtReplyNonFollower1DayP99AbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__LollyAbuseRtf5CounterOutgoingAtReplyNonFollower1DayP50AbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__LollyAbuseRtf5CounterOutgoingAtReplyNonFollower1DayP99AbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__LegitMuteCount2MonthsAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__source_user__has_profile_description__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__text_has_variation_of_i__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__NumAtReplyFollower24hrsAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__LegitMuteCount2MonthsAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__created_at_ms__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__LollyAbuseRtf5CounterOutgoingAbuseRTFSafeguardAll1DayP99AbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__text_has_mid_tweet_mention_and_he_she_they_pronoun__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__NumAtReplyNonFollower24hrsRatioAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__NumUniqueFavoritesLast24hrsAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__is_nsfw_admin__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__LollyAbuseRtf5CounterOutgoing1DayP50AbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__num_muters__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__NonFollowerMentionLikesAgainstAbuserId7Days__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__NonFollowerMentionLikesAgainstAbuserId7Days__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__IsNormalizedNonAbusiveTweetConsensus__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__num_following__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__NumUniqueFavoritesLast24hrsAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__text_num_at_mention__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__NumAtReplyFollower10minAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__text_num_url__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__UserReported24hrsAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__text_capital_ratio__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__LegitBlockCount2MonthsAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__NumUniqueRetweetsLast24hrsAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__CommunicationBlockCount2MonthsAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__source_user__has_profile_description__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__NumBlocksLast24hrsAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__NumAtReply10minAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__CommBlocksAgainstAbuserId7Days__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__LegitBlocksAgainstAbuserId7Days__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__text_has_emoji__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__has_facebook_connection__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__LollyAbuseRtf5CounterOutgoing1DayCountAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__text_has_swear_ngram_unstemmed__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__LollyAbuseRtf5CounterOutgoing1DayP50AbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__text_has_top_abusive_bigram_unstemmed__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__text_has_quotes_but_not_manual_or_quoted_retweet__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__num_blockers__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__LollyAbuseRtf5CounterOutgoingAtReplyNonFollower1DayP50AbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__source_user__block_follow_ratio__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__has_confirmed_device__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__text_has_mid_tweet_mention__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__NumUniqueVictimUserReported24hrsAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__num_followers__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__LollyAbuseRtf5CounterOutgoing1DayP50AbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__has_profile_image__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__LollyAbuseRtf5CounterOutgoingAbuseRTFSafeguardAll1DayCountAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__IsNormalizedAbusiveTweetConsensus__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__LegitBlocksAgainstAbuserId7Days__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__CommunicationMuteCount2MonthsAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__LollyAbuseRtf5CounterOutgoingAtReplyNonFollower1DayCountAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__NumAtReplyIncoming24hrsAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__LegitMutesAgainstAbuserId7Days__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__text_num_capital__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__text_num_non_mention_tokens__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__text_num_capital__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__num_following__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__IsTweetTextNormalizedExactMatchNonAbusive__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__UserReportedAsAbuse24hrsAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__CommBlocksAgainstAbuserId7Days__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__LegitBlockCount2MonthsAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__NonFollowerMentionLikesAgainstAbuserId7Days__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__source_user__age_in_ms__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__LollyModelScoreAbuseRtf5__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__text_num_swear_ngrams_unstemmed__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__CommunicationMuteCount2MonthsAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__NumUniqueVictimUserReportedAbuse24hrsAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__text_num_capital__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__has_uqf_enabled__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__LollyAbuseRtf5CounterOutgoingAbuseRTFSafeguardAll1DayP99AbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__LollyAbuseRtf5CounterOutgoing1DayP99AbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__is_nsfw_user__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__has_media__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__text_num_swear_ngrams_unstemmed__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__tweepcred__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__text_has_variation_of_they__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__text_has_variation_of_i__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__text_num_hashtag__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__NonFollowerTweetNotification__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__source_user__block_follow_ratio__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__CommunicationMuteCount2MonthsAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__has_confirmed_email__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__CommunicationMuteCount2MonthsAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__num_following__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__LollyAbuseRtf5CounterOutgoing1DayCountAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__text_capital_ratio__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__ReportingAsSpamAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__IsTweetTextNormalizedExactMatchAbusive__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__created_at_ms__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__LollyAbuseRtf5CounterOutgoingAbuseRTFSafeguardAll1DayP99AbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__source_user__communication_mute_follow_ratio_2_months__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__NumAtReplyNonFollower10minAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__NumAtReply10minAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__LollyAbuseRtf5CounterOutgoingAbuseRTFSafeguardAll1DayP50AbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__NumAtReplyFollower10minAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__source_user__communication_mute_follow_ratio_2_months__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__source_user__communication_mute_follow_ratio_2_months__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__LegitMuteCount2MonthsAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__NumAtReplyIncoming24hrsAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__NumAtReplyFollower24hrsAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__text_num_at_mention__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__AllFollowsAgainstAbuserId7Days__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__LegitMutesAgainstAbuserId7Days__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__CommunicationBlockCount2MonthsAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__NonFollowerMentionLikesAgainstAbuserId7Days__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__tweet__botmaker__source_user__AllFollowsFromAbuserId7Days__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__LegitBlocksAgainstAbuserId7Days__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__num_tweets__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__LollyAbuseRtf5CounterOutgoingAbuseRTFSafeguardAll1DayCountAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__text_has_hashtag__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__NumBlocksLast24hrsAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__transform__tweet__botmaker__text_num_hashtag__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__NumUniqueVictimUserReported24hrsAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__NumAtReplyIncoming24hrsAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__any_feature__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__LollyAbuseRtf5CounterOutgoingAtReplyNonFollower1DayCountAbuserId__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__tweet__botmaker__source_user__num_tweets__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_good_no_bad_engagement__abuse__tweet__botmaker__source_user__LollyAbuseRtf5CounterOutgoing1DayCountAbuserId__5__days__count", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__abuse__transform__tweet__mention_interactions__has_bad_engagement__abuse__transform__tweet__botmaker__text_num_punctuation__5__days__sum", + "valueType": "DOUBLE" + }, + { + "name": "abuse__tweet__mention_engagement__target_user_aggregates__pair__any_label__abuse__transform__tweet__botmaker__text_num_url__5__days__count", + "valueType": "DOUBLE" + } + ], + "name": "target_user_aggregates_source", + "online": true, + "tags": { + "description": "Features for target user", + "fs10_dataset": "https://cortex.twitter.biz/datasets/com.twitter.ml.featurestore.catalog.datasets.abuse.TargetUserAggregatesEntityDataset", + "team": "MLFM" + }, + "ttl": "86400s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-featurestore-prod.customer_journey.topic_candidate_aggregates_v1" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-featurestore-prod.customer_journey.topic_candidate_aggregates_v1", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "candidate", + "topic" + ], + "features": [ + { + "name": "back_imp_sum_1d", + "valueType": "INT64" + }, + { + "name": "back_imp_sum_7d", + "valueType": "INT64" + }, + { + "name": "follow_sum_1d", + "valueType": "INT64" + }, + { + "name": "follow_sum_7d", + "valueType": "INT64" + }, + { + "name": "qual_follow_v2_sum_1d", + "valueType": "INT64" + }, + { + "name": "qual_follow_v2_sum_7d", + "valueType": "INT64" + }, + { + "name": "forw_engage_sum_1d", + "valueType": "INT64" + }, + { + "name": "forw_engage_sum_7d", + "valueType": "INT64" + }, + { + "name": "forw_fav_sum_1d", + "valueType": "DOUBLE" + }, + { + "name": "forw_fav_sum_7d", + "valueType": "DOUBLE" + }, + { + "name": "forw_imp_sum_1d", + "valueType": "DOUBLE" + }, + { + "name": "forw_imp_sum_7d", + "valueType": "DOUBLE" + }, + { + "name": "forw_reply_sum_1d", + "valueType": "DOUBLE" + }, + { + "name": "forw_reply_sum_7d", + "valueType": "DOUBLE" + }, + { + "name": "forw_retweet_sum_1d", + "valueType": "DOUBLE" + }, + { + "name": "forw_retweet_sum_7d", + "valueType": "DOUBLE" + }, + { + "name": "follow_ratio_1d", + "valueType": "DOUBLE" + }, + { + "name": "follow_ratio_7d", + "valueType": "DOUBLE" + }, + { + "name": "qual_follow_v2_ratio_1d", + "valueType": "DOUBLE" + }, + { + "name": "qual_follow_v2_ratio_7d", + "valueType": "DOUBLE" + }, + { + "name": "forw_engage_ratio_1d", + "valueType": "DOUBLE" + }, + { + "name": "forw_engage_ratio_7d", + "valueType": "DOUBLE" + }, + { + "name": "forw_fav_ratio_1d", + "valueType": "DOUBLE" + }, + { + "name": "forw_fav_ratio_7d", + "valueType": "DOUBLE" + }, + { + "name": "forw_imp_ratio_1d", + "valueType": "DOUBLE" + }, + { + "name": "forw_imp_ratio_7d", + "valueType": "DOUBLE" + }, + { + "name": "forw_reply_ratio_1d", + "valueType": "DOUBLE" + }, + { + "name": "forw_reply_ratio_7d", + "valueType": "DOUBLE" + }, + { + "name": "forw_retweet_ratio_1d", + "valueType": "DOUBLE" + }, + { + "name": "forw_retweet_ratio_7d", + "valueType": "DOUBLE" + }, + { + "name": "forw_fav_log1p_1d", + "valueType": "DOUBLE" + }, + { + "name": "forw_fav_log1p_7d", + "valueType": "DOUBLE" + }, + { + "name": "forw_imp_log1p_1d", + "valueType": "DOUBLE" + }, + { + "name": "forw_imp_log1p_7d", + "valueType": "DOUBLE" + }, + { + "name": "forw_reply_log1p_1d", + "valueType": "DOUBLE" + }, + { + "name": "forw_reply_log1p_7d", + "valueType": "DOUBLE" + }, + { + "name": "forw_retweet_log1p_1d", + "valueType": "DOUBLE" + }, + { + "name": "forw_retweet_log1p_7d", + "valueType": "DOUBLE" + }, + { + "name": "back_imp_sum_1d_v2", + "valueType": "DOUBLE" + }, + { + "name": "back_imp_sum_7d_v2", + "valueType": "DOUBLE" + }, + { + "name": "follow_sum_1d_v2", + "valueType": "DOUBLE" + }, + { + "name": "follow_sum_7d_v2", + "valueType": "DOUBLE" + }, + { + "name": "qual_follow_v2_sum_1d_v2", + "valueType": "DOUBLE" + }, + { + "name": "qual_follow_v2_sum_7d_v2", + "valueType": "DOUBLE" + }, + { + "name": "forw_engage_sum_1d_v2", + "valueType": "DOUBLE" + }, + { + "name": "forw_engage_sum_7d_v2", + "valueType": "DOUBLE" + } + ], + "name": "topic_cand_aggr_v1", + "online": true, + "tags": { + "description": "DESCRIPTION_NEEDED_MARKER_FEAST", + "team": "CJREL" + }, + "ttl": "86400s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-featurestore-prod.core.tweetsource" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-featurestore-prod.core.tweetsource", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "tweet" + ], + "features": [ + { + "name": "normalized_tweet_text__capital_ratio", + "valueType": "DOUBLE" + }, + { + "name": "normalized_tweet_text__length", + "valueType": "INT64" + }, + { + "name": "normalized_tweet_text__num_capitals", + "valueType": "INT64" + }, + { + "name": "normalized_tweet_text__tweet_text", + "valueType": "STRING" + }, + { + "name": "tweet__application_id", + "valueType": "INT64" + }, + { + "name": "tweet__author_id", + "valueType": "INT64" + }, + { + "name": "tweet__conversation_id", + "valueType": "INT64" + }, + { + "name": "tweet__created_at_ms", + "valueType": "INT64" + }, + { + "name": "tweet__has_at_mention", + "valueType": "BOOL" + }, + { + "name": "tweet__has_card", + "valueType": "BOOL" + }, + { + "name": "tweet__has_cash_tag", + "valueType": "BOOL" + }, + { + "name": "tweet__has_gif", + "valueType": "BOOL" + }, + { + "name": "tweet__has_link", + "valueType": "BOOL" + }, + { + "name": "tweet__has_media", + "valueType": "BOOL" + }, + { + "name": "tweet__has_media_in_core_data", + "valueType": "BOOL" + }, + { + "name": "tweet__has_multiple_media", + "valueType": "BOOL" + }, + { + "name": "tweet__has_photo", + "valueType": "BOOL" + }, + { + "name": "tweet__has_us_political_tweet_annotation", + "valueType": "BOOL" + }, + { + "name": "tweet__has_us_political_tweet_high_recall_annotation", + "valueType": "BOOL" + }, + { + "name": "tweet__has_video", + "valueType": "BOOL" + }, + { + "name": "tweet__has_vine", + "valueType": "BOOL" + }, + { + "name": "tweet__hashtags", + "valueType": "STRING" + }, + { + "name": "tweet__is_language_right_to_left", + "valueType": "BOOL" + }, + { + "name": "tweet__is_quoted_tweet", + "valueType": "BOOL" + }, + { + "name": "tweet__is_reply", + "valueType": "BOOL" + }, + { + "name": "tweet__is_retweet", + "valueType": "BOOL" + }, + { + "name": "tweet__is_self_conversation", + "valueType": "BOOL" + }, + { + "name": "tweet__language", + "valueType": "STRING" + }, + { + "name": "tweet__language_confidence", + "valueType": "DOUBLE" + }, + { + "name": "tweet__mention_ids", + "valueType": "INT64" + }, + { + "name": "tweet__num_at_mention", + "valueType": "INT64" + }, + { + "name": "tweet__num_hashtags", + "valueType": "INT64" + }, + { + "name": "tweet__quoted_tweet_author_id", + "valueType": "INT64" + }, + { + "name": "tweet__replied_to_user_id", + "valueType": "INT64" + }, + { + "name": "tweet__semantic_core_annotations", + "valueType": "STRING" + }, + { + "name": "tweet__text", + "valueType": "STRING" + }, + { + "name": "tweet_text__has_emoji", + "valueType": "BOOL" + }, + { + "name": "tweet_text__has_hashtag", + "valueType": "BOOL" + }, + { + "name": "tweet_text__has_mention", + "valueType": "BOOL" + }, + { + "name": "tweet_text__has_mid_tweet_mention_and_he_she_they_pronoun", + "valueType": "BOOL" + }, + { + "name": "tweet_text__has_midtweet_mention", + "valueType": "BOOL" + }, + { + "name": "tweet_text__has_question_mark", + "valueType": "BOOL" + }, + { + "name": "tweet_text__has_quotes_but_not_manual_or_quoted_retweet", + "valueType": "BOOL" + }, + { + "name": "tweet_text__has_variation_of_he_she", + "valueType": "BOOL" + }, + { + "name": "tweet_text__has_variation_of_i", + "valueType": "BOOL" + }, + { + "name": "tweet_text__has_variation_of_they", + "valueType": "BOOL" + }, + { + "name": "tweet_text__has_variation_of_you", + "valueType": "BOOL" + }, + { + "name": "tweet_text__is_manual_or_quoted_retweet", + "valueType": "BOOL" + }, + { + "name": "tweet_text__language", + "valueType": "STRING" + }, + { + "name": "tweet_text__length", + "valueType": "INT64" + }, + { + "name": "tweet_text__mention_one_token", + "valueType": "STRING" + }, + { + "name": "tweet_text__mention_two_tokens", + "valueType": "STRING" + }, + { + "name": "tweet_text__normalized_for_exact_match", + "valueType": "STRING" + }, + { + "name": "tweet_text__num_at_mention", + "valueType": "INT64" + }, + { + "name": "tweet_text__num_capitals", + "valueType": "INT64" + }, + { + "name": "tweet_text__num_exclamation", + "valueType": "INT64" + }, + { + "name": "tweet_text__num_hashtag", + "valueType": "INT64" + }, + { + "name": "tweet_text__num_new_lines", + "valueType": "INT64" + }, + { + "name": "tweet_text__num_non_mention_tokens", + "valueType": "INT64" + }, + { + "name": "tweet_text__num_punctuation", + "valueType": "INT64" + }, + { + "name": "tweet_text__num_url", + "valueType": "INT64" + }, + { + "name": "tweet_text__num_white_spaces", + "valueType": "INT64" + }, + { + "name": "tweet_text__pre_ngram_tweet_text_unstemmed_tokens", + "valueType": "STRING" + }, + { + "name": "tweet_text_ngrams__bigram_stemmed", + "valueType": "STRING" + }, + { + "name": "tweet_text_ngrams__bigram_unstemmed", + "valueType": "STRING" + }, + { + "name": "tweet_text_ngrams__penguin_inferred_tweet_language_tag", + "valueType": "STRING" + }, + { + "name": "tweet_text_ngrams__quadgram_stemmed", + "valueType": "STRING" + }, + { + "name": "tweet_text_ngrams__quadgram_unstemmed", + "valueType": "STRING" + }, + { + "name": "tweet_text_ngrams__trigram_stemmed", + "valueType": "STRING" + }, + { + "name": "tweet_text_ngrams__trigram_unstemmed", + "valueType": "STRING" + }, + { + "name": "tweet_text_ngrams__unigram_no_stop_stemmed", + "valueType": "STRING" + }, + { + "name": "tweet_text_ngrams__unigram_no_stop_unstemmed", + "valueType": "STRING" + }, + { + "name": "tweet_text_ngrams__unigram_with_stop_unstemmed", + "valueType": "STRING" + }, + { + "name": "tweet_text_tokens__bert_multilingual_word_piece_tensor", + "valueType": "STRING" + }, + { + "name": "tweet_text_tokens__bert_word_piece_tensor", + "valueType": "STRING" + }, + { + "name": "tweet_text_tokens__embeddings_blob", + "valueType": "BYTES" + }, + { + "name": "tweet_text_tokens__embeddings_tensor", + "valueType": "STRING" + }, + { + "name": "tweet_text_tokens__penguin_blob", + "valueType": "BYTES" + }, + { + "name": "tweet_text_tokens__penguin_tensor", + "valueType": "STRING" + } + ], + "name": "tweet", + "online": true, + "tags": { + "description": "Tweet features extracted from go/tweetsource", + "fs10_dataset": "https://cortex.twitter.biz/datasets/com.twitter.ml.featurestore.catalog.datasets.core.TweetypieEntityDataset", + "prepend_strategy": "dataset", + "team": "MLFM" + }, + "ttl": "1814400s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "tweet__core__tweet_counts__favorite_count_METADATA_ONLY", + "valueType": "INT64" + } + ], + "name": "tweet__core__tweet_counts__favorite_count_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"tweet__core__tweet_counts__favorite_count\",\n \"description\": \"These continuous features describe the promoted tweets' Twitter engagements, ie the tweets likes, favorites, retweets, etc.\n\n\n\nFavorite Count: Number of times the promoted tweet has been favorited by users\n\n\n\nQuote Count: Indicates approximately how many times this promoted Tweet has been quoted (read: retweeted with comments) by Twitter users. This feature was called quoted tweet in 2015, but now its basically a retweet with a comment. Its different from a reply.\n\n\n\nReply Count: Number of times the promoted tweet has been replied to\n\n\n\nRetweet Count: Number of times the promoted tweet has been retweeted\n\n\n\nTotal Engagement Count: The sum of the previous 4 counts per promoted tweet ID.\n\",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"tf.float32\",\n \"model feature type\": \"continous\"\n}\n ", + "description": "These continuous features describe the promoted tweets' Twitter engagements, ie the tweets likes, favorites, retweets, etc.\n\n\n\nFavorite Count: Number of times the promoted tweet has been favorited by users\n\n\n\nQuote Count: Indicates approximately how many times this promoted Tweet has been quoted (read: retweeted with comments) by Twitter users. This feature was called quoted tweet in 2015, but now its basically a retweet with a comment. Its different from a reply.\n\n\n\nReply Count: Number of times the promoted tweet has been replied to\n\n\n\nRetweet Count: Number of times the promoted tweet has been retweeted\n\n\n\nTotal Engagement Count: The sum of the previous 4 counts per promoted tweet ID.\n", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "tweet__core__tweet_counts__quote_count_METADATA_ONLY", + "valueType": "INT64" + } + ], + "name": "tweet__core__tweet_counts__quote_count_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"tweet__core__tweet_counts__quote_count\",\n \"description\": \"\",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"tf.float32\",\n \"model feature type\": \"continous\"\n}\n ", + "description": "", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "tweet__core__tweet_counts__reply_count_METADATA_ONLY", + "valueType": "INT64" + } + ], + "name": "tweet__core__tweet_counts__reply_count_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"tweet__core__tweet_counts__reply_count\",\n \"description\": \"\",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"tf.float32\",\n \"model feature type\": \"continous\"\n}\n ", + "description": "", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "tweet__core__tweet_counts__retweet_count_METADATA_ONLY", + "valueType": "INT64" + } + ], + "name": "tweet__core__tweet_counts__retweet_count_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"tweet__core__tweet_counts__retweet_count\",\n \"description\": \"\",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"tf.float32\",\n \"model feature type\": \"continous\"\n}\n ", + "description": "", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-ads-prediction-prod.training_data_rt.ad_raw_rt_callbacks", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "__dummy" + ], + "features": [ + { + "name": "tweet__core__tweet_counts__total_engagement_count_METADATA_ONLY", + "valueType": "INT64" + } + ], + "name": "tweet__core__tweet_counts__total_engagement_count_METADATA_ONLY", + "online": true, + "tags": { + "custom_attributes_map": "\n {\n \"name\": \"tweet__core__tweet_counts__total_engagement_count\",\n \"description\": \"\",\n \"team\": \"REVSCI-PAR\",\n \"data types in tf\": \"tf.float32\",\n \"model feature type\": \"continous\"\n}\n ", + "description": "", + "team": "REVSCI-PAR" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-featurestore-prod.cuad.tweet_sentiment" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-featurestore-prod.cuad.tweet_sentiment", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "tweet" + ], + "features": [ + { + "name": "sentiment__high_precision_class", + "valueType": "INT64" + }, + { + "name": "sentiment__high_recall_class", + "valueType": "INT64" + }, + { + "name": "sentiment__negative_probability", + "valueType": "DOUBLE" + }, + { + "name": "sentiment__neutral_probability", + "valueType": "DOUBLE" + }, + { + "name": "sentiment__polarity_score", + "valueType": "DOUBLE" + }, + { + "name": "sentiment__positive_probability", + "valueType": "DOUBLE" + } + ], + "name": "tweet_sentiment_source", + "online": true, + "tags": { + "description": "Tweet sentiment features. See http://go/nlps-sentiment", + "fs10_dataset": "https://cortex.twitter.biz/datasets/com.twitter.ml.featurestore.catalog.datasets.cuad.SentimentDataset", + "prepend_strategy": "dataset", + "team": "MLFM" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-featurestore-prod.cuad.tweet_tagspace" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-featurestore-prod.cuad.tweet_tagspace", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "tweet" + ], + "features": [ + { + "name": "tagspace__predicted_hashtags_keys", + "valueType": "STRING" + }, + { + "name": "tagspace__predicted_hashtags_values", + "valueType": "DOUBLE" + }, + { + "name": "tagspace__tweet_embedding_tensor", + "valueType": "DOUBLE" + } + ], + "name": "tweet_tagspace_source", + "online": true, + "tags": { + "description": "Tweet tagspace features. Tagspace is a content-based representation that capture the topical and eventful information in a tweet. See http://go/tagspace", + "fs10_dataset": "https://cortex.twitter.biz/datasets/com.twitter.ml.featurestore.catalog.datasets.cuad.TagspaceDataset", + "prepend_strategy": "dataset", + "team": "MLFM" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "query": "select * from twttr-bq-featurestore-prod.video.engagement_counts_v1 where feature_name='tweet'" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "promoted_tweet" + ], + "features": [ + { + "name": "impression_count_1h", + "valueType": "INT64" + }, + { + "name": "engagement_count_1h", + "valueType": "INT64" + }, + { + "name": "impression_count_1d", + "valueType": "INT64" + }, + { + "name": "engagement_count_1d", + "valueType": "INT64" + }, + { + "name": "impression_count_7d", + "valueType": "INT64" + }, + { + "name": "engagement_count_7d", + "valueType": "INT64" + } + ], + "name": "tweet_video_cnts", + "online": true, + "tags": { + "description": "DESCRIPTION_NEEDED_MARKER_FEAST", + "team": "REVSCI" + }, + "ttl": "3600s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "query": "select * from twttr-bq-featurestore-prod.video.streaming_engagement_counts_v2 where feature_name='tweet'" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "tweet" + ], + "features": [ + { + "name": "impression_count_1h", + "valueType": "INT64" + }, + { + "name": "engagement_count_1h", + "valueType": "INT64" + } + ], + "name": "tweet_video_cnts_stream", + "online": true, + "tags": { + "description": "DESCRIPTION_NEEDED_MARKER_FEAST", + "team": "REVSCI" + }, + "ttl": "300s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-featurestore-prod.core.usersource" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-featurestore-prod.core.usersource", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "user" + ], + "features": [ + { + "name": "partition_ts", + "valueType": "UNIX_TIMESTAMP" + }, + { + "name": "user_account__country_code", + "valueType": "STRING" + }, + { + "name": "user_account__created_at_ms", + "valueType": "INT64" + }, + { + "name": "user_account__has_facebook_connections", + "valueType": "BOOL" + }, + { + "name": "user_account__is_abuse_exempt", + "valueType": "BOOL" + }, + { + "name": "user_account__is_an_advertiser_or_in_sales", + "valueType": "BOOL" + }, + { + "name": "user_account__is_deactivated", + "valueType": "BOOL" + }, + { + "name": "user_account__is_email_confirmed", + "valueType": "BOOL" + }, + { + "name": "user_account__is_nsfw_by_admin", + "valueType": "BOOL" + }, + { + "name": "user_account__is_nsfw_by_user", + "valueType": "BOOL" + }, + { + "name": "user_account__is_opted_into_notifications_quality_filter", + "valueType": "BOOL" + }, + { + "name": "user_account__is_protected", + "valueType": "BOOL" + }, + { + "name": "user_account__is_send_smb_sales_marketing_email", + "valueType": "BOOL" + }, + { + "name": "user_account__is_send_survey_email", + "valueType": "BOOL" + }, + { + "name": "user_account__is_send_twitter_emails", + "valueType": "BOOL" + }, + { + "name": "user_account__is_signup_from_too_application", + "valueType": "BOOL" + }, + { + "name": "user_account__is_suspended", + "valueType": "BOOL" + }, + { + "name": "user_account__is_user_verified", + "valueType": "BOOL" + }, + { + "name": "user_account__language", + "valueType": "STRING" + }, + { + "name": "user_account__signup_application_id", + "valueType": "INT64" + }, + { + "name": "user_account__time_zone", + "valueType": "STRING" + }, + { + "name": "user_account__updated_at_ms", + "valueType": "INT64" + }, + { + "name": "user_account__utc_offset_seconds", + "valueType": "INT64" + }, + { + "name": "user_counts__followers", + "valueType": "INT64" + }, + { + "name": "user_counts__following", + "valueType": "INT64" + }, + { + "name": "user_description_tokens__discretized_ngrams_strings", + "valueType": "STRING" + }, + { + "name": "user_description_tokens__discretized_skip_grams_strings", + "valueType": "STRING" + }, + { + "name": "user_description_tokens__hashed_ngrams_strings", + "valueType": "STRING" + }, + { + "name": "user_description_tokens__hashed_skip_grams_strings", + "valueType": "STRING" + }, + { + "name": "user_description_tokens__l_2_ngrams_keys", + "valueType": "STRING" + }, + { + "name": "user_description_tokens__l_2_ngrams_values", + "valueType": "DOUBLE" + }, + { + "name": "user_description_tokens__l_2_skip_grams_keys", + "valueType": "STRING" + }, + { + "name": "user_description_tokens__l_2_skip_grams_values", + "valueType": "DOUBLE" + }, + { + "name": "user_description_tokens__n_grams", + "valueType": "STRING" + }, + { + "name": "user_description_tokens__num_ngrams", + "valueType": "DOUBLE" + }, + { + "name": "user_description_tokens__num_skip_grams", + "valueType": "DOUBLE" + }, + { + "name": "user_description_tokens__skip_grams", + "valueType": "STRING" + }, + { + "name": "user_extended__num_followers", + "valueType": "INT64" + }, + { + "name": "user_extended__num_following", + "valueType": "INT64" + }, + { + "name": "user_extended__signup_country_id", + "valueType": "STRING" + }, + { + "name": "user_extended__user_state", + "valueType": "STRING" + }, + { + "name": "user_name_ngrams__first_name_bigram", + "valueType": "STRING" + }, + { + "name": "user_name_ngrams__first_name_char_bigram", + "valueType": "STRING" + }, + { + "name": "user_name_ngrams__first_name_char_trigram", + "valueType": "STRING" + }, + { + "name": "user_name_ngrams__first_name_unigram", + "valueType": "STRING" + }, + { + "name": "user_name_ngrams__full_name_bigram", + "valueType": "STRING" + }, + { + "name": "user_name_ngrams__full_name_trigram", + "valueType": "STRING" + }, + { + "name": "user_name_ngrams__full_name_unigram", + "valueType": "STRING" + }, + { + "name": "user_name_ngrams__last_name_char_bigram", + "valueType": "STRING" + }, + { + "name": "user_name_ngrams__last_name_char_trigram", + "valueType": "STRING" + }, + { + "name": "user_name_ngrams__last_name_unigram", + "valueType": "STRING" + }, + { + "name": "user_profile__description", + "valueType": "STRING" + }, + { + "name": "user_profile__description_length", + "valueType": "INT64" + }, + { + "name": "user_profile__has_profile_description", + "valueType": "BOOL" + }, + { + "name": "user_profile__has_profile_image", + "valueType": "BOOL" + }, + { + "name": "user_profile__has_profile_url", + "valueType": "BOOL" + }, + { + "name": "user_profile__is_egg", + "valueType": "BOOL" + }, + { + "name": "user_profile__language_tag", + "valueType": "STRING" + }, + { + "name": "user_profile__location", + "valueType": "STRING" + }, + { + "name": "user_profile__name", + "valueType": "STRING" + }, + { + "name": "user_profile__pinned_tweet_ids", + "valueType": "STRING" + }, + { + "name": "user_profile__screen_name", + "valueType": "STRING" + }, + { + "name": "user_profile__url_domain", + "valueType": "STRING" + }, + { + "name": "user_profile__url_domain_top_private", + "valueType": "STRING" + }, + { + "name": "user_profile__url_original", + "valueType": "STRING" + }, + { + "name": "user_profile__url_short", + "valueType": "STRING" + } + ], + "name": "user", + "online": true, + "tags": { + "description": "User features extracted from go/usersource", + "fs10_dataset": "https://cortex.twitter.biz/datasets/com.twitter.ml.featurestore.catalog.datasets.core.UsersourceEntityDataset", + "prepend_strategy": "dataset", + "team": "MLFM" + }, + "ttl": "314496000s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-featurestore-prod.magicrecs.user_activity" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-featurestore-prod.magicrecs.user_activity", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "user" + ], + "features": [ + { + "name": "user_activity__average_engagements_received_28_days", + "valueType": "DOUBLE" + }, + { + "name": "user_activity__average_favorites_received_28_days", + "valueType": "DOUBLE" + }, + { + "name": "user_activity__average_retweets_received_28_days", + "valueType": "DOUBLE" + }, + { + "name": "user_activity__num_days_since_last_tweeted", + "valueType": "DOUBLE" + }, + { + "name": "user_activity__num_engagements_received_28_days", + "valueType": "INT64" + }, + { + "name": "user_activity__num_favorites_received_28_days", + "valueType": "INT64" + }, + { + "name": "user_activity__num_retweets_received_28_days", + "valueType": "INT64" + }, + { + "name": "user_activity__num_retweets_sent_28_days", + "valueType": "INT64" + }, + { + "name": "user_activity__num_tweets_28_days", + "valueType": "INT64" + }, + { + "name": "user_activity__tweep_cred", + "valueType": "INT64" + }, + { + "name": "user_activity__user_state", + "valueType": "INT64" + }, + { + "name": "user_activity__user_state_in_string", + "valueType": "STRING" + }, + { + "name": "user_activity__utc_hour_of_day", + "valueType": "INT64" + }, + { + "name": "user_info__age_bucket", + "valueType": "INT64" + }, + { + "name": "user_info__age_bucket_in_string", + "valueType": "STRING" + }, + { + "name": "user_info__gender", + "valueType": "INT64" + }, + { + "name": "user_info__gender_in_string", + "valueType": "STRING" + }, + { + "name": "user_info__is_egg", + "valueType": "BOOL" + }, + { + "name": "user_info__is_verified", + "valueType": "BOOL" + }, + { + "name": "user_info__num_active_followers", + "valueType": "INT64" + }, + { + "name": "user_info__num_followings", + "valueType": "INT64" + } + ], + "name": "user_activity", + "online": true, + "tags": { + "description": "Features related to the recent user activity.", + "fs10_dataset": "https://cortex.twitter.biz/datasets/com.twitter.ml.featurestore.catalog.datasets.magicrecs.UserFeaturesDataset", + "prepend_strategy": "dataset", + "team": "MagicRecs" + }, + "ttl": "86400s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-featurestore-prod.ssa.user_ads_domains_visits" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-featurestore-prod.ssa.user_ads_domains_visits", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "user" + ], + "features": [ + { + "name": "user_ads_domains_visits__number_of_days_since_last_atc_visit", + "valueType": "INT64" + }, + { + "name": "user_ads_domains_visits__number_of_days_since_last_tad_visit", + "valueType": "INT64" + }, + { + "name": "user_ads_domains_visits__number_of_days_with_atc_visits_in__all_time", + "valueType": "INT64" + }, + { + "name": "user_ads_domains_visits__number_of_days_with_atc_visits_in__feature_created_at", + "valueType": "INT64" + }, + { + "name": "user_ads_domains_visits__number_of_days_with_atc_visits_in__last_30_days", + "valueType": "INT64" + }, + { + "name": "user_ads_domains_visits__number_of_days_with_atc_visits_in__last_365_days", + "valueType": "INT64" + }, + { + "name": "user_ads_domains_visits__number_of_days_with_atc_visits_in__last_7_days", + "valueType": "INT64" + }, + { + "name": "user_ads_domains_visits__number_of_days_with_atc_visits_in__last_90_days", + "valueType": "INT64" + }, + { + "name": "user_ads_domains_visits__number_of_days_with_tad_visits_in__all_time", + "valueType": "INT64" + }, + { + "name": "user_ads_domains_visits__number_of_days_with_tad_visits_in__feature_created_at", + "valueType": "INT64" + }, + { + "name": "user_ads_domains_visits__number_of_days_with_tad_visits_in__last_30_days", + "valueType": "INT64" + }, + { + "name": "user_ads_domains_visits__number_of_days_with_tad_visits_in__last_365_days", + "valueType": "INT64" + }, + { + "name": "user_ads_domains_visits__number_of_days_with_tad_visits_in__last_7_days", + "valueType": "INT64" + }, + { + "name": "user_ads_domains_visits__number_of_days_with_tad_visits_in__last_90_days", + "valueType": "INT64" + } + ], + "name": "user_ads_domains_visits", + "online": true, + "tags": { + "description": "Features for the ads web domains visited by each user. For more info see http://go/docbird/ssa_feature_nest/data_processing#ads-domains-visit-pipeline", + "fs10_dataset": "https://cortex.twitter.biz/datasets/com.twitter.ml.featurestore.catalog.datasets.ssa.UserAdsDomainsVisitsDataset", + "prepend_strategy": "dataset", + "team": "MLFM" + }, + "ttl": "86400s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-featurestore-prod.ssa.user_advertiser_agency_help_cases" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-featurestore-prod.ssa.user_advertiser_agency_help_cases", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "user" + ], + "features": [ + { + "name": "user_advertiser_agency_help_cases__number_of_inbound_cases_opened_in__all_time", + "valueType": "INT64" + }, + { + "name": "user_advertiser_agency_help_cases__number_of_inbound_cases_opened_in__feature_created_at", + "valueType": "INT64" + }, + { + "name": "user_advertiser_agency_help_cases__number_of_inbound_cases_opened_in__last_30_days", + "valueType": "INT64" + }, + { + "name": "user_advertiser_agency_help_cases__number_of_inbound_cases_opened_in__last_365_days", + "valueType": "INT64" + }, + { + "name": "user_advertiser_agency_help_cases__number_of_inbound_cases_opened_in__last_7_days", + "valueType": "INT64" + }, + { + "name": "user_advertiser_agency_help_cases__number_of_inbound_cases_opened_in__last_90_days", + "valueType": "INT64" + } + ], + "name": "user_advertiser_agency_help_cases", + "online": true, + "tags": { + "description": "Features for the AdvertiserHelp@ and AgencyHelp@ support cases opened by each user. For more info see http://go/docbird/ssa_feature_nest/data_processing#ssa-inbound-cases-pipeline", + "fs10_dataset": "https://cortex.twitter.biz/datasets/com.twitter.ml.featurestore.catalog.datasets.ssa.UserAdvertiserAgencyHelpCasesDataset", + "prepend_strategy": "dataset", + "team": "MLFM" + }, + "ttl": "86400s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-featurestore-prod.ssa.user_advertising_revenue_features" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-featurestore-prod.ssa.user_advertising_revenue_features", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "user" + ], + "features": [ + { + "name": "user_advertising_revenue__number_of_days_with_revenue_in__all_time", + "valueType": "INT64" + }, + { + "name": "user_advertising_revenue__number_of_days_with_revenue_in__feature_created_at", + "valueType": "INT64" + }, + { + "name": "user_advertising_revenue__number_of_days_with_revenue_in__last_30_days", + "valueType": "INT64" + }, + { + "name": "user_advertising_revenue__number_of_days_with_revenue_in__last_365_days", + "valueType": "INT64" + }, + { + "name": "user_advertising_revenue__number_of_days_with_revenue_in__last_7_days", + "valueType": "INT64" + }, + { + "name": "user_advertising_revenue__number_of_days_with_revenue_in__last_90_days", + "valueType": "INT64" + }, + { + "name": "user_advertising_revenue__number_of_insertion_orders_used_in__all_time", + "valueType": "INT64" + }, + { + "name": "user_advertising_revenue__number_of_insertion_orders_used_in__feature_created_at", + "valueType": "INT64" + }, + { + "name": "user_advertising_revenue__number_of_insertion_orders_used_in__last_30_days", + "valueType": "INT64" + }, + { + "name": "user_advertising_revenue__number_of_insertion_orders_used_in__last_365_days", + "valueType": "INT64" + }, + { + "name": "user_advertising_revenue__number_of_insertion_orders_used_in__last_7_days", + "valueType": "INT64" + }, + { + "name": "user_advertising_revenue__number_of_insertion_orders_used_in__last_90_days", + "valueType": "INT64" + }, + { + "name": "user_advertising_revenue__spend_on_credit_card_in__all_time", + "valueType": "DOUBLE" + }, + { + "name": "user_advertising_revenue__spend_on_credit_card_in__last_30_days", + "valueType": "DOUBLE" + }, + { + "name": "user_advertising_revenue__spend_on_credit_card_in__last_365_days", + "valueType": "DOUBLE" + }, + { + "name": "user_advertising_revenue__spend_on_credit_card_in__last_7_days", + "valueType": "DOUBLE" + }, + { + "name": "user_advertising_revenue__spend_on_credit_card_in__last_90_days", + "valueType": "DOUBLE" + }, + { + "name": "user_advertising_revenue__spend_on_insertion_order_in__all_time", + "valueType": "DOUBLE" + }, + { + "name": "user_advertising_revenue__spend_on_insertion_order_in__last_30_days", + "valueType": "DOUBLE" + }, + { + "name": "user_advertising_revenue__spend_on_insertion_order_in__last_365_days", + "valueType": "DOUBLE" + }, + { + "name": "user_advertising_revenue__spend_on_insertion_order_in__last_7_days", + "valueType": "DOUBLE" + }, + { + "name": "user_advertising_revenue__spend_on_insertion_order_in__last_90_days", + "valueType": "DOUBLE" + }, + { + "name": "user_advertising_revenue__total_revenue_in__all_time", + "valueType": "DOUBLE" + }, + { + "name": "user_advertising_revenue__total_revenue_in__last_30_days", + "valueType": "DOUBLE" + }, + { + "name": "user_advertising_revenue__total_revenue_in__last_365_days", + "valueType": "DOUBLE" + }, + { + "name": "user_advertising_revenue__total_revenue_in__last_7_days", + "valueType": "DOUBLE" + }, + { + "name": "user_advertising_revenue__total_revenue_in__last_90_days", + "valueType": "DOUBLE" + } + ], + "name": "user_advertising_revenue_features", + "online": true, + "tags": { + "description": "Features for user advertising revenue. For more info see http://go/docbird/ssa_feature_nest/data-processing#advertiser-twitter-accounts-spend-pipeline", + "fs10_dataset": "https://cortex.twitter.biz/datasets/com.twitter.ml.featurestore.catalog.datasets.ssa.UserAdvertisingRevenueFeatures", + "prepend_strategy": "dataset", + "team": "MLFM" + }, + "ttl": "86400s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-featurestore-prod.adstargeting.user_app_session_record_source" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-featurestore-prod.adstargeting.user_app_session_record_source", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "user" + ], + "features": [ + { + "name": "user_app_session__app_ids_from_app_install_events", + "valueType": "STRING" + }, + { + "name": "user_app_session__app_ids_from_organic_engagements", + "valueType": "STRING" + }, + { + "name": "user_app_session__app_ids_from_organic_impressions", + "valueType": "STRING" + }, + { + "name": "user_app_session__app_ids_from_promoted_engagements", + "valueType": "STRING" + }, + { + "name": "user_app_session__app_ids_from_promoted_impressions", + "valueType": "STRING" + } + ], + "name": "user_app_session_record_source", + "online": true, + "tags": { + "description": "User app IDs from app events.", + "fs10_dataset": "https://cortex.twitter.biz/datasets/com.twitter.ml.featurestore.catalog.datasets.adstargeting.UserAppSessionEntityDataset", + "prepend_strategy": "dataset", + "team": "MLFM" + }, + "ttl": "86400s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-featurestore-prod.ssa.user_btc_visits_aggregated_counts_features" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-featurestore-prod.ssa.user_btc_visits_aggregated_counts_features", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "user" + ], + "features": [ + { + "name": "user_btc_visits_aggregated_counts_features__number_of_btc_pages_visited_in__all_time", + "valueType": "INT64" + }, + { + "name": "user_btc_visits_aggregated_counts_features__number_of_btc_pages_visited_in__feature_created_at", + "valueType": "INT64" + }, + { + "name": "user_btc_visits_aggregated_counts_features__number_of_btc_pages_visited_in__last_30_days", + "valueType": "INT64" + }, + { + "name": "user_btc_visits_aggregated_counts_features__number_of_btc_pages_visited_in__last_365_days", + "valueType": "INT64" + }, + { + "name": "user_btc_visits_aggregated_counts_features__number_of_btc_pages_visited_in__last_7_days", + "valueType": "INT64" + }, + { + "name": "user_btc_visits_aggregated_counts_features__number_of_btc_pages_visited_in__last_90_days", + "valueType": "INT64" + }, + { + "name": "user_btc_visits_aggregated_counts_features__number_of_days_since_last_btc_visit", + "valueType": "INT64" + }, + { + "name": "user_btc_visits_aggregated_counts_features__number_of_days_with_btc_visits_in__all_time", + "valueType": "INT64" + }, + { + "name": "user_btc_visits_aggregated_counts_features__number_of_days_with_btc_visits_in__feature_created_at", + "valueType": "INT64" + }, + { + "name": "user_btc_visits_aggregated_counts_features__number_of_days_with_btc_visits_in__last_30_days", + "valueType": "INT64" + }, + { + "name": "user_btc_visits_aggregated_counts_features__number_of_days_with_btc_visits_in__last_365_days", + "valueType": "INT64" + }, + { + "name": "user_btc_visits_aggregated_counts_features__number_of_days_with_btc_visits_in__last_7_days", + "valueType": "INT64" + }, + { + "name": "user_btc_visits_aggregated_counts_features__number_of_days_with_btc_visits_in__last_90_days", + "valueType": "INT64" + } + ], + "name": "user_btc_visits_aggregated_counts_features", + "online": true, + "tags": { + "description": "Features for counts of BTC (business.twitter.com) visits for each user. For more info see http://go/ssa-feature-nest.", + "fs10_dataset": "https://cortex.twitter.biz/datasets/com.twitter.ml.featurestore.catalog.datasets.ssa.UserBtcVisitsAggregatedCountsDataset", + "prepend_strategy": "dataset", + "team": "MLFM" + }, + "ttl": "86400s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-featurestore-prod.ssa.user_business_social_graph_features" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-featurestore-prod.ssa.user_business_social_graph_features", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "user" + ], + "features": [ + { + "name": "user_business_social_graph_features__is_following_twitter_business", + "valueType": "BOOL" + } + ], + "name": "user_business_social_graph_features", + "online": true, + "tags": { + "description": "Features for social graph and business-related relationships for each user. For more info see http://go/ssa-feature-nest", + "fs10_dataset": "https://cortex.twitter.biz/datasets/com.twitter.ml.featurestore.catalog.datasets.ssa.UserBusinessSocialGraphDataset", + "prepend_strategy": "dataset", + "team": "MLFM" + }, + "ttl": "86400s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-featurestore-prod.ssa.user_created_ads_accounts" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-featurestore-prod.ssa.user_created_ads_accounts", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "user" + ], + "features": [ + { + "name": "user_created_ads_accounts__number_of_days_since_first_atc_visit", + "valueType": "INT64" + }, + { + "name": "user_created_ads_accounts__twitter_account_age_at_first_atc_visit", + "valueType": "INT64" + } + ], + "name": "user_created_ads_accounts", + "online": true, + "tags": { + "description": "Features for ads accounts created by each user. For more info see http://go/docbird/ssa_feature_nest/data_processing.html#ads-account-creators-pipeline", + "fs10_dataset": "https://cortex.twitter.biz/datasets/com.twitter.ml.featurestore.catalog.datasets.ssa.UserCreatedAdsAccountsDataset", + "prepend_strategy": "dataset", + "team": "MLFM" + }, + "ttl": "86400s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-featurestore-prod.ssa.user_credit_cards_for_advertising" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-featurestore-prod.ssa.user_credit_cards_for_advertising", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "user" + ], + "features": [ + { + "name": "user_credit_cards_for_advertising__ads_account_age_when_first_credit_card_added", + "valueType": "INT64" + }, + { + "name": "user_credit_cards_for_advertising__has_credit_card_to_be_promoted", + "valueType": "BOOL" + } + ], + "name": "user_credit_cards_for_advertising", + "online": true, + "tags": { + "description": "Features for credit cards entered for advertising spend for each user. For more info see http://go/docbird/ssa_feature_nest/data_processing#promotable-users-credit-cards-pipeline", + "fs10_dataset": "https://cortex.twitter.biz/datasets/com.twitter.ml.featurestore.catalog.datasets.ssa.UserCreditCardsForAdvertisingDataset", + "prepend_strategy": "dataset", + "team": "MLFM" + }, + "ttl": "86400s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-featurestore-prod.ssa.user_crunchbase_organizations" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-featurestore-prod.ssa.user_crunchbase_organizations", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "user" + ], + "features": [ + { + "name": "user_crunchbase_organizations__employee_count_category_in_crunchbase", + "valueType": "STRING" + }, + { + "name": "user_crunchbase_organizations__is_user_acrunchbase_organization", + "valueType": "BOOL" + } + ], + "name": "user_crunchbase_organizations", + "online": true, + "tags": { + "description": "Features for the Crunchbase organizations associated with each user. For more info see http://go/docbird/ssa_feature_nest/data_processing#crunchbase-organisation-twitter-accounts-pipeline", + "fs10_dataset": "https://cortex.twitter.biz/datasets/com.twitter.ml.featurestore.catalog.datasets.ssa.UserCrunchbaseOrganizationsDataset", + "prepend_strategy": "dataset", + "team": "MLFM" + }, + "ttl": "86400s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-featurestore-prod.rux.user_email_overall_summary" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-featurestore-prod.rux.user_email_overall_summary", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "user" + ], + "features": [ + { + "name": "agg_email__user_overall_email__v1__pair__any_label__any_feature__45__days__count", + "valueType": "DOUBLE" + }, + { + "name": "agg_email__user_overall_email__v1__pair__Email__IsOpened__any_feature__45__days__count", + "valueType": "DOUBLE" + }, + { + "name": "agg_email__user_overall_email__v1__pair__Email__IsClicked__any_feature__45__days__count", + "valueType": "DOUBLE" + }, + { + "name": "agg_email__user_overall_email__v1__pair__Email__IsClicked__any_feature__45__days__last_reset", + "valueType": "DOUBLE" + }, + { + "name": "agg_email__user_overall_email__v1__pair__Email__IsOpened__any_feature__45__days__last_reset", + "valueType": "DOUBLE" + }, + { + "name": "agg_email__user_overall_email__v1__pair__any_label__any_feature__45__days__last_reset", + "valueType": "DOUBLE" + } + ], + "name": "user_email_overall_summary", + "online": true, + "tags": { + "description": "Set of aggregate features (count with 45 day decay) which capture signals of how users interact with different recommendation emails", + "fs10_dataset": "https://cortex.twitter.biz/datasets/com.twitter.ml.featurestore.catalog.datasets.rux.UserEmailOverallSummaryDataset", + "prepend_strategy": "dataset", + "team": "MLFM" + }, + "ttl": "86400s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-featurestore-prod.recommendations.user_interested_in_20M145K_dec11_entity" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-featurestore-prod.recommendations.user_interested_in_20M145K_dec11_entity", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "user" + ], + "features": [ + { + "name": "sim_clusters_v_2_user_interested_in__cluster_ids", + "valueType": "STRING" + }, + { + "name": "sim_clusters_v_2_user_interested_in__cluster_with_fav_scores_keys", + "valueType": "STRING" + }, + { + "name": "sim_clusters_v_2_user_interested_in__cluster_with_fav_scores_values", + "valueType": "DOUBLE" + }, + { + "name": "sim_clusters_v_2_user_interested_in__cluster_with_follow_scores_keys", + "valueType": "STRING" + }, + { + "name": "sim_clusters_v_2_user_interested_in__cluster_with_follow_scores_values", + "valueType": "DOUBLE" + } + ], + "name": "user_interested_in_20M145K_dec11_entity", + "online": true, + "tags": { + "description": "Features about the top SimClusters a user is interested in. For more info see go/simclusters.", + "fs10_dataset": "https://cortex.twitter.biz/datasets/com.twitter.ml.featurestore.catalog.datasets.recommendations.UserInterestedIn20M145KDec11EntityDataset", + "prepend_strategy": "dataset", + "team": "MLFM" + }, + "ttl": "604800s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-featurestore-prod.recommendations.user_interested_in_20M_145K_updated" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-featurestore-prod.recommendations.user_interested_in_20M_145K_updated", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "user" + ], + "features": [ + { + "name": "user_interested_in_sim_clusters_embedding__fav_based_embedding_20m_145k_updated_keys", + "valueType": "STRING" + }, + { + "name": "user_interested_in_sim_clusters_embedding__fav_based_embedding_20m_145k_updated_values", + "valueType": "DOUBLE" + }, + { + "name": "user_interested_in_sim_clusters_embedding__follow_based_embedding_20m_145k_updated_keys", + "valueType": "STRING" + }, + { + "name": "user_interested_in_sim_clusters_embedding__follow_based_embedding_20m_145k_updated_values", + "valueType": "DOUBLE" + }, + { + "name": "user_interested_in_sim_clusters_embedding__log_fav_based_embedding_20m_145k_updated_keys", + "valueType": "STRING" + }, + { + "name": "user_interested_in_sim_clusters_embedding__log_fav_based_embedding_20m_145k_updated_values", + "valueType": "DOUBLE" + } + ], + "name": "user_interested_in_20M145K_updated", + "online": true, + "tags": { + "description": "For more info see go/simclusters.", + "fs10_dataset": "https://cortex.twitter.biz/datasets/com.twitter.ml.featurestore.catalog.datasets.recommendations.UserInterestedIn20M145KUpdatedEntityDataset", + "prepend_strategy": "dataset", + "team": "MLFM" + }, + "ttl": "86400s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-featurestore-prod.ssa.user_lead_form_submissions" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-featurestore-prod.ssa.user_lead_form_submissions", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "user" + ], + "features": [ + { + "name": "user_lead_form_submissions__ads_account_ages_at_first_lead_form_submission", + "valueType": "STRING" + }, + { + "name": "user_lead_form_submissions__how_can_we_help", + "valueType": "STRING" + }, + { + "name": "user_lead_form_submissions__twitter_account_age_at_first_lead_form_submission", + "valueType": "INT64" + } + ], + "name": "user_lead_form_submissions", + "online": true, + "tags": { + "description": "Features for the lead forms submitted by users. For more info see https://docbird.twitter.biz/ssa_feature_nest/data_processing.html#lead-form-submissions-pipeline", + "fs10_dataset": "https://cortex.twitter.biz/datasets/com.twitter.ml.featurestore.catalog.datasets.ssa.UserLeadFormSubmissionsDataset", + "prepend_strategy": "dataset", + "team": "MLFM" + }, + "ttl": "86400s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-featurestore-prod.rux.user_recent_reactivation_time" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-featurestore-prod.rux.user_recent_reactivation_time", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "user" + ], + "features": [ + { + "name": "user_resurrection__days_since_recent_resurrection", + "valueType": "INT64" + } + ], + "name": "user_recent_reactivation_time", + "online": true, + "tags": { + "description": "Features related to user resurrection.", + "fs10_dataset": "https://cortex.twitter.biz/datasets/com.twitter.ml.featurestore.catalog.datasets.rux.UserRecentReactivationTimeDataset", + "prepend_strategy": "dataset", + "team": "MLFM" + }, + "ttl": "86400s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-featurestore-prod.ssa.user_salesforce_handles" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-featurestore-prod.ssa.user_salesforce_handles", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "user" + ], + "features": [ + { + "name": "user_salesforce_handles__is_user_linked_to_handle_in_sfdc", + "valueType": "BOOL" + }, + { + "name": "user_salesforce_handles__number_of_days_since_user_linked_to_handle_in_sfdc", + "valueType": "INT64" + } + ], + "name": "user_salesforce_handles", + "online": true, + "tags": { + "description": "Features for the linked handles in Salesforce for each user. For more info see https://docbird.twitter.biz/ssa_feature_nest/data_processing.html#salesforce-features", + "fs10_dataset": "https://cortex.twitter.biz/datasets/com.twitter.ml.featurestore.catalog.datasets.ssa.UserSalesforceHandlesDataset", + "prepend_strategy": "dataset", + "team": "MLFM" + }, + "ttl": "86400s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-featurestore-prod.ssa.user_tweet_aggregated_counts_features" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-featurestore-prod.ssa.user_tweet_aggregated_counts_features", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "user" + ], + "features": [ + { + "name": "user_tweet_aggregated_counts_features__list_of_app_ids_used_for_tweet__all_time_keys", + "valueType": "STRING" + }, + { + "name": "user_tweet_aggregated_counts_features__list_of_app_ids_used_for_tweet__feature_created_at", + "valueType": "INT64" + }, + { + "name": "user_tweet_aggregated_counts_features__list_of_app_ids_used_for_tweet__last_30_days_keys", + "valueType": "STRING" + }, + { + "name": "user_tweet_aggregated_counts_features__list_of_app_ids_used_for_tweet__last_365_days_keys", + "valueType": "STRING" + }, + { + "name": "user_tweet_aggregated_counts_features__list_of_app_ids_used_for_tweet__last_7_days_keys", + "valueType": "STRING" + }, + { + "name": "user_tweet_aggregated_counts_features__list_of_app_ids_used_for_tweet__last_90_days_keys", + "valueType": "STRING" + }, + { + "name": "user_tweet_aggregated_counts_features__number_of_days_since_last_tweet", + "valueType": "INT64" + }, + { + "name": "user_tweet_aggregated_counts_features__number_of_days_with_tweets_in__all_time", + "valueType": "INT64" + }, + { + "name": "user_tweet_aggregated_counts_features__number_of_days_with_tweets_in__feature_created_at", + "valueType": "INT64" + }, + { + "name": "user_tweet_aggregated_counts_features__number_of_days_with_tweets_in__last_30_days", + "valueType": "INT64" + }, + { + "name": "user_tweet_aggregated_counts_features__number_of_days_with_tweets_in__last_365_days", + "valueType": "INT64" + }, + { + "name": "user_tweet_aggregated_counts_features__number_of_days_with_tweets_in__last_7_days", + "valueType": "INT64" + }, + { + "name": "user_tweet_aggregated_counts_features__number_of_days_with_tweets_in__last_90_days", + "valueType": "INT64" + }, + { + "name": "user_tweet_aggregated_counts_features__number_of_original_tweets_in__all_time", + "valueType": "INT64" + }, + { + "name": "user_tweet_aggregated_counts_features__number_of_original_tweets_in__feature_created_at", + "valueType": "INT64" + }, + { + "name": "user_tweet_aggregated_counts_features__number_of_original_tweets_in__last_30_days", + "valueType": "INT64" + }, + { + "name": "user_tweet_aggregated_counts_features__number_of_original_tweets_in__last_365_days", + "valueType": "INT64" + }, + { + "name": "user_tweet_aggregated_counts_features__number_of_original_tweets_in__last_7_days", + "valueType": "INT64" + }, + { + "name": "user_tweet_aggregated_counts_features__number_of_original_tweets_in__last_90_days", + "valueType": "INT64" + }, + { + "name": "user_tweet_aggregated_counts_features__number_of_replies_in__all_time", + "valueType": "INT64" + }, + { + "name": "user_tweet_aggregated_counts_features__number_of_replies_in__feature_created_at", + "valueType": "INT64" + }, + { + "name": "user_tweet_aggregated_counts_features__number_of_replies_in__last_30_days", + "valueType": "INT64" + }, + { + "name": "user_tweet_aggregated_counts_features__number_of_replies_in__last_365_days", + "valueType": "INT64" + }, + { + "name": "user_tweet_aggregated_counts_features__number_of_replies_in__last_7_days", + "valueType": "INT64" + }, + { + "name": "user_tweet_aggregated_counts_features__number_of_replies_in__last_90_days", + "valueType": "INT64" + }, + { + "name": "user_tweet_aggregated_counts_features__number_of_retweets_in__all_time", + "valueType": "INT64" + }, + { + "name": "user_tweet_aggregated_counts_features__number_of_retweets_in__feature_created_at", + "valueType": "INT64" + }, + { + "name": "user_tweet_aggregated_counts_features__number_of_retweets_in__last_30_days", + "valueType": "INT64" + }, + { + "name": "user_tweet_aggregated_counts_features__number_of_retweets_in__last_365_days", + "valueType": "INT64" + }, + { + "name": "user_tweet_aggregated_counts_features__number_of_retweets_in__last_7_days", + "valueType": "INT64" + }, + { + "name": "user_tweet_aggregated_counts_features__number_of_retweets_in__last_90_days", + "valueType": "INT64" + }, + { + "name": "user_tweet_aggregated_counts_features__number_of_tweets_with_photos_in__all_time", + "valueType": "INT64" + }, + { + "name": "user_tweet_aggregated_counts_features__number_of_tweets_with_photos_in__feature_created_at", + "valueType": "INT64" + }, + { + "name": "user_tweet_aggregated_counts_features__number_of_tweets_with_photos_in__last_30_days", + "valueType": "INT64" + }, + { + "name": "user_tweet_aggregated_counts_features__number_of_tweets_with_photos_in__last_365_days", + "valueType": "INT64" + }, + { + "name": "user_tweet_aggregated_counts_features__number_of_tweets_with_photos_in__last_7_days", + "valueType": "INT64" + }, + { + "name": "user_tweet_aggregated_counts_features__number_of_tweets_with_photos_in__last_90_days", + "valueType": "INT64" + }, + { + "name": "user_tweet_aggregated_counts_features__number_of_tweets_with_videos_in__all_time", + "valueType": "INT64" + }, + { + "name": "user_tweet_aggregated_counts_features__number_of_tweets_with_videos_in__feature_created_at", + "valueType": "INT64" + }, + { + "name": "user_tweet_aggregated_counts_features__number_of_tweets_with_videos_in__last_30_days", + "valueType": "INT64" + }, + { + "name": "user_tweet_aggregated_counts_features__number_of_tweets_with_videos_in__last_365_days", + "valueType": "INT64" + }, + { + "name": "user_tweet_aggregated_counts_features__number_of_tweets_with_videos_in__last_7_days", + "valueType": "INT64" + }, + { + "name": "user_tweet_aggregated_counts_features__number_of_tweets_with_videos_in__last_90_days", + "valueType": "INT64" + } + ], + "name": "user_tweet_aggregated_counts", + "online": true, + "tags": { + "description": "Features for counts of Tweet activities for each user. For more info see http://go/docbird/ssa_feature_nest/data_processing.html#tweet-counts-pipeline", + "fs10_dataset": "https://cortex.twitter.biz/datasets/com.twitter.ml.featurestore.catalog.datasets.ssa.UserTweetAggregatedCountsDataset", + "team": "MLFM" + }, + "ttl": "86400s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "query": "select * from twttr-bq-featurestore-prod.video.engagement_counts_v1 where feature_name='user'" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "user" + ], + "features": [ + { + "name": "impression_count_1h", + "valueType": "INT64" + }, + { + "name": "engagement_count_1h", + "valueType": "INT64" + }, + { + "name": "impression_count_1d", + "valueType": "INT64" + }, + { + "name": "engagement_count_1d", + "valueType": "INT64" + }, + { + "name": "impression_count_7d", + "valueType": "INT64" + }, + { + "name": "engagement_count_7d", + "valueType": "INT64" + } + ], + "name": "user_video_cnts", + "online": true, + "tags": { + "description": "DESCRIPTION_NEEDED_MARKER_FEAST", + "online_store": "MHRO", + "team": "REVSCI" + }, + "ttl": "3600s" + } + }, + { + "meta": {}, + "spec": { + "batchSource": { + "bigqueryOptions": { + "tableRef": "twttr-bq-featurestore-prod.hss.userhealthscores" + }, + "dataSourceClassType": "feast.infra.offline_stores.bigquery_source.BigQuerySource", + "eventTimestampColumn": "ts", + "name": "twttr-bq-featurestore-prod.hss.userhealthscores", + "type": "BATCH_BIGQUERY" + }, + "entities": [ + "user" + ], + "features": [ + { + "name": "user_health_scores__agatha_all_spam_reports_per_fav_score", + "valueType": "DOUBLE" + }, + { + "name": "user_health_scores__agatha_calibrated_nsfw_score", + "valueType": "DOUBLE" + }, + { + "name": "user_health_scores__agatha_cse_score", + "valueType": "DOUBLE" + }, + { + "name": "user_health_scores__agatha_isis_score", + "valueType": "DOUBLE" + }, + { + "name": "user_health_scores__agatha_qanon_score", + "valueType": "DOUBLE" + }, + { + "name": "user_health_scores__agatha_recent_abuse_strike_score", + "valueType": "DOUBLE" + }, + { + "name": "user_health_scores__agatha_reports_per_fav_score", + "valueType": "DOUBLE" + }, + { + "name": "user_health_scores__agatha_spam_reports_per_fav_score", + "valueType": "DOUBLE" + }, + { + "name": "user_health_scores__agatha_spam_suspended_score", + "valueType": "DOUBLE" + }, + { + "name": "user_health_scores__nsfw_agatha_user_score", + "valueType": "DOUBLE" + }, + { + "name": "user_health_scores__nsfw_text_user_score", + "valueType": "DOUBLE" + }, + { + "name": "user_health_scores__spammy_user_score", + "valueType": "DOUBLE" + }, + { + "name": "user_health_scores__user_us_political_engagement_score", + "valueType": "DOUBLE" + } + ], + "name": "userhealthscores", + "online": true, + "tags": { + "description": "Scores for various User health models. See http://go/hss for more information.", + "fs10_dataset": "https://cortex.twitter.biz/datasets/com.twitter.ml.featurestore.catalog.datasets.hss.UserHealthScoresDataset", + "prepend_strategy": "dataset", + "team": "HMLI" + }, + "ttl": "314496000s" + } + } + ], + "project": "production" } diff --git a/ui/scripts/clear-icons.sh b/ui/scripts/clear-icons.sh new file mode 100755 index 0000000000..edbeec42cb --- /dev/null +++ b/ui/scripts/clear-icons.sh @@ -0,0 +1,23 @@ +#!/bin/bash + +cd build/static/js + +# find `(type|icon|iconType): "..."` in code +icon_types=$( + grep -ro '\b\(type\|icon\(Type\)\?\):\s*['\''"][[:alnum:]_-]\+' . | + awk -F '['\''"]' '{print $2}' | + sort -u +) + +# EUI maps icon types to differently spelled file labels in an object, so look for +# `(icon1|icon2|...): "..."` in code +icon_file_types=$( + grep -ro '\('"$(echo $icon_types | sed 's/ /\\|/g')"'\):\s*['\''"][[:alnum:]_-]\+' . | + awk -F '['\''"]' '{print $2}' | + sort -u +) + +# Find icon.* files that don't match the above file types and remove +ls -d icon.* | + grep -v '\.\('"$(echo $icon_file_types | sed 's/ /\\|/g')"'\)\.' | + xargs rm diff --git a/ui/src/hooks/useFCOExploreSuggestions.ts b/ui/src/hooks/useFCOExploreSuggestions.ts index e6a2a1e0eb..32b9d2769f 100644 --- a/ui/src/hooks/useFCOExploreSuggestions.ts +++ b/ui/src/hooks/useFCOExploreSuggestions.ts @@ -34,7 +34,7 @@ const createSearchLink = ( return URL + "?" + encodeSearchQueryString(`${key}:${value}`); }; -const NUMBER_OF_SUGGESTION_GROUPS = 2; +const NUMBER_OF_SUGGESTION_GROUPS = 1; const NUMBER_OF_VALUES_PER_GROUP = 4; const sortTagByUniqueValues = ( diff --git a/ui/src/pages/ProjectOverviewPage.tsx b/ui/src/pages/ProjectOverviewPage.tsx index 00e6bf1aa7..d758455956 100644 --- a/ui/src/pages/ProjectOverviewPage.tsx +++ b/ui/src/pages/ProjectOverviewPage.tsx @@ -65,23 +65,19 @@ const ProjectOverviewPage = () => { ) : (

- Welcome to your new Feast project. In this UI, you can see - Data Sources, Entities, Feature Views and Feature Services - registered in Feast. + Welcome to the Twitter Feature Store production metadata store! If you + are new to Feature Store we suggest checking out our{' '} + DocBird page.

- It look like this project already have some objects - registered. If you are new to this project, we suggest + If you are new to this project, we suggest starting by exploring the Feature Services, as they represent the collection of Feature Views serving a particular model.

- Note: We encourage you to replace this - welcome message with more suitable content for your team. - You can do so by specifying a{" "} - project_description in your{" "} - feature_store.yaml file. + Questions?: Please reach out to the{' '} + #ml-platform-support channel.

))}