## [Googledoc](https://docs.google.com/document/d/1ear2PcoO0TNFnXr9gHHttFV8sGqTLxUKNeqArnEV6YY/edit#) Feedback
Новостной помощник отлично структурированная работа, которую мы верим что можно успеть сделать за два месяца, но не понятно что делать с ним дальше и как превращать прототип в полноценный продукт у которого может быть экспоненциальный рост. Проблемы и хотелки:
- Возникнут проблемы с продвижением прототипа, в сравнении с простым потреблением новостей в аудио формате или подкастах не очень ясна, любой технический потенциал инвесторам будет продавать трудно, а [продавать мечту легко](https://www.ted.com/talks/simon_sinek_how_great_leaders_inspire_action?language=en)
- Хотелось бы чтобы прототип был прямой дорогой в EdTech ибо [его потенциал огромен](https://t.me/forumdigital/1021)
- Не хочется конкурировать с тех гигантами, которые полюбому идут примерно в ту же сторону с новостями.
- Хочется универсальный алгоритм, который можно масштабировать между разными доменами только сменой текстовых корпусов
- Было бы круто если бы прототип привносил реальную пользу в наш бренный мир)
- Было бы не плохо в итоге иметь единый продукт и для b2b и для b2c рынка
## Abstract algorithm
Если просто описать что хотелось бы получить, то:
1. Собрать полный корпус знаний по домену
2. Понять что знает пользователь в рамках тематики(домена)
3. Найти разницу между знаниями пользователя и домена
4. Выдать необходимый контент
5. Профит!
Заместо эмбедингов текста предлагаем сделать главной сущностью [граф знаний](https://www.ontotext.com/knowledgehub/fundamentals/what-is-a-knowledge-graph/#:~:text=The%20knowledge%20graph%20represents%20a,%2C%20unification%2C%20analytics%20and%20sharing.) (KG) - хоть это и более сложный вариант, но он даёт необходимую универсальность. Используя KG получается возможно следующее:
1. Собрать полный список знаний в рамках домена (Data)
2. Построить KG по домену из полученного корпуса (DKG)
3. Построить KG по знаниям пользователя (UKG)
4. Понять какую информацию нужно изучить пользователю (DKG-UKG=GKG)
5. Сгенерировать конент для пользователя на основе GKG
6. Профит!го
Окей, пройдёмся по каждому пункту подробней:
### Data
Для прототипа предлагаю использовать какой-либо домен(нужно подумать над бизнесовой составляющей) из намайненого корпуса, примеру [Project Gutenberg](https://jonreeve.com/2017/06/project-gutenberg-the-database/) в нём много книг и историй и в данных [размечены похожие документы](https://jonreeve.com/2017/12/similar-documents-in-project-gutenberg/).
### Data knowledge graph
Построив KG из определённого домена в Data мы получаем не только возможность сравнивать UKG и DKG, но и основу для генерации контента из графа.
[Knowledge graph from text](https://medium.com/swlh/text-to-knowledge-graph-683002cde6e0)
[Tiny Knowledge Graph with BERT](https://cloud4scieng.org/2020/10/27/building-a-tiny-knowledge-graph-with-bert-and-graph-convolutions/)
[KG-BERT: BERT for Knowledge Graph Completion](https://arxiv.org/abs/1909.03193)
[Knowledge Graph Embeddings and Explainable AI](https://arxiv.org/abs/2004.14843)
### User knowledge graph
Универсальный способ получения информации о том, что знает пользователь, источником могут быть:
- Статья
- Книга
- Прочитаные статьи из [истории браузера](https://stackoverflow.com/questions/24894627/how-to-get-browsing-history-using-history-api-in-chrome-extension) пользователя
- Прочитанный корпус книг(по возрасту или интересам)
- [Сиснтетические QA](https://github.com/teacherpeterpan/Question-Generation-Paper-List) из TKG
На начальном этапе нужно придумать максимально простой способ получения информации о познаниях пользователя в рамках домена и собственно строим граф знаний также как в dkg
### Generation knowledge graph
knowledge graph из которого мы будем генерировать контент для пользолвателя, на подумать - можно использовать подход как в текстовых играх.
[Knowledge Graph Representation via Similarity-Based Embedding](https://www.hindawi.com/journals/sp/2018/6325635/)
[It's like text games?](https://arxiv.org/abs/1908.06556)
[Matching Entities Across Different Knowledge Graphs with Graph Embeddings](https://arxiv.org/abs/1903.06607/)
[Entity Matching and Disambiguation Across Multiple Knowledge Graphs](https://uwspace.uwaterloo.ca/handle/10012/14750)
[Multilingual Knowledge Graph Completion via Ensemble Knowledge Transfer](https://arxiv.org/abs/2010.03158)
### Content generation
По генерации текста из графа тоже довольно много работ, похоже, что результаты могут быть достаточно качественными.
[Text Generation from Knowledge Graphs with Graph Transformers](https://paperswithcode.com/paper/text-generation-from-knowledge-graphs-with)
[AMR-To-Text Generation with Graph Transformer](https://paperswithcode.com/task/data-to-text-generation)
## Prototype case
Давайте обсудим и если сложность приемлемачя, опишем тут простой прототип, который приведёт нас к абстрактному алгоритму выше...
## Product basis
{"metaMigratedAt":"2023-06-15T23:46:29.567Z","metaMigratedFrom":"Content","title":"Untitled","breaks":true,"contributors":"[{\"id\":\"c68fcd7d-5b3c-4ad3-843f-97e14e35660a\",\"add\":7397,\"del\":2409}]"}