-
Notifications
You must be signed in to change notification settings - Fork 14
Open
Description
if eg > 0: # 大于0取原值,小于0则置0.即合页损失函数margin-based ranking criterion
self.loss += eg
temp_positive = 2 * self.learning_rate * (t - h - r)
temp_negative = 2 * self.learning_rate * (t2 - h2 - r)
if self.normal_form == "L1":
temp_positive_L1 = [1 if temp_positive[i] >= 0 else -1 for i in range(self.dim)]
temp_negative_L1 = [1 if temp_negative[i] >= 0 else -1 for i in range(self.dim)]
temp_positive = np.array(temp_positive_L1) * self.learning_rate
temp_negative = np.array(temp_negative_L1) * self.learning_rate
# 对损失函数的5个参数进行梯度下降, 随机体现在sample函数上
h += temp_positive
t -= temp_positive
r = r + temp_positive - temp_negative
h2 -= temp_negative
t2 += temp_negative
因为是随机替换head或者tail,当替换的是tail时,head没有被替换,实际上并不存在论文中所述的negative_head了,positive_head和negative_head实际上是一个东西,这种情况下在对positive_head求偏导时,是否应该包含两个部分 2 * (positve_head + relation - positive_tail) - 2 * (positive_head + relation - negative_tail)
Metadata
Metadata
Assignees
Labels
No labels