I would probably create a column for each category in a user profile sheet to hold a value from a choice component (up to 10 choice components). Each column would be set up as an array (Category 1, Category 2, Category 3, etc.) to create an array column of Category. You could use the category array column for a relation to the related articles.
You could do this with checkboxes too if you created 10 checkboxes and filled 10 checkbox columns in the sheet for each user profile record. You would have to use arrayformulas in the sheet to fill in the corresponding category array column based on if the checkbox is checked or not. Then you can do the relation as explained in my first idea.
A final idea is to create another sheet that lists the categories. In the glide data editor, create a user specific checkbox column. Display the category is as an inline list in the checklist layout. The user can select any categories they want from the checklist. On the articles sheet, create a template column and fill it with the value from the category column in the article and the value of ‘true’. Create the same template in the categories sheet, but instead join the category name to the checkbox value. Use this template to create a relation in the articles sheet to the template in the categories sheet. Now wherever you display your list of articles, filter if the relation is not empty. It should only show articles the user selected. This would by my preferred method of the three.