Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Baseline model development #5

Open
piercefreeman opened this issue Sep 2, 2022 · 0 comments
Open

Baseline model development #5

piercefreeman opened this issue Sep 2, 2022 · 0 comments

Comments

@piercefreeman
Copy link
Owner

Design constraints

  1. Simple model architecture to be able to run on edge devices
  2. Run batch inference across whole dom concurrently, or at minimum within a few large batches

The above constraints require us to keep the overall feature space relatively small and ideally numeric so we don't have the memory overhead of embeddings / recursive networks.

We observe that popups are typically parent elements of multiple different kinds of content; buttons, text, graphics, etc. When seen as a wholistic element it is pretty clear the element is an undesirable popup - even if it is viewed in isolation to the rest of the page. The same is typically not true for the component elements themselves. If a button or a text component is isolated it's not often easy to tell that this content is part of a larger popover parent.

We therefore make the decision to treat the popover deletion question as one of a cascading dom prediction. If any parent is predicted to be a popover, the children will be deleted.

Training Time

Only featurize dom elements that are in other portions of the page & the popovers themselves. Don't featurize the popover's children. Because of our cascading assumption, we assume that we don't have to predict on children text of popover elements anyway. This likely allows for an easier training contract - since we are not inappropriately penalizing the model for children whose labels might not be obvious without the surrounding context.

Inference Time

At inference time, run every element in the page through the model - parents and all. For any element that is detected as a popup, remove the popup and all elements. Specifically make the elements invisible and inactive so we can easily re-enable them if clients report an error in the page rendering.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant