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

有关item_index2entity_id_rehashed.txt和kg_rehashed.txt的问题 #17

Open
tracy221 opened this issue Feb 29, 2020 · 12 comments
Open

有关item_index2entity_id_rehashed.txt和kg_rehashed.txt的问题 #17

tracy221 opened this issue Feb 29, 2020 · 12 comments

Comments

@tracy221
Copy link

王教授您好,冒昧的打扰您,想问您一下一些数据的具体含义。以movie数据为例,data文件夹中,ratings.dat是原始评分数据,给出了6040位用户对3952部电影的评分;item_index2entity_id_rehashed.txt是对其中2347部电影的重新编号;那么kg_part1_rehashed.txt和kg_part2_rehashed.txt文件中,第一列数据代表什么含义呢?我看这两个文件第一列中,存在超过电影数目的数字,而对应的relation中是以film开头,有些想不明白,想了解一下第一列数据的具体含义。感谢并期待您的回复。

@hwwang55
Copy link
Owner

您好,第一列是head id,包括的item不只是电影。超过电影数目的电影ID是因为,我们不止抓取了item中匹配到的电影的信息,也做了多跳的扩展,所以在它们的多跳邻居中可能有其它电影,这些电影的信息也被存储了起来。谢谢!

@tracy221
Copy link
Author

tracy221 commented Mar 1, 2020

谢谢教授的解答!我还有些疑问。原始评分数据ratings.dat中总共有3952部电影,item_index2entity_id_rehashed.txt中只对其中的2445部电影进行重新编号,这些电影是如何挑选出来的呢,对这些电影重新标号的作用是什么呢?kg_part1_rehashed.txt和kg_part2_rehashed.txt文件中,第一列中数值小于2445的head_id是否对应item_index2entity_id_rehashed.txt中的第二列数值呢?感谢并期待您的回复。

@hwwang55
Copy link
Owner

hwwang55 commented Mar 2, 2020

因为在知识图谱中只能匹配到这么多电影。重新标号是把两边的ID给对应上。是的。

@tracy221
Copy link
Author

王教授您好,我还有两个问题想问您:
1.对知识图谱三元组的理解问题,一跳三元组的头节点是电影id,尾节点的电影的属性id;二跳三元组的头节点和尾节点都是电影id,这样理解对吗?
2.若我对三元组的理解正确的话,在二跳三元组中,不同的电影通过相同的属性相连,比如两部电影都是喜剧,它们可以通过二跳三元组相连,但若这两部电影也同时是爱情片,在原先通过喜剧相连的基础上二跳三元组的基础上,可以再多出一个以爱情片相连的二跳三元组吗?如果可以,这两个三元组的头节点、尾节点和关系都是相同的吗?
感谢并期待您的回复,谢谢!

@hwwang55
Copy link
Owner

您好,一跳的三元组是这样的,二跳的不好说,但是数据集中应该没有头尾都是电影的三元组。

@Guido-Hwang
Copy link

谢谢教授的解答!我还有些疑问。原始评分数据ratings.dat中总共有3952部电影,item_index2entity_id_rehashed.txt中只对其中的2445部电影进行重新编号,这些电影是如何挑选出来的呢,对这些电影重新标号的作用是什么呢?kg_part1_rehashed.txt和kg_part2_rehashed.txt文件中,第一列中数值小于2445的head_id是否对应item_index2entity_id_rehashed.txt中的第二列数值呢?感谢并期待您的回复。

应该是第一列中数值小于第2445行第一列的值吧

@tracy221
Copy link
Author

您好,还想问下有关知识图谱的构建问题,我有点不太明白的是三元组的头节点和尾节点是如何确定的。我注意到ripplenet模型框架图中,与seed节点形成三元组的节点并非都是以seed节点为头节点的,这张图只是举例吗,还是实际中确实有这样的情况?我的疑问是右侧的seed为什么是它右侧节点的尾节点,而不是头节点呢?是所有的用户共用一张所有节点和方向都相同的图谱吗?还是说每个用户都有各自的图谱,用户间的图谱的节点和方向未必相同?

@hwwang55
Copy link
Owner

您好,没有太明白您的问题,知识图谱是这样构建的,以seed nodes(就是item nodes)为核心,按照一个给定的关系集合来向外扩展知识图谱。也就是说,扩展的时候只考虑预先给定的那些关系,这样来控制知识图谱的大小。至于后续加入的节点是不是在seed nodes中,并没有限制。

@tracy221
Copy link
Author

您好,我的疑问其实是知识图谱中三元组的关系的方向怎么确定,即如何确定哪个是头节点,哪个是尾节点。举个例子,在论文给出的figure3中,假设用户A看过电影Forrest Gump,用户A的兴趣可以沿着Forrest Gump传播到Tom Hanks和U.S.,但根据图中箭头的方向,可以通过Tom Hanks传播到电影Cast Away,进而给用户A推荐Cast Away,但不能通过U.S.传播到Cast Away,因为箭头的方向是Cast Away指向U.S.,我的疑问就是为什么同样是电影的属性,Tom Hanks是指向Cast Away的,但U.S.是被Cast Away指向的?再比如另一用户B看过电影Cast Away,但如果按照figure3中节点关系的传播方向,Cast Away是无法通过U.S.或Tom Hanks传播到Forrest Gump的,所以对于用户B,就不能根据U.S.或Tom Hanks给他推荐电影Forrest Gump了吗?
image

@55TFSI
Copy link

55TFSI commented Dec 15, 2020

您好,我的疑问其实是知识图谱中三元组的关系的方向怎么确定,即如何确定哪个是头节点,哪个是尾节点。举个例子,在论文给出的figure3中,假设用户A看过电影Forrest Gump,用户A的兴趣可以沿着Forrest Gump传播到Tom Hanks和U.S.,但根据图中箭头的方向,可以通过Tom Hanks传播到电影Cast Away,进而给用户A推荐Cast Away,但不能通过U.S.传播到Cast Away,因为箭头的方向是Cast Away指向U.S.,我的疑问就是为什么同样是电影的属性,Tom Hanks是指向Cast Away的,但U.S.是被Cast Away指向的?再比如另一用户B看过电影Cast Away,但如果按照figure3中节点关系的传播方向,Cast Away是无法通过U.S.或Tom Hanks传播到Forrest Gump的,所以对于用户B,就不能根据U.S.或Tom Hanks给他推荐电影Forrest Gump了吗?
image

我的理解:因为 film.country 这个关系规定头节点是电影尾节点是国家,所以从cast away指向 us 而不是 us指向 cast away,传播的方向是由关系决定的

@Niyx52094
Copy link

您好,我的疑问其实是知识图谱中三元组的关系的方向怎么确定,即如何确定哪个是头节点,哪个是尾节点。举个例子,在论文给出的figure3中,假设用户A看过电影Forrest Gump,用户A的兴趣可以沿着Forrest Gump传播到Tom Hanks和U.S.,但根据图中箭头的方向,可以通过Tom Hanks传播到电影Cast Away,进而给用户A推荐Cast Away,但不能通过U.S.传播到Cast Away,因为箭头的方向是Cast Away指向U.S.,我的疑问就是为什么同样是电影的属性,Tom Hanks是指向Cast Away的,但U.S.是被Cast Away指向的?再比如另一用户B看过电影Cast Away,但如果按照figure3中节点关系的传播方向,Cast Away是无法通过U.S.或Tom Hanks传播到Forrest Gump的,所以对于用户B,就不能根据U.S.或Tom Hanks给他推荐电影Forrest Gump了吗?
image

我的理解:因为 film.country 这个关系规定头节点是电影尾节点是国家,所以从cast away指向 us 而不是 us指向 cast away,传播的方向是由关系决定的

我的理解是可能Cast away 中指向Tom hanks的关系是”film.star“,然后tom hanks指向”Forest Gump“关系是”actor.film“。这样当一个用户看了cast away后,自然就能找到Forest Gump,所以换句话说这里的”fim.star" 和”actor.film“ 是一个对称的relation group,这张图应该是只显示了一个方向。不知道这样对不对。如果是这样构建图的话。在seed 跳跃过程中应该要标记已经跳过的位置。防止跳回到原来地方。

@psychogyiokostas
Copy link

psychogyiokostas commented Jul 2, 2021

您好,我的疑问其实是知识图谱中三元组的关系的方向怎么确定,即如何确定哪个是头节点,哪个是尾节点。举个例子,在论文给出的figure3中,假设用户A看过电影Forrest Gump,用户A的兴趣可以沿着Forrest Gump传播到Tom Hanks和U.S.,但根据图中箭头的方向,可以通过Tom Hanks传播到电影Cast Away,进而给用户A推荐Cast Away,但不能通过U.S.传播到Cast Away,因为箭头的方向是Cast Away指向U.S.,我的疑问就是为什么同样是电影的属性,Tom Hanks是指向Cast Away的,但U.S.是被Cast Away指向的?再比如另一用户B看过电影Cast Away,但如果按照figure3中节点关系的传播方向,Cast Away是无法通过U.S.或Tom Hanks传播到Forrest Gump的,所以对于用户B,就不能根据U.S.或Tom Hanks给他推荐电影Forrest Gump了吗?
image

Node with name US is an attribute of the item node Forrest Gump (movie node), while node, Tom Hanks, is another item node (actor). The idea here is to understand that there exist more than 1 types of nodes and that entities (e.g. movie, actor nodes) and attributes an entity may have (e.g. Country node, etc.) consist different node types. In this example, attribute node US may have incoming links from more than 1 entity nodes (movie nodes), however since it is an attribute node, it may not point towards other nodes. It is a property of the entity node Forrest Gump.

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

6 participants